ó
    áÅŸg‚9  ã                   ó,  • S SK r S SK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JrJr  S SKJr  S SKJrJrJr  S S	KJrJr  S S
KJr  S SKJr  \R>                  S:¼  a   S SK r OS SK"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+r+\S\\
\,4   S\-\,\4   4S j5       r.\S\
S\
4S j5       r/\ S=S\\,   S\\,   S\0\
\,4   4S jj5       r1 S=S\0\,S4   S\\,   S\\,   4S jjr2\" SS9S\,S\-\,\4   4S j5       r3S\-\,\4   S\\4\&      4S  jr5S!\,S\\4\&      4S" jr6S!\,S\\4\&      4S# jr7S$\S\4S% jr8\S\
4S& j5       r9\S'\
S\4S( j5       r: S=S\
S'\
S)\\*   S\;4S* jjr<S\
S'\
S\
4S+ jr=S,\,S'\
S-\-\
\4   S\;4S. jr>S/\,S0\\\,      S\;4S1 jr?S2\\
   S'\
S3\\,   S4\\,   S5\\\,      S6\\\,      S)\*S-\\-\
\4      S7\;S8\;S\\
   4S9 jr@S:\ R‚                  S\\ R‚                  S;4   4S< jrBg! \! a    \(       d  S SK"r  GNŸf = f)>é    N)ÚIterableÚIteratorÚSequence)Ú	lru_cache)ÚPath)ÚPattern)ÚTYPE_CHECKINGÚAnyÚOptionalÚUnion)Ú
mypyc_attr)ÚInvalidSpecifierÚ	SpecifierÚSpecifierSet)ÚInvalidVersionÚVersion)ÚPathSpec)ÚGitWildMatchPatternError)é   é   )Ú"jupyter_dependencies_are_installed)ÚTargetVersion)Úerr)ÚReportÚpathÚreturnc                 ó|   • [        U S5       n[        R                  " U5      sS S S 5        $ ! , (       d  f       g = f)NÚrb)ÚopenÚtomllibÚload)r   Úfs     ÚL/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/black/files.pyÚ
_load_tomlr$   #   s%   € ä	ˆd�DÔ	˜QÜ�|Š|˜A‹÷ 
×	×	ús   �-­
;c                 ó"   • U R                  5       $ ©N)Úresolve©r   s    r#   Ú_cached_resolver)   )   s   € à�<‰<‹>Ðó    ÚsrcsÚstdin_filenamec           	      ó  ^• Tb  [        U4S jU  5       5      n U (       d(  [        [        [        R                  " 5       5      5      /n U  Vs/ sH+  n[        [        [        R                  " 5       U5      5      PM-     nnU Vs/ sH3  n[        UR                  5      UR                  5       (       a  U/O/ -   PM5     nn[        [        R                  " S U 5       6 S S9nU/UR                  Q7 Hƒ  nUS-  R                  5       (       a  US4s  $ US-  R                  5       (       a  US4s  $ US	-  R                  5       (       d  MY  [        US	-  5      nS
UR                  S0 5      ;   d  M  US	4s  $    WS4$ s  snf s  snf )a)  Return a directory containing .git, .hg, or pyproject.toml.

pyproject.toml files are only considered if they contain a [tool.black]
section and are ignored otherwise.

That directory will be a common parent of all files and directories
passed in `srcs`.

If no directory in the tree contains a marker that would specify it's the
project root, the root of the file system is returned.

Returns a two-tuple with the first element as the project root path and
the second element as a string describing the method by which the
project root was discovered.
c              3   ó4   >#   • U H  oS :X  a  TOUv •  M     g7f)Ú-N© )Ú.0Úsr,   s     €r#   Ú	<genexpr>Ú$find_project_root.<locals>.<genexpr>B   s   øé € ÐEÁ¸1¨C£x‘^°QÔ6Âùs   ƒc              3   ó6   #   • U H  n[        U5      v •  M     g 7fr&   )Úset)r1   Úparentss     r#   r3   r4   O   s   é € ÐC±{¨Gœ3˜wŸ<˜<²{ùó   ‚c                 ó   • U R                   $ r&   )Úpartsr(   s    r#   Ú<lambda>Ú#find_project_root.<locals>.<lambda>P   s   € ˜Ÿšr*   )Úkeyz.gitz.git directoryz.hgz.hg directoryúpyproject.tomlÚblackÚtoolzfile system root)ÚtupleÚstrr)   r   ÚcwdÚlistr7   Úis_dirÚmaxr6   ÚintersectionÚexistsÚis_filer$   Úget)	r+   r,   ÚsrcÚ	path_srcsr   Úsrc_parentsÚcommon_baseÚ	directoryÚpyproject_tomls	    `       r#   Úfind_project_rootrQ   .   ss  ø€ ð& Ñ!ÜÔEÁÓEÓEˆÞÜ”O¤D§H¢H£JÓ/Ó0Ð1ˆáCGÓHÁ4¸C”¤¤d§h¢h£j°#Ó!6Ö7Á4€IÐHñ
 LUóÙKTÀ4ŒˆT�\‰\Ó¨¯©¯©˜t™f¸2Ô>É9ð ð ô Ü×ÒÑC±{ÓCÐDÙ#ñ€Kð
 "Ð8 K×$7Ñ$7Ô8ˆ	Ø˜Ñ×&Ñ&×(Ñ(ØÐ.Ð.Ò.à˜Ñ×%Ñ%×'Ñ'Ø˜oÐ-Ò-àÐ(Ñ(×1Ñ1×3Ó3Ü'¨	Ð4DÑ(DÓEˆNØ˜.×,Ñ,¨V°RÓ8Õ8Ø Ð"2Ð2Ò2ñ 9ð Ð(Ð(Ð(ùò3 Iùòs   Á1E=Â9FÚpath_search_start.c                 ó  • [        X5      u  p#US-  nUR                  5       (       a  [        U5      $  [        5       nUR                  5       (       a  [        U5      $ S$ ! [        [
        4 a  n[        SU< 35         SnAgSnAff = f)z;Find the absolute filepath to a pyproject.toml if it existsr>   Nz-Ignoring user configuration directory due to )rQ   rI   rB   Úfind_user_pyproject_tomlÚPermissionErrorÚRuntimeErrorr   )rR   r,   Úpath_project_rootÚ_Úpath_pyproject_tomlÚpath_user_pyproject_tomlÚes          r#   Úfind_pyproject_tomlr\   b   s�   € ô -Ð->ÓOÑÐØ+Ð.>Ñ>ÐØ×"Ñ"×$Ñ$ÜÐ&Ó'Ð'ð
Ü#;Ó#=Ð ð (×/Ñ/×1Ñ1ô Ð(Ó)ð	
ð ð	
øô
 œ\Ð*ó äÐ;¸A¹5ÐAÔBÜûðús   ´)A  ÁA  Á B	Á0BÂB	T)Ú	patchableÚpath_configc                 ó~  • [        U 5      nUR                  S0 5      R                  S0 5      nUR                  5        VVs0 sH(  u  p4UR                  SS5      R                  SS5      U_M*     nnnSU;  a:  [	        U5      nUb,  U Vs/ sH  oDR
                  R                  5       PM     snUS'   U$ s  snnf s  snf )z|Parse a pyproject toml file, pulling out relevant parts for Black.

If parsing fails, will raise a tomllib.TOMLDecodeError.
r@   r?   z--Ú r/   rX   Útarget_version)r$   rJ   ÚitemsÚreplaceÚinfer_target_versionÚnameÚlower)r^   rP   ÚconfigÚkÚvÚinferred_target_versions         r#   Úparse_pyproject_tomlrk   x   s´   € ô   Ó,€NØ+×/Ñ/°¸Ó;×?Ñ?ÀÈÓL€FØCIÇ<Á<Ä>ÔRÁ>¹4¸1ˆa�i‰i˜˜bÓ!×)Ñ)¨#¨sÓ3°QÒ6Á>€FÑRà˜vÓ%Ü"6°~Ó"FÐØ"Ñ.Ù@WÓ'XÑ@W¸1¯©¯©®Ñ@WÑ'XˆFÐ#Ñ$à€Mùó Sùò
 (Ys   Á.B4Â
"B:rP   c                 óÎ   • U R                  S0 5      nUR                  SS5      nUb   [        U5      $ g! [         a     Of = f [        U5      $ ! [        [        4 a     gf = f)a  Infer Black's target version from the project metadata in pyproject.toml.

Supports the PyPA standard format (PEP 621):
https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#requires-python

If the target version cannot be inferred, returns None.
Úprojectzrequires-pythonN)rJ   Úparse_req_python_versionr   Úparse_req_python_specifierr   )rP   Úproject_metadataÚrequires_pythons      r#   rd   rd   Š   sƒ   € ð &×)Ñ)¨)°RÓ8ÐØ&×*Ñ*Ð+<¸dÓC€OØÑ"ð	Ü+¨OÓ<Ð<ð øô ó 	Ùð	úð	Ü-¨oÓ>Ð>øÜ ¤.Ð1ó 	Øàð	ús!   ©
5 µ
AÁAÁ
A ÁA$Á#A$rq   c                 ó    • [        U 5      nUR                  S   S:w  a  g [        UR                  S   5      /$ ! [        [        4 a     gf = f)zÛParse a version string (i.e. ``"3.7"``) to a list of TargetVersion.

If parsing fails, will raise a packaging.version.InvalidVersion error.
If the parsed version cannot be mapped to a valid TargetVersion, returns None.
r   r   Né   )r   Úreleaser   Ú
IndexErrorÚ
ValueError)rq   Úversions     r#   rn   rn   £   sU   € ô �oÓ&€GØ‡��qÑ˜QÓØðÜ˜gŸo™o¨aÑ0Ó1Ð2Ð2øÜœ
Ð#ó Ùðús   ¡: ºAÁAc                 ó   • [        [        U 5      5      nU(       d  g[         Vs0 sH  nSUR                   3U_M     nn[	        UR                  U5      5      nU(       a  U Vs/ sH  o#U   PM	     sn$ gs  snf s  snf )zìParse a specifier string (i.e. ``">=3.7,<3.10"``) to a list of TargetVersion.

If parsing fails, will raise a packaging.specifiers.InvalidSpecifier error.
If the parsed specifier cannot be mapped to a valid TargetVersion, returns None.
Nz3.)Ústrip_specifier_setr   r   ÚvaluerD   Úfilter)rq   Úspecifier_setri   Útarget_version_mapÚcompatible_versionss        r#   ro   ro   ²   s€   € ô (¬°_Ó(EÓF€MÞØå5BÓC±]°˜B˜qŸw™w˜i˜.¨!Ò+±]ÐÐCÜ%)¨-×*>Ñ*>Ð?QÓ*RÓ%SÐÞÙ/BÓCÑ/B¨! 1Ô%Ñ/BÑCÐCØùò	 Dùò Ds   ¥A6Á%A;r|   c                 ó‚  • / nU  GH  nS[        U5      ;   a  UR                  U5        M&  UR                  S;   aX  [        UR                  5      n[        UR                   UR                   SUR                   35      nUR                  U5        MŽ  UR                  S:X  ag  [        UR                  5      n[        UR                  5      S:”  a%  [        SUR                   SUR                   35      nUR                  U5        GM  UR                  U5        GM     [        SR                  S U 5       5      5      $ )	z¨Strip minor versions for some specifiers in the specifier set.

For background on version specifiers, see PEP 440:
https://peps.python.org/pep-0440/#version-specifiers
Ú*)z~=z==ú>=z===Ú.Ú>é   r�   Ú,c              3   ó6   #   • U H  n[        U5      v •  M     g 7fr&   )rB   )r1   r2   s     r#   r3   Ú&strip_specifier_set.<locals>.<genexpr>Ù   s   é € Ð <±¨A¤ Q§ ²ùr8   )rB   ÚappendÚoperatorr   rw   r   ÚmajorÚminorÚlenrt   r   Újoin)r|   Ú
specifiersr2   rw   Ústrippeds        r#   ry   ry   Ã   sü   € ð €JÜˆØ”#�a“&‹=Ø×Ñ˜aÖ Ø�Z‰ZÐ4Ó4Ü˜aŸi™iÓ(ˆGÜ  A§J¡J <°·±¨¸aÀÇÁ¸Ð!OÓPˆHØ×Ñ˜hÖ'Ø�Z‰Z˜3ÓÜ˜aŸi™iÓ(ˆGÜ�7—?‘?Ó# aÓ'Ü  7§=¡= /°°7·=±=°/ÐBÓC�Ø×Ñ˜a× à×Ñ˜a× ñ ô ˜Ÿ™Ñ <±Ó <Ó<Ó=Ð=r*   c                  óê   • [         R                  S:X  a  [        R                  " 5       S-  n O<[        R
                  R                  SS5      n[        U5      R                  5       S-  n [        U 5      $ )a"  Return the path to the top-level user configuration for black.

This looks for ~\.black on Windows and ~/.config/black on Linux and other
Unix systems.

May raise:
- RuntimeError: if the current user has no homedir
- PermissionError: if the current process cannot access the user's homedir
Úwin32z.blackÚXDG_CONFIG_HOMEz	~/.configr?   )	ÚsysÚplatformr   ÚhomeÚosÚenvironrJ   Ú
expanduserr)   )Úuser_config_pathÚconfig_roots     r#   rT   rT   Ü   s[   € ô ‡|�|�wÓäŸ9š9›;¨Ñ1Ñä—j‘j—n‘nÐ%6¸ÓDˆÜ Ó,×7Ñ7Ó9¸GÑCÐÜÐ+Ó,Ð,r*   Úrootc                 ó$  • U S-  n/ nUR                  5       (       a(  UR                  SS9 nUR                  5       nSSS5         [        R                  " SU5      $ ! , (       d  f       N&= f! [
         a  n[        SU SU 35        e SnAff = f)z8Return a PathSpec matching gitignore content if present.z
.gitignorezutf-8)ÚencodingNÚgitwildmatchzCould not parse z: )rI   r   Ú	readlinesr   Ú
from_linesr   r   )r›   Ú	gitignoreÚlinesÚgfr[   s        r#   Úget_gitignorer¤   ð   s�   € ð �|Ñ#€IØ€EØ×Ñ×ÑØ�^‰^ Wˆ^Ñ-°Ø—L‘L“NˆE÷ .ðÜ×"Ò" >°5Ó9Ð9÷ .Õ-ûô $ó ÜÐ˜y˜k¨¨A¨3Ð/Ô0Øûðús#   ¬AÁA. Á
A+Á.
BÁ8B
Â
BÚreportc                 óþ   •  [        U 5      n UR                  U5        g! [         a&  nU(       a  UR                  U SU 35         SnAgSnAff = f! [         a    U(       a  UR                  U SU 35         gf = f)z‰
Returns whether the path is a symbolic link that points outside the
root directory. Also returns True if we failed to resolve the path.
zcannot be read because NTz'is a symbolic link that points outside F)r)   ÚOSErrorÚpath_ignoredÚrelative_torv   )r   r›   r¥   Úresolved_pathr[   s        r#   Ú$resolves_outside_root_or_cannot_statr«   ÿ   sˆ   € ðÜ'¨Ó-ˆð
Ø×!Ñ! $Ô'ð
 øô ó ÞØ×Ñ Ð(?À¸sÐ&CÔDÜûðûô ó ÞØ×Ñ Ð(OÐPTÈvÐ&VÔWÙðús%   ‚  ŽA  
AªAÁAÁ&A<Á;A<c                 ó   ^•  U R                  5       R                  T5      $ ! [         a     Of = f[        U4S jU R                   5       S 5      nUb  U R                  U5      $ [        U 5      R                  T5      $ )Nc              3   óH   >#   • U H  n[        U5      T:X  d  M  Uv •  M     g 7fr&   )r)   )r1   Úpr›   s     €r#   r3   Ú,best_effort_relative_path.<locals>.<genexpr>  s   øé € ÐN¡<˜a´?À1Ó3EÈÑ3MŸ™¢<ùs   ƒ"™	")Úabsoluter©   rv   Únextr7   r)   )r   r›   Úroot_parents    ` r#   Úbest_effort_relative_pathr³     su   ø€ ðØ�}‰}‹×*Ñ*¨4Ó0Ð0øÜó ÙðúäÔN 4§<¢<ÓNÐPTÓU€KØÑØ×Ñ Ó,Ð,ä˜4Ó ×,Ñ,¨TÓ2Ð2s   ƒ" ¢
/®/Úroot_relative_pathÚgitignore_dictc                 ó  • X-  nUR                  5        HW  u  pE UR                  U5      R                  5       nUR                  5       (       a  US-   nUR                  U5      (       d  MW    g   g! [         a       gf = f)NÚ/TF)rb   r©   Úas_posixrE   rv   Ú
match_file)r´   r›   rµ   r   Úgitignore_pathÚpatternÚrelative_paths          r#   Ú_path_is_ignoredr½   $  s‹   € ð
 Ñ$€Dð $2×#7Ñ#7Ö#9Ñˆð	Ø ×,Ñ,¨^Ó<×EÑEÓGˆMØ�{‰{�}‰}Ø -°Ñ 3�ð ×Ñ˜m×,Ó,Ùñ $:ð øô	 ó 	Ùð ð		ús   ›9A1Á1
A?Á>A?Únormalized_pathr»   c                 ó|   • U(       a  UR                  U 5      OS n[        U=(       a    UR                  S5      5      $ )Nr   )ÚsearchÚboolÚgroup)r¾   r»   Úmatchs      r#   Úpath_is_excludedrÄ   8  s.   € ö 07ˆG�N‰N˜?Ô+¸D€EÜ�×(˜%Ÿ+™+ a›.Ó)Ð)r*   ÚpathsÚincludeÚexcludeÚextend_excludeÚforce_excludeÚverboseÚquietc             #   óö  #   • UR                  5       (       d
   SU 35       eU  GHÍ  n
U
R                  5       (       d   eU
R                  U5      R                  5       nU(       a%  [        X±U5      (       a  UR	                  U
S5        Mf  SU-   nU
R                  5       (       a  US-  n[        X³5      (       a  UR	                  U
S5        M©  [        X´5      (       a  UR	                  U
S5        MÍ  [        Xµ5      (       a  UR	                  U
S5        Mñ  [        X¡U5      (       a  GM  U
R                  5       (       aD  Ub  0 UEX-  [        U
5      0EnOSn[        U
R                  5       UUUUUUUUU	S9
 Sh  v•N   GM^  U
R                  5       (       d  GMv  U
R                  S	:X  a  [        U=(       d    U	(       + S
9(       d  GM¥  U(       a  UR                  U5      OSnU(       d  GMÉ  U
v •  GMÐ     g N|7f)a#  Generate all files under `path` whose paths are not excluded by the
`exclude_regex`, `extend_exclude`, or `force_exclude` regexes,
but are included by the `include` regex.

Symbolic links pointing outside of the `root` directory are ignored.

`report` is where output about exclusions goes.
z/INTERNAL ERROR: `root` must be absolute but is z!matches a .gitignore file contentr·   z(matches the --exclude regular expressionz/matches the --extend-exclude regular expressionz.matches the --force-exclude regular expressionN)rÊ   rË   z.ipynb)ÚwarnT)Úis_absoluter©   r¸   r½   r¨   rE   rÄ   r«   r¤   Úgen_python_filesÚiterdirrI   Úsuffixr   rÀ   )rÅ   r›   rÆ   rÇ   rÈ   rÉ   r¥   rµ   rÊ   rË   Úchildr´   Únew_gitignore_dictÚinclude_matchs                 r#   rÏ   rÏ   @  sð  é € ð, ×Ñ×ÑÐWÐ!PÐQUÐPVÐWÓWÐÜˆØ× Ñ ×"Ñ"Ð"Ð"Ø"×.Ñ.¨tÓ4×=Ñ=Ó?Ðö Ô.Ø n÷
ñ 
ð ×Ñ Ð'JÔKÙð !Ð#5Ñ5ÐØ�<‰<�>‰>Ø #Ñ%ÐäÐ.×8Ñ8Ø×Ñ Ð'QÔRÙäÐ.×?Ñ?Ø×ÑØÐHôñ äÐ.×>Ñ>Ø×Ñ Ð'WÔXÙä/°¸V×DÑDÚà�<‰<�>‰>ð Ñ)ð&Ø$ð&à‘L¤-°Ó"6ñ&Ñ"ð
 &*Ð"Ü'Ø—‘“ØØØØØØØ"ØØñ÷ ó ð �]‰]�_Œ_Ø�|‰|˜xÓ'Ô0RØ×) E¤	÷1ò ÞBI˜GŸN™NÐ+=Ô>ÈtˆMß‰}Ø•ò ñVùs   ‚E8G9Å:G7Å;G9ÆAG9Ç-G9r"   zcolorama.AnsiToWin32c                 óH   •  SSK Jn  U" U SSSSS9$ ! [         a    U s $ f = f)a\  
Wrap stream with colorama's wrap_stream so colors are shown on Windows.

If `colorama` is unavailable, the original stream is returned unmodified.
Otherwise, the `wrap_stream()` function determines whether the stream needs
to be wrapped for a Windows environment and will accordingly either return
an `AnsiToWin32` wrapper or the original stream.
r   )Úwrap_streamNFT)ÚconvertÚstripÚ	autoresetÚwrap)Úcolorama.initialiserÖ   ÚImportError)r"   rÖ   s     r#   Úwrap_stream_for_windowsrÝ   ™  s6   € ðUÝ3ñ
 ˜1 d°%À5ÈtÑTÐTøô	 ó ØŠðús   ‚ ’! !r&   )CÚior–   r“   Úcollections.abcr   r   r   Ú	functoolsr   Úpathlibr   Úrer   Útypingr	   r
   r   r   Úmypy_extensionsr   Úpackaging.specifiersr   r   r   Úpackaging.versionr   r   Úpathspecr   Úpathspec.patterns.gitwildmatchr   Úversion_infor    rÜ   ÚtomliÚblack.handle_ipynb_magicsr   Ú
black.moder   Úblack.outputr   Úblack.reportr   ÚcoloramarB   Údictr$   r)   rA   rQ   r\   rk   rD   rd   rn   ro   ry   rT   r¤   rÁ   r«   r³   r½   rÄ   rÏ   ÚTextIOWrapperrÝ   r0   r*   r#   Ú<module>rò      s§  ðÛ 	Û 	Û 
ß 8Ñ 8Ý Ý Ý ß 6Ó 6å &ß JÑ Jß 5Ý Ý Cà×Ñ�wÓð$Üó å HÝ $Ý Ý æÛð ð�U˜4 ˜9Ñ%ð ¨$¨s°C¨x©.ó ó ðð
 ð˜$ð  4ó ó ðð à9=ñ0)Ø
�3‰-ð0)Ø)1°#©ð0)à
ˆ4�ˆ9Ñô0)ó ð0)ðh IMñØ˜S #˜X‘ðØ8@À¹ðàˆc�]õñ, �dÑð cð ¨d°3¸°8©nó ó ðð"Ø˜˜c˜‘Nðàˆd�=Ñ!Ñ"ôð2¨cð °h¸tÀMÑ?RÑ6Sô ð°ð ¸ÀÀmÑATÑ8Uô ð"> |ð >¸ô >ð2 ð- $ó -ó ð-ð& ð˜ð  ó ó ðð"  $ñØ
ðà
ðð �VÑðð 
õ	ð0
3 Dð 
3°ð 
3¸ô 
3ðØðà
ðð ˜˜x˜Ñ(ðð 
ô	ð(*Øð*à�g˜c‘lÑ#ð*ð 
ô*ðVØ�D‰>ðVà
ðVð �S‰\ðVð �S‰\ð	Vð
 ˜W S™\Ñ*ðVð ˜G C™LÑ)ðVð ðVð ˜T $¨ .Ñ1Ñ2ðVð ðVð ðVð ˆd�^ôVðrUØ	×ÑðUà
ˆ2×ÑÐ3Ð3Ñ4õUøðM ó $æÛ#úð$ús   Á*G> Ç>HÈH