Ë
    ¤ehÞ  ã                  óP   — d dl mZ d dlmZ d dlZd dlmZ erd dlm	Z	 dd„Z
d	d„Zy)
é    )Úannotations)ÚTYPE_CHECKINGN)Úis_list_like)ÚNumpyIndexTc                óŒ  — d}t        | «      st        |«      ‚| D ]  }t        |«      rŒt        |«      ‚ t        | «      dk(  rg S t        j                  d„ | D «       t        j
                  ¬«      }t        j                  |«      }t        j                  |dk  «      rt        d«      ‚t        j                  |d«      }d|d<   |d   dk7  r	|d   |z  }nt        j                  |«      }t        | «      D ��cg c]>  \  }}t        t        j                  |||   «      t        j                  ||   «      «      ‘Œ@ c}}S c c}}w )añ  
    Numpy version of itertools.product.
    Sometimes faster (for large inputs)...

    Parameters
    ----------
    X : list-like of list-likes

    Returns
    -------
    product : list of ndarrays

    Examples
    --------
    >>> cartesian_product([list('ABC'), [1, 2]])
    [array(['A', 'A', 'B', 'B', 'C', 'C'], dtype='<U1'), array([1, 2, 1, 2, 1, 2])]

    See Also
    --------
    itertools.product : Cartesian product of input iterables.  Equivalent to
        nested for-loops.
    z'Input must be a list-like of list-likesr   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­w)N)Úlen)Ú.0Úxs     úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/core/reshape/util.pyú	<genexpr>z$cartesian_product.<locals>.<genexpr>.   s   è ø€ Ò* 1œ˜AŸÑ*ùs   ‚)Údtypez+Product space too large to allocate arrays!é   éÿÿÿÿ)r   Ú	TypeErrorr	   ÚnpÚfromiterÚintpÚcumprodÚanyÚ
ValueErrorÚrollÚ
zeros_likeÚ	enumerateÚtile_compatÚrepeatÚprod)ÚXÚmsgr   ÚlenXÚcumprodXÚaÚbÚis           r   Úcartesian_productr%      s%  € ð. 4€CÜ˜Œ?Ü˜‹nÐØò !ˆÜ˜A�Ü˜C“.Ð ð!ô ˆ1ƒv�‚{Øˆ	ä�;‰;Ñ*¨Ô*´"·'±'Ô:€DÜ�z‰z˜$Ó€Hä	‡v�vˆh˜‰lÔÜÐFÓGÐGä
�‰�˜!Ó€AØ€A€a�Dà��|�qÒØ�R‰L˜8Ñ#‰ô �M‰M˜(Ó#ˆô ˜a“L÷ñ
 ˆAˆqô	 	Ü�I‰I�a˜˜1™ÓÜ�G‰G�A�a‘D‹Mõ	
óð ùó s   Ã9AE c                óè   — t        | t        j                  «      rt        j                  | |«      S t        j                  t        j                  t        | «      «      |«      }| j                  |«      S )zf
    Index compat for np.tile.

    Notes
    -----
    Does not support multi-dimensional `num`.
    )Ú
isinstancer   ÚndarrayÚtileÚaranger	   Útake)ÚarrÚnumÚtakers      r   r   r   H   sP   € ô �#”r—z‘zÔ"Ü�w‰w�s˜CÓ Ð ô �G‰G”B—I‘Iœc #›hÓ'¨Ó-€EØ�8‰8�E‹?Ðó    )Úreturnzlist[np.ndarray])r,   r   r-   Úintr0   r   )Ú
__future__r   Útypingr   Únumpyr   Úpandas.core.dtypes.commonr   Úpandas._typingr   r%   r   © r/   r   ú<module>r8      s"   ðÝ "å  ã å 2áÝ*ó8ôvr/   