
     h                     z    S r SSKrSSKJr  SSKJrJrJrJrJ	r	  S\S\\   4S jr
SS\S	\4   S
\S\	\   4S jjrg)ze
Copy/paste from scrapy source at the moment, to ensure tests are working.
Refactoring to come later
    N)partial)AnyCallable	GeneratorIterableListargreturnc                 V    U c  / $ [        U [        [        [        45      (       a  U $ U /$ )a  Return an iterable based on *arg*.

If *arg* is a list, a tuple or a generator, it will be returned as is.

If *arg* is ``None``, an empty list will be returned.

If *arg* is anything else, a list will be returned with *arg* as its only
item, i.e. ``[arg]``.
)
isinstancelisttupler   )r	   s    X/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/itemloaders/utils.pyarg_to_iterr      s.     {	#eY/00
5L    func.	stripselfc                 v   [        U 5      (       d"  [        S[        U 5      R                  < 35      e/ n [        R
                  " U 5      n[        U [        5      (       ax  U R                  nU R                  nUR                  R                  5        HA  u  pgUR                  U;   a  M  U(       a  UR                  U;   a  M0  UR                  U5        MC     O2UR                  R                  5        H  nUR                  U5        M     U(       a  U(       a  US   S:X  a  USS nU$ ! [         a    Us $ f = f)z2Return the argument name list of a callable objectzfunc must be callable, got r   self   N)callable	TypeErrortype__name__inspect	signature
ValueErrorr   r   argskeywords
parametersitemsnameappendkeys)r   r   r   sigpartial_args
partial_kwr"   params           r   get_func_argsr)      s   D>>5d4j6I6I5LMNND% $  yy]]
>>//1KDzz\)ejjJ6KK 2 NN'')DKK * Td1g/ABxK'  s   D) )D87D8)F)__doc__r   	functoolsr   typingr   r   r   r   r   r   boolstrr)    r   r   <module>r0      sV   
   ; ;S Xc] "c* t S	 r   