
    i                    ~    S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  \(       a  S SK
Jr  S SKJrJr   " S S	5      rg
)    )annotations)defaultdict)Path)TYPE_CHECKING)Kind)GriffeLoader)AliasObjectc                  6    \ rS rSrSrSS jrS	S jrS
S jrSrg)Stats   z$Load statistics for a Griffe loader.c                .   Xl          [        [        SSSSSSSS.5      nUR                  R                  R                  5       n[        R                  S[        R                  S[        R                  S[        R                  S[        R                  S0U l         [        U5      U l         X l         [!        S UR"                  R                  5        5       5      U l         SU l         SU l         SU l         U H  nU R-                  U5        M     g)zWInitialiwe the stats object.

Parameters:
    loader: The loader to compute stats for.
r   ) .py.pyiz.pycz.pyoz.pydz.soc              3  8   #    U  H  n[        U5      v   M     g 7f)N)len).0liness     P/home/james-whalen/.local/lib/python3.13/site-packages/griffe/_internal/stats.py	<genexpr>!Stats.__init__.<locals>.<genexpr>;   s     R1QU1Qs   N)loaderr   intmodules_collectionmembersvaluesr   MODULECLASSFUNCTION	ATTRIBUTE
TYPE_ALIASby_kindr   packagesmodules_by_extensionsumlines_collectionr   time_spent_visitingtime_spent_inspectingtime_spent_serializing
_itercount)selfr   r%   top_modulesmodules        r   __init__Stats.__init__   s     .* 
 //77>>@ KKJJMM1NNAOOQ
 	)K(!$8!-R1H1H1O1O1QRR
$#$ *%&",&'#-!FOOF# "    c                   UR                   (       a  g U R                  UR                  ==   S-  ss'   UR                  (       ao  [	        UR
                  [        5      (       a,  U R                  UR
                  R                  ==   S-  ss'   O$UR
                  c  U R                  S==   S-  ss'   UR                  R                  5        H  nU R                  U5        M     g )N   r   )is_aliasr#   kind	is_module
isinstancefilepathr   r%   suffixr   r   r+   )r,   rootmembers      r   r+   Stats._itercountJ   s    ==TYY1$>>$--..))$--*>*>?1D?&))"-2-ll))+FOOF# ,r1   c                2   / nU R                   nU R                  [        R                     nU R                  [        R                     nU R                  [        R
                     nU R                  [        R                     nU R                  [        R                     n[        X4XVU45      nUR                  S5        UR                  S5        UR                  S5        UR                  SU 35        UR                  SU 35        UR                  SU 35        UR                  SU 35        UR                  SU 35        UR                  S	U S
U S35        U R                  n	U	S   n
U	S   nU	S   nX:-
  U-
  U-
  nUR                  S5        UR                  SU R                   35        UR                  S5        UR                  S5        UR                  SU
 35        UR                  SU 35        UR                  SU 35        UR                  SU 35        UR                  S5        [        U	R                  5       5       H%  u  pU(       d  M  UR                  SU SU 35        M'     U R                  S-  nU R                  S-  nUU-   nUU-  S-  nUU-  S-  nU R                   R"                  nU(       a  SOUn UU-  nX-   U(       a  UOS-   n UU-  nUR                  S5        UR                  SU SU SUS SUS S 3	5        UR                  S!U SU SUS SUS S 3	5        U R&                  S-  nUU-  nUR                  S"U SUS S#35        S$R)                  U5      $ ! [$         a    Sn Nf = f! [$         a    Sn Nf = f)%z9Format the statistics as text.

Returns:
    Text stats.

Statisticsz---------------------zNumber of loaded objectsz  Modules: z  Classes: z  Functions: z  Attributes: z  Type aliases: z	  Total: z across z	 packagesr   r   r   zTotal number of lines: Modulesz  Builtin: z  Compiled: z  Regular: z	  Stubs: z  Per extension:z    z: i  d   r   zTime spent visiting modules (z): zms, z.02fzms/module (z%)zTime spent inspecting modules (zTime spent serializing: z	ms/module
)r$   r#   r   r   r   r    r!   r"   r&   appendr%   r   sorteditemsr(   r)   r   force_inspectionZeroDivisionErrorr*   join)r,   r   r$   modulesclasses	functions
attributestype_aliasesobjectsper_extbuiltinregularstubscompiledextnumber
visit_timeinspect_time
total_timevisit_percentinspect_percentrE   visited_modulesvisit_time_per_moduleinspected_modulesinspect_time_per_moduleserialize_timeserialize_time_per_modules                               r   as_textStats.as_textV   s    ==,,t{{+,,tzz*LL/	\\$..1
||DOO4wMN\",-/0{7),-{7),-}YK01~j\23'~67y	(9EF++"+%.$w.6R.tzzl;<RY{7),-|H:./{7),-y()'(!'--/2KCstC56(34 3 --4
11D8,.
"Z/#5&3c9;;77/!W	&$.$@! $.=M'STU	(&25F&F# 	R+O+<Cl$4T:+mTXEYY[]	
 	-.?-@nD!8 >k/Z^I__ac	

 44t;$2W$<!//?tD]^bCcclmnyy/ ! 	&$%!	& ! 	(&'#	(s$   M5 !N 5NNNN)r#   r   r   r%   r$   r)   r*   r(   N)r   r   returnNone)r:   zObject | Aliasrb   rc   )rb   str)	__name__
__module____qualname____firstlineno____doc__r/   r+   r`   __static_attributes__ r1   r   r   r      s    .4$l
$J r1   r   N)
__future__r   collectionsr   pathlibr   typingr   griffe._internal.enumerationsr   griffe._internal.loaderr   griffe._internal.modelsr	   r
   r   rk   r1   r   <module>rs      s+    # #    .45O  O r1   