
    !h                    T   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SKrS SKJrJrJr  S SKJr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  \
(       a  S SKJrJr  S SKJr  S SK J!r!J"r"  \" S5      r# " S S\RH                  5      r%S S jr&S!S jr' S"     S#S jjr(      S$S jr)S%S jr*S&S jr+S'S jr,S'S jr-        S(S jr.        S(S jr/          S)S jr0S*S+S jjr1S,S jr2        S,S jr3\4S:X  a   \1" 5         \" 5         gg! \" 5         f = f)-    )annotationsN)entry_points)TYPE_CHECKING)BaseRunSpiderCommandScrapyCommandScrapyHelpFormatter)CrawlerProcess)
UsageError)walk_modules)get_project_settingsinside_project)garbage_collect)CallableIterable)	ParamSpec)BaseSettingsSettings_Pc                  4   ^  \ rS rSr    SU 4S jjrSrU =r$ )ScrapyArgumentParser   c                6   > US S S:X  a  g [         TU ]  U5      $ )N   z-:)super_parse_optional)self
arg_string	__class__s     U/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/scrapy/cmdline.pyr   $ScrapyArgumentParser._parse_optional   s&     bq>T!w&z22     )r   strreturnz5tuple[argparse.Action | None, str, str | None] | None)__name__
__module____qualname____firstlineno__r   __static_attributes____classcell__)r   s   @r   r   r      s    33	>3 3r!   r   c              #  <  #    [        U 5       H  n[        U5      R                  5        Hi  n[        R                  " U5      (       d  M   [        U[        5      (       d  M7  UR                  UR                  :X  d  MS  U[        [        4;  d  Me  Uv   Mk     M     g 7fN)
r   varsvaluesinspectisclass
issubclassr   r&   r%   r   )module_namemoduleobjs      r   _iter_command_classesr5   )   sl      {+<&&(C$$sM22NNfoo5/CDD	 ) ,s   AB
B!B=BBc                    0 n[        U 5       HD  nU(       d  UR                  (       a  M  UR                  R                  S5      S   nU" 5       X$'   MF     U$ )N.)r5   requires_projectr&   split)r3   	inprojectdcmdcmdnames        r   _get_commands_from_moduler?   7   sM    "$A$V,C000nn**3/3GAJ - Hr!   c                8   0 n[         R                  S:  a
  [        US9nO[        5       R                  US5      nU HY  nUR	                  5       n[
        R                  " U5      (       a  U" 5       X$R                  '   MC  [        SUR                   35      e   U$ )N)   
   )groupr"   zInvalid entry point )	sysversion_infor   getloadr/   r0   name
ValueError)r;   rC   cmdsepsentry_pointr4   s         r   _get_commands_from_entry_pointsrM   @   s     &(D
7"'n  + ??3%(UD!!"3K4D4D3EFGG  Kr!   c                    [        SU5      nUR                  [        U5      5        U S   nU(       a  UR                  [        X15      5        U$ )Nscrapy.commandsCOMMANDS_MODULE)r?   updaterM   )settingsr;   rJ   cmds_modules       r   _get_commands_dictrT   Q   sH     %%6	BDKK/	:;,-K-kEFKr!   c                P    [        [        U SS95      [        [        U SS95      -
  $ )NT)r;   F)setrT   )rR   s    r   _get_project_only_cmdsrW   \   s.    !(d;<s8u5@  r!   c                    [        S[        U 5      5       H.  nX   R                  S5      (       a  M  U R                  U5      s  $    g )N   -)rangelen
startswithpop)argvis     r   _pop_command_namera   b   s=    1c$i w!!#&&88A; ! r!   c                |    [         R                  nU(       a  [        SU SU S    S35        g [        SU S35        g )NzScrapy z - active project: BOT_NAME
z - no active project
)scrapy__version__print)rR   r;   versions      r   _print_headerri   i   sB      Gy 3HZ4H3ILM 	y 678r!   c                X   [        X5        [        S5        [        S5        [        S5        [        X5      n[        UR	                  5       5       H%  u  p4[        SUS SUR                  5        35        M'     U(       d  [        5         [        S5        [        5         [        S5        g )	NzUsage:z$  scrapy <command> [options] [args]
zAvailable commands:z  z<13 zG  [ more ]      More commands available when run from project directoryz:Use "scrapy <command> -h" to see more info about a command)ri   rg   rT   sorteditems
short_desc)rR   r;   rJ   r>   cmdclasss        r   _print_commandsrp   r   s    (&	(O	
12	
 h2D#DJJL173-q!4!4!6 789 2WX	G	
FGr!   c                    [        U 5      nX;   a4  U(       d-  SR                  [        U5      5      n[        SU SU S35        g [        SU S35        g )Nz, zThe zg command is not available from this location.
These commands are only available from within a project: z.
zUnknown command: rd   )rW   joinrl   rg   )rR   r>   r;   proj_only_cmdscmd_lists        r   _print_unknown_command_msgru      s`     ,H5N 99VN347) HHPzQTV	

 	!'"-.r!   c                H    [        X5        [        XU5        [        S5        g )Nz&Use "scrapy" to see available commands)ri   ru   rg   )rR   r>   r;   s      r   _print_unknown_commandrw      s     (&x)<	
23r!   c                    U" U0 UD6  g ! [          ak  n[        U5      (       a  U R                  [        U5      5        UR                  (       a  U R                  5         [        R
                  " S5         S nAg S nAff = f)Nr   )r
   r#   error
print_helprD   exit)parserfuncakwes        r   _run_print_helpr      s[    a2 q66LLQ <<s    
B A!A;;B c                   U c  [         R                  n Uc"  [        5       n [        R                  S   nX!S'   [        5       n[        X5      n[        U 5      nU(       d"  [        X5        [         R                  " S5        O'XT;  a"  [        XU5        [         R                  " S5        XE   n[        [        SU SUR                  5        3SUR                  5       S9nUR!                  UR"                  SS	9  Xl        UR'                  U5        UR)                  U S
S  S9u  p[+        XvR,                  X5        [/        U5      Ul        [+        U[2        XiU5        [         R                  " UR4                  5        g ! [
         a     GNQf = f)NEDITORr   r   zscrapy rk   resolve)formatter_classusageconflict_handlerdescriptioncommand)priorityrY   )args)rD   r_   r   osenvironKeyErrorr   rT   ra   rp   r{   rw   r   r   syntax	long_descsetdictdefault_settingsrR   add_optionsparse_known_argsr   process_optionsr	   crawler_process_run_commandexitcode)
r_   rR   editorr;   rJ   r>   r=   r|   optsr   s
             r   executer      sT   |xx')	(ZZ)F "(X Ih2D%G,		x)<
-C!+y#**,0"MMO	F S))I>LOOF((d12h(7JDF//<(2CFL#T:HHS\\=  		s   E= =
F
Fc                b    UR                   (       a  [        XU5        g U R                  X5        g r,   )profile_run_command_profiledrun)r=   r   r   s      r   r   r      s    ||c.r!   c                P   UR                   (       a.  [        R                  R                  SUR                   < S35        [	        5       n[
        R                  " 5       nUR                  S[        5       U5        UR                   (       a  UR                  UR                   5        g g )Nz"scrapy: writing cProfile stats to rd   zcmd.run(args, opts))
r   rD   stderrwritelocalscProfileProfilerunctxglobals
dump_stats)r=   r   r   locps        r   r   r      sp     ||

=dll=MRPQ
(CAHH"GIs3||	T\\" r!   __main__)r2   r#   r$   zIterable[type[ScrapyCommand]])r3   r#   r;   boolr$   dict[str, ScrapyCommand])rO   )r;   r   rC   r#   r$   r   )rR   r   r;   r   r$   r   )rR   r   r$   zset[str])r_   	list[str]r$   z
str | None)rR   r   r;   r   r$   None)rR   r   r>   r#   r;   r   r$   r   )
r|   zargparse.ArgumentParserr}   zCallable[_P, None]r~   z_P.argsr   z	_P.kwargsr$   r   )NN)r_   zlist[str] | NonerR   zSettings | Noner$   r   )r=   r   r   r   r   zargparse.Namespacer$   r   )5
__future__r   argparser   r/   r   rD   importlib.metadatar   typingr   re   scrapy.commandsr   r   r   scrapy.crawlerr	   scrapy.exceptionsr
   scrapy.utils.miscr   scrapy.utils.projectr   r   scrapy.utils.pythonr   collections.abcr   r   typing_extensionsr   scrapy.settingsr   r   r   ArgumentParserr   r5   r?   rM   rT   rW   ra   ri   rp   ru   rw   r   r   r   r   r%   r"   r!   r   <module>r      s   "    	 
 +    T T ) ( * E /2 ,6	4B3822 3 #4"'+9H//%(/59/	/44%(4594	4#
 	 	
 
 'T	#		#'	#/A	#		# z	
 	  	s   D 	D'