diff --git a/.gitattributes b/.gitattributes index 923f17182cdf6ec245890aee0aef60c32958bf7b..9eb4f4c773d76ee39354d593df25f66a600221ee 100644 --- a/.gitattributes +++ b/.gitattributes @@ -109,3 +109,9 @@ tuning-competition-baseline/.venv/lib/python3.11/site-packages/torch/_inductor/_ .venv/lib/python3.11/site-packages/pillow.libs/libopenjp2-05423b53.so filter=lfs diff=lfs merge=lfs -text .venv/lib/python3.11/site-packages/pillow.libs/libxcb-b8a56d01.so.1.1.0 filter=lfs diff=lfs merge=lfs -text .venv/lib/python3.11/site-packages/vllm/worker/__pycache__/hpu_model_runner.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text +.venv/lib/python3.11/site-packages/torchvision.libs/libwebp.4a54d2c8.so.4 filter=lfs diff=lfs merge=lfs -text +.venv/lib/python3.11/site-packages/torchvision.libs/libnvjpeg.02b6d700.so.12 filter=lfs diff=lfs merge=lfs -text +.venv/lib/python3.11/site-packages/torchvision.libs/libcudart.41118559.so.12 filter=lfs diff=lfs merge=lfs -text +.venv/lib/python3.11/site-packages/pycparser/__pycache__/yacctab.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text +.venv/lib/python3.11/site-packages/torchvision.libs/libz.5f199d92.so.1 filter=lfs diff=lfs merge=lfs -text +.venv/lib/python3.11/site-packages/torchvision.libs/libjpeg.ceea7512.so.62 filter=lfs diff=lfs merge=lfs -text diff --git a/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/LICENSE b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..00f71b91091e2f3da3db2ba5f674e72f44b3baaa --- /dev/null +++ b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/LICENSE @@ -0,0 +1,24 @@ +The MIT License (MIT) + +Copyright (c) 2020- Mike Borsetti + +This project includes data from https://github.com/mwgg/Airports Copyright +(c) 2014 mwgg + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/METADATA b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..ce969b1ac6f589648cbe76c36197c06fd3b43e97 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/METADATA @@ -0,0 +1,194 @@ +Metadata-Version: 2.1 +Name: airportsdata +Version: 20241001 +Summary: Extensive database of location and timezone data for nearly every airport and landing strip in the world. +Author-email: Mike Borsetti +Maintainer-email: Mike Borsetti +License: The MIT License (MIT) + + Copyright (c) 2020- Mike Borsetti + + This project includes data from https://github.com/mwgg/Airports Copyright + (c) 2014 mwgg + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +Project-URL: Documentation, https://github.com/mborsetti/airportsdata/blob/main/README.rst +Project-URL: Repository, https://github.com/mborsetti/airportsdata/ +Project-URL: Database (csv), https://github.com/mborsetti/airportsdata/blob/main/airportsdata/airports.csv +Project-URL: Changelog, https://github.com/mborsetti/airportsdata/blob/main/CHANGELOG.rst +Project-URL: Issues, https://github.com/mborsetti/airportsdata/issues +Project-URL: CI, https://github.com/mborsetti/airportsdata/actions +Keywords: airports,aerodromes,ICAO,IATA +Classifier: Development Status :: 5 - Production/Stable +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Operating System :: OS Independent +Classifier: Topic :: Database +Classifier: Intended Audience :: Developers +Classifier: Typing :: Typed +Requires-Python: >=3.9 +Description-Content-Type: text/x-rst +License-File: LICENSE + +======================== +airportsdata |downloads| +======================== + +.. |ICAO| replace:: 28,237 + +.. |IATA| replace:: 7,876 + +.. |LID| replace:: 12,604 + +.. |pyversion| image:: https://img.shields.io/pypi/v/airportsdata.svg + :target: https://pypi.org/project/airportsdata/ + :alt: pypi version +.. |support| image:: https://img.shields.io/pypi/pyversions/airportsdata.svg + :target: https://pypi.org/project/airportsdata/ + :alt: supported Python version +.. |pypi_version| image:: https://img.shields.io/pypi/v/airportsdata.svg?label= + :target: https://pypi.org/project/airportsdata/ + :alt: PyPI version +.. |format| image:: https://img.shields.io/pypi/format/airportsdata.svg + :target: https://pypi.org/project/airportsdata/ + :alt: Kit format +.. |downloads| image:: https://static.pepy.tech/badge/airportsdata + :target: https://www.pepy.tech/project/airportsdata + :alt: PyPI downloads +.. |license| image:: https://img.shields.io/pypi/l/airportsdata.svg + :target: https://pypi.org/project/airportsdata/ + :alt: license +.. |issues| image:: https://img.shields.io/github/issues-raw/mborsetti/airportsdata + :target: https://github.com/mborsetti/airportsdata/issues + :alt: issues +.. |CI| image:: https://github.com/mborsetti/airportsdata/actions/workflows/ci-cd.yaml/badge.svg?event=push + :target: https://github.com/mborsetti/airportsdata/actions + :alt: CI testing status +.. |coveralls| image:: https://coveralls.io/repos/github/mborsetti/airportsdata/badge.svg?branch=main + :target: https://coveralls.io/github/mborsetti/airportsdata?branch=main + :alt: code coverage by Coveralls +.. |status| image:: https://img.shields.io/pypi/status/airportsdata.svg + :target: https://pypi.org/project/airportsdata/ + :alt: Package stability +.. |security| image:: https://img.shields.io/badge/security-bandit-yellow.svg + :target: https://github.com/PyCQA/bandit + :alt: Security Status + +Extensive database of location and timezone data for nearly every operational airport and landing strip in the world, +with |ICAO| entries. + +Each entry consists of the following data: + +* ``icao``: ICAO 4-letter Location Indicator (Doc 7910) or (if none) an internal Pseudo-ICAO Identifier [#]_ (|ICAO| + entries); +* ``iata``: IATA 3-letter Location Code (|IATA| entries) or an empty string [#]_; +* ``name``: Official name (diacritized latin script); +* ``city``: City (diacritized latin script), ideally using the local language; +* ``subd``: Subdivision (e.g. state, province, region, etc.), ideally using the local-language or English names of + `ISO 3166-2 `__; +* ``country``: `ISO 3166-1 `__ alpha-2 country code + (plus ``XK`` for Kosovo); +* ``elevation``: MSL elevation of the highest point of the landing area, in feet (warning: it is often wrong); +* ``lat``: Latitude (decimal) of the `airport reference point + `__ (max 5 decimal digits); +* ``lon``: Longitude (decimal) of the `airport reference point + `__ (max 5 decimal digits); +* ``tz``: Timezone expressed as a `tz database name `__ + (IANA-compliant); +* ``lid``: U.S. FAA Location Identifier (|LID| entries), or an empty string. + +.. [#] See `here `__ for an explanation on + how the Pseudo-ICAO Identifier is generated for airports and seaplane bases without an ICAO 4-letter Location + Indicator. + +.. [#] IATA Multi Airport Cities are not not airports and therfore not included, but we provide a database and a Python + function that returns the above data for all the airports of a IATA MAC. Please see documentation `here + `__. + +Best efforts are placed to review all contributions for accuracy, but accuracy cannot be guaranteed nor should be +expected by users. + +Important notes: + +* Timezone was originally sourced from `TimeZoneDB `__; +* No historical data (closed airports are removed). + +Please report any issues you may find `here +`__. + +This project is a fork of https://github.com/mwgg/Airports. All new data submitted in this fork have been validated +against national `Aeronautical Information Publications (AIP) or equivalent +`__ (or +ARINC database) and `IATA `__ before publishing. + +Raw data +======== + +A CSV (comma separated values) file, with headers and encoded in UTF-8, is downloadable from GitHub `here +`__. + +Python +====== +|pyversion| |support| |format| |status| |security| |CI| |coveralls| |issues| + +Install from `PyPi `__ using pip: + +.. code-block:: bash + + pip install -U airportsdata + +Once installed, to load the data into a dict: + +.. code-block:: python + + import airportsdata + airports = airportsdata.load() # key is the ICAO identifier (the default) + print(airports['KJFK']) + +or + +.. code-block:: python + + import airportsdata + airports = airportsdata.load('IATA') # key is the IATA location code + print(airports['JFK']) + +or + +.. code-block:: python + + import airportsdata + airports = airportsdata.load('LID') # key is the FAA LID + print(airports['01AA']) + +Older Python versions are supported for 3 years after being obsoleted by a new major release (i.e. about 4 years +since their original release). + +License |license| +================= + +Released under the `MIT License `__ (see license `here +`__). diff --git a/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/RECORD b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..3b5672749eb473989f8cf14bcae077e59aaa4719 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/RECORD @@ -0,0 +1,11 @@ +airportsdata-20241001.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +airportsdata-20241001.dist-info/LICENSE,sha256=Gra_Nl4fahiDq2oveX52GyIQgbUqMyc9hsFX_VYhBr4,1191 +airportsdata-20241001.dist-info/METADATA,sha256=xZmo6PVCkbbv3Shhg0Oqocc0ZuC-XY1QDDPRO8q6dhw,8918 +airportsdata-20241001.dist-info/RECORD,, +airportsdata-20241001.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91 +airportsdata-20241001.dist-info/top_level.txt,sha256=pwno2lCh8ojWgA5MI3oKaEO0U96yNrH106dZIvhEbgE,13 +airportsdata/__init__.py,sha256=fUFo8sBUvVeZiWXRmWZ3Udxi5TSoM4WZIvv_KngF3Cc,5261 +airportsdata/__pycache__/__init__.cpython-311.pyc,, +airportsdata/airports.csv,sha256=koANA3k5geIpWLnSzKML0CUOGKSCxkpAx9R8Chiuoio,3040844 +airportsdata/iata_macs.csv,sha256=jgeMECojIRDZ5e6JcTYQF0NRzGOCdJK9YCf-nB0u3Iw,4061 +airportsdata/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..dcfdc6e359074689c0bdb567634b4f84add7849c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.1.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..566a8a4fc5ec0fb1b1aa190376076fc5abd7db64 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/airportsdata-20241001.dist-info/top_level.txt @@ -0,0 +1 @@ +airportsdata diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/__init__.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b534381395131ca105ed48b6aabaed0deba734b Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/__init__.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/_cmp.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/_cmp.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..649493c6282475ef70df0e9efee5056d7d4f51d9 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/_cmp.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/_compat.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/_compat.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..14b380cd99c595bf6443baf5a8b7c6c9ea057a85 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/_compat.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/_config.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/_config.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..698b6b87247f2781045150afd9ed5258855bb072 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/_config.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/_next_gen.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/_next_gen.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5e013622321bab74904e6d19589ea28bde96987 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/_next_gen.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/exceptions.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/exceptions.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b577a8322fafdeea3788df8455b33ebcb457d695 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/exceptions.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/filters.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/filters.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5de88db5e9c10be06627c7affcd3bbeb848d4387 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/filters.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/attr/__pycache__/validators.cpython-311.pyc b/.venv/lib/python3.11/site-packages/attr/__pycache__/validators.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f8e95fdd4384f440313430072467953abbe82b7 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/attr/__pycache__/validators.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/LICENSE b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/METADATA b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..952e020e3cd8020fe92ad393eb05415072ab602b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/METADATA @@ -0,0 +1,138 @@ +Metadata-Version: 2.1 +Name: google-auth +Version: 2.38.0 +Summary: Google Authentication Library +Home-page: https://github.com/googleapis/google-auth-library-python +Author: Google Cloud Platform +Author-email: googleapis-packages@google.com +License: Apache 2.0 +Keywords: google auth oauth client +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: POSIX +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: OS Independent +Classifier: Topic :: Internet :: WWW/HTTP +Requires-Python: >=3.7 +License-File: LICENSE +Requires-Dist: cachetools<6.0,>=2.0.0 +Requires-Dist: pyasn1-modules>=0.2.1 +Requires-Dist: rsa<5,>=3.1.4 +Provides-Extra: aiohttp +Requires-Dist: aiohttp<4.0.0.dev0,>=3.6.2; extra == "aiohttp" +Requires-Dist: requests<3.0.0.dev0,>=2.20.0; extra == "aiohttp" +Provides-Extra: enterprise_cert +Requires-Dist: cryptography; extra == "enterprise-cert" +Requires-Dist: pyopenssl; extra == "enterprise-cert" +Provides-Extra: pyjwt +Requires-Dist: pyjwt>=2.0; extra == "pyjwt" +Requires-Dist: cryptography>=38.0.3; extra == "pyjwt" +Provides-Extra: pyopenssl +Requires-Dist: pyopenssl>=20.0.0; extra == "pyopenssl" +Requires-Dist: cryptography>=38.0.3; extra == "pyopenssl" +Provides-Extra: reauth +Requires-Dist: pyu2f>=0.1.5; extra == "reauth" +Provides-Extra: requests +Requires-Dist: requests<3.0.0.dev0,>=2.20.0; extra == "requests" + +Google Auth Python Library +========================== + +|pypi| + +This library simplifies using Google's various server-to-server authentication +mechanisms to access Google APIs. + +.. |pypi| image:: https://img.shields.io/pypi/v/google-auth.svg + :target: https://pypi.python.org/pypi/google-auth + +Installing +---------- + +You can install using `pip`_:: + + $ pip install google-auth + +.. _pip: https://pip.pypa.io/en/stable/ + +For more information on setting up your Python development environment, please refer to `Python Development Environment Setup Guide`_ for Google Cloud Platform. + +.. _`Python Development Environment Setup Guide`: https://cloud.google.com/python/docs/setup + +Extras +------ + +google-auth has few extras that you can install. For example:: + + $ pip install google-auth[pyopenssl] + +Note that the extras pyopenssl and enterprise_cert should not be used together because they use conflicting versions of `cryptography`_. + +.. _`cryptography`: https://cryptography.io/en/latest/ + +Supported Python Versions +^^^^^^^^^^^^^^^^^^^^^^^^^ +Python >= 3.7 + +**NOTE**: +Python 3.7 was marked as `unsupported`_ by the python community in June 2023. +We recommend that all developers upgrade to Python 3.8 and newer as soon as +they can. Support for Python 3.7 will be removed from this library after +January 1 2024. Previous releases that support Python 3.7 will continue to be available +for download, but releases after January 1 2024 will only target Python 3.8 and +newer. + +.. _unsupported: https://devguide.python.org/versions/#unsupported-versions + +Unsupported Python Versions +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +- Python == 2.7: The last version of this library with support for Python 2.7 + was `google.auth == 1.34.0`. + +- Python 3.5: The last version of this library with support for Python 3.5 + was `google.auth == 1.23.0`. + +- Python 3.6: The last version of this library with support for Python 3.6 + was `google.auth == 2.22.0`. + +Documentation +------------- + +Google Auth Python Library has usage and reference documentation at https://googleapis.dev/python/google-auth/latest/index.html. + +Current Maintainers +------------------- +- googleapis-auth@google.com + +Authors +------- + +- `@theacodes `_ (Thea Flowers) +- `@dhermes `_ (Danny Hermes) +- `@lukesneeringer `_ (Luke Sneeringer) +- `@busunkim96 `_ (Bu Sun Kim) + +Contributing +------------ + +Contributions to this library are always welcome and highly encouraged. + +See `CONTRIBUTING.rst`_ for more information on how to get started. + +.. _CONTRIBUTING.rst: https://github.com/googleapis/google-auth-library-python/blob/main/CONTRIBUTING.rst + +License +------- + +Apache 2.0 - See `the LICENSE`_ for more information. + +.. _the LICENSE: https://github.com/googleapis/google-auth-library-python/blob/main/LICENSE diff --git a/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/RECORD b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..6a903329cc54dafa7b734d3f0a4a22d6f94f5a28 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/RECORD @@ -0,0 +1,150 @@ +google/auth/__init__.py,sha256=wg5MWwRk8nfJFMmUMU2gLirrPdGe9NMwqLkdSwdFwE8,1639 +google/auth/__pycache__/__init__.cpython-311.pyc,, +google/auth/__pycache__/_cloud_sdk.cpython-311.pyc,, +google/auth/__pycache__/_credentials_async.cpython-311.pyc,, +google/auth/__pycache__/_credentials_base.cpython-311.pyc,, +google/auth/__pycache__/_default.cpython-311.pyc,, +google/auth/__pycache__/_default_async.cpython-311.pyc,, +google/auth/__pycache__/_exponential_backoff.cpython-311.pyc,, +google/auth/__pycache__/_helpers.cpython-311.pyc,, +google/auth/__pycache__/_jwt_async.cpython-311.pyc,, +google/auth/__pycache__/_oauth2client.cpython-311.pyc,, +google/auth/__pycache__/_refresh_worker.cpython-311.pyc,, +google/auth/__pycache__/_service_account_info.cpython-311.pyc,, +google/auth/__pycache__/api_key.cpython-311.pyc,, +google/auth/__pycache__/app_engine.cpython-311.pyc,, +google/auth/__pycache__/aws.cpython-311.pyc,, +google/auth/__pycache__/credentials.cpython-311.pyc,, +google/auth/__pycache__/downscoped.cpython-311.pyc,, +google/auth/__pycache__/environment_vars.cpython-311.pyc,, +google/auth/__pycache__/exceptions.cpython-311.pyc,, +google/auth/__pycache__/external_account.cpython-311.pyc,, +google/auth/__pycache__/external_account_authorized_user.cpython-311.pyc,, +google/auth/__pycache__/iam.cpython-311.pyc,, +google/auth/__pycache__/identity_pool.cpython-311.pyc,, +google/auth/__pycache__/impersonated_credentials.cpython-311.pyc,, +google/auth/__pycache__/jwt.cpython-311.pyc,, +google/auth/__pycache__/metrics.cpython-311.pyc,, +google/auth/__pycache__/pluggable.cpython-311.pyc,, +google/auth/__pycache__/version.cpython-311.pyc,, +google/auth/_cloud_sdk.py,sha256=u7tbE3KdHBCzZK8ka47xG3CHHtF0DhFDjmPSgz8lwXg,5212 +google/auth/_credentials_async.py,sha256=bHB28wMULOIEMmYqKEOU06A4co7uIXPcnfVC_TaA6KY,6802 +google/auth/_credentials_base.py,sha256=KxdCZyoFyvrfWhJbNnuYkpUhxs0bmbxYvcH8-xp5hUs,2692 +google/auth/_default.py,sha256=xNeiYdYKhEYuAGap1ATDG9GrMUAfFO1_Sow-CenvBoE,30312 +google/auth/_default_async.py,sha256=r4bFozWfioQa4lIEC-psuRsLiVhnJbuW-uQ0daj7s3Q,11575 +google/auth/_exponential_backoff.py,sha256=qxA9ek80rBkoARx0Egl2b1MlYU0D-pQNVqgCmUh-lgU,5372 +google/auth/_helpers.py,sha256=7Zm-uwaZWyFb3fE2JQA-sJUTSBvltTgZkNkMGc7raRo,8236 +google/auth/_jwt_async.py,sha256=5mGab5CkdnBMkQkS4mtNkwFkktp1jBw6G1sYQk8bYKY,5972 +google/auth/_oauth2client.py,sha256=hPxcl_8q6Oxr0hOHPUWaWObxI85Pv-0q6kZhRUrT5oY,5855 +google/auth/_refresh_worker.py,sha256=7apJkFsD9oL1yz1K7O8v-YN3f3TdNBiJdd7_Wmq6zpE,3375 +google/auth/_service_account_info.py,sha256=KGruc_OxS7O7_EADD4JEIjjz_-5Xa1_rlgk1t0p1nvk,2816 +google/auth/aio/__init__.py,sha256=e3ToAxXNHhqJLBgW8B66650xdqrTCZDLcwP2p5DhCPM,869 +google/auth/aio/__pycache__/__init__.cpython-311.pyc,, +google/auth/aio/__pycache__/credentials.cpython-311.pyc,, +google/auth/aio/credentials.py,sha256=lXY0_SJ9c36Mzp47fN4a8JT5HfNzFQtIIwsZEwzoDR4,5273 +google/auth/aio/transport/__init__.py,sha256=8dQWHpube1IeWw02q6AvMRTM5V_2iN4y3UMLenbmUUQ,4692 +google/auth/aio/transport/__pycache__/__init__.cpython-311.pyc,, +google/auth/aio/transport/__pycache__/aiohttp.cpython-311.pyc,, +google/auth/aio/transport/__pycache__/sessions.cpython-311.pyc,, +google/auth/aio/transport/aiohttp.py,sha256=u-tFrcYh2P06P4pKY2o56e7nuN-dXPMZhi3q6Q7YDGQ,6729 +google/auth/aio/transport/sessions.py,sha256=RcRHfkeo_ppEY1o8ts8aJqw76y54I8D0P8QT7yFq4aI,10388 +google/auth/api_key.py,sha256=PeieTYceHJIFCo0zQo1EA9NEDL_Ie6S78qmD-6Ig17s,2583 +google/auth/app_engine.py,sha256=LuEaoWM1UwcIUJ6OrLza0tTpqJBXbtzZ3XjN0C-6Wvk,6121 +google/auth/aws.py,sha256=2V5NLhboorkPLLwnA87VuyH9imruake6qhyHKV_rVYM,34568 +google/auth/compute_engine/__init__.py,sha256=BqeTka-oyHFATkys3SGKRlOyWQ8mVV0vVaP2hOwV4Qw,910 +google/auth/compute_engine/__pycache__/__init__.cpython-311.pyc,, +google/auth/compute_engine/__pycache__/_metadata.cpython-311.pyc,, +google/auth/compute_engine/__pycache__/credentials.cpython-311.pyc,, +google/auth/compute_engine/_metadata.py,sha256=nmsegMDH_mLKrdNQcX75y3_szSyoeHo682Bj-uWV_o0,12686 +google/auth/compute_engine/credentials.py,sha256=CxuxQkA-df1wSiTmk9ddXRRI8f8OgiaEvl_bvOt-J3A,19025 +google/auth/credentials.py,sha256=l0g0iATMCpJnJXU5aE6YD850yBnZpshdYyDrYzhmE40,18700 +google/auth/crypt/__init__.py,sha256=xxBMOPuzD-XOxPvzkleLa2oj4u-9FSjnFmUN3PBk00s,3324 +google/auth/crypt/__pycache__/__init__.cpython-311.pyc,, +google/auth/crypt/__pycache__/_cryptography_rsa.cpython-311.pyc,, +google/auth/crypt/__pycache__/_helpers.cpython-311.pyc,, +google/auth/crypt/__pycache__/_python_rsa.cpython-311.pyc,, +google/auth/crypt/__pycache__/base.cpython-311.pyc,, +google/auth/crypt/__pycache__/es256.cpython-311.pyc,, +google/auth/crypt/__pycache__/rsa.cpython-311.pyc,, +google/auth/crypt/_cryptography_rsa.py,sha256=o2QTRkfDRLtEBiq-fbpbTWypvxaxUDwzlx2NpXG9o0w,5158 +google/auth/crypt/_helpers.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +google/auth/crypt/_python_rsa.py,sha256=L0kgvPXVdEGhajzxLRIgdk2T9rY0nlThrSlSz8Hc8XY,6123 +google/auth/crypt/base.py,sha256=3CJrnQsppR6h-WnTRqSrt1hPEQVkHcwNIVJ_B5M00hY,4190 +google/auth/crypt/es256.py,sha256=hXyeia3g6_TZf-UYdZVzFKgbPrLlgSuR1mMvYKSYqbg,6251 +google/auth/crypt/rsa.py,sha256=QI17aKQsX3gdbJkBef-zsm-X_YBjBollCaoA65Am-WI,1109 +google/auth/downscoped.py,sha256=KmmC8lbBWUFUsIYt1VpcbTXs3yYJYXteH19qdZQgobA,21793 +google/auth/environment_vars.py,sha256=ML9aFh5gwRStBDjn8BQSQHyWsA-OcMn-RB5FRMM8qOw,3297 +google/auth/exceptions.py,sha256=8oEeB_1UirJIyBoglQRpCFjCOcxcTaLr6EpBrrxjeEs,3193 +google/auth/external_account.py,sha256=v-Qln5KsbXYlO2xPlIxeGMBY5iA4Atj2cP-KgbF2CpY,25977 +google/auth/external_account_authorized_user.py,sha256=-garTidaTqA8XNOPdBxJl6tfx-ub_-dr7WPVKEI2eAs,13987 +google/auth/iam.py,sha256=DQcJ127yejPqQa20jwzrGfiWffiWioAYkxZI4cQAUm8,4674 +google/auth/identity_pool.py,sha256=zroaND7aE1nMNs53Pf-84OpybRmG2MT4nLAfPQtz_t8,18734 +google/auth/impersonated_credentials.py,sha256=Jiet31lLn5hqZv2uw114dF-e1lwH_v506E7QCaHwTgM,21900 +google/auth/jwt.py,sha256=1m_arp5x-4I5UTDaK9y50PSlKnUhnSKFyJW95k3-7cQ,31096 +google/auth/metrics.py,sha256=wx3m95QQCF885wYvPL4T01CHOdCBN5JvFCtbOakd98Q,5614 +google/auth/pluggable.py,sha256=peGQ4izmkZ3Fna7fjhBhQVXjtDBcHK12uEAteMyJ8s0,17322 +google/auth/py.typed,sha256=l05_LTgi3oy-einKBrw66s6aavgzG2o-SekKPOY3ayM,74 +google/auth/transport/__init__.py,sha256=Bc9Tx4qozvP1g1USD8pvk7NEVE6hgXrpO-FH2WQFkkU,3621 +google/auth/transport/__pycache__/__init__.cpython-311.pyc,, +google/auth/transport/__pycache__/_aiohttp_requests.cpython-311.pyc,, +google/auth/transport/__pycache__/_custom_tls_signer.cpython-311.pyc,, +google/auth/transport/__pycache__/_http_client.cpython-311.pyc,, +google/auth/transport/__pycache__/_mtls_helper.cpython-311.pyc,, +google/auth/transport/__pycache__/_requests_base.cpython-311.pyc,, +google/auth/transport/__pycache__/grpc.cpython-311.pyc,, +google/auth/transport/__pycache__/mtls.cpython-311.pyc,, +google/auth/transport/__pycache__/requests.cpython-311.pyc,, +google/auth/transport/__pycache__/urllib3.cpython-311.pyc,, +google/auth/transport/_aiohttp_requests.py,sha256=nPi885vxrNoXi5h9Mw3nHj5jYUH8aZ_9QQN0V4dDLAY,14609 +google/auth/transport/_custom_tls_signer.py,sha256=ilLlKFNognkvOWcnlYAWmUIUo9YhSrTSAKLa05zQ8Do,9989 +google/auth/transport/_http_client.py,sha256=j7Amhmg-ipWztX3W5zOs2kJUFFuGCs0PhI7ZMAvle50,3706 +google/auth/transport/_mtls_helper.py,sha256=rhJ-QDEWeoiLGguwtMjruy6ObR89oqwtZ382sW1g3uM,14739 +google/auth/transport/_requests_base.py,sha256=4y0tTMR_hPGeAmBSyCU6_moh99ZxJZ4CF79E2s-t7TA,1657 +google/auth/transport/grpc.py,sha256=o6wDBMWKlTybwsE8CUdEcoEA2t_vdjRvQTGU9vcJPcc,13931 +google/auth/transport/mtls.py,sha256=C1Ox7fB0DSEdNkIJ7q5ofrQ-_I_cj1JOJ8o5_Zzgb24,3968 +google/auth/transport/requests.py,sha256=Bd-K1jvqkseiob-iho2CtYWYVj3ZbmXU8b0VHWA2aJ0,22351 +google/auth/transport/urllib3.py,sha256=cQITCEXvu375iIP749bG5p96Sf2EVBsq63EbKRYkhTA,16049 +google/auth/version.py,sha256=bLKSlZBveRs2P3ZXlbHinmywhxK6d-gRl3FcW8l_eZE,598 +google/oauth2/__init__.py,sha256=IdFKxhIzlqNIalPgeB2P5hP6KkoxcpNk61hp7P2B85w,1196 +google/oauth2/__pycache__/__init__.cpython-311.pyc,, +google/oauth2/__pycache__/_client.cpython-311.pyc,, +google/oauth2/__pycache__/_client_async.cpython-311.pyc,, +google/oauth2/__pycache__/_credentials_async.cpython-311.pyc,, +google/oauth2/__pycache__/_id_token_async.cpython-311.pyc,, +google/oauth2/__pycache__/_reauth_async.cpython-311.pyc,, +google/oauth2/__pycache__/_service_account_async.cpython-311.pyc,, +google/oauth2/__pycache__/challenges.cpython-311.pyc,, +google/oauth2/__pycache__/credentials.cpython-311.pyc,, +google/oauth2/__pycache__/gdch_credentials.cpython-311.pyc,, +google/oauth2/__pycache__/id_token.cpython-311.pyc,, +google/oauth2/__pycache__/reauth.cpython-311.pyc,, +google/oauth2/__pycache__/service_account.cpython-311.pyc,, +google/oauth2/__pycache__/sts.cpython-311.pyc,, +google/oauth2/__pycache__/utils.cpython-311.pyc,, +google/oauth2/__pycache__/webauthn_handler.cpython-311.pyc,, +google/oauth2/__pycache__/webauthn_handler_factory.cpython-311.pyc,, +google/oauth2/__pycache__/webauthn_types.cpython-311.pyc,, +google/oauth2/_client.py,sha256=XOtqZf3J9U5zW9x5v6zPSKeF_YlRNdYlqfzOZPepxdc,17338 +google/oauth2/_client_async.py,sha256=gBB74HOw_UVT6i-84T4N_39YnyajYwP5Ih1Kmtsjeu8,10129 +google/oauth2/_credentials_async.py,sha256=hUrucQkcYuYlyCdHMci8tzaVncnjQlFc2sAfNu5Dt8k,4474 +google/oauth2/_id_token_async.py,sha256=o_DViJoWMGlL3zwTbW2unGDBfY569D_VMB4l7bx-Qpw,10115 +google/oauth2/_reauth_async.py,sha256=C6k3f4T0aoVWItl8shYjOl5ngaoTJw3zKVhqHAeBXU0,11696 +google/oauth2/_service_account_async.py,sha256=5-HBGWoHhbWpCRbd34YiopQepEsEf8gSiuMlSm5hN84,5131 +google/oauth2/challenges.py,sha256=__yS2EcWXlgdLLP4inbk0QjJuyXnztpT9r2DCuXvieI,10404 +google/oauth2/credentials.py,sha256=AqPdW8ymp1EnmiTgwyLdRxjaj2kISjHPw4Yh0JZUleI,24913 +google/oauth2/gdch_credentials.py,sha256=CY6iPnPuc2OCIe1Zujwg1Mu9QSl1iGJqGOy6TkUleHw,9007 +google/oauth2/id_token.py,sha256=tuSXv7rLo6Fqw33_fXud8xiX66K6zM0ox091BsfwcTI,12933 +google/oauth2/py.typed,sha256=I0muXRRdbdpJoZ_VyheisiTTYcmjTAitQpNvuuh6fMw,76 +google/oauth2/reauth.py,sha256=p9ybxvFyaSMM85jL2veKMM-DVb4TtrDVPNqsLeDPmyk,12845 +google/oauth2/service_account.py,sha256=PyKtS9QfflVfIgdyRju1I1VFr8V3A57IGzxUSAYGmgA,32232 +google/oauth2/sts.py,sha256=GjpFEvByl3EzyGt2v1kev6rvP7_uSQ3eTlpBK9vUhSc,6699 +google/oauth2/utils.py,sha256=4crAdpKbDtobpQfXJc3uF6Zm6F3IzffvRSo-9h_515w,6315 +google/oauth2/webauthn_handler.py,sha256=6hYiSDIFXlLwghsYf13ceDiOWdLYn6Dh7-YwSqTbLaA,2743 +google/oauth2/webauthn_handler_factory.py,sha256=soE5cokZ3pLNbBo1HC6F1N-N-I-ir-DGlD0trGPCpBs,429 +google/oauth2/webauthn_types.py,sha256=kaDu4Gouk07CEkP08PZ26XAeVHyGP-SGWbDGnH1l2IE,5386 +google_auth-2.38.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +google_auth-2.38.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357 +google_auth-2.38.0.dist-info/METADATA,sha256=7R3Ery802jdDQ0WO_3fmiuQiZBXhMlp4Vllq6JPYnTg,4775 +google_auth-2.38.0.dist-info/RECORD,, +google_auth-2.38.0.dist-info/WHEEL,sha256=OpXWERl2xLPRHTvd2ZXo_iluPEQd8uSbYkJ53NAER_Y,109 +google_auth-2.38.0.dist-info/top_level.txt,sha256=BWmDiI8eoKfseZ5-MI2AW66GLJLNH4Lz23AXXTrIlyQ,23 diff --git a/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..ee810efb31c37815a70827942976bfcba5b5d2bc --- /dev/null +++ b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.3.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..64f26a32e6269f22ba603fede491e460b08a91d8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/google_auth-2.38.0.dist-info/top_level.txt @@ -0,0 +1,3 @@ +google +scripts +testing diff --git a/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/LICENSE.txt b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..8f080eae848f759c9173bfc0c79506357ebe5090 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/LICENSE.txt @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 Nathaniel J. Smith and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/METADATA b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..cf12a82f193d8a69b9bc7aaa134cdbb8aa5bd938 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/METADATA @@ -0,0 +1,193 @@ +Metadata-Version: 2.1 +Name: h11 +Version: 0.14.0 +Summary: A pure-Python, bring-your-own-I/O implementation of HTTP/1.1 +Home-page: https://github.com/python-hyper/h11 +Author: Nathaniel J. Smith +Author-email: njs@pobox.com +License: MIT +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: System :: Networking +Requires-Python: >=3.7 +License-File: LICENSE.txt +Requires-Dist: typing-extensions ; python_version < "3.8" + +h11 +=== + +.. image:: https://travis-ci.org/python-hyper/h11.svg?branch=master + :target: https://travis-ci.org/python-hyper/h11 + :alt: Automated test status + +.. image:: https://codecov.io/gh/python-hyper/h11/branch/master/graph/badge.svg + :target: https://codecov.io/gh/python-hyper/h11 + :alt: Test coverage + +.. image:: https://readthedocs.org/projects/h11/badge/?version=latest + :target: http://h11.readthedocs.io/en/latest/?badge=latest + :alt: Documentation Status + +This is a little HTTP/1.1 library written from scratch in Python, +heavily inspired by `hyper-h2 `_. + +It's a "bring-your-own-I/O" library; h11 contains no IO code +whatsoever. This means you can hook h11 up to your favorite network +API, and that could be anything you want: synchronous, threaded, +asynchronous, or your own implementation of `RFC 6214 +`_ -- h11 won't judge you. +(Compare this to the current state of the art, where every time a `new +network API `_ comes along then someone +gets to start over reimplementing the entire HTTP protocol from +scratch.) Cory Benfield made an `excellent blog post describing the +benefits of this approach +`_, or if you like video +then here's his `PyCon 2016 talk on the same theme +`_. + +This also means that h11 is not immediately useful out of the box: +it's a toolkit for building programs that speak HTTP, not something +that could directly replace ``requests`` or ``twisted.web`` or +whatever. But h11 makes it much easier to implement something like +``requests`` or ``twisted.web``. + +At a high level, working with h11 goes like this: + +1) First, create an ``h11.Connection`` object to track the state of a + single HTTP/1.1 connection. + +2) When you read data off the network, pass it to + ``conn.receive_data(...)``; you'll get back a list of objects + representing high-level HTTP "events". + +3) When you want to send a high-level HTTP event, create the + corresponding "event" object and pass it to ``conn.send(...)``; + this will give you back some bytes that you can then push out + through the network. + +For example, a client might instantiate and then send a +``h11.Request`` object, then zero or more ``h11.Data`` objects for the +request body (e.g., if this is a POST), and then a +``h11.EndOfMessage`` to indicate the end of the message. Then the +server would then send back a ``h11.Response``, some ``h11.Data``, and +its own ``h11.EndOfMessage``. If either side violates the protocol, +you'll get a ``h11.ProtocolError`` exception. + +h11 is suitable for implementing both servers and clients, and has a +pleasantly symmetric API: the events you send as a client are exactly +the ones that you receive as a server and vice-versa. + +`Here's an example of a tiny HTTP client +`_ + +It also has `a fine manual `_. + +FAQ +--- + +*Whyyyyy?* + +I wanted to play with HTTP in `Curio +`__ and `Trio +`__, which at the time didn't have any +HTTP libraries. So I thought, no big deal, Python has, like, a dozen +different implementations of HTTP, surely I can find one that's +reusable. I didn't find one, but I did find Cory's call-to-arms +blog-post. So I figured, well, fine, if I have to implement HTTP from +scratch, at least I can make sure no-one *else* has to ever again. + +*Should I use it?* + +Maybe. You should be aware that it's a very young project. But, it's +feature complete and has an exhaustive test-suite and complete docs, +so the next step is for people to try using it and see how it goes +:-). If you do then please let us know -- if nothing else we'll want +to talk to you before making any incompatible changes! + +*What are the features/limitations?* + +Roughly speaking, it's trying to be a robust, complete, and non-hacky +implementation of the first "chapter" of the HTTP/1.1 spec: `RFC 7230: +HTTP/1.1 Message Syntax and Routing +`_. That is, it mostly focuses on +implementing HTTP at the level of taking bytes on and off the wire, +and the headers related to that, and tries to be anal about spec +conformance. It doesn't know about higher-level concerns like URL +routing, conditional GETs, cross-origin cookie policies, or content +negotiation. But it does know how to take care of framing, +cross-version differences in keep-alive handling, and the "obsolete +line folding" rule, so you can focus your energies on the hard / +interesting parts for your application, and it tries to support the +full specification in the sense that any useful HTTP/1.1 conformant +application should be able to use h11. + +It's pure Python, and has no dependencies outside of the standard +library. + +It has a test suite with 100.0% coverage for both statements and +branches. + +Currently it supports Python 3 (testing on 3.7-3.10) and PyPy 3. +The last Python 2-compatible version was h11 0.11.x. +(Originally it had a Cython wrapper for `http-parser +`_ and a beautiful nested state +machine implemented with ``yield from`` to postprocess the output. But +I had to take these out -- the new *parser* needs fewer lines-of-code +than the old *parser wrapper*, is written in pure Python, uses no +exotic language syntax, and has more features. It's sad, really; that +old state machine was really slick. I just need a few sentences here +to mourn that.) + +I don't know how fast it is. I haven't benchmarked or profiled it yet, +so it's probably got a few pointless hot spots, and I've been trying +to err on the side of simplicity and robustness instead of +micro-optimization. But at the architectural level I tried hard to +avoid fundamentally bad decisions, e.g., I believe that all the +parsing algorithms remain linear-time even in the face of pathological +input like slowloris, and there are no byte-by-byte loops. (I also +believe that it maintains bounded memory usage in the face of +arbitrary/pathological input.) + +The whole library is ~800 lines-of-code. You can read and understand +the whole thing in less than an hour. Most of the energy invested in +this so far has been spent on trying to keep things simple by +minimizing special-cases and ad hoc state manipulation; even though it +is now quite small and simple, I'm still annoyed that I haven't +figured out how to make it even smaller and simpler. (Unfortunately, +HTTP does not lend itself to simplicity.) + +The API is ~feature complete and I don't expect the general outlines +to change much, but you can't judge an API's ergonomics until you +actually document and use it, so I'd expect some changes in the +details. + +*How do I try it?* + +.. code-block:: sh + + $ pip install h11 + $ git clone git@github.com:python-hyper/h11 + $ cd h11/examples + $ python basic-client.py + +and go from there. + +*License?* + +MIT + +*Code of conduct?* + +Contributors are requested to follow our `code of conduct +`_ in +all project spaces. diff --git a/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/RECORD b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..a055008111c6c3471f71e83f647504177eeb528b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/RECORD @@ -0,0 +1,52 @@ +h11-0.14.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +h11-0.14.0.dist-info/LICENSE.txt,sha256=N9tbuFkm2yikJ6JYZ_ELEjIAOuob5pzLhRE4rbjm82E,1124 +h11-0.14.0.dist-info/METADATA,sha256=B7pZ0m7WBXNs17vl6hUH9bJTL9s37DaGvY31w7jNxSg,8175 +h11-0.14.0.dist-info/RECORD,, +h11-0.14.0.dist-info/WHEEL,sha256=ewwEueio1C2XeHTvT17n8dZUJgOvyCWCt0WVNLClP9o,92 +h11-0.14.0.dist-info/top_level.txt,sha256=F7dC4jl3zeh8TGHEPaWJrMbeuoWbS379Gwdi-Yvdcis,4 +h11/__init__.py,sha256=iO1KzkSO42yZ6ffg-VMgbx_ZVTWGUY00nRYEWn-s3kY,1507 +h11/__pycache__/__init__.cpython-311.pyc,, +h11/__pycache__/_abnf.cpython-311.pyc,, +h11/__pycache__/_connection.cpython-311.pyc,, +h11/__pycache__/_events.cpython-311.pyc,, +h11/__pycache__/_headers.cpython-311.pyc,, +h11/__pycache__/_readers.cpython-311.pyc,, +h11/__pycache__/_receivebuffer.cpython-311.pyc,, +h11/__pycache__/_state.cpython-311.pyc,, +h11/__pycache__/_util.cpython-311.pyc,, +h11/__pycache__/_version.cpython-311.pyc,, +h11/__pycache__/_writers.cpython-311.pyc,, +h11/_abnf.py,sha256=ybixr0xsupnkA6GFAyMubuXF6Tc1lb_hF890NgCsfNc,4815 +h11/_connection.py,sha256=eS2sorMD0zKLCFiB9lW9W9F_Nzny2tjHa4e6s1ujr1c,26539 +h11/_events.py,sha256=LEfuvg1AbhHaVRwxCd0I-pFn9-ezUOaoL8o2Kvy1PBA,11816 +h11/_headers.py,sha256=RqB8cd8CN0blYPzcLe5qeCh-phv6D1U_CHj4hs67lgQ,10230 +h11/_readers.py,sha256=EbSed0jzwVUiD1nOPAeUcVE4Flf3wXkxfb8c06-OTBM,8383 +h11/_receivebuffer.py,sha256=xrspsdsNgWFxRfQcTXxR8RrdjRXXTK0Io5cQYWpJ1Ws,5252 +h11/_state.py,sha256=k1VL6SDbaPkSrZ-49ewCXDpuiUS69_46YhbWjuV1qEY,13300 +h11/_util.py,sha256=LWkkjXyJaFlAy6Lt39w73UStklFT5ovcvo0TkY7RYuk,4888 +h11/_version.py,sha256=LVyTdiZRzIIEv79UyOgbM5iUrJUllEzlCWaJEYBY1zc,686 +h11/_writers.py,sha256=oFKm6PtjeHfbj4RLX7VB7KDc1gIY53gXG3_HR9ltmTA,5081 +h11/py.typed,sha256=sow9soTwP9T_gEAQSVh7Gb8855h04Nwmhs2We-JRgZM,7 +h11/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +h11/tests/__pycache__/__init__.cpython-311.pyc,, +h11/tests/__pycache__/helpers.cpython-311.pyc,, +h11/tests/__pycache__/test_against_stdlib_http.cpython-311.pyc,, +h11/tests/__pycache__/test_connection.cpython-311.pyc,, +h11/tests/__pycache__/test_events.cpython-311.pyc,, +h11/tests/__pycache__/test_headers.cpython-311.pyc,, +h11/tests/__pycache__/test_helpers.cpython-311.pyc,, +h11/tests/__pycache__/test_io.cpython-311.pyc,, +h11/tests/__pycache__/test_receivebuffer.cpython-311.pyc,, +h11/tests/__pycache__/test_state.cpython-311.pyc,, +h11/tests/__pycache__/test_util.cpython-311.pyc,, +h11/tests/data/test-file,sha256=ZJ03Rqs98oJw29OHzJg7LlMzyGQaRAY0r3AqBeM2wVU,65 +h11/tests/helpers.py,sha256=a1EVG_p7xU4wRsa3tMPTRxuaKCmretok9sxXWvqfmQA,3355 +h11/tests/test_against_stdlib_http.py,sha256=cojCHgHXFQ8gWhNlEEwl3trmOpN-5uDukRoHnElqo3A,3995 +h11/tests/test_connection.py,sha256=ZbPLDPclKvjgjAhgk-WlCPBaf17c4XUIV2tpaW08jOI,38720 +h11/tests/test_events.py,sha256=LPVLbcV-NvPNK9fW3rraR6Bdpz1hAlsWubMtNaJ5gHg,4657 +h11/tests/test_headers.py,sha256=qd8T1Zenuz5GbD6wklSJ5G8VS7trrYgMV0jT-SMvqg8,5612 +h11/tests/test_helpers.py,sha256=kAo0CEM4LGqmyyP2ZFmhsyq3UFJqoFfAbzu3hbWreRM,794 +h11/tests/test_io.py,sha256=uCZVnjarkRBkudfC1ij-KSCQ71XWJhnkgkgWWkKgYPQ,16386 +h11/tests/test_receivebuffer.py,sha256=3jGbeJM36Akqg_pAhPb7XzIn2NS6RhPg-Ryg8Eu6ytk,3454 +h11/tests/test_state.py,sha256=rqll9WqFsJPE0zSrtCn9LH659mPKsDeXZ-DwXwleuBQ,8928 +h11/tests/test_util.py,sha256=VO5L4nSFe4pgtSwKuv6u_6l0H7UeizF5WKuHTWreg70,2970 diff --git a/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..5bad85fdc1cd08553756d0fb2c7be8b5ad6af7fb --- /dev/null +++ b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.37.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..0d24def711344ec6f4da2108f7d5c9261eb35f8b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/h11-0.14.0.dist-info/top_level.txt @@ -0,0 +1 @@ +h11 diff --git a/.venv/lib/python3.11/site-packages/msgspec/__init__.py b/.venv/lib/python3.11/site-packages/msgspec/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..421e43116b029c841ca03d19c7575f7692ca38d0 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/__init__.py @@ -0,0 +1,35 @@ +from ._core import ( + DecodeError, + EncodeError, + Field as _Field, + Meta, + MsgspecError, + Raw, + Struct, + UnsetType, + UNSET, + NODEFAULT, + ValidationError, + defstruct, + convert, + to_builtins, +) + + +def field(*, default=NODEFAULT, default_factory=NODEFAULT, name=None): + return _Field(default=default, default_factory=default_factory, name=name) + + +field.__doc__ = _Field.__doc__ + + +from . import msgpack +from . import json +from . import yaml +from . import toml +from . import inspect +from . import structs +from ._version import get_versions + +__version__ = get_versions()["version"] +del get_versions diff --git a/.venv/lib/python3.11/site-packages/msgspec/__init__.pyi b/.venv/lib/python3.11/site-packages/msgspec/__init__.pyi new file mode 100644 index 0000000000000000000000000000000000000000..4d2d8744e9f5fd64130370f1f27021c6eba74113 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/__init__.pyi @@ -0,0 +1,185 @@ +import enum +from typing import ( + Any, + Callable, + ClassVar, + Dict, + Final, + Iterable, + Literal, + Mapping, + Optional, + Tuple, + Type, + TypeVar, + Union, + overload, +) + +from typing_extensions import dataclass_transform, Buffer + +from . import inspect, json, msgpack, structs, toml, yaml + +T = TypeVar("T") + +class UnsetType(enum.Enum): + UNSET = "UNSET" + +UNSET = UnsetType.UNSET + +class _NoDefault(enum.Enum): + NODEFAULT = "NODEFAULT" + +NODEFAULT = _NoDefault.NODEFAULT + +@overload +def field(*, default: T, name: Optional[str] = None) -> T: ... +@overload +def field(*, default_factory: Callable[[], T], name: Optional[str] = None) -> T: ... +@overload +def field(*, name: Optional[str] = None) -> Any: ... +@dataclass_transform(field_specifiers=(field,)) +class Struct: + __struct_fields__: ClassVar[Tuple[str, ...]] + __struct_config__: ClassVar[structs.StructConfig] + __match_args__: ClassVar[Tuple[str, ...]] + # A default __init__ so that Structs with unknown field types (say + # constructed by `defstruct`) won't error on every call to `__init__` + def __init__(self, *args: Any, **kwargs: Any) -> None: ... + def __init_subclass__( + cls, + tag: Union[None, bool, str, int, Callable[[str], Union[str, int]]] = None, + tag_field: Union[None, str] = None, + rename: Union[ + None, + Literal["lower", "upper", "camel", "pascal", "kebab"], + Callable[[str], Optional[str]], + Mapping[str, str], + ] = None, + omit_defaults: bool = False, + forbid_unknown_fields: bool = False, + frozen: bool = False, + eq: bool = True, + order: bool = False, + kw_only: bool = False, + repr_omit_defaults: bool = False, + array_like: bool = False, + gc: bool = True, + weakref: bool = False, + dict: bool = False, + cache_hash: bool = False, + ) -> None: ... + def __rich_repr__( + self, + ) -> Iterable[Union[Any, Tuple[Any], Tuple[str, Any], Tuple[str, Any, Any]]]: ... + +def defstruct( + name: str, + fields: Iterable[Union[str, Tuple[str, type], Tuple[str, type, Any]]], + *, + bases: Optional[Tuple[Type[Struct], ...]] = None, + module: Optional[str] = None, + namespace: Optional[Dict[str, Any]] = None, + tag: Union[None, bool, str, int, Callable[[str], Union[str, int]]] = None, + tag_field: Union[None, str] = None, + rename: Union[ + None, + Literal["lower", "upper", "camel", "pascal", "kebab"], + Callable[[str], Optional[str]], + Mapping[str, str], + ] = None, + omit_defaults: bool = False, + forbid_unknown_fields: bool = False, + frozen: bool = False, + eq: bool = True, + order: bool = False, + kw_only: bool = False, + repr_omit_defaults: bool = False, + array_like: bool = False, + gc: bool = True, + weakref: bool = False, + dict: bool = False, + cache_hash: bool = False, +) -> Type[Struct]: ... + +# Lie and say `Raw` is a subclass of `bytes`, so mypy will accept it in most +# places where an object that implements the buffer protocol is valid +class Raw(bytes): + @overload + def __new__(cls) -> "Raw": ... + @overload + def __new__(cls, msg: Union[Buffer, str]) -> "Raw": ... + def copy(self) -> "Raw": ... + +class Meta: + def __init__( + self, + *, + gt: Union[int, float, None] = None, + ge: Union[int, float, None] = None, + lt: Union[int, float, None] = None, + le: Union[int, float, None] = None, + multiple_of: Union[int, float, None] = None, + pattern: Union[str, None] = None, + min_length: Union[int, None] = None, + max_length: Union[int, None] = None, + tz: Union[bool, None] = None, + title: Union[str, None] = None, + description: Union[str, None] = None, + examples: Union[list, None] = None, + extra_json_schema: Union[dict, None] = None, + extra: Union[dict, None] = None, + ): ... + gt: Final[Union[int, float, None]] + ge: Final[Union[int, float, None]] + lt: Final[Union[int, float, None]] + le: Final[Union[int, float, None]] + multiple_of: Final[Union[int, float, None]] + pattern: Final[Union[str, None]] + min_length: Final[Union[int, None]] + max_length: Final[Union[int, None]] + tz: Final[Union[int, None]] + title: Final[Union[str, None]] + description: Final[Union[str, None]] + examples: Final[Union[list, None]] + extra_json_schema: Final[Union[dict, None]] + extra: Final[Union[dict, None]] + def __rich_repr__(self) -> Iterable[Tuple[str, Any]]: ... + +def to_builtins( + obj: Any, + *, + str_keys: bool = False, + builtin_types: Union[Iterable[type], None] = None, + enc_hook: Optional[Callable[[Any], Any]] = None, + order: Literal[None, "deterministic", "sorted"] = None, +) -> Any: ... +@overload +def convert( + obj: Any, + type: Type[T], + *, + strict: bool = True, + from_attributes: bool = False, + dec_hook: Optional[Callable[[type, Any], Any]] = None, + builtin_types: Union[Iterable[type], None] = None, + str_keys: bool = False, +) -> T: ... +@overload +def convert( + obj: Any, + type: Any, + *, + strict: bool = True, + from_attributes: bool = False, + dec_hook: Optional[Callable[[type, Any], Any]] = None, + builtin_types: Union[Iterable[type], None] = None, + str_keys: bool = False, +) -> Any: ... + +class MsgspecError(Exception): ... +class EncodeError(MsgspecError): ... +class DecodeError(MsgspecError): ... +class ValidationError(DecodeError): ... + +__version__: str diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/__init__.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4d75e04f652e1366f525a9e07f0cc64786cab844 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/__init__.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_json_schema.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_json_schema.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fcb0e2a6b33123d695a02ab795420cf9037dd905 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_json_schema.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_utils.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_utils.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b27f4734b4cdc07f5586b5955aa2ea8da9f2bf66 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_utils.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_version.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_version.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..de0384af126de5163860e454e205b0a921bf74f4 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/_version.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/inspect.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/inspect.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f4f2be564b72a7f3a41247fa4752aa7cf0398920 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/inspect.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/json.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/json.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81d64d30d0163634179b48e2282b00939c556d2a Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/json.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/msgpack.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/msgpack.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2e67ec1363a9e71b8825cf386808b49cdf45733 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/msgpack.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/structs.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/structs.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..17fe2570db5981762b00bdc7a2fafec3c9a03052 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/structs.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/toml.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/toml.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e7695ad717ab454f82a7eb7a89b975db44e35aa Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/toml.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/__pycache__/yaml.cpython-311.pyc b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/yaml.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e32f06ede9b9182bd0c43d81773bb503306afee1 Binary files /dev/null and b/.venv/lib/python3.11/site-packages/msgspec/__pycache__/yaml.cpython-311.pyc differ diff --git a/.venv/lib/python3.11/site-packages/msgspec/_json_schema.py b/.venv/lib/python3.11/site-packages/msgspec/_json_schema.py new file mode 100644 index 0000000000000000000000000000000000000000..be506e3fc826506fd99ff5d3e252fe5676417b05 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/_json_schema.py @@ -0,0 +1,439 @@ +from __future__ import annotations + +import re +import textwrap +from collections.abc import Iterable +from typing import Any, Optional, Callable + +from . import inspect as mi, to_builtins + +__all__ = ("schema", "schema_components") + + +def schema( + type: Any, *, schema_hook: Optional[Callable[[type], dict[str, Any]]] = None +) -> dict[str, Any]: + """Generate a JSON Schema for a given type. + + Any schemas for (potentially) shared components are extracted and stored in + a top-level ``"$defs"`` field. + + If you want to generate schemas for multiple types, or to have more control + over the generated schema you may want to use ``schema_components`` instead. + + Parameters + ---------- + type : type + The type to generate the schema for. + schema_hook : callable, optional + An optional callback to use for generating JSON schemas of custom + types. Will be called with the custom type, and should return a dict + representation of the JSON schema for that type. + + Returns + ------- + schema : dict + The generated JSON Schema. + + See Also + -------- + schema_components + """ + (out,), components = schema_components((type,), schema_hook=schema_hook) + if components: + out["$defs"] = components + return out + + +def schema_components( + types: Iterable[Any], + *, + schema_hook: Optional[Callable[[type], dict[str, Any]]] = None, + ref_template: str = "#/$defs/{name}", +) -> tuple[tuple[dict[str, Any], ...], dict[str, Any]]: + """Generate JSON Schemas for one or more types. + + Any schemas for (potentially) shared components are extracted and returned + in a separate ``components`` dict. + + Parameters + ---------- + types : Iterable[type] + An iterable of one or more types to generate schemas for. + schema_hook : callable, optional + An optional callback to use for generating JSON schemas of custom + types. Will be called with the custom type, and should return a dict + representation of the JSON schema for that type. + ref_template : str, optional + A template to use when generating ``"$ref"`` fields. This template is + formatted with the type name as ``template.format(name=name)``. This + can be useful if you intend to store the ``components`` mapping + somewhere other than a top-level ``"$defs"`` field. For example, you + might use ``ref_template="#/components/{name}"`` if generating an + OpenAPI schema. + + Returns + ------- + schemas : tuple[dict] + A tuple of JSON Schemas, one for each type in ``types``. + components : dict + A mapping of name to schema for any shared components used by + ``schemas``. + + See Also + -------- + schema + """ + type_infos = mi.multi_type_info(types) + + component_types = _collect_component_types(type_infos) + + name_map = _build_name_map(component_types) + + gen = _SchemaGenerator(name_map, schema_hook, ref_template) + + schemas = tuple(gen.to_schema(t) for t in type_infos) + + components = { + name_map[cls]: gen.to_schema(t, False) for cls, t in component_types.items() + } + return schemas, components + + +def _collect_component_types(type_infos: Iterable[mi.Type]) -> dict[Any, mi.Type]: + """Find all types in the type tree that are "nameable" and worthy of being + extracted out into a shared top-level components mapping. + + Currently this looks for Struct, Dataclass, NamedTuple, TypedDict, and Enum + types. + """ + components = {} + + def collect(t): + if isinstance( + t, (mi.StructType, mi.TypedDictType, mi.DataclassType, mi.NamedTupleType) + ): + if t.cls not in components: + components[t.cls] = t + for f in t.fields: + collect(f.type) + elif isinstance(t, mi.EnumType): + components[t.cls] = t + elif isinstance(t, mi.Metadata): + collect(t.type) + elif isinstance(t, mi.CollectionType): + collect(t.item_type) + elif isinstance(t, mi.TupleType): + for st in t.item_types: + collect(st) + elif isinstance(t, mi.DictType): + collect(t.key_type) + collect(t.value_type) + elif isinstance(t, mi.UnionType): + for st in t.types: + collect(st) + + for t in type_infos: + collect(t) + + return components + + +def _type_repr(obj): + return obj.__name__ if isinstance(obj, type) else repr(obj) + + +def _get_class_name(cls: Any) -> str: + if hasattr(cls, "__origin__"): + name = cls.__origin__.__name__ + args = ", ".join(_type_repr(a) for a in cls.__args__) + return f"{name}[{args}]" + return cls.__name__ + + +def _get_doc(t: mi.Type) -> str: + assert hasattr(t, "cls") + cls = getattr(t.cls, "__origin__", t.cls) + doc = getattr(cls, "__doc__", "") + if not doc: + return "" + doc = textwrap.dedent(doc).strip("\r\n") + if isinstance(t, mi.EnumType): + if doc == "An enumeration.": + return "" + elif isinstance(t, (mi.NamedTupleType, mi.DataclassType)): + if doc.startswith(f"{cls.__name__}(") and doc.endswith(")"): + return "" + return doc + + +def _build_name_map(component_types: dict[Any, mi.Type]) -> dict[Any, str]: + """A mapping from nameable subcomponents to a generated name. + + The generated name is usually a normalized version of the class name. In + the case of conflicts, the name will be expanded to also include the full + import path. + """ + + def normalize(name): + return re.sub(r"[^a-zA-Z0-9.\-_]", "_", name) + + def fullname(cls): + return normalize(f"{cls.__module__}.{cls.__qualname__}") + + conflicts = set() + names: dict[str, Any] = {} + + for cls in component_types: + name = normalize(_get_class_name(cls)) + if name in names: + old = names.pop(name) + conflicts.add(name) + names[fullname(old)] = old + if name in conflicts: + names[fullname(cls)] = cls + else: + names[name] = cls + return {v: k for k, v in names.items()} + + +class _SchemaGenerator: + def __init__( + self, + name_map: dict[Any, str], + schema_hook: Optional[Callable[[type], dict[str, Any]]] = None, + ref_template: str = "#/$defs/{name}", + ): + self.name_map = name_map + self.schema_hook = schema_hook + self.ref_template = ref_template + + def to_schema(self, t: mi.Type, check_ref: bool = True) -> dict[str, Any]: + """Converts a Type to a json-schema.""" + schema: dict[str, Any] = {} + + while isinstance(t, mi.Metadata): + schema = mi._merge_json(schema, t.extra_json_schema) + t = t.type + + if check_ref and hasattr(t, "cls"): + if name := self.name_map.get(t.cls): + schema["$ref"] = self.ref_template.format(name=name) + return schema + + if isinstance(t, (mi.AnyType, mi.RawType)): + pass + elif isinstance(t, mi.NoneType): + schema["type"] = "null" + elif isinstance(t, mi.BoolType): + schema["type"] = "boolean" + elif isinstance(t, (mi.IntType, mi.FloatType)): + schema["type"] = "integer" if isinstance(t, mi.IntType) else "number" + if t.ge is not None: + schema["minimum"] = t.ge + if t.gt is not None: + schema["exclusiveMinimum"] = t.gt + if t.le is not None: + schema["maximum"] = t.le + if t.lt is not None: + schema["exclusiveMaximum"] = t.lt + if t.multiple_of is not None: + schema["multipleOf"] = t.multiple_of + elif isinstance(t, mi.StrType): + schema["type"] = "string" + if t.max_length is not None: + schema["maxLength"] = t.max_length + if t.min_length is not None: + schema["minLength"] = t.min_length + if t.pattern is not None: + schema["pattern"] = t.pattern + elif isinstance(t, (mi.BytesType, mi.ByteArrayType, mi.MemoryViewType)): + schema["type"] = "string" + schema["contentEncoding"] = "base64" + if t.max_length is not None: + schema["maxLength"] = 4 * ((t.max_length + 2) // 3) + if t.min_length is not None: + schema["minLength"] = 4 * ((t.min_length + 2) // 3) + elif isinstance(t, mi.DateTimeType): + schema["type"] = "string" + if t.tz is True: + schema["format"] = "date-time" + elif isinstance(t, mi.TimeType): + schema["type"] = "string" + if t.tz is True: + schema["format"] = "time" + elif t.tz is False: + schema["format"] = "partial-time" + elif isinstance(t, mi.DateType): + schema["type"] = "string" + schema["format"] = "date" + elif isinstance(t, mi.TimeDeltaType): + schema["type"] = "string" + schema["format"] = "duration" + elif isinstance(t, mi.UUIDType): + schema["type"] = "string" + schema["format"] = "uuid" + elif isinstance(t, mi.DecimalType): + schema["type"] = "string" + schema["format"] = "decimal" + elif isinstance(t, mi.CollectionType): + schema["type"] = "array" + if not isinstance(t.item_type, mi.AnyType): + schema["items"] = self.to_schema(t.item_type) + if t.max_length is not None: + schema["maxItems"] = t.max_length + if t.min_length is not None: + schema["minItems"] = t.min_length + elif isinstance(t, mi.TupleType): + schema["type"] = "array" + schema["minItems"] = schema["maxItems"] = len(t.item_types) + if t.item_types: + schema["prefixItems"] = [self.to_schema(i) for i in t.item_types] + schema["items"] = False + elif isinstance(t, mi.DictType): + schema["type"] = "object" + # If there are restrictions on the keys, specify them as propertyNames + if isinstance(key_type := t.key_type, mi.StrType): + property_names: dict[str, Any] = {} + if key_type.min_length is not None: + property_names["minLength"] = key_type.min_length + if key_type.max_length is not None: + property_names["maxLength"] = key_type.max_length + if key_type.pattern is not None: + property_names["pattern"] = key_type.pattern + if property_names: + schema["propertyNames"] = property_names + if not isinstance(t.value_type, mi.AnyType): + schema["additionalProperties"] = self.to_schema(t.value_type) + if t.max_length is not None: + schema["maxProperties"] = t.max_length + if t.min_length is not None: + schema["minProperties"] = t.min_length + elif isinstance(t, mi.UnionType): + structs = {} + other = [] + tag_field = None + for subtype in t.types: + real_type = subtype + while isinstance(real_type, mi.Metadata): + real_type = real_type.type + if isinstance(real_type, mi.StructType) and not real_type.array_like: + tag_field = real_type.tag_field + structs[real_type.tag] = real_type + else: + other.append(subtype) + + options = [self.to_schema(a) for a in other] + + if len(structs) >= 2: + mapping = { + k: self.ref_template.format(name=self.name_map[v.cls]) + for k, v in structs.items() + } + struct_schema = { + "anyOf": [self.to_schema(v) for v in structs.values()], + "discriminator": {"propertyName": tag_field, "mapping": mapping}, + } + if options: + options.append(struct_schema) + schema["anyOf"] = options + else: + schema.update(struct_schema) + elif len(structs) == 1: + _, subtype = structs.popitem() + options.append(self.to_schema(subtype)) + schema["anyOf"] = options + else: + schema["anyOf"] = options + elif isinstance(t, mi.LiteralType): + schema["enum"] = sorted(t.values) + elif isinstance(t, mi.EnumType): + schema.setdefault("title", t.cls.__name__) + if doc := _get_doc(t): + schema.setdefault("description", doc) + schema["enum"] = sorted(e.value for e in t.cls) + elif isinstance(t, mi.StructType): + schema.setdefault("title", _get_class_name(t.cls)) + if doc := _get_doc(t): + schema.setdefault("description", doc) + required = [] + names = [] + fields = [] + + if t.tag_field is not None: + required.append(t.tag_field) + names.append(t.tag_field) + fields.append({"enum": [t.tag]}) + + for field in t.fields: + field_schema = self.to_schema(field.type) + if field.required: + required.append(field.encode_name) + elif field.default is not mi.NODEFAULT: + field_schema["default"] = to_builtins(field.default, str_keys=True) + elif field.default_factory in (list, dict, set, bytearray): + field_schema["default"] = field.default_factory() + names.append(field.encode_name) + fields.append(field_schema) + + if t.array_like: + n_trailing_defaults = 0 + for n_trailing_defaults, f in enumerate(reversed(t.fields)): + if f.required: + break + schema["type"] = "array" + schema["prefixItems"] = fields + schema["minItems"] = len(fields) - n_trailing_defaults + if t.forbid_unknown_fields: + schema["maxItems"] = len(fields) + else: + schema["type"] = "object" + schema["properties"] = dict(zip(names, fields)) + schema["required"] = required + if t.forbid_unknown_fields: + schema["additionalProperties"] = False + elif isinstance(t, (mi.TypedDictType, mi.DataclassType, mi.NamedTupleType)): + schema.setdefault("title", _get_class_name(t.cls)) + if doc := _get_doc(t): + schema.setdefault("description", doc) + names = [] + fields = [] + required = [] + for field in t.fields: + field_schema = self.to_schema(field.type) + if field.required: + required.append(field.encode_name) + elif field.default is not mi.NODEFAULT: + field_schema["default"] = to_builtins(field.default, str_keys=True) + names.append(field.encode_name) + fields.append(field_schema) + if isinstance(t, mi.NamedTupleType): + schema["type"] = "array" + schema["prefixItems"] = fields + schema["minItems"] = len(required) + schema["maxItems"] = len(fields) + else: + schema["type"] = "object" + schema["properties"] = dict(zip(names, fields)) + schema["required"] = required + elif isinstance(t, mi.ExtType): + raise TypeError("json-schema doesn't support msgpack Ext types") + elif isinstance(t, mi.CustomType): + if self.schema_hook: + try: + schema = mi._merge_json(self.schema_hook(t.cls), schema) + except NotImplementedError: + pass + if not schema: + raise TypeError( + "Generating JSON schema for custom types requires either:\n" + "- specifying a `schema_hook`\n" + "- annotating the type with `Meta(extra_json_schema=...)`\n" + "\n" + f"type {t.cls!r} is not supported" + ) + else: + # This should be unreachable + raise TypeError(f"json-schema doesn't support type {t!r}") + + return schema diff --git a/.venv/lib/python3.11/site-packages/msgspec/_utils.py b/.venv/lib/python3.11/site-packages/msgspec/_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..6d338104d45c7a483827b6a86ef9f19f92ed0360 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/_utils.py @@ -0,0 +1,319 @@ +# type: ignore +import collections +import sys +import typing + +from typing import _AnnotatedAlias # noqa: F401 + +try: + from typing_extensions import get_type_hints as _get_type_hints +except Exception: + from typing import get_type_hints as _get_type_hints + +try: + from typing_extensions import NotRequired, Required +except Exception: + try: + from typing import NotRequired, Required + except Exception: + Required = NotRequired = None + + +def get_type_hints(obj): + return _get_type_hints(obj, include_extras=True) + + +# The `is_class` argument was new in 3.11, but was backported to 3.9 and 3.10. +# It's _likely_ to be available for 3.9/3.10, but may not be. Easiest way to +# check is to try it and see. This check can be removed when we drop support +# for Python 3.10. +try: + typing.ForwardRef("Foo", is_class=True) +except TypeError: + + def _forward_ref(value): + return typing.ForwardRef(value, is_argument=False) + +else: + + def _forward_ref(value): + return typing.ForwardRef(value, is_argument=False, is_class=True) + + +# Python 3.13 adds a new mandatory type_params kwarg to _eval_type +if sys.version_info >= (3, 13): + + def _eval_type(t, globalns, localns): + return typing._eval_type(t, globalns, localns, ()) +elif sys.version_info < (3, 10): + + def _eval_type(t, globalns, localns): + try: + return typing._eval_type(t, globalns, localns) + except TypeError as e: + try: + from eval_type_backport import eval_type_backport + except ImportError: + raise TypeError( + f"Unable to evaluate type annotation {t.__forward_arg__!r}. If you are making use " + "of the new typing syntax (unions using `|` since Python 3.10 or builtins subscripting " + "since Python 3.9), you should either replace the use of new syntax with the existing " + "`typing` constructs or install the `eval_type_backport` package." + ) from e + + return eval_type_backport( + t, + globalns, + localns, + try_default=False, + ) +else: + _eval_type = typing._eval_type + + +def _apply_params(obj, mapping): + if isinstance(obj, typing.TypeVar): + return mapping.get(obj, obj) + + try: + parameters = tuple(obj.__parameters__) + except Exception: + # Not parameterized or __parameters__ is invalid, ignore + return obj + + if not parameters: + # Not parametrized + return obj + + # Parametrized + args = tuple(mapping.get(p, p) for p in parameters) + return obj[args] + + +def _get_class_mro_and_typevar_mappings(obj): + mapping = {} + + if isinstance(obj, type): + cls = obj + else: + cls = obj.__origin__ + + def inner(c, scope): + if isinstance(c, type): + cls = c + new_scope = {} + else: + cls = getattr(c, "__origin__", None) + if cls in (None, object, typing.Generic) or cls in mapping: + return + params = cls.__parameters__ + args = tuple(_apply_params(a, scope) for a in c.__args__) + assert len(params) == len(args) + mapping[cls] = new_scope = dict(zip(params, args)) + + if issubclass(cls, typing.Generic): + bases = getattr(cls, "__orig_bases__", cls.__bases__) + for b in bases: + inner(b, new_scope) + + inner(obj, {}) + return cls.__mro__, mapping + + +def get_class_annotations(obj): + """Get the annotations for a class. + + This is similar to ``typing.get_type_hints``, except: + + - We maintain it + - It leaves extras like ``Annotated``/``ClassVar`` alone + - It resolves any parametrized generics in the class mro. The returned + mapping may still include ``TypeVar`` values, but those should be treated + as their unparametrized variants (i.e. equal to ``Any`` for the common case). + + Note that this function doesn't check that Generic types are being used + properly - invalid uses of `Generic` may slip through without complaint. + + The assumption here is that the user is making use of a static analysis + tool like ``mypy``/``pyright`` already, which would catch misuse of these + APIs. + """ + hints = {} + mro, typevar_mappings = _get_class_mro_and_typevar_mappings(obj) + + for cls in mro: + if cls in (typing.Generic, object): + continue + + mapping = typevar_mappings.get(cls) + cls_locals = dict(vars(cls)) + cls_globals = getattr(sys.modules.get(cls.__module__, None), "__dict__", {}) + + ann = cls.__dict__.get("__annotations__", {}) + for name, value in ann.items(): + if name in hints: + continue + if value is None: + value = type(None) + elif isinstance(value, str): + value = _forward_ref(value) + value = _eval_type(value, cls_locals, cls_globals) + if mapping is not None: + value = _apply_params(value, mapping) + hints[name] = value + return hints + + +# A mapping from a type annotation (or annotation __origin__) to the concrete +# python type that msgspec will use when decoding. THIS IS PRIVATE FOR A +# REASON. DON'T MUCK WITH THIS. +_CONCRETE_TYPES = { + list: list, + tuple: tuple, + set: set, + frozenset: frozenset, + dict: dict, + typing.List: list, + typing.Tuple: tuple, + typing.Set: set, + typing.FrozenSet: frozenset, + typing.Dict: dict, + typing.Collection: list, + typing.MutableSequence: list, + typing.Sequence: list, + typing.MutableMapping: dict, + typing.Mapping: dict, + typing.MutableSet: set, + typing.AbstractSet: set, + collections.abc.Collection: list, + collections.abc.MutableSequence: list, + collections.abc.Sequence: list, + collections.abc.MutableSet: set, + collections.abc.Set: set, + collections.abc.MutableMapping: dict, + collections.abc.Mapping: dict, +} + + +def get_typeddict_info(obj): + if isinstance(obj, type): + cls = obj + else: + cls = obj.__origin__ + + raw_hints = get_class_annotations(obj) + + if hasattr(cls, "__required_keys__"): + required = set(cls.__required_keys__) + elif cls.__total__: + required = set(raw_hints) + else: + required = set() + + # Both `typing.TypedDict` and `typing_extensions.TypedDict` have a bug + # where `Required`/`NotRequired` aren't properly detected at runtime when + # `__future__.annotations` is enabled, meaning the `__required_keys__` + # isn't correct. This code block works around this issue by amending the + # set of required keys as needed, while also stripping off any + # `Required`/`NotRequired` wrappers. + hints = {} + for k, v in raw_hints.items(): + origin = getattr(v, "__origin__", False) + if origin is Required: + required.add(k) + hints[k] = v.__args__[0] + elif origin is NotRequired: + required.discard(k) + hints[k] = v.__args__[0] + else: + hints[k] = v + return hints, required + + +def get_dataclass_info(obj): + if isinstance(obj, type): + cls = obj + else: + cls = obj.__origin__ + hints = get_class_annotations(obj) + required = [] + optional = [] + defaults = [] + + if hasattr(cls, "__dataclass_fields__"): + from dataclasses import _FIELD, _FIELD_INITVAR, MISSING + + for field in cls.__dataclass_fields__.values(): + if field._field_type is not _FIELD: + if field._field_type is _FIELD_INITVAR: + raise TypeError( + "dataclasses with `InitVar` fields are not supported" + ) + continue + name = field.name + typ = hints[name] + if field.default is not MISSING: + defaults.append(field.default) + optional.append((name, typ, False)) + elif field.default_factory is not MISSING: + defaults.append(field.default_factory) + optional.append((name, typ, True)) + else: + required.append((name, typ, False)) + + required.extend(optional) + + pre_init = None + post_init = getattr(cls, "__post_init__", None) + else: + from attrs import NOTHING, Factory + + fields_with_validators = [] + + for field in cls.__attrs_attrs__: + name = field.name + typ = hints[name] + default = field.default + if default is not NOTHING: + if isinstance(default, Factory): + if default.takes_self: + raise NotImplementedError( + "Support for default factories with `takes_self=True` " + "is not implemented. File a GitHub issue if you need " + "this feature!" + ) + defaults.append(default.factory) + optional.append((name, typ, True)) + else: + defaults.append(default) + optional.append((name, typ, False)) + else: + required.append((name, typ, False)) + + if field.validator is not None: + fields_with_validators.append(field) + + required.extend(optional) + + pre_init = getattr(cls, "__attrs_pre_init__", None) + post_init = getattr(cls, "__attrs_post_init__", None) + + if fields_with_validators: + post_init = _wrap_attrs_validators(fields_with_validators, post_init) + + return cls, tuple(required), tuple(defaults), pre_init, post_init + + +def _wrap_attrs_validators(fields, post_init): + def inner(obj): + for field in fields: + field.validator(obj, field, getattr(obj, field.name)) + if post_init is not None: + post_init(obj) + + return inner + + +def rebuild(cls, kwargs): + """Used to unpickle Structs with keyword-only fields""" + return cls(**kwargs) diff --git a/.venv/lib/python3.11/site-packages/msgspec/_version.py b/.venv/lib/python3.11/site-packages/msgspec/_version.py new file mode 100644 index 0000000000000000000000000000000000000000..282ecc5692dfd41a9a2bc3432c272bf76e5a8715 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/_version.py @@ -0,0 +1,21 @@ + +# This file was generated by 'versioneer.py' (0.19) from +# revision-control system data, or from the parent directory name of an +# unpacked source archive. Distribution tarballs contain a pre-generated copy +# of this file. + +import json + +version_json = ''' +{ + "date": "2024-12-27T11:06:58-0600", + "dirty": false, + "error": null, + "full-revisionid": "dd965dce22e5278d4935bea923441ecde31b5325", + "version": "0.19.0" +} +''' # END VERSION_JSON + + +def get_versions(): + return json.loads(version_json) diff --git a/.venv/lib/python3.11/site-packages/msgspec/inspect.py b/.venv/lib/python3.11/site-packages/msgspec/inspect.py new file mode 100644 index 0000000000000000000000000000000000000000..2f5a804c06ebb6d38b130ecffb074b63d77c8ef1 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/inspect.py @@ -0,0 +1,1005 @@ +from __future__ import annotations + +import datetime +import decimal +import enum +import uuid +from collections.abc import Iterable +from typing import ( + Any, + Final, + Literal, + Tuple, + Type as typing_Type, + TypeVar, + Union, +) + +try: + from types import UnionType as _types_UnionType # type: ignore +except Exception: + _types_UnionType = type("UnionType", (), {}) # type: ignore + +try: + from typing import TypeAliasType as _TypeAliasType # type: ignore +except Exception: + _TypeAliasType = type("TypeAliasType", (), {}) # type: ignore + +import msgspec +from msgspec import NODEFAULT, UNSET, UnsetType as _UnsetType + +from ._core import ( # type: ignore + Factory as _Factory, + to_builtins as _to_builtins, +) +from ._utils import ( # type: ignore + _CONCRETE_TYPES, + _AnnotatedAlias, + get_class_annotations as _get_class_annotations, + get_dataclass_info as _get_dataclass_info, + get_typeddict_info as _get_typeddict_info, +) + +__all__ = ( + "type_info", + "multi_type_info", + "Type", + "Metadata", + "AnyType", + "NoneType", + "BoolType", + "IntType", + "FloatType", + "StrType", + "BytesType", + "ByteArrayType", + "MemoryViewType", + "DateTimeType", + "TimeType", + "DateType", + "TimeDeltaType", + "UUIDType", + "DecimalType", + "ExtType", + "RawType", + "EnumType", + "LiteralType", + "CustomType", + "UnionType", + "CollectionType", + "ListType", + "SetType", + "FrozenSetType", + "VarTupleType", + "TupleType", + "DictType", + "Field", + "TypedDictType", + "NamedTupleType", + "DataclassType", + "StructType", +) + + +def __dir__(): + return __all__ + + +class Type(msgspec.Struct): + """The base Type.""" + + +class Metadata(Type): + """A type wrapping a subtype with additional metadata. + + Parameters + ---------- + type: Type + The subtype. + extra_json_schema: dict, optional + A dict of extra fields to set for the subtype when generating a + json-schema. + extra: dict, optional + A dict of extra user-defined metadata attached to the subtype. + """ + + type: Type + extra_json_schema: Union[dict, None] = None + extra: Union[dict, None] = None + + +class AnyType(Type): + """A type corresponding to `typing.Any`.""" + + +class NoneType(Type): + """A type corresponding to `None`.""" + + +class BoolType(Type): + """A type corresponding to `bool`.""" + + +class IntType(Type): + """A type corresponding to `int`. + + Parameters + ---------- + gt: int, optional + If set, an instance of this type must be greater than ``gt``. + ge: int, optional + If set, an instance of this type must be greater than or equal to ``ge``. + lt: int, optional + If set, an instance of this type must be less than to ``lt``. + le: int, optional + If set, an instance of this type must be less than or equal to ``le``. + multiple_of: int, optional + If set, an instance of this type must be a multiple of ``multiple_of``. + """ + + gt: Union[int, None] = None + ge: Union[int, None] = None + lt: Union[int, None] = None + le: Union[int, None] = None + multiple_of: Union[int, None] = None + + +class FloatType(Type): + """A type corresponding to `float`. + + Parameters + ---------- + gt: float, optional + If set, an instance of this type must be greater than ``gt``. + ge: float, optional + If set, an instance of this type must be greater than or equal to ``ge``. + lt: float, optional + If set, an instance of this type must be less than to ``lt``. + le: float, optional + If set, an instance of this type must be less than or equal to ``le``. + multiple_of: float, optional + If set, an instance of this type must be a multiple of ``multiple_of``. + """ + + gt: Union[float, None] = None + ge: Union[float, None] = None + lt: Union[float, None] = None + le: Union[float, None] = None + multiple_of: Union[float, None] = None + + +class StrType(Type): + """A type corresponding to `str`. + + Parameters + ---------- + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + pattern: str, optional + If set, an instance of this type must match against this regex pattern. + Note that the pattern is treated as **unanchored**. + """ + + min_length: Union[int, None] = None + max_length: Union[int, None] = None + pattern: Union[str, None] = None + + +class BytesType(Type): + """A type corresponding to `bytes`. + + Parameters + ---------- + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + min_length: Union[int, None] = None + max_length: Union[int, None] = None + + +class ByteArrayType(Type): + """A type corresponding to `bytearray`. + + Parameters + ---------- + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + min_length: Union[int, None] = None + max_length: Union[int, None] = None + + +class MemoryViewType(Type): + """A type corresponding to `memoryview`. + + Parameters + ---------- + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + min_length: Union[int, None] = None + max_length: Union[int, None] = None + + +class DateTimeType(Type): + """A type corresponding to `datetime.datetime`. + + Parameters + ---------- + tz: bool + The timezone-requirements for an instance of this type. ``True`` + indicates a timezone-aware value is required, ``False`` indicates a + timezone-aware value is required. The default is ``None``, which + accepts either timezone-aware or timezone-naive values. + """ + + tz: Union[bool, None] = None + + +class TimeType(Type): + """A type corresponding to `datetime.time`. + + Parameters + ---------- + tz: bool + The timezone-requirements for an instance of this type. ``True`` + indicates a timezone-aware value is required, ``False`` indicates a + timezone-aware value is required. The default is ``None``, which + accepts either timezone-aware or timezone-naive values. + """ + + tz: Union[bool, None] = None + + +class DateType(Type): + """A type corresponding to `datetime.date`.""" + + +class TimeDeltaType(Type): + """A type corresponding to `datetime.timedelta`.""" + + +class UUIDType(Type): + """A type corresponding to `uuid.UUID`.""" + + +class DecimalType(Type): + """A type corresponding to `decimal.Decimal`.""" + + +class ExtType(Type): + """A type corresponding to `msgspec.msgpack.Ext`.""" + + +class RawType(Type): + """A type corresponding to `msgspec.Raw`.""" + + +class EnumType(Type): + """A type corresponding to an `enum.Enum` type. + + Parameters + ---------- + cls: type + The corresponding `enum.Enum` type. + """ + + cls: typing_Type[enum.Enum] + + +class LiteralType(Type): + """A type corresponding to a `typing.Literal` type. + + Parameters + ---------- + values: tuple + A tuple of possible values for this literal instance. Only `str` or + `int` literals are supported. + """ + + values: Union[Tuple[str, ...], Tuple[int, ...]] + + +class CustomType(Type): + """A custom type. + + Parameters + ---------- + cls: type + The corresponding custom type. + """ + + cls: type + + +class UnionType(Type): + """A union type. + + Parameters + ---------- + types: Tuple[Type, ...] + A tuple of possible types for this union. + """ + + types: Tuple[Type, ...] + + @property + def includes_none(self) -> bool: + """A helper for checking whether ``None`` is included in this union.""" + return any(isinstance(t, NoneType) for t in self.types) + + +class CollectionType(Type): + """A collection type. + + This is the base type shared by collection types like `ListType`, + `SetType`, etc. + + Parameters + ---------- + item_type: Type + The item type. + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + item_type: Type + min_length: Union[int, None] = None + max_length: Union[int, None] = None + + +class ListType(CollectionType): + """A type corresponding to a `list`. + + Parameters + ---------- + item_type: Type + The item type. + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + +class VarTupleType(CollectionType): + """A type corresponding to a variadic `tuple`. + + Parameters + ---------- + item_type: Type + The item type. + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + +class SetType(CollectionType): + """A type corresponding to a `set`. + + Parameters + ---------- + item_type: Type + The item type. + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + +class FrozenSetType(CollectionType): + """A type corresponding to a `frozenset`. + + Parameters + ---------- + item_type: Type + The item type. + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + +class TupleType(Type): + """A type corresponding to `tuple`. + + Parameters + ---------- + item_types: Tuple[Type, ...] + A tuple of types for each element in the tuple. + """ + + item_types: Tuple[Type, ...] + + +class DictType(Type): + """A type corresponding to `dict`. + + Parameters + ---------- + key_type: Type + The key type. + value_type: Type + The value type. + min_length: int, optional + If set, an instance of this type must have length greater than or equal + to ``min_length``. + max_length: int, optional + If set, an instance of this type must have length less than or equal + to ``max_length``. + """ + + key_type: Type + value_type: Type + min_length: Union[int, None] = None + max_length: Union[int, None] = None + + +class Field(msgspec.Struct): + """A record describing a field in an object-like type. + + Parameters + ---------- + name: str + The field name as seen by Python code (e.g. ``field_one``). + encode_name: str + The name used when encoding/decoding the field. This may differ if + the field is renamed (e.g. ``fieldOne``). + type: Type + The field type. + required: bool, optional + Whether the field is required. Note that if `required` is False doesn't + necessarily mean that `default` or `default_factory` will be set - + optional fields may exist with no default value. + default: Any, optional + A default value for the field. Will be `NODEFAULT` if no default value + is set. + default_factory: Any, optional + A callable that creates a default value for the field. Will be + `NODEFAULT` if no ``default_factory`` is set. + """ + + name: str + encode_name: str + type: Type + required: bool = True + default: Any = msgspec.field(default_factory=lambda: NODEFAULT) + default_factory: Any = msgspec.field(default_factory=lambda: NODEFAULT) + + +class TypedDictType(Type): + """A type corresponding to a `typing.TypedDict` type. + + Parameters + ---------- + cls: type + The corresponding TypedDict type. + fields: Tuple[Field, ...] + A tuple of fields in the TypedDict. + """ + + cls: type + fields: Tuple[Field, ...] + + +class NamedTupleType(Type): + """A type corresponding to a `typing.NamedTuple` type. + + Parameters + ---------- + cls: type + The corresponding NamedTuple type. + fields: Tuple[Field, ...] + A tuple of fields in the NamedTuple. + """ + + cls: type + fields: Tuple[Field, ...] + + +class DataclassType(Type): + """A type corresponding to a `dataclasses` or `attrs` type. + + Parameters + ---------- + cls: type + The corresponding dataclass type. + fields: Tuple[Field, ...] + A tuple of fields in the dataclass. + """ + + cls: type + fields: Tuple[Field, ...] + + +class StructType(Type): + """A type corresponding to a `msgspec.Struct` type. + + Parameters + ---------- + cls: type + The corresponding Struct type. + fields: Tuple[Field, ...] + A tuple of fields in the Struct. + tag_field: str or None, optional + If set, the field name used for the tag in a tagged union. + tag: str, int, or None, optional + If set, the value used for the tag in a tagged union. + array_like: bool, optional + Whether the struct is encoded as an array rather than an object. + forbid_unknown_fields: bool, optional + If ``False`` (the default) unknown fields are ignored when decoding. If + ``True`` any unknown fields will result in an error. + """ + + cls: typing_Type[msgspec.Struct] + fields: Tuple[Field, ...] + tag_field: Union[str, None] = None + tag: Union[str, int, None] = None + array_like: bool = False + forbid_unknown_fields: bool = False + + +def multi_type_info(types: Iterable[Any]) -> tuple[Type, ...]: + """Get information about multiple msgspec-compatible types. + + Parameters + ---------- + types: an iterable of types + The types to get info about. + + Returns + ------- + tuple[Type, ...] + + Examples + -------- + >>> msgspec.inspect.multi_type_info([int, float, list[str]]) # doctest: +NORMALIZE_WHITESPACE + (IntType(gt=None, ge=None, lt=None, le=None, multiple_of=None), + FloatType(gt=None, ge=None, lt=None, le=None, multiple_of=None), + ListType(item_type=StrType(min_length=None, max_length=None, pattern=None), + min_length=None, max_length=None)) + """ + return _Translator(types).run() + + +def type_info(type: Any) -> Type: + """Get information about a msgspec-compatible type. + + Note that if you need to inspect multiple types it's more efficient to call + `multi_type_info` once with a sequence of types than calling `type_info` + multiple times. + + Parameters + ---------- + type: type + The type to get info about. + + Returns + ------- + Type + + Examples + -------- + >>> msgspec.inspect.type_info(bool) + BoolType() + + >>> msgspec.inspect.type_info(int) + IntType(gt=None, ge=None, lt=None, le=None, multiple_of=None) + + >>> msgspec.inspect.type_info(list[int]) # doctest: +NORMALIZE_WHITESPACE + ListType(item_type=IntType(gt=None, ge=None, lt=None, le=None, multiple_of=None), + min_length=None, max_length=None) + """ + return multi_type_info([type])[0] + + +# Implementation details +def _origin_args_metadata(t): + # Strip wrappers (Annotated, NewType, Final) until we hit a concrete type + metadata = [] + while True: + try: + origin = _CONCRETE_TYPES.get(t) + except TypeError: + # t is not hashable + origin = None + + if origin is not None: + args = None + break + + origin = getattr(t, "__origin__", None) + if origin is not None: + if type(t) is _AnnotatedAlias: + metadata.extend(m for m in t.__metadata__ if type(m) is msgspec.Meta) + t = origin + elif origin == Final: + t = t.__args__[0] + elif type(origin) is _TypeAliasType: + t = origin.__value__[t.__args__] + else: + args = getattr(t, "__args__", None) + origin = _CONCRETE_TYPES.get(origin, origin) + break + else: + supertype = getattr(t, "__supertype__", None) + if supertype is not None: + t = supertype + elif type(t) is _TypeAliasType: + t = t.__value__ + else: + origin = t + args = None + break + + if type(origin) is _types_UnionType: + args = origin.__args__ + origin = Union + return origin, args, tuple(metadata) + + +def _is_struct(t): + return type(t) is type(msgspec.Struct) + + +def _is_enum(t): + return type(t) is enum.EnumMeta + + +def _is_dataclass(t): + return hasattr(t, "__dataclass_fields__") + + +def _is_attrs(t): + return hasattr(t, "__attrs_attrs__") + + +def _is_typeddict(t): + try: + return issubclass(t, dict) and hasattr(t, "__total__") + except TypeError: + return False + + +def _is_namedtuple(t): + try: + return issubclass(t, tuple) and hasattr(t, "_fields") + except TypeError: + return False + + +def _merge_json(a, b): + if b: + a = a.copy() + for key, b_val in b.items(): + if key in a: + a_val = a[key] + if isinstance(a_val, dict) and isinstance(b_val, dict): + a[key] = _merge_json(a_val, b_val) + elif isinstance(a_val, (list, tuple)) and isinstance( + b_val, (list, tuple) + ): + a[key] = list(a_val) + list(b_val) + else: + a[key] = b_val + else: + a[key] = b_val + return a + + +class _Translator: + def __init__(self, types): + self.types = tuple(types) + self.type_hints = {} + self.cache = {} + + def _get_class_annotations(self, t): + """A cached version of `get_class_annotations`""" + try: + return self.type_hints[t] + except KeyError: + out = self.type_hints[t] = _get_class_annotations(t) + return out + + def run(self): + # First construct a decoder to validate the types are valid + from ._core import MsgpackDecoder + + MsgpackDecoder(Tuple[self.types]) + return tuple(self.translate(t) for t in self.types) + + def translate(self, typ): + t, args, metadata = _origin_args_metadata(typ) + + # Extract and merge components of any `Meta` annotations + constrs = {} + extra_json_schema = {} + extra = {} + for meta in metadata: + for attr in ( + "ge", + "gt", + "le", + "lt", + "multiple_of", + "pattern", + "min_length", + "max_length", + "tz", + ): + if (val := getattr(meta, attr)) is not None: + constrs[attr] = val + for attr in ("title", "description", "examples"): + if (val := getattr(meta, attr)) is not None: + extra_json_schema[attr] = val + if meta.extra_json_schema is not None: + extra_json_schema = _merge_json( + extra_json_schema, + _to_builtins(meta.extra_json_schema, str_keys=True), + ) + if meta.extra is not None: + extra.update(meta.extra) + + out = self._translate_inner(t, args, **constrs) + if extra_json_schema or extra: + # If extra metadata is present, wrap the output type in a Metadata + # wrapper object + return Metadata( + out, extra_json_schema=extra_json_schema or None, extra=extra or None + ) + return out + + def _translate_inner( + self, + t, + args, + ge=None, + gt=None, + le=None, + lt=None, + multiple_of=None, + pattern=None, + min_length=None, + max_length=None, + tz=None, + ): + if t is Any: + return AnyType() + elif isinstance(t, TypeVar): + if t.__bound__ is not None: + return self.translate(t.__bound__) + return AnyType() + elif t is None or t is type(None): + return NoneType() + elif t is bool: + return BoolType() + elif t is int: + return IntType(ge=ge, gt=gt, le=le, lt=lt, multiple_of=multiple_of) + elif t is float: + return FloatType(ge=ge, gt=gt, le=le, lt=lt, multiple_of=multiple_of) + elif t is str: + return StrType( + min_length=min_length, max_length=max_length, pattern=pattern + ) + elif t is bytes: + return BytesType(min_length=min_length, max_length=max_length) + elif t is bytearray: + return ByteArrayType(min_length=min_length, max_length=max_length) + elif t is memoryview: + return MemoryViewType(min_length=min_length, max_length=max_length) + elif t is datetime.datetime: + return DateTimeType(tz=tz) + elif t is datetime.time: + return TimeType(tz=tz) + elif t is datetime.date: + return DateType() + elif t is datetime.timedelta: + return TimeDeltaType() + elif t is uuid.UUID: + return UUIDType() + elif t is decimal.Decimal: + return DecimalType() + elif t is msgspec.Raw: + return RawType() + elif t is msgspec.msgpack.Ext: + return ExtType() + elif t is list: + return ListType( + self.translate(args[0]) if args else AnyType(), + min_length=min_length, + max_length=max_length, + ) + elif t is set: + return SetType( + self.translate(args[0]) if args else AnyType(), + min_length=min_length, + max_length=max_length, + ) + elif t is frozenset: + return FrozenSetType( + self.translate(args[0]) if args else AnyType(), + min_length=min_length, + max_length=max_length, + ) + elif t is tuple: + # Handle an annoying compatibility issue: + # - Tuple[()] has args == ((),) + # - tuple[()] has args == () + if args == ((),): + args = () + if args is None: + return VarTupleType( + AnyType(), min_length=min_length, max_length=max_length + ) + elif len(args) == 2 and args[-1] is ...: + return VarTupleType( + self.translate(args[0]), + min_length=min_length, + max_length=max_length, + ) + else: + return TupleType(tuple(self.translate(a) for a in args)) + elif t is dict: + return DictType( + self.translate(args[0]) if args else AnyType(), + self.translate(args[1]) if args else AnyType(), + min_length=min_length, + max_length=max_length, + ) + elif t is Union: + args = tuple(self.translate(a) for a in args if a is not _UnsetType) + return args[0] if len(args) == 1 else UnionType(args) + elif t is Literal: + return LiteralType(tuple(sorted(args))) + elif _is_enum(t): + return EnumType(t) + elif _is_struct(t): + cls = t[args] if args else t + if cls in self.cache: + return self.cache[cls] + config = t.__struct_config__ + self.cache[cls] = out = StructType( + cls, + (), + tag_field=config.tag_field, + tag=config.tag, + array_like=config.array_like, + forbid_unknown_fields=config.forbid_unknown_fields, + ) + + hints = self._get_class_annotations(cls) + npos = len(t.__struct_fields__) - len(t.__struct_defaults__) + fields = [] + for name, encode_name, default_obj in zip( + t.__struct_fields__, + t.__struct_encode_fields__, + (NODEFAULT,) * npos + t.__struct_defaults__, + ): + if default_obj is NODEFAULT: + required = True + default = default_factory = NODEFAULT + elif isinstance(default_obj, _Factory): + required = False + default = NODEFAULT + default_factory = default_obj.factory + else: + required = False + default = NODEFAULT if default_obj is UNSET else default_obj + default_factory = NODEFAULT + + field = Field( + name=name, + encode_name=encode_name, + type=self.translate(hints[name]), + required=required, + default=default, + default_factory=default_factory, + ) + fields.append(field) + + out.fields = tuple(fields) + return out + elif _is_typeddict(t): + cls = t[args] if args else t + if cls in self.cache: + return self.cache[cls] + self.cache[cls] = out = TypedDictType(cls, ()) + hints, required = _get_typeddict_info(cls) + out.fields = tuple( + Field( + name=name, + encode_name=name, + type=self.translate(field_type), + required=name in required, + ) + for name, field_type in sorted(hints.items()) + ) + return out + elif _is_dataclass(t) or _is_attrs(t): + cls = t[args] if args else t + if cls in self.cache: + return self.cache[cls] + self.cache[cls] = out = DataclassType(cls, ()) + _, info, defaults, _, _ = _get_dataclass_info(cls) + defaults = ((NODEFAULT,) * (len(info) - len(defaults))) + defaults + fields = [] + for (name, typ, is_factory), default_obj in zip(info, defaults): + if default_obj is NODEFAULT: + required = True + default = default_factory = NODEFAULT + elif is_factory: + required = False + default = NODEFAULT + default_factory = default_obj + else: + required = False + default = NODEFAULT if default_obj is UNSET else default_obj + default_factory = NODEFAULT + + fields.append( + Field( + name=name, + encode_name=name, + type=self.translate(typ), + required=required, + default=default, + default_factory=default_factory, + ) + ) + out.fields = tuple(fields) + return out + elif _is_namedtuple(t): + cls = t[args] if args else t + if cls in self.cache: + return self.cache[cls] + self.cache[cls] = out = NamedTupleType(cls, ()) + hints = self._get_class_annotations(cls) + out.fields = tuple( + Field( + name=name, + encode_name=name, + type=self.translate(hints.get(name, Any)), + required=name not in t._field_defaults, + default=t._field_defaults.get(name, NODEFAULT), + ) + for name in t._fields + ) + return out + else: + return CustomType(t) diff --git a/.venv/lib/python3.11/site-packages/msgspec/json.py b/.venv/lib/python3.11/site-packages/msgspec/json.py new file mode 100644 index 0000000000000000000000000000000000000000..ff2069aec66dcf0ca8277dfc6960682ccde467c3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/json.py @@ -0,0 +1,8 @@ +from ._core import ( + JSONDecoder as Decoder, + JSONEncoder as Encoder, + json_decode as decode, + json_encode as encode, + json_format as format, +) +from ._json_schema import schema, schema_components diff --git a/.venv/lib/python3.11/site-packages/msgspec/json.pyi b/.venv/lib/python3.11/site-packages/msgspec/json.pyi new file mode 100644 index 0000000000000000000000000000000000000000..75365d6035a8da7df2f43aaf5c6504259e94d7ff --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/json.pyi @@ -0,0 +1,118 @@ +from collections.abc import Iterable +from typing import ( + Any, + Callable, + Dict, + Generic, + Iterable, + Literal, + Optional, + Tuple, + Type, + TypeVar, + Union, + overload, +) + +from typing_extensions import Buffer + +T = TypeVar("T") + +enc_hook_sig = Optional[Callable[[Any], Any]] +dec_hook_sig = Optional[Callable[[type, Any], Any]] +float_hook_sig = Optional[Callable[[str], Any]] +schema_hook_sig = Optional[Callable[[type], dict[str, Any]]] + +class Encoder: + enc_hook: enc_hook_sig + decimal_format: Literal["string", "number"] + uuid_format: Literal["canonical", "hex"] + order: Literal[None, "deterministic", "sorted"] + + def __init__( + self, + *, + enc_hook: enc_hook_sig = None, + decimal_format: Literal["string", "number"] = "string", + uuid_format: Literal["canonical", "hex"] = "canonical", + order: Literal[None, "deterministic", "sorted"] = None, + ): ... + def encode(self, obj: Any, /) -> bytes: ... + def encode_lines(self, items: Iterable, /) -> bytes: ... + def encode_into( + self, obj: Any, buffer: bytearray, offset: Optional[int] = 0, / + ) -> None: ... + +class Decoder(Generic[T]): + type: Type[T] + strict: bool + dec_hook: dec_hook_sig + float_hook: float_hook_sig + + @overload + def __init__( + self: Decoder[Any], + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, + float_hook: float_hook_sig = None, + ) -> None: ... + @overload + def __init__( + self: Decoder[T], + type: Type[T] = ..., + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, + float_hook: float_hook_sig = None, + ) -> None: ... + @overload + def __init__( + self: Decoder[Any], + type: Any = ..., + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, + float_hook: float_hook_sig = None, + ) -> None: ... + def decode(self, buf: Union[Buffer, str], /) -> T: ... + def decode_lines(self, buf: Union[Buffer, str], /) -> list[T]: ... + +@overload +def decode( + buf: Union[Buffer, str], + /, + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, +) -> Any: ... +@overload +def decode( + buf: Union[Buffer, str], + /, + *, + type: Type[T] = ..., + strict: bool = True, + dec_hook: dec_hook_sig = None, +) -> T: ... +@overload +def decode( + buf: Union[Buffer, str], + /, + *, + type: Any = ..., + strict: bool = True, + dec_hook: dec_hook_sig = None, +) -> Any: ... +def encode(obj: Any, /, *, enc_hook: enc_hook_sig = None, order: Literal[None, "deterministic", "sorted"] = None) -> bytes: ... +def schema(type: Any, *, schema_hook: schema_hook_sig = None) -> Dict[str, Any]: ... +def schema_components( + types: Iterable[Any], + *, + schema_hook: schema_hook_sig = None, + ref_template: str = "#/$defs/{name}" +) -> Tuple[Tuple[Dict[str, Any], ...], Dict[str, Any]]: ... +@overload +def format(buf: str, /, *, indent: int = 2) -> str: ... +@overload +def format(buf: Buffer, /, *, indent: int = 2) -> bytes: ... diff --git a/.venv/lib/python3.11/site-packages/msgspec/msgpack.py b/.venv/lib/python3.11/site-packages/msgspec/msgpack.py new file mode 100644 index 0000000000000000000000000000000000000000..64151a9fe1ebd80a0d1cffe6dab43c4e923886db --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/msgpack.py @@ -0,0 +1,7 @@ +from ._core import ( + Ext, + MsgpackDecoder as Decoder, + MsgpackEncoder as Encoder, + msgpack_decode as decode, + msgpack_encode as encode, +) diff --git a/.venv/lib/python3.11/site-packages/msgspec/msgpack.pyi b/.venv/lib/python3.11/site-packages/msgspec/msgpack.pyi new file mode 100644 index 0000000000000000000000000000000000000000..1321571db0f91edfc697cfcc28411188f4b5d081 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/msgpack.pyi @@ -0,0 +1,109 @@ +from typing import ( + Any, + Callable, + Generic, + Literal, + Optional, + Type, + TypeVar, + Union, + overload, +) + +from typing_extensions import Buffer + + +T = TypeVar("T") + +enc_hook_sig = Optional[Callable[[Any], Any]] +ext_hook_sig = Optional[Callable[[int, memoryview], Any]] +dec_hook_sig = Optional[Callable[[type, Any], Any]] + +class Ext: + code: int + data: Union[bytes, bytearray, memoryview] + def __init__( + self, code: int, data: Union[bytes, bytearray, memoryview] + ) -> None: ... + +class Decoder(Generic[T]): + type: Type[T] + strict: bool + dec_hook: dec_hook_sig + ext_hook: ext_hook_sig + @overload + def __init__( + self: Decoder[Any], + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, + ext_hook: ext_hook_sig = None, + ) -> None: ... + @overload + def __init__( + self: Decoder[T], + type: Type[T] = ..., + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, + ext_hook: ext_hook_sig = None, + ) -> None: ... + @overload + def __init__( + self: Decoder[Any], + type: Any = ..., + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, + ext_hook: ext_hook_sig = None, + ) -> None: ... + def decode(self, buf: Buffer, /) -> T: ... + +class Encoder: + enc_hook: enc_hook_sig + decimal_format: Literal["string", "number"] + uuid_format: Literal["canonical", "hex", "bytes"] + order: Literal[None, "deterministic", "sorted"] + def __init__( + self, + *, + enc_hook: enc_hook_sig = None, + decimal_format: Literal["string", "number"] = "string", + uuid_format: Literal["canonical", "hex", "bytes"] = "canonical", + order: Literal[None, "deterministic", "sorted"] = None, + ): ... + def encode(self, obj: Any, /) -> bytes: ... + def encode_into( + self, obj: Any, buffer: bytearray, offset: Optional[int] = 0, / + ) -> None: ... + +@overload +def decode( + buf: Buffer, + /, + *, + strict: bool = True, + dec_hook: dec_hook_sig = None, + ext_hook: ext_hook_sig = None, +) -> Any: ... +@overload +def decode( + buf: Buffer, + /, + *, + type: Type[T] = ..., + strict: bool = True, + dec_hook: dec_hook_sig = None, + ext_hook: ext_hook_sig = None, +) -> T: ... +@overload +def decode( + buf: Buffer, + /, + *, + type: Any = ..., + strict: bool = True, + dec_hook: dec_hook_sig = None, + ext_hook: ext_hook_sig = None, +) -> Any: ... +def encode(obj: Any, /, *, enc_hook: enc_hook_sig = None, order: Literal[None, "deterministic", "sorted"] = None) -> bytes: ... diff --git a/.venv/lib/python3.11/site-packages/msgspec/py.typed b/.venv/lib/python3.11/site-packages/msgspec/py.typed new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.venv/lib/python3.11/site-packages/msgspec/structs.py b/.venv/lib/python3.11/site-packages/msgspec/structs.py new file mode 100644 index 0000000000000000000000000000000000000000..76f2fdfe9e80b2a99f8d5d2c3d01762eb88dd876 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/structs.py @@ -0,0 +1,106 @@ +from __future__ import annotations + +from typing import Any + +from . import NODEFAULT, Struct, field +from ._core import ( # noqa + Factory as _Factory, + StructConfig, + asdict, + astuple, + replace, + force_setattr, +) +from ._utils import get_class_annotations as _get_class_annotations + +__all__ = ( + "FieldInfo", + "StructConfig", + "asdict", + "astuple", + "fields", + "force_setattr", + "replace", +) + + +def __dir__(): + return __all__ + + +class FieldInfo(Struct): + """A record describing a field in a struct type. + + Parameters + ---------- + name: str + The field name as seen by Python code (e.g. ``field_one``). + encode_name: str + The name used when encoding/decoding the field. This may differ if + the field is renamed (e.g. ``fieldOne``). + type: Any + The full field type annotation. + default: Any, optional + A default value for the field. Will be `NODEFAULT` if no default value + is set. + default_factory: Any, optional + A callable that creates a default value for the field. Will be + `NODEFAULT` if no ``default_factory`` is set. + """ + + name: str + encode_name: str + type: Any + default: Any = field(default_factory=lambda: NODEFAULT) + default_factory: Any = field(default_factory=lambda: NODEFAULT) + + @property + def required(self) -> bool: + """A helper for checking whether a field is required""" + return self.default is NODEFAULT and self.default_factory is NODEFAULT + + +def fields(type_or_instance: Struct | type[Struct]) -> tuple[FieldInfo]: + """Get information about the fields in a Struct. + + Parameters + ---------- + type_or_instance: + A struct type or instance. + + Returns + ------- + tuple[FieldInfo] + """ + if isinstance(type_or_instance, Struct): + annotated_cls = cls = type(type_or_instance) + else: + annotated_cls = type_or_instance + cls = getattr(type_or_instance, "__origin__", type_or_instance) + if not (isinstance(cls, type) and issubclass(cls, Struct)): + raise TypeError("Must be called with a struct type or instance") + + hints = _get_class_annotations(annotated_cls) + npos = len(cls.__struct_fields__) - len(cls.__struct_defaults__) + fields = [] + for name, encode_name, default_obj in zip( + cls.__struct_fields__, + cls.__struct_encode_fields__, + (NODEFAULT,) * npos + cls.__struct_defaults__, + ): + default = default_factory = NODEFAULT + if isinstance(default_obj, _Factory): + default_factory = default_obj.factory + elif default_obj is not NODEFAULT: + default = default_obj + + field = FieldInfo( + name=name, + encode_name=encode_name, + type=hints[name], + default=default, + default_factory=default_factory, + ) + fields.append(field) + + return tuple(fields) diff --git a/.venv/lib/python3.11/site-packages/msgspec/structs.pyi b/.venv/lib/python3.11/site-packages/msgspec/structs.pyi new file mode 100644 index 0000000000000000000000000000000000000000..58432b2d7bf971139e9a193928c9622a4953569f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/structs.pyi @@ -0,0 +1,37 @@ +from typing import Any, TypeVar, Union + +from . import NODEFAULT, Struct + +S = TypeVar("S", bound=Struct) + +def replace(struct: S, /, **changes: Any) -> S: ... +def asdict(struct: Struct) -> dict[str, Any]: ... +def astuple(struct: Struct) -> tuple[Any, ...]: ... +def force_setattr(struct: Struct, name: str, value: Any) -> None: ... + +class StructConfig: + frozen: bool + eq: bool + order: bool + array_like: bool + gc: bool + repr_omit_defaults: bool + omit_defaults: bool + forbid_unknown_fields: bool + weakref: bool + dict: bool + cache_hash: bool + tag: Union[str, int, None] + tag_field: Union[str, None] + +class FieldInfo(Struct): + name: str + encode_name: str + type: Any + default: Any = NODEFAULT + default_factory: Any = NODEFAULT + + @property + def required(self) -> bool: ... + +def fields(type_or_instance: Struct | type[Struct]) -> tuple[FieldInfo]: ... diff --git a/.venv/lib/python3.11/site-packages/msgspec/toml.py b/.venv/lib/python3.11/site-packages/msgspec/toml.py new file mode 100644 index 0000000000000000000000000000000000000000..c4306440e4bbc15a2024078a4638b0a3540be40f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/toml.py @@ -0,0 +1,197 @@ +from __future__ import annotations + +import datetime as _datetime +from typing import TYPE_CHECKING, overload, TypeVar, Any + +from . import ( + DecodeError as _DecodeError, + convert as _convert, + to_builtins as _to_builtins, +) + +if TYPE_CHECKING: + from typing import Callable, Optional, Type, Union, Literal + from typing_extensions import Buffer + + +__all__ = ("encode", "decode") + + +def __dir__(): + return __all__ + + +def _import_tomllib(): + try: + import tomllib # type: ignore + + return tomllib + except ImportError: + pass + + try: + import tomli # type: ignore + + return tomli + except ImportError: + raise ImportError( + "`msgspec.toml.decode` requires `tomli` be installed.\n\n" + "Please either `pip` or `conda` install it as follows:\n\n" + " $ python -m pip install tomli # using pip\n" + " $ conda install tomli # or using conda" + ) from None + + +def _import_tomli_w(): + try: + import tomli_w # type: ignore + + return tomli_w + except ImportError: + raise ImportError( + "`msgspec.toml.encode` requires `tomli_w` be installed.\n\n" + "Please either `pip` or `conda` install it as follows:\n\n" + " $ python -m pip install tomli_w # using pip\n" + " $ conda install tomli_w # or using conda" + ) from None + + +def encode( + obj: Any, + *, + enc_hook: Optional[Callable[[Any], Any]] = None, + order: Literal[None, "deterministic", "sorted"] = None, +) -> bytes: + """Serialize an object as TOML. + + Parameters + ---------- + obj : Any + The object to serialize. + enc_hook : callable, optional + A callable to call for objects that aren't supported msgspec types. + Takes the unsupported object and should return a supported object, or + raise a ``NotImplementedError`` if unsupported. + order : {None, 'deterministic', 'sorted'}, optional + The ordering to use when encoding unordered compound types. + + - ``None``: All objects are encoded in the most efficient manner + matching their in-memory representations. The default. + - `'deterministic'`: Unordered collections (sets, dicts) are sorted to + ensure a consistent output between runs. Useful when + comparison/hashing of the encoded binary output is necessary. + - `'sorted'`: Like `'deterministic'`, but *all* object-like types + (structs, dataclasses, ...) are also sorted by field name before + encoding. This is slower than `'deterministic'`, but may produce more + human-readable output. + + Returns + ------- + data : bytes + The serialized object. + + See Also + -------- + decode + """ + toml = _import_tomli_w() + msg = _to_builtins( + obj, + builtin_types=(_datetime.datetime, _datetime.date, _datetime.time), + str_keys=True, + enc_hook=enc_hook, + order=order, + ) + return toml.dumps(msg).encode("utf-8") + + +T = TypeVar("T") + + +@overload +def decode( + buf: Union[Buffer, str], + *, + strict: bool = True, + dec_hook: Optional[Callable[[type, Any], Any]] = None, +) -> Any: + pass + + +@overload +def decode( + buf: Union[Buffer, str], + *, + type: Type[T] = ..., + strict: bool = True, + dec_hook: Optional[Callable[[type, Any], Any]] = None, +) -> T: + pass + + +@overload +def decode( + buf: Union[Buffer, str], + *, + type: Any = ..., + strict: bool = True, + dec_hook: Optional[Callable[[type, Any], Any]] = None, +) -> Any: + pass + + +def decode(buf, *, type=Any, strict=True, dec_hook=None): + """Deserialize an object from TOML. + + Parameters + ---------- + buf : bytes-like or str + The message to decode. + type : type, optional + A Python type (in type annotation form) to decode the object as. If + provided, the message will be type checked and decoded as the specified + type. Defaults to `Any`, in which case the message will be decoded + using the default TOML types. + strict : bool, optional + Whether type coercion rules should be strict. Setting to False enables + a wider set of coercion rules from string to non-string types for all + values. Default is True. + dec_hook : callable, optional + An optional callback for handling decoding custom types. Should have + the signature ``dec_hook(type: Type, obj: Any) -> Any``, where ``type`` + is the expected message type, and ``obj`` is the decoded representation + composed of only basic TOML types. This hook should transform ``obj`` + into type ``type``, or raise a ``NotImplementedError`` if unsupported. + + Returns + ------- + obj : Any + The deserialized object. + + See Also + -------- + encode + """ + toml = _import_tomllib() + if isinstance(buf, str): + str_buf = buf + elif isinstance(buf, (bytes, bytearray)): + str_buf = buf.decode("utf-8") + else: + # call `memoryview` first, since `bytes(1)` is actually valid + str_buf = bytes(memoryview(buf)).decode("utf-8") + try: + obj = toml.loads(str_buf) + except toml.TOMLDecodeError as exc: + raise _DecodeError(str(exc)) from None + + if type is Any: + return obj + return _convert( + obj, + type, + builtin_types=(_datetime.datetime, _datetime.date, _datetime.time), + str_keys=True, + strict=strict, + dec_hook=dec_hook, + ) diff --git a/.venv/lib/python3.11/site-packages/msgspec/yaml.py b/.venv/lib/python3.11/site-packages/msgspec/yaml.py new file mode 100644 index 0000000000000000000000000000000000000000..e8f6abc5fbc5a9f18414617ccdfad0c82f9252a7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/msgspec/yaml.py @@ -0,0 +1,192 @@ +from __future__ import annotations + +import datetime as _datetime +from typing import TYPE_CHECKING, overload, TypeVar, Any + +from . import ( + DecodeError as _DecodeError, + convert as _convert, + to_builtins as _to_builtins, +) + +if TYPE_CHECKING: + from typing import Callable, Optional, Type, Union, Literal + from typing_extensions import Buffer + + +__all__ = ("encode", "decode") + + +def __dir__(): + return __all__ + + +def _import_pyyaml(name): + try: + import yaml # type: ignore + except ImportError: + raise ImportError( + f"`msgspec.yaml.{name}` requires PyYAML be installed.\n\n" + "Please either `pip` or `conda` install it as follows:\n\n" + " $ python -m pip install pyyaml # using pip\n" + " $ conda install pyyaml # or using conda" + ) from None + else: + return yaml + + +def encode( + obj: Any, + *, + enc_hook: Optional[Callable[[Any], Any]] = None, + order: Literal[None, "deterministic", "sorted"] = None, +) -> bytes: + """Serialize an object as YAML. + + Parameters + ---------- + obj : Any + The object to serialize. + enc_hook : callable, optional + A callable to call for objects that aren't supported msgspec types. + Takes the unsupported object and should return a supported object, or + raise a ``NotImplementedError`` if unsupported. + order : {None, 'deterministic', 'sorted'}, optional + The ordering to use when encoding unordered compound types. + + - ``None``: All objects are encoded in the most efficient manner + matching their in-memory representations. The default. + - `'deterministic'`: Unordered collections (sets, dicts) are sorted to + ensure a consistent output between runs. Useful when + comparison/hashing of the encoded binary output is necessary. + - `'sorted'`: Like `'deterministic'`, but *all* object-like types + (structs, dataclasses, ...) are also sorted by field name before + encoding. This is slower than `'deterministic'`, but may produce more + human-readable output. + + Returns + ------- + data : bytes + The serialized object. + + Notes + ----- + This function requires that the third-party `PyYAML library + `_ is installed. + + See Also + -------- + decode + """ + yaml = _import_pyyaml("encode") + # Use the C extension if available + Dumper = getattr(yaml, "CSafeDumper", yaml.SafeDumper) + + return yaml.dump_all( + [ + _to_builtins( + obj, + builtin_types=(_datetime.datetime, _datetime.date), + enc_hook=enc_hook, + order=order, + ) + ], + encoding="utf-8", + Dumper=Dumper, + allow_unicode=True, + sort_keys=False, + ) + + +T = TypeVar("T") + + +@overload +def decode( + buf: Union[Buffer, str], + *, + strict: bool = True, + dec_hook: Optional[Callable[[type, Any], Any]] = None, +) -> Any: + pass + + +@overload +def decode( + buf: Union[bytes, str], + *, + type: Type[T] = ..., + strict: bool = True, + dec_hook: Optional[Callable[[type, Any], Any]] = None, +) -> T: + pass + + +@overload +def decode( + buf: Union[bytes, str], + *, + type: Any = ..., + strict: bool = True, + dec_hook: Optional[Callable[[type, Any], Any]] = None, +) -> Any: + pass + + +def decode(buf, *, type=Any, strict=True, dec_hook=None): + """Deserialize an object from YAML. + + Parameters + ---------- + buf : bytes-like or str + The message to decode. + type : type, optional + A Python type (in type annotation form) to decode the object as. If + provided, the message will be type checked and decoded as the specified + type. Defaults to `Any`, in which case the message will be decoded + using the default YAML types. + strict : bool, optional + Whether type coercion rules should be strict. Setting to False enables + a wider set of coercion rules from string to non-string types for all + values. Default is True. + dec_hook : callable, optional + An optional callback for handling decoding custom types. Should have + the signature ``dec_hook(type: Type, obj: Any) -> Any``, where ``type`` + is the expected message type, and ``obj`` is the decoded representation + composed of only basic YAML types. This hook should transform ``obj`` + into type ``type``, or raise a ``NotImplementedError`` if unsupported. + + Returns + ------- + obj : Any + The deserialized object. + + Notes + ----- + This function requires that the third-party `PyYAML library + `_ is installed. + + See Also + -------- + encode + """ + yaml = _import_pyyaml("decode") + # Use the C extension if available + Loader = getattr(yaml, "CSafeLoader", yaml.SafeLoader) + if not isinstance(buf, (str, bytes)): + # call `memoryview` first, since `bytes(1)` is actually valid + buf = bytes(memoryview(buf)) + try: + obj = yaml.load(buf, Loader) + except yaml.YAMLError as exc: + raise _DecodeError(str(exc)) from None + + if type is Any: + return obj + return _convert( + obj, + type, + builtin_types=(_datetime.datetime, _datetime.date), + strict=strict, + dec_hook=dec_hook, + ) diff --git a/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/LICENSE.txt b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..100b4bffb00abd785f61fca42fea2ab74a70d7f7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/LICENSE.txt @@ -0,0 +1,37 @@ +NetworkX is distributed with the 3-clause BSD license. + +:: + + Copyright (C) 2004-2024, NetworkX Developers + Aric Hagberg + Dan Schult + Pieter Swart + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the NetworkX Developers nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/METADATA b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..d58e657ddce0e7c75a20b69ec6e09af64db5c1aa --- /dev/null +++ b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/METADATA @@ -0,0 +1,165 @@ +Metadata-Version: 2.1 +Name: networkx +Version: 3.4.2 +Summary: Python package for creating and manipulating graphs and networks +Author-email: Aric Hagberg +Maintainer-email: NetworkX Developers +Project-URL: Homepage, https://networkx.org/ +Project-URL: Bug Tracker, https://github.com/networkx/networkx/issues +Project-URL: Documentation, https://networkx.org/documentation/stable/ +Project-URL: Source Code, https://github.com/networkx/networkx +Keywords: Networks,Graph Theory,Mathematics,network,graph,discrete mathematics,math +Platform: Linux +Platform: Mac OSX +Platform: Windows +Platform: Unix +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Science/Research +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Scientific/Engineering :: Bio-Informatics +Classifier: Topic :: Scientific/Engineering :: Information Analysis +Classifier: Topic :: Scientific/Engineering :: Mathematics +Classifier: Topic :: Scientific/Engineering :: Physics +Requires-Python: >=3.10 +Description-Content-Type: text/x-rst +License-File: LICENSE.txt +Provides-Extra: default +Requires-Dist: numpy >=1.24 ; extra == 'default' +Requires-Dist: scipy !=1.11.0,!=1.11.1,>=1.10 ; extra == 'default' +Requires-Dist: matplotlib >=3.7 ; extra == 'default' +Requires-Dist: pandas >=2.0 ; extra == 'default' +Provides-Extra: developer +Requires-Dist: changelist ==0.5 ; extra == 'developer' +Requires-Dist: pre-commit >=3.2 ; extra == 'developer' +Requires-Dist: mypy >=1.1 ; extra == 'developer' +Requires-Dist: rtoml ; extra == 'developer' +Provides-Extra: doc +Requires-Dist: sphinx >=7.3 ; extra == 'doc' +Requires-Dist: pydata-sphinx-theme >=0.15 ; extra == 'doc' +Requires-Dist: sphinx-gallery >=0.16 ; extra == 'doc' +Requires-Dist: numpydoc >=1.8.0 ; extra == 'doc' +Requires-Dist: pillow >=9.4 ; extra == 'doc' +Requires-Dist: texext >=0.6.7 ; extra == 'doc' +Requires-Dist: myst-nb >=1.1 ; extra == 'doc' +Requires-Dist: intersphinx-registry ; extra == 'doc' +Provides-Extra: example +Requires-Dist: osmnx >=1.9 ; extra == 'example' +Requires-Dist: momepy >=0.7.2 ; extra == 'example' +Requires-Dist: contextily >=1.6 ; extra == 'example' +Requires-Dist: seaborn >=0.13 ; extra == 'example' +Requires-Dist: cairocffi >=1.7 ; extra == 'example' +Requires-Dist: igraph >=0.11 ; extra == 'example' +Requires-Dist: scikit-learn >=1.5 ; extra == 'example' +Provides-Extra: extra +Requires-Dist: lxml >=4.6 ; extra == 'extra' +Requires-Dist: pygraphviz >=1.14 ; extra == 'extra' +Requires-Dist: pydot >=3.0.1 ; extra == 'extra' +Requires-Dist: sympy >=1.10 ; extra == 'extra' +Provides-Extra: test +Requires-Dist: pytest >=7.2 ; extra == 'test' +Requires-Dist: pytest-cov >=4.0 ; extra == 'test' + +NetworkX +======== + + +.. image:: + https://github.com/networkx/networkx/workflows/test/badge.svg?branch=main + :target: https://github.com/networkx/networkx/actions?query=workflow%3Atest + +.. image:: + https://codecov.io/gh/networkx/networkx/branch/main/graph/badge.svg? + :target: https://app.codecov.io/gh/networkx/networkx/branch/main + +.. image:: + https://img.shields.io/pypi/v/networkx.svg? + :target: https://pypi.python.org/pypi/networkx + +.. image:: + https://img.shields.io/pypi/l/networkx.svg? + :target: https://github.com/networkx/networkx/blob/main/LICENSE.txt + +.. image:: + https://img.shields.io/pypi/pyversions/networkx.svg? + :target: https://pypi.python.org/pypi/networkx + +.. image:: + https://img.shields.io/github/labels/networkx/networkx/good%20first%20issue?color=green&label=contribute + :target: https://github.com/networkx/networkx/contribute + + +NetworkX is a Python package for the creation, manipulation, +and study of the structure, dynamics, and functions +of complex networks. + +- **Website (including documentation):** https://networkx.org +- **Mailing list:** https://groups.google.com/forum/#!forum/networkx-discuss +- **Source:** https://github.com/networkx/networkx +- **Bug reports:** https://github.com/networkx/networkx/issues +- **Report a security vulnerability:** https://tidelift.com/security +- **Tutorial:** https://networkx.org/documentation/latest/tutorial.html +- **GitHub Discussions:** https://github.com/networkx/networkx/discussions +- **Discord (Scientific Python) invite link:** https://discord.com/invite/vur45CbwMz +- **NetworkX meetings calendar (open to all):** https://scientific-python.org/calendars/networkx.ics + +Simple example +-------------- + +Find the shortest path between two nodes in an undirected graph: + +.. code:: pycon + + >>> import networkx as nx + >>> G = nx.Graph() + >>> G.add_edge("A", "B", weight=4) + >>> G.add_edge("B", "D", weight=2) + >>> G.add_edge("A", "C", weight=3) + >>> G.add_edge("C", "D", weight=4) + >>> nx.shortest_path(G, "A", "D", weight="weight") + ['A', 'B', 'D'] + +Install +------- + +Install the latest released version of NetworkX: + +.. code:: shell + + $ pip install networkx + +Install with all optional dependencies: + +.. code:: shell + + $ pip install networkx[default] + +For additional details, +please see the `installation guide `_. + +Bugs +---- + +Please report any bugs that you find `here `_. +Or, even better, fork the repository on `GitHub `_ +and create a pull request (PR). We welcome all changes, big or small, and we +will help you make the PR if you are new to `git` (just ask on the issue and/or +see the `contributor guide `_). + +License +------- + +Released under the `3-Clause BSD license `_:: + + Copyright (C) 2004-2024 NetworkX Developers + Aric Hagberg + Dan Schult + Pieter Swart diff --git a/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/RECORD b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..86f6fbeaca33b81f4c5ca5da69ed1f22c3064594 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/RECORD @@ -0,0 +1,1149 @@ +networkx-3.4.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +networkx-3.4.2.dist-info/LICENSE.txt,sha256=W0M7kPdV65u9Bv7_HRpPXyMsUgihhWlBmeRfqV12J5I,1763 +networkx-3.4.2.dist-info/METADATA,sha256=LlJl3ah27zxE_vqelVNJm8VkyJoWyV44va-bq8VW0dc,6349 +networkx-3.4.2.dist-info/RECORD,, +networkx-3.4.2.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91 +networkx-3.4.2.dist-info/entry_points.txt,sha256=H2jZaDsDJ_i9H2SwWpwuFel8BrZ9xHKuvh-DQAWW9lQ,94 +networkx-3.4.2.dist-info/top_level.txt,sha256=s3Mk-7KOlu-kD39w8Xg_KXoP5Z_MVvgB-upkyuOE4Hk,9 +networkx/__init__.py,sha256=vV-bYyml9JK5OV8Ic_dctL5ZGR5NqwF4fzd4msR2b9U,1274 +networkx/__pycache__/__init__.cpython-311.pyc,, +networkx/__pycache__/conftest.cpython-311.pyc,, +networkx/__pycache__/convert.cpython-311.pyc,, +networkx/__pycache__/convert_matrix.cpython-311.pyc,, +networkx/__pycache__/exception.cpython-311.pyc,, +networkx/__pycache__/lazy_imports.cpython-311.pyc,, +networkx/__pycache__/relabel.cpython-311.pyc,, +networkx/algorithms/__init__.py,sha256=oij1HDNcE7GhTPAtuHYT8eGZdH4K_vYaha51X5XoUCY,6559 +networkx/algorithms/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/__pycache__/asteroidal.cpython-311.pyc,, +networkx/algorithms/__pycache__/boundary.cpython-311.pyc,, +networkx/algorithms/__pycache__/bridges.cpython-311.pyc,, +networkx/algorithms/__pycache__/broadcasting.cpython-311.pyc,, +networkx/algorithms/__pycache__/chains.cpython-311.pyc,, +networkx/algorithms/__pycache__/chordal.cpython-311.pyc,, +networkx/algorithms/__pycache__/clique.cpython-311.pyc,, +networkx/algorithms/__pycache__/cluster.cpython-311.pyc,, +networkx/algorithms/__pycache__/communicability_alg.cpython-311.pyc,, +networkx/algorithms/__pycache__/core.cpython-311.pyc,, +networkx/algorithms/__pycache__/covering.cpython-311.pyc,, +networkx/algorithms/__pycache__/cuts.cpython-311.pyc,, +networkx/algorithms/__pycache__/cycles.cpython-311.pyc,, +networkx/algorithms/__pycache__/d_separation.cpython-311.pyc,, +networkx/algorithms/__pycache__/dag.cpython-311.pyc,, +networkx/algorithms/__pycache__/distance_measures.cpython-311.pyc,, +networkx/algorithms/__pycache__/distance_regular.cpython-311.pyc,, +networkx/algorithms/__pycache__/dominance.cpython-311.pyc,, +networkx/algorithms/__pycache__/dominating.cpython-311.pyc,, +networkx/algorithms/__pycache__/efficiency_measures.cpython-311.pyc,, +networkx/algorithms/__pycache__/euler.cpython-311.pyc,, +networkx/algorithms/__pycache__/graph_hashing.cpython-311.pyc,, +networkx/algorithms/__pycache__/graphical.cpython-311.pyc,, +networkx/algorithms/__pycache__/hierarchy.cpython-311.pyc,, +networkx/algorithms/__pycache__/hybrid.cpython-311.pyc,, +networkx/algorithms/__pycache__/isolate.cpython-311.pyc,, +networkx/algorithms/__pycache__/link_prediction.cpython-311.pyc,, +networkx/algorithms/__pycache__/lowest_common_ancestors.cpython-311.pyc,, +networkx/algorithms/__pycache__/matching.cpython-311.pyc,, +networkx/algorithms/__pycache__/mis.cpython-311.pyc,, +networkx/algorithms/__pycache__/moral.cpython-311.pyc,, +networkx/algorithms/__pycache__/node_classification.cpython-311.pyc,, +networkx/algorithms/__pycache__/non_randomness.cpython-311.pyc,, +networkx/algorithms/__pycache__/planar_drawing.cpython-311.pyc,, +networkx/algorithms/__pycache__/planarity.cpython-311.pyc,, +networkx/algorithms/__pycache__/polynomials.cpython-311.pyc,, +networkx/algorithms/__pycache__/reciprocity.cpython-311.pyc,, +networkx/algorithms/__pycache__/regular.cpython-311.pyc,, +networkx/algorithms/__pycache__/richclub.cpython-311.pyc,, +networkx/algorithms/__pycache__/similarity.cpython-311.pyc,, +networkx/algorithms/__pycache__/simple_paths.cpython-311.pyc,, +networkx/algorithms/__pycache__/smallworld.cpython-311.pyc,, +networkx/algorithms/__pycache__/smetric.cpython-311.pyc,, +networkx/algorithms/__pycache__/sparsifiers.cpython-311.pyc,, +networkx/algorithms/__pycache__/structuralholes.cpython-311.pyc,, +networkx/algorithms/__pycache__/summarization.cpython-311.pyc,, +networkx/algorithms/__pycache__/swap.cpython-311.pyc,, +networkx/algorithms/__pycache__/threshold.cpython-311.pyc,, +networkx/algorithms/__pycache__/time_dependent.cpython-311.pyc,, +networkx/algorithms/__pycache__/tournament.cpython-311.pyc,, +networkx/algorithms/__pycache__/triads.cpython-311.pyc,, +networkx/algorithms/__pycache__/vitality.cpython-311.pyc,, +networkx/algorithms/__pycache__/voronoi.cpython-311.pyc,, +networkx/algorithms/__pycache__/walks.cpython-311.pyc,, +networkx/algorithms/__pycache__/wiener.cpython-311.pyc,, +networkx/algorithms/approximation/__init__.py,sha256=CydjSsAU3qlxRwDTvgLyjQRgIuhL1e1STrjPdfqtfSE,1178 +networkx/algorithms/approximation/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/clique.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/clustering_coefficient.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/connectivity.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/distance_measures.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/dominating_set.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/kcomponents.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/matching.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/maxcut.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/ramsey.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/steinertree.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/traveling_salesman.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/treewidth.cpython-311.pyc,, +networkx/algorithms/approximation/__pycache__/vertex_cover.cpython-311.pyc,, +networkx/algorithms/approximation/clique.py,sha256=b4cnWMJXmmgCyjMI8A_doHZeKS_RQbGqm2L01OpT_Jg,7691 +networkx/algorithms/approximation/clustering_coefficient.py,sha256=SWpSLEhW3DJc1n2fHlSbJSGg3wdoJkN5Y4_tnntn0Ws,2164 +networkx/algorithms/approximation/connectivity.py,sha256=aVXSfUiWEG4gUL0R1u6WZ-h-wheuLP1_suO_pRFB8M4,13118 +networkx/algorithms/approximation/distance_measures.py,sha256=UEkmKagNw9sj8kiUDdbAeYuzvZ31pgLMXqzliqMkG84,5805 +networkx/algorithms/approximation/dominating_set.py,sha256=5fC90w1CgYR4Xkpqact8iukKY0i57bMmyJW-A9CToUQ,4710 +networkx/algorithms/approximation/kcomponents.py,sha256=MDkoyQbk0gSAm3ZZK35VOsiLJDv7wiDsxfzH5O-ObFs,13285 +networkx/algorithms/approximation/matching.py,sha256=PFof5m9AIq9Xr5Kaa_-mYxI1IBBP7HEkjf-R9wVE3bo,1175 +networkx/algorithms/approximation/maxcut.py,sha256=eTQZqsDQAAUaufni-aDJAY2UzIcajDhRMdj-AcqVkPs,4333 +networkx/algorithms/approximation/ramsey.py,sha256=W5tX7BOQJIM_qNsBeUhCXVWMD8DFdeTycYyk08k4Sqk,1358 +networkx/algorithms/approximation/steinertree.py,sha256=dbPciMrLHmb1XWa0v7-v3qNFJ3Z7pZD0n4RAGF8eob4,8048 +networkx/algorithms/approximation/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/approximation/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_approx_clust_coeff.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_clique.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_connectivity.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_distance_measures.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_dominating_set.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_kcomponents.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_matching.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_maxcut.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_ramsey.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_steinertree.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_traveling_salesman.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_treewidth.cpython-311.pyc,, +networkx/algorithms/approximation/tests/__pycache__/test_vertex_cover.cpython-311.pyc,, +networkx/algorithms/approximation/tests/test_approx_clust_coeff.py,sha256=PGOVEKf2BcJu1vvjZrgTlBBpwM8V6t7yCANjyS9nWF0,1171 +networkx/algorithms/approximation/tests/test_clique.py,sha256=s6HQB-lK3RAu_ftpe2NvIiMu0Ol8tpAdbGvWzucNL6k,3021 +networkx/algorithms/approximation/tests/test_connectivity.py,sha256=gDG6tsgP3ux7Dgu0x7r0nso7_yknIxicV42Gq0It5pc,5952 +networkx/algorithms/approximation/tests/test_distance_measures.py,sha256=axgOojplJIgXdopgkjxjAgvzGTQ1FV1oJ5NG-7ICalo,2023 +networkx/algorithms/approximation/tests/test_dominating_set.py,sha256=l4pBDY7pK7Fxw-S4tOlNcxf-j2j5GpHPJ9f4TrMs1sI,2686 +networkx/algorithms/approximation/tests/test_kcomponents.py,sha256=tTljP1FHzXrUwi-oBz5AQcibRw1NgR4N5UE0a2OrOUA,9346 +networkx/algorithms/approximation/tests/test_matching.py,sha256=nitZncaM0605kaIu1NO6_5TFV2--nohUCO46XTD_lnM,186 +networkx/algorithms/approximation/tests/test_maxcut.py,sha256=U6CDZFSLfYDII-1nX9XB7avSz10kTx88vNazJFoLQ1k,2804 +networkx/algorithms/approximation/tests/test_ramsey.py,sha256=h36Ol39csHbIoTDBxbxMgn4371iVUGZ3a2N6l7d56lI,1143 +networkx/algorithms/approximation/tests/test_steinertree.py,sha256=rxkj8OWDWFqSE5MI3XC4NSOgyNUzYVfxKSskutOPtbQ,9671 +networkx/algorithms/approximation/tests/test_traveling_salesman.py,sha256=lLnnWvs88JBkhkf4Cg8qBipSvRnjn9W9WvOKZ-Gew6Q,30842 +networkx/algorithms/approximation/tests/test_treewidth.py,sha256=MWFFcmjO0QxM8FS8iXSCtfGnk6eqG2kFyv1u2qnSeUo,9096 +networkx/algorithms/approximation/tests/test_vertex_cover.py,sha256=FobHNhG9CAMeB_AOEprUs-7XQdPoc1YvfmXhozDZ8pM,1942 +networkx/algorithms/approximation/traveling_salesman.py,sha256=af4HEUYtuoulBpAQZJT2zqoUu8x08NtL1cQL5uGqe9E,55943 +networkx/algorithms/approximation/treewidth.py,sha256=Yu944jTE9MODBo1QiZjxbAGmHiC5MXZZTNV1YrLfz9o,8216 +networkx/algorithms/approximation/vertex_cover.py,sha256=oIi_yg5O-IisnfmrSof1P4HD-fsZpW69RpvkR_SM5Og,2803 +networkx/algorithms/assortativity/__init__.py,sha256=ov3HRRbeYB_6Qezvxp1OTl77GBpw-EWkWGUzgfT8G9c,294 +networkx/algorithms/assortativity/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/assortativity/__pycache__/connectivity.cpython-311.pyc,, +networkx/algorithms/assortativity/__pycache__/correlation.cpython-311.pyc,, +networkx/algorithms/assortativity/__pycache__/mixing.cpython-311.pyc,, +networkx/algorithms/assortativity/__pycache__/neighbor_degree.cpython-311.pyc,, +networkx/algorithms/assortativity/__pycache__/pairs.cpython-311.pyc,, +networkx/algorithms/assortativity/connectivity.py,sha256=-V0C5MTqtErl86N-gyrZ487MUyiG5x1QFEZKurOpIJA,4220 +networkx/algorithms/assortativity/correlation.py,sha256=0rc4FDi-e8eQRia7gpFrTqjIy-J7V2GtSwOb4QN6WZk,8689 +networkx/algorithms/assortativity/mixing.py,sha256=RRqqkuVwo71LosJLDbeVCVBikqC7I_XZORdsonQsf9Y,7586 +networkx/algorithms/assortativity/neighbor_degree.py,sha256=UMaQWKBkOZ0ZgC8xGt5fXEz8OL1rgwYjt2zKbKEqofI,5282 +networkx/algorithms/assortativity/pairs.py,sha256=w7xnaWxDDteluHoCsqunLlcM6nlcBenO_5Nz87oOEnE,3841 +networkx/algorithms/assortativity/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/assortativity/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/assortativity/tests/__pycache__/base_test.cpython-311.pyc,, +networkx/algorithms/assortativity/tests/__pycache__/test_connectivity.cpython-311.pyc,, +networkx/algorithms/assortativity/tests/__pycache__/test_correlation.cpython-311.pyc,, +networkx/algorithms/assortativity/tests/__pycache__/test_mixing.cpython-311.pyc,, +networkx/algorithms/assortativity/tests/__pycache__/test_neighbor_degree.cpython-311.pyc,, +networkx/algorithms/assortativity/tests/__pycache__/test_pairs.cpython-311.pyc,, +networkx/algorithms/assortativity/tests/base_test.py,sha256=MNeQMLA3oBUCM8TSyNbBQ_uW0nDc1GEZYdNdUwePAm4,2651 +networkx/algorithms/assortativity/tests/test_connectivity.py,sha256=Js841GQLYTLWvc6xZhnyqj-JtyrnS0ska1TFYntxyXA,4978 +networkx/algorithms/assortativity/tests/test_correlation.py,sha256=1_D9GjLDnlT8Uy28lUn2fS1AHp2XBwiMpIl2OhRNDXk,5069 +networkx/algorithms/assortativity/tests/test_mixing.py,sha256=u-LIccNn-TeIAM766UtzUJQlY7NAbxF4EsUoKINzmlo,6820 +networkx/algorithms/assortativity/tests/test_neighbor_degree.py,sha256=ODP2M8jCaFr_l3ODwpwaz20-KqU2IFaEfJRBK53mpE8,3968 +networkx/algorithms/assortativity/tests/test_pairs.py,sha256=t05qP_-gfkbiR6aTLtE1owYl9otBSsuJcRkuZsa63UQ,3008 +networkx/algorithms/asteroidal.py,sha256=jbN_MmETkCGpSvUWW6W8_Qqa3Syay2BwkX9odcyQFfk,5865 +networkx/algorithms/bipartite/__init__.py,sha256=811Xu3D1Qx8ncqRshHoN3gWZ_A04Hb2qxzoGuc5vBa4,3825 +networkx/algorithms/bipartite/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/basic.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/centrality.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/cluster.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/covering.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/edgelist.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/extendability.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/generators.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/matching.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/matrix.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/projection.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/redundancy.cpython-311.pyc,, +networkx/algorithms/bipartite/__pycache__/spectral.cpython-311.pyc,, +networkx/algorithms/bipartite/basic.py,sha256=JPC2gGuPvFA6q2CuI5mqLX_9QUGxrsQ8cIwcS0e9P4U,8375 +networkx/algorithms/bipartite/centrality.py,sha256=G280bAqeyXyCmes5NpRqUv2Tc-EHWrMshJ3_f4uqV9U,9156 +networkx/algorithms/bipartite/cluster.py,sha256=ZDAo7NM69woVY8fNwRjbAz6Wwb99CE650lMmv1v0Omc,6935 +networkx/algorithms/bipartite/covering.py,sha256=B3ITc016Kk70NBv-1lb30emXnfjlMIQJ7M-FIPCZip0,2163 +networkx/algorithms/bipartite/edgelist.py,sha256=l6JqWqedRGde0sOz7oLK-xe9azq_VEYec0-GPlFUIbg,11364 +networkx/algorithms/bipartite/extendability.py,sha256=OrYHlS4ruQST-dlQOuleiqHFKpVVNOvrG5aDNFgfckg,3989 +networkx/algorithms/bipartite/generators.py,sha256=PfnR6S9gKw5OK_JuGMChltWxyd_i8_KYFq1WpRlsL-A,20439 +networkx/algorithms/bipartite/matching.py,sha256=xsT048Ok_uM0Zhpdc34qswV1zaCGOlJQnsbGTDsm5oo,21637 +networkx/algorithms/bipartite/matrix.py,sha256=RuoILyPHjORW0Y_Bcf-vSH_K6-bSUjiTN9JTjnik5HE,6156 +networkx/algorithms/bipartite/projection.py,sha256=YIUlreqQQ6IPE37OXF32zNIdzEGeyR8aY-7iUENZYVA,17252 +networkx/algorithms/bipartite/redundancy.py,sha256=Mnkz0LbNXS0haxtLQ5naorR6C2tNLUbkNS_3PANFxbg,3402 +networkx/algorithms/bipartite/spectral.py,sha256=fu2grV1the_e_G-e_lUdhk8Y9XFe6_p2tPmx3RKntFw,1902 +networkx/algorithms/bipartite/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/bipartite/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_basic.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_centrality.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_cluster.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_covering.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_edgelist.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_extendability.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_generators.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_matching.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_matrix.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_project.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_redundancy.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/__pycache__/test_spectral_bipartivity.cpython-311.pyc,, +networkx/algorithms/bipartite/tests/test_basic.py,sha256=gzbtsQqPi85BznX5REdGBBJVyr9aH4nO06c3eEI4634,4291 +networkx/algorithms/bipartite/tests/test_centrality.py,sha256=PABPbrIyoAziEEQKXsZLl2jT36N8DZpNRzEO-jeu89Y,6362 +networkx/algorithms/bipartite/tests/test_cluster.py,sha256=O0VsPVt8vcY_E1FjjLJX2xaUbhVViI5MP6_gLTbEpos,2801 +networkx/algorithms/bipartite/tests/test_covering.py,sha256=EGVxYQsyLXE5yY5N5u6D4wZq2NcZe9OwlYpEuY6DF3o,1221 +networkx/algorithms/bipartite/tests/test_edgelist.py,sha256=fK35tSekG_-9Ewr5Bhl1bRdwAy247Z9zZ4dQFFDQ9xw,8471 +networkx/algorithms/bipartite/tests/test_extendability.py,sha256=XgPmg6bWiHAF1iQ75_r2NqUxExOQNZRUeYUPzlCa5-E,7043 +networkx/algorithms/bipartite/tests/test_generators.py,sha256=DB9NEapShvX9L5Dpj1OF8bs8LOu5n3zvew60WZhYChQ,13241 +networkx/algorithms/bipartite/tests/test_matching.py,sha256=3-2DMl3tF-g4_xNHvEuY4fZW7S5cqMTO_GUpcz1gkeQ,11973 +networkx/algorithms/bipartite/tests/test_matrix.py,sha256=1MymSi1dCUqAhTt82O2nBzjriNQtFRk6TxWGJ2FBW4k,3094 +networkx/algorithms/bipartite/tests/test_project.py,sha256=FBjkys3JYYzEG4aq_CsQrtm41edZibWI_uDAQ0b4wqM,15134 +networkx/algorithms/bipartite/tests/test_redundancy.py,sha256=utxcrQaTrkcEN3kqtObgKNpLZai8B5sMAqLyXatOuUo,917 +networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py,sha256=1jGDgrIx3-TWOCNMSC4zxmZa7LHyMU69DXh3h12Bjag,2358 +networkx/algorithms/boundary.py,sha256=q3JtWssmn9yCB2mBdkjKZjkaxmBhkG9_dJOzmuJiQos,5339 +networkx/algorithms/bridges.py,sha256=CsxueHDOB9aFM5D8GP83u1ZKGzxF193XBpvmMReAcQk,6066 +networkx/algorithms/broadcasting.py,sha256=eqqZJ7oDQVCl7P3-PLm-gthzSc-kWnF2D1Yv42GXoGk,4890 +networkx/algorithms/centrality/__init__.py,sha256=Er3YoYoj76UfY4P6I0L-0fCQkO7mMU0b3NLsTT2RGWI,558 +networkx/algorithms/centrality/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/betweenness.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/betweenness_subset.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/closeness.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/current_flow_betweenness.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/current_flow_betweenness_subset.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/current_flow_closeness.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/degree_alg.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/dispersion.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/eigenvector.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/flow_matrix.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/group.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/harmonic.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/katz.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/laplacian.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/load.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/percolation.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/reaching.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/second_order.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/subgraph_alg.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/trophic.cpython-311.pyc,, +networkx/algorithms/centrality/__pycache__/voterank_alg.cpython-311.pyc,, +networkx/algorithms/centrality/betweenness.py,sha256=9kXlMR9T1IHDJ55x2fSMfjuLBy402AREJfQKUW1LfFo,14383 +networkx/algorithms/centrality/betweenness_subset.py,sha256=mkVJdEmR1G8kFoS-KN-jwhUyR_CUiB8DXneGqsqyB6U,9336 +networkx/algorithms/centrality/closeness.py,sha256=ehkntG-gApT9uhWJjGaEZQ-tEQ-hdxDT7luf-uVPNAE,10281 +networkx/algorithms/centrality/current_flow_betweenness.py,sha256=zZRqgrB06uDzgwWJ_FLUF3DSrgkER1tvakYZHX8DbSY,11848 +networkx/algorithms/centrality/current_flow_betweenness_subset.py,sha256=2qtLgf_3ft5qdDvHFrfYUt6zeQi42Nw7XBpSZRboJIA,8107 +networkx/algorithms/centrality/current_flow_closeness.py,sha256=IvecI8BZE4SgKayEXhKowIJw7S2fD_dN__N-f9TW-ME,3327 +networkx/algorithms/centrality/degree_alg.py,sha256=EFTA1b_GWUbmBy5R9beRQp7yh1X_NwZtk5L6is-mFGk,3894 +networkx/algorithms/centrality/dispersion.py,sha256=M12L2KiVPrC2-SyCXMF0kvxLelgcmvXJkLT_cBHoCTw,3631 +networkx/algorithms/centrality/eigenvector.py,sha256=LAxVqaT3LmuQw20__t1KrgLKPF1Cz-PkTaiSrgPC1FU,13623 +networkx/algorithms/centrality/flow_matrix.py,sha256=Y65m6VbWyYjNK0CInE_lufyEkKy9-TyPmBeXb-Gkz70,3834 +networkx/algorithms/centrality/group.py,sha256=-YaVfnJ6HKT6b1P-IhyUKtJvXk0ZSnC2Jz4XP6hjkyE,27960 +networkx/algorithms/centrality/harmonic.py,sha256=ZPp8FYFgSUZS0QBxUbzhi39qiv_EN7COirxZEYiTCIM,2847 +networkx/algorithms/centrality/katz.py,sha256=uVGHAyjqndSd4y4idHjkv0mUhmKmHU5vaEfNWfiKlzc,11042 +networkx/algorithms/centrality/laplacian.py,sha256=8-qloyxvFc33xlfpj7Xol8qeOvPAg_Z0BHVZGSxjnmc,5640 +networkx/algorithms/centrality/load.py,sha256=M2EdPX4gJEYGjMBIJMFKRWGI9uYHbFOWYxsILeaJuOE,6859 +networkx/algorithms/centrality/percolation.py,sha256=YJB8iYgbpjJ3EYK8pl26iSnjgfFsK31ufytRHnUTYYE,4419 +networkx/algorithms/centrality/reaching.py,sha256=OFWHlDUtCaQXHWxAfEgPpinej-0anLJQZsCvh3D8gME,7243 +networkx/algorithms/centrality/second_order.py,sha256=4CTboP95B6gUtAtSKLfeeE4s9oq0_3hXsXczxL6c_g8,5012 +networkx/algorithms/centrality/subgraph_alg.py,sha256=HtwSPYMRUxhaAuvMA90Qu2i1smXSpVpLRtHlBohnpSc,9513 +networkx/algorithms/centrality/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/centrality/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality_subset.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_closeness_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality_subset.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_current_flow_closeness.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_degree_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_dispersion.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_eigenvector_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_group.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_harmonic_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_katz_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_laplacian_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_load_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_percolation_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_reaching.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_second_order_centrality.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_subgraph.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_trophic.cpython-311.pyc,, +networkx/algorithms/centrality/tests/__pycache__/test_voterank.cpython-311.pyc,, +networkx/algorithms/centrality/tests/test_betweenness_centrality.py,sha256=pKoPAP1hnQSgrOxYeW5-LdUiFDANiwTn_NdOdgccbo8,26795 +networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py,sha256=HrHMcgOL69Z6y679SbqZIjkQOnqrYSz24gt17AJ9q-o,12554 +networkx/algorithms/centrality/tests/test_closeness_centrality.py,sha256=Ziz_LMgRJHT1pz_sgT4oCZPmOeWJL7OmfUSI8UCC1dI,10210 +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py,sha256=VOxx1A7iSGtdEbzJYea_sW_Hv0S71-oo1CVX7Rqd5RY,7870 +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py,sha256=JfRGgPuiF-vJu5fc2_pcJYREEboxcK_dmy-np39c4Aw,5839 +networkx/algorithms/centrality/tests/test_current_flow_closeness.py,sha256=vflQeoNKngrGUiRb3XNlm2X9wR4vKgMSW_sCyMUCQi8,1379 +networkx/algorithms/centrality/tests/test_degree_centrality.py,sha256=Jn_p5lThA3__ZBTDAORwo_EchjXKKkK1NwU_73HHI6M,4101 +networkx/algorithms/centrality/tests/test_dispersion.py,sha256=ROgl_5bGhcNXonNW3ylsvUcA0NCwynsQu_scic371Gw,1959 +networkx/algorithms/centrality/tests/test_eigenvector_centrality.py,sha256=A6REmarGOuDmq3GcSYemyadlFLv24sErIGLtDcL9GO4,5255 +networkx/algorithms/centrality/tests/test_group.py,sha256=833ME4tGlOGQZz8YANw4MSyeVPpjbyCdYh5X88GOprw,8685 +networkx/algorithms/centrality/tests/test_harmonic_centrality.py,sha256=wI7nStX_kIFJoZQY_i8DXXlZBOJzVnQfOP8yidX0PAU,3867 +networkx/algorithms/centrality/tests/test_katz_centrality.py,sha256=JL0bZZsJe2MQFL6urXgY82wCAwucUvhjaShYZPxpL6U,11240 +networkx/algorithms/centrality/tests/test_laplacian_centrality.py,sha256=vY-NULtr_U_GxUMwfAZB-iccxIRTiqqUN4Q8HRNpzSo,5916 +networkx/algorithms/centrality/tests/test_load_centrality.py,sha256=Vv3zSW89iELN-8KNbUclmkhOe1LzKdF7U_w34nYovIo,11343 +networkx/algorithms/centrality/tests/test_percolation_centrality.py,sha256=ycQ1fvEZZcWAfqL11urT7yHiEP77usJDSG25OQiDM2s,2591 +networkx/algorithms/centrality/tests/test_reaching.py,sha256=_JVeO1Ri-KybdnGCJ_yNPtJQmT_g77z0DAkU0JYFVGQ,5090 +networkx/algorithms/centrality/tests/test_second_order_centrality.py,sha256=ce0wQ4T33lu23wskzGUnBS7X4BSODlvAX1S5KxlLzOA,1999 +networkx/algorithms/centrality/tests/test_subgraph.py,sha256=vhE9Uh-_Hlk49k-ny6ORHCgqk7LWH8OHIYOEYM96uz0,3729 +networkx/algorithms/centrality/tests/test_trophic.py,sha256=_lmwb0_78iX_cxgUKHjCRCSxohVMkRrkKqSaB5QV3ys,8705 +networkx/algorithms/centrality/tests/test_voterank.py,sha256=tN5u7pKAnJ_4AiwhPW6EuJZz7FLIG2jYqLKcXFi2urk,1687 +networkx/algorithms/centrality/trophic.py,sha256=q--TsLcfGNCSet_A6oLVf7CGWQBvDxDOlkjozduZfxY,4679 +networkx/algorithms/centrality/voterank_alg.py,sha256=z_1eq8rSDadEO5W5BbAg1zuOJj2di4FUCkmOwiuK12I,3231 +networkx/algorithms/chains.py,sha256=PPiSq5-GsT1Lsf8fwtGwGDVf1hhv5ZLariWtfzkBbAw,6968 +networkx/algorithms/chordal.py,sha256=L-ILWdVLWE44OkWmEO_4bSo4z6Ro-_zLglfLfTrwdqQ,13411 +networkx/algorithms/clique.py,sha256=LrmXvK6KVcjDyUrF5S6JTC2PQ1kTf26Yeb0TjqNy_WA,25872 +networkx/algorithms/cluster.py,sha256=x7dIotmBaBU3yaIzphjAyA2B-FHS_iiQ5nF-FeinQlU,20359 +networkx/algorithms/coloring/__init__.py,sha256=P1cmqrAjcaCdObkNZ1e6Hp__ZpxBAhQx0iIipOVW8jg,182 +networkx/algorithms/coloring/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/coloring/__pycache__/equitable_coloring.cpython-311.pyc,, +networkx/algorithms/coloring/__pycache__/greedy_coloring.cpython-311.pyc,, +networkx/algorithms/coloring/equitable_coloring.py,sha256=uDcza6PD9qbvwVPUX1MBZbopQdrAEKNk6DpCFkc02tU,16315 +networkx/algorithms/coloring/greedy_coloring.py,sha256=6Jzcc4iW5KuRVFEEr15v8rBvik3g4maa7_wcjWyyRDI,20046 +networkx/algorithms/coloring/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/coloring/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/coloring/tests/__pycache__/test_coloring.cpython-311.pyc,, +networkx/algorithms/coloring/tests/test_coloring.py,sha256=7v_d1xanjYMZCa3dq2hE2hCcyexwWBTEFV5SoLgQDv4,23697 +networkx/algorithms/communicability_alg.py,sha256=0tZvZKY-_GUUB7GsRILxabS2jEpI51Udg5ADI9ADGZw,4545 +networkx/algorithms/community/__init__.py,sha256=0YrcAVLTxJt3u-htlaSPZ-XSRn0Jg-EQKCMRPmWuw-g,1179 +networkx/algorithms/community/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/asyn_fluid.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/centrality.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/community_utils.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/divisive.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/kclique.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/kernighan_lin.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/label_propagation.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/louvain.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/lukes.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/modularity_max.cpython-311.pyc,, +networkx/algorithms/community/__pycache__/quality.cpython-311.pyc,, +networkx/algorithms/community/asyn_fluid.py,sha256=0ktsoOa4JKBKiuE3wmGDcBSUgPlFdGvzNheqINtWKbk,5935 +networkx/algorithms/community/centrality.py,sha256=Yyv5kyf1hf_L7iQ_ZbG8_FAkP638Sc_3N4tCSoB6J1w,6635 +networkx/algorithms/community/community_utils.py,sha256=sUi-AcPYyGrYhnjI9ztt-vrSHLl28lKXxTJPfi5N0c8,908 +networkx/algorithms/community/divisive.py,sha256=yFcKfKkiI6FqEVlBVxLa1fbqI1Yeiqe_A5fpPnYvlAE,6655 +networkx/algorithms/community/kclique.py,sha256=DTr9iUT_XWv0S3Y79KQl6OXefjztNMc9SAHWhdFOxcU,2460 +networkx/algorithms/community/kernighan_lin.py,sha256=vPU8Mbpk7_NscMC-gorNoXhsQjkOhgK2YiKOo-u6DvY,4349 +networkx/algorithms/community/label_propagation.py,sha256=LhzAXSHFCPQ2kG_rPgXb06YKdppO7buApksCC4GI4w8,11878 +networkx/algorithms/community/louvain.py,sha256=zh5h16hRWzgTv9IUqWiiJKFntZhQbB_EHNYIGViwPas,15365 +networkx/algorithms/community/lukes.py,sha256=gzqnup95RR2UzUiPpIt8qkepzZ9dCWqHGQSVPIJDMx8,8115 +networkx/algorithms/community/modularity_max.py,sha256=gzyZrGHNMtTZyqpLFcJHxgzzIsar1m5DktScODoUngk,18082 +networkx/algorithms/community/quality.py,sha256=dVIkV-CFKdAou0WjgIDmfhnpIIqReRaeL4odg39XAYk,11939 +networkx/algorithms/community/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/community/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_asyn_fluid.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_centrality.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_divisive.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_kclique.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_kernighan_lin.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_label_propagation.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_louvain.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_lukes.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_modularity_max.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_quality.cpython-311.pyc,, +networkx/algorithms/community/tests/__pycache__/test_utils.cpython-311.pyc,, +networkx/algorithms/community/tests/test_asyn_fluid.py,sha256=UzAMxJzhN74qUinehR7B1rhU_vsigJ7-cRvcE6jdKyc,3332 +networkx/algorithms/community/tests/test_centrality.py,sha256=s8q4k5aThR0OgO9CDQk_PXMxfllmf5uC1GlvyUc_8EY,2932 +networkx/algorithms/community/tests/test_divisive.py,sha256=-Ee40OR-mPDReTngTEhbpx4_uLtNI7cqFkt8cZT9t5Y,3441 +networkx/algorithms/community/tests/test_kclique.py,sha256=iA0SBqwbDfaD2u7KM6ccs6LfgAQY_xxrnW05UIT_tFA,2413 +networkx/algorithms/community/tests/test_kernighan_lin.py,sha256=rcFDI9mTq1Nwsi251PwDgi1UoxTMPXAeSy2Cp6GtUQg,2710 +networkx/algorithms/community/tests/test_label_propagation.py,sha256=IHidFEv7MI781zsdk7XT848rLvLwDk2wBK1FjL-CRv4,7985 +networkx/algorithms/community/tests/test_louvain.py,sha256=TwW1nlSKWGJeIKr9QOJ8xGehSY6R0Nz01xsnFqzt0Oo,8071 +networkx/algorithms/community/tests/test_lukes.py,sha256=f_JU-EzY6PwXEkPN8kk5_3NVg6phlX0nrj1f57M49lk,3961 +networkx/algorithms/community/tests/test_modularity_max.py,sha256=XYyPuDkxL4CYFwnpTdU_qD4GydpqgiRAIJO3CHQN_m4,10617 +networkx/algorithms/community/tests/test_quality.py,sha256=sZEy10hh3zlelUmww5r2pk5LxpZAht06PC5zCHxV1bs,5275 +networkx/algorithms/community/tests/test_utils.py,sha256=gomD6rFgAaywxT1Yjdi4ozY-1rC0ina4jgfvWeCvwGE,704 +networkx/algorithms/components/__init__.py,sha256=Dt74KZWp_cJ_j0lL5hd_S50_hia5DKcC2SjuRnubr6M,173 +networkx/algorithms/components/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/components/__pycache__/attracting.cpython-311.pyc,, +networkx/algorithms/components/__pycache__/biconnected.cpython-311.pyc,, +networkx/algorithms/components/__pycache__/connected.cpython-311.pyc,, +networkx/algorithms/components/__pycache__/semiconnected.cpython-311.pyc,, +networkx/algorithms/components/__pycache__/strongly_connected.cpython-311.pyc,, +networkx/algorithms/components/__pycache__/weakly_connected.cpython-311.pyc,, +networkx/algorithms/components/attracting.py,sha256=6az3lgqWhHTXaWUUuOPZfW9t7okliAhooFRotQY5JoM,2712 +networkx/algorithms/components/biconnected.py,sha256=_9GJdPZgqusGKZLzqT9tUSj1XZr2DgohiT6hcHVyil4,12782 +networkx/algorithms/components/connected.py,sha256=r-jNJJkxoDtFcYiuoteyZb3a2oEHh0j0WBddwsXj_a4,4459 +networkx/algorithms/components/semiconnected.py,sha256=BaBMFlQ208vuHOo5y1xeV0PDEI3yDUfH6zFb_jkcVhQ,2030 +networkx/algorithms/components/strongly_connected.py,sha256=i41vDeazdNGqG4weufAKd6axaN2nBKmMzURZBs7WsLI,9542 +networkx/algorithms/components/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/components/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/components/tests/__pycache__/test_attracting.cpython-311.pyc,, +networkx/algorithms/components/tests/__pycache__/test_biconnected.cpython-311.pyc,, +networkx/algorithms/components/tests/__pycache__/test_connected.cpython-311.pyc,, +networkx/algorithms/components/tests/__pycache__/test_semiconnected.cpython-311.pyc,, +networkx/algorithms/components/tests/__pycache__/test_strongly_connected.cpython-311.pyc,, +networkx/algorithms/components/tests/__pycache__/test_weakly_connected.cpython-311.pyc,, +networkx/algorithms/components/tests/test_attracting.py,sha256=b3N3ZR9E5gLSQWGgaqhcRfRs4KBW6GnnkVYeAjdxC_o,2243 +networkx/algorithms/components/tests/test_biconnected.py,sha256=N-J-dgBgI77ytYUUrXjduLxtDydH7jS-af98fyPBkYc,6036 +networkx/algorithms/components/tests/test_connected.py,sha256=KMYm55BpbFdGXk_B2WozS9rIagQROd7_k0LT3HFQmr4,4815 +networkx/algorithms/components/tests/test_semiconnected.py,sha256=q860lIxZF5M2JmDwwdzy-SGSXnrillOefMx23GcJpw0,1792 +networkx/algorithms/components/tests/test_strongly_connected.py,sha256=Zm7MgUIZbuPPJu66xZH1zfMZQ_3X1YBl2fLCOjph7NQ,6021 +networkx/algorithms/components/tests/test_weakly_connected.py,sha256=_eUx7226dxme_K2WNmvSIwZXQlKNoCuglWOOC3kFUW4,3083 +networkx/algorithms/components/weakly_connected.py,sha256=jFHHr0qTZH57IyFIQ8iD5gekgczQXTPRHrtYoXVYYPM,4455 +networkx/algorithms/connectivity/__init__.py,sha256=EvYKw8LJn7wyZECHAsuEkIaSl-cV-LhymR6tqcn90p8,281 +networkx/algorithms/connectivity/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/connectivity.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/cuts.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/disjoint_paths.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/edge_augmentation.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/edge_kcomponents.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/kcomponents.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/kcutsets.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/stoerwagner.cpython-311.pyc,, +networkx/algorithms/connectivity/__pycache__/utils.cpython-311.pyc,, +networkx/algorithms/connectivity/connectivity.py,sha256=KuvVbJ0dAmG2h51uFo9IdBIK1G1PYaTZ-XFT78ksZEo,29367 +networkx/algorithms/connectivity/cuts.py,sha256=d9O6G3fuhjg0GEuDSm6QyYhm3OTBKFZeHC7Tz6IZ0Mg,23015 +networkx/algorithms/connectivity/disjoint_paths.py,sha256=R0HDHrrhdI1E_do3U6t6oseXsrGJlG7PC89kXCPC1v8,14649 +networkx/algorithms/connectivity/edge_augmentation.py,sha256=SE7CkLjtxG-q6DZPZH33g6MJcYA1KsJgHm-Pm575gkA,44061 +networkx/algorithms/connectivity/edge_kcomponents.py,sha256=hqABcfCqZ-rb45I0qYE-X4NtstsKJbxl37FZzzmoXA4,20894 +networkx/algorithms/connectivity/kcomponents.py,sha256=TtiEvpaKflkdxJ3r37Qsj1qrSzB2rtHzDcxCDO_Aq2Q,8171 +networkx/algorithms/connectivity/kcutsets.py,sha256=zYohzgkR2FODi_Ew2M9uMLb_a9ZP5fNqcXJwMYy6P7o,9371 +networkx/algorithms/connectivity/stoerwagner.py,sha256=WodsJEqKgsmTTcyUBk2u3wV_CXeon-cAzveWgIGgFmA,5431 +networkx/algorithms/connectivity/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/connectivity/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_connectivity.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_cuts.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_disjoint_paths.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_edge_augmentation.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_edge_kcomponents.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_kcomponents.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_kcutsets.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/__pycache__/test_stoer_wagner.cpython-311.pyc,, +networkx/algorithms/connectivity/tests/test_connectivity.py,sha256=eSmsi8uQk6MI591JgtSu2elIusb08bmSZS0h9gxb76I,15027 +networkx/algorithms/connectivity/tests/test_cuts.py,sha256=4F8seWb-sPDDjjVMkh14gst5UQa5f-zDkCsZIdJjVzo,10353 +networkx/algorithms/connectivity/tests/test_disjoint_paths.py,sha256=NLHReLoXSKoA6KPBNRbjF84ktg5PEaaktIj2AII3SDY,8392 +networkx/algorithms/connectivity/tests/test_edge_augmentation.py,sha256=d3ymFHyY2G4cpy1Y6wu4ze339qfF2LRp2HmGAIVjnMM,15731 +networkx/algorithms/connectivity/tests/test_edge_kcomponents.py,sha256=CZ26Dy91WOUqhw1X73mqLGX-WHWzBBIeBCgrp6KK4Zo,16453 +networkx/algorithms/connectivity/tests/test_kcomponents.py,sha256=ohoSX8GACeszRZdzTiNuWXSFitfU9DzP0hqllS2gvMU,8554 +networkx/algorithms/connectivity/tests/test_kcutsets.py,sha256=sVKjwQt3FUqtnlY2xuHn6VGY9rvUkYoVp7v5fK-6aJw,8610 +networkx/algorithms/connectivity/tests/test_stoer_wagner.py,sha256=A291C30_t2CI1erPCqN1W0DoAj3zqNA8fThPIj4Rku0,3011 +networkx/algorithms/connectivity/utils.py,sha256=gL8LmZnK4GKAZQcIPEhVNYmVi18Mqsqwg4O4j_et56s,3217 +networkx/algorithms/core.py,sha256=2QQYUPoMs9F1rgGUlYgIAj6ETy4VefQWG1rl0RMkf9o,19184 +networkx/algorithms/covering.py,sha256=abt1bRBmiPi1J950uUYfTk4YS4pVhz1zanY01vxqNLg,5294 +networkx/algorithms/cuts.py,sha256=-J5j6Yi2CrlFsrX4bK-5kFztD6i4X6gihXwxmFC1zYQ,9990 +networkx/algorithms/cycles.py,sha256=erkLvKZkYfGDwya6Pn_o8cR5CnEnYeJ30Yi4kGr5xvk,43237 +networkx/algorithms/d_separation.py,sha256=3O_5RIWziPQ5xwRn-yAjH28xrkSaVIVbCFpw7K2Pa2A,27283 +networkx/algorithms/dag.py,sha256=y2HhZm0-olRZabgo9xczjsWf8ObSeG--VJl3PIEh9cE,45070 +networkx/algorithms/distance_measures.py,sha256=eauckS80lzTT_0CpZZh1JR7tLCzeiGCviaARDK1MN8k,34195 +networkx/algorithms/distance_regular.py,sha256=-1QCGLy7OPoNuV2bYJDY4jVot-0LGMobBQ0DubjbhGI,7053 +networkx/algorithms/dominance.py,sha256=T_z37jx_WSbY_HMfYgqZL6fT-p6PMAlZjSwEVsaLfLE,3450 +networkx/algorithms/dominating.py,sha256=d4CkSt_hmcwldF5FaOiazZpThYhxAuasRhJgGdExGjc,2669 +networkx/algorithms/efficiency_measures.py,sha256=VKbLKJgdIbno-YnJaLaCZt7TNXXnQPdz8N99uJCo748,4741 +networkx/algorithms/euler.py,sha256=yCqKaGchFSRPTRDXq7u1fH2IXZF94wWf9S10K9-Cd6U,14205 +networkx/algorithms/flow/__init__.py,sha256=rVtMUy6dViPLewjDRntmn15QF0bQwiDdQbZZx9j7Drc,341 +networkx/algorithms/flow/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/boykovkolmogorov.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/capacityscaling.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/dinitz_alg.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/edmondskarp.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/gomory_hu.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/maxflow.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/mincost.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/networksimplex.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/preflowpush.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/shortestaugmentingpath.cpython-311.pyc,, +networkx/algorithms/flow/__pycache__/utils.cpython-311.pyc,, +networkx/algorithms/flow/boykovkolmogorov.py,sha256=qFcppmiXz4VKKFd4RbDsiWOqJODtDTHbNr9_UFTjQaU,13334 +networkx/algorithms/flow/capacityscaling.py,sha256=8rng2qO5kawNSxq2S8BNlUMmdvNSoC6R8ekiBGU8LxU,14469 +networkx/algorithms/flow/dinitz_alg.py,sha256=I5nnZVsj0aU8-9Cje0umey407epFzpd7BDJpkI6ESK4,8341 +networkx/algorithms/flow/edmondskarp.py,sha256=PEIwLftevS2VYHaTzzZMSOLPy7QSBPsWPedjx1lR6Cs,8056 +networkx/algorithms/flow/gomory_hu.py,sha256=EuibaxPl65shGM9Jxvaa9WMwMmoczDvXXc2b0E81cqM,6345 +networkx/algorithms/flow/maxflow.py,sha256=3_v0FUEHulFrOeSDM1FMcmOF3yTYvxUbLGv3MNTNp1Q,22795 +networkx/algorithms/flow/mincost.py,sha256=GzMYInS4QcNe0yImGrVXJ0bRd7t5TSSMa9jSeenIoOk,12853 +networkx/algorithms/flow/networksimplex.py,sha256=32uetoZWj-_7KPO2OJputP0FpTrsQ_qJxntC8XxIVr0,25185 +networkx/algorithms/flow/preflowpush.py,sha256=CUKZ0-7X9l7P7qH_2n2Immbf8mFm8vocH2SY0tIwjGo,15721 +networkx/algorithms/flow/shortestaugmentingpath.py,sha256=gXXdkY3nH4d0hXVn0P2-kzfC3DHcuCdrudFdxetflKI,10372 +networkx/algorithms/flow/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/flow/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/flow/tests/__pycache__/test_gomory_hu.cpython-311.pyc,, +networkx/algorithms/flow/tests/__pycache__/test_maxflow.cpython-311.pyc,, +networkx/algorithms/flow/tests/__pycache__/test_maxflow_large_graph.cpython-311.pyc,, +networkx/algorithms/flow/tests/__pycache__/test_mincost.cpython-311.pyc,, +networkx/algorithms/flow/tests/__pycache__/test_networksimplex.cpython-311.pyc,, +networkx/algorithms/flow/tests/gl1.gpickle.bz2,sha256=z4-BzrXqruFiGqYLiS2D5ZamFz9vZRc1m2ef89qhsPg,44623 +networkx/algorithms/flow/tests/gw1.gpickle.bz2,sha256=b3nw6Q-kxR7HkWXxWWPh7YlHdXbga8qmeuYiwmBBGTE,42248 +networkx/algorithms/flow/tests/netgen-2.gpickle.bz2,sha256=OxfmbN7ajtuNHexyYmx38fZd1GdeP3bcL8T9hKoDjjA,18972 +networkx/algorithms/flow/tests/test_gomory_hu.py,sha256=aWtbI3AHofIK6LDJnmj9UH1QOfulXsi5NyB7bNyV2Vw,4471 +networkx/algorithms/flow/tests/test_maxflow.py,sha256=4CtGOqeyloAxFSajaxPfGuyVhE0R3IdJf2SuIg4kHKQ,18940 +networkx/algorithms/flow/tests/test_maxflow_large_graph.py,sha256=1a7pS0i5sj_kowLelETcHdrf7RmPEhAJnmCT03JZ0K8,4622 +networkx/algorithms/flow/tests/test_mincost.py,sha256=n4fFLDwDLy7Tau-_ey1CoxZwKhFjk28GLGJjCyxhClk,17816 +networkx/algorithms/flow/tests/test_networksimplex.py,sha256=bsVxlvHAD0K7aDevCcVaa9uRNNsWAevw6yUKlj2T8No,12103 +networkx/algorithms/flow/tests/wlm3.gpickle.bz2,sha256=zKy6Hg-_swvsNh8OSOyIyZnTR0_Npd35O9RErOF8-g4,88132 +networkx/algorithms/flow/utils.py,sha256=bCeiFAiyFe4-ptkCopo_PnQKF9xY5M8Br87hJT3fRWQ,6084 +networkx/algorithms/graph_hashing.py,sha256=0jcfhXY7tChFBV4N0ga4oJCJCHRwawrsDDyNy11uJlk,12556 +networkx/algorithms/graphical.py,sha256=1NdlhXuGEgUkHPo47EoNTWUMfdeTpiv7BBVM9ty2ivw,15831 +networkx/algorithms/hierarchy.py,sha256=_KFhCF1Afr2TrkPhqx-1PXUXEtfYLhbRShC58ZKbDGE,1786 +networkx/algorithms/hybrid.py,sha256=z3sIFMOpja1wlj-lI8YI6OIbSLZWHr66uSqyVESZWXY,6209 +networkx/algorithms/isolate.py,sha256=4rDH_iGY2WM5igJS-lBcIVb11MrKdoaFhJLieLZ4BAE,2301 +networkx/algorithms/isomorphism/__init__.py,sha256=gPRQ-_X6xN2lJZPQNw86IVj4NemGmbQYTejf5yJ32N4,406 +networkx/algorithms/isomorphism/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/ismags.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/isomorph.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/isomorphvf2.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/matchhelpers.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/temporalisomorphvf2.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/tree_isomorphism.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/vf2pp.cpython-311.pyc,, +networkx/algorithms/isomorphism/__pycache__/vf2userfunc.cpython-311.pyc,, +networkx/algorithms/isomorphism/ismags.py,sha256=TpZP5xDxLITCGOk8DT4EBVaWDbbjzEUT5ZOCDNGAho0,43239 +networkx/algorithms/isomorphism/isomorph.py,sha256=Yg2Aukv0tVZIQ66jxzDS4DPBjX6DMKwT0_WNH12fsgk,7114 +networkx/algorithms/isomorphism/isomorphvf2.py,sha256=_IdR1YRm8N9z-HaX2XtzPRq-2j3_jqlcJ8WSrvAyE5g,46785 +networkx/algorithms/isomorphism/matchhelpers.py,sha256=PaZ7PjmNNsJO9KoeRrf9JgcDHIcFr1tZckQc_ol4e9I,10884 +networkx/algorithms/isomorphism/temporalisomorphvf2.py,sha256=-1NW81l8kM9orQ2ni9tcNizQzEhOUE9BaBJXjUWqhiI,10948 +networkx/algorithms/isomorphism/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/isomorphism/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_ismags.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphism.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphvf2.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_match_helpers.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_temporalisomorphvf2.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_tree_isomorphism.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/__pycache__/test_vf2userfunc.cpython-311.pyc,, +networkx/algorithms/isomorphism/tests/iso_r01_s80.A99,sha256=hKzMtYLUR8Oqp9pmJR6RwG7qo31aNPZcnXy4KHDGhqU,1442 +networkx/algorithms/isomorphism/tests/iso_r01_s80.B99,sha256=AHx_W2xG4JEcz1xKoN5TwCHVE6-UO2PiMByynkd4TPE,1442 +networkx/algorithms/isomorphism/tests/si2_b06_m200.A99,sha256=NVnPFA52amNl3qM55G1V9eL9ZlP9NwugBlPf-zekTFU,310 +networkx/algorithms/isomorphism/tests/si2_b06_m200.B99,sha256=-clIDp05LFNRHA2BghhGTeyuXDqBBqA9XpEzpB7Ku7M,1602 +networkx/algorithms/isomorphism/tests/test_ismags.py,sha256=8D1jWosarNJ0ZzCYgfwy0mB62YVZAMvG-UF9Q0peRa0,10581 +networkx/algorithms/isomorphism/tests/test_isomorphism.py,sha256=kF-o4dTjB7Ad0NOHnUGoiOCCNr3MWSmJm_YBc-Wvhgk,2022 +networkx/algorithms/isomorphism/tests/test_isomorphvf2.py,sha256=qisgeaCLO8ytf09DP7zANsnWdAHPu1lvJl4Gmg2zD6M,11747 +networkx/algorithms/isomorphism/tests/test_match_helpers.py,sha256=uuTcvjgf2LPqSQzzECPIh0dezw8-a1IN0u42u8TxwAw,2483 +networkx/algorithms/isomorphism/tests/test_temporalisomorphvf2.py,sha256=k8032J4ItZ4aFHeOraOpiF8y4aPm2O1g44UvUfrQJgg,7343 +networkx/algorithms/isomorphism/tests/test_tree_isomorphism.py,sha256=0-7waJjupg8AWfQDqrcsJVOgTXk7HePr5kt87MgnPtM,7412 +networkx/algorithms/isomorphism/tests/test_vf2pp.py,sha256=65RkN1mPWLoxirE7SlIvfaKMJk80b_ZwWG6HTJtlkPg,49924 +networkx/algorithms/isomorphism/tests/test_vf2pp_helpers.py,sha256=HnXcdy2LTBFX423nIdJ8CbwmfkHFmzf1XNa8-xld5jk,90125 +networkx/algorithms/isomorphism/tests/test_vf2userfunc.py,sha256=KMRPb-m3fmvRF0vt9laKIzOfwnrkxN2SueLv7JWUuXs,6625 +networkx/algorithms/isomorphism/tree_isomorphism.py,sha256=fj1cUspSojUVwmAdWKGzXEHqOawUNJgzfO9QjCEnPLs,9454 +networkx/algorithms/isomorphism/vf2pp.py,sha256=WNXf7g0u3c8R3IsX2YuP3gWU5sjb0uqjuDSvmtob_QE,36421 +networkx/algorithms/isomorphism/vf2userfunc.py,sha256=HiPwyr7nJF1QS9w69MzKf6wGvO8cgjvdS5vW59iwCew,7371 +networkx/algorithms/link_analysis/__init__.py,sha256=UkcgTDdzsIu-jsJ4jBwP8sF2CsRPC1YcZZT-q5Wlj3I,118 +networkx/algorithms/link_analysis/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/link_analysis/__pycache__/hits_alg.cpython-311.pyc,, +networkx/algorithms/link_analysis/__pycache__/pagerank_alg.cpython-311.pyc,, +networkx/algorithms/link_analysis/hits_alg.py,sha256=OJ2DPKn_qGDBiW7Tln8_vLtJGvBkzWbOxylbHn95ne4,10421 +networkx/algorithms/link_analysis/pagerank_alg.py,sha256=BlJr6dsDfUNdU0mH8BmqWLt8Hzra-wBwWmQFHArTJc8,17191 +networkx/algorithms/link_analysis/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/link_analysis/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/link_analysis/tests/__pycache__/test_hits.cpython-311.pyc,, +networkx/algorithms/link_analysis/tests/__pycache__/test_pagerank.cpython-311.pyc,, +networkx/algorithms/link_analysis/tests/test_hits.py,sha256=QjSZZmrj3rBLNVpKOIHUvJNYM7OJ1b-yjiaglyVzNyw,2547 +networkx/algorithms/link_analysis/tests/test_pagerank.py,sha256=szFqJoRJrDojANbuAaw7kfX-cLjEne6tOyek3-Cax_4,7283 +networkx/algorithms/link_prediction.py,sha256=UYo_LJgoVXcM1iLMXswM2g4jvUJmvxln3e5bVfXxQ10,22253 +networkx/algorithms/lowest_common_ancestors.py,sha256=xP0hkaJzwrj4evzahYvIjtUhaodj4FYv4JB51PWwVpc,9198 +networkx/algorithms/matching.py,sha256=bEvhXTFcRa-ZMNugIyM14rJ5QAcQkcZ2j-YJ-PTGQ3w,44550 +networkx/algorithms/minors/__init__.py,sha256=ceeKdsZ6U1H40ED-KmtVGkbADxeWMTVG07Ja8P7N_Pg,587 +networkx/algorithms/minors/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/minors/__pycache__/contraction.cpython-311.pyc,, +networkx/algorithms/minors/contraction.py,sha256=EviSuRlx5EsGiWNbGrSSfAYfPV19jzIN8H_l596YHbI,22870 +networkx/algorithms/minors/tests/__pycache__/test_contraction.cpython-311.pyc,, +networkx/algorithms/minors/tests/test_contraction.py,sha256=YjBXi-byijqbh_OxLpLK7_au5A5YCoVTlta7hnnK4Gg,14213 +networkx/algorithms/mis.py,sha256=BEMv_dW8R6CjMMXJQGIhS4HpS8A8AkLJJWnz3GstuS4,2344 +networkx/algorithms/moral.py,sha256=z5lp42k4kqYk7t_FfszVj5KAC7BxXe6Adik3T2qvA6o,1535 +networkx/algorithms/node_classification.py,sha256=a2mVO7NI2IQF4Cd2Mx7TMLoTEu5HNG9RB5sEHQ19Wdw,6469 +networkx/algorithms/non_randomness.py,sha256=Uag54gFi5DR5uAQNFXyKKyORQuowTPuhq_QsjZaVMJ4,3068 +networkx/algorithms/operators/__init__.py,sha256=dJ3xOXvHxSzzM3-YcfvjGTJ_ndxULF1TybkIRzUS87Y,201 +networkx/algorithms/operators/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/operators/__pycache__/all.cpython-311.pyc,, +networkx/algorithms/operators/__pycache__/binary.cpython-311.pyc,, +networkx/algorithms/operators/__pycache__/product.cpython-311.pyc,, +networkx/algorithms/operators/__pycache__/unary.cpython-311.pyc,, +networkx/algorithms/operators/all.py,sha256=pNIKjEiSBBiUa6zcYZHQIiiHq3C9hnazSyaIpasvBxw,9652 +networkx/algorithms/operators/binary.py,sha256=mRgkFsPoAw2PuqMIwRmS59vYC2KFJ47dB_lct5HRAh4,12948 +networkx/algorithms/operators/product.py,sha256=FQkSIduOv-z1ktVzid2T40759S-BmAfTlya88VytuZc,19632 +networkx/algorithms/operators/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/operators/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/operators/tests/__pycache__/test_all.cpython-311.pyc,, +networkx/algorithms/operators/tests/__pycache__/test_binary.cpython-311.pyc,, +networkx/algorithms/operators/tests/__pycache__/test_product.cpython-311.pyc,, +networkx/algorithms/operators/tests/__pycache__/test_unary.cpython-311.pyc,, +networkx/algorithms/operators/tests/test_all.py,sha256=Pqjv9QiA0875Yl9D5o6c5Ml0t4KHpH2a5jbpAoZQXFc,8250 +networkx/algorithms/operators/tests/test_binary.py,sha256=QzQTfnkHf1ulVvvNsclfkQgzRGc9hGQdZDyf4F9O5n8,12171 +networkx/algorithms/operators/tests/test_product.py,sha256=i4pBb5A4NmaCsllR1XizyhUToaQFMuLZ-JrywkQFdbU,15155 +networkx/algorithms/operators/tests/test_unary.py,sha256=UZdzbt5GI9hnflEizUWXihGqBWmSFJDkzjwVv6wziQE,1415 +networkx/algorithms/operators/unary.py,sha256=Eo2yeTg-F5uODGWSWR_im5VaKZQ97LyATIuKZcAFQR8,1795 +networkx/algorithms/planar_drawing.py,sha256=AXuoT3aFgEtCeMnAaUsRqjxCABdNYZ8Oo9sGOKBQto0,16254 +networkx/algorithms/planarity.py,sha256=PhIhnecPna-J_v7taoj-Ie175XWayVfcuMDHkj2bWLc,47249 +networkx/algorithms/polynomials.py,sha256=iP30_mcOlj81Vrzt4iB_ZZxYiRokubs-O1i9RW4pgTw,11278 +networkx/algorithms/reciprocity.py,sha256=1WMhLbSMkVPxRPlfUvbgO5FgVvJHn1doXQF4WuqSLQk,2855 +networkx/algorithms/regular.py,sha256=lEhYCP4Yysz8oTdxY8m40oqZcdhjKJuDsEj-P310loI,6794 +networkx/algorithms/richclub.py,sha256=kARzso3M6wnUcAJo2g8ga_ZtigL2czDNzeUDzBtRfqo,4892 +networkx/algorithms/shortest_paths/__init__.py,sha256=Rmxtsje-mPdQyeYhE8TP2NId-iZEOu4eAsWhVRm2Xqk,285 +networkx/algorithms/shortest_paths/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/shortest_paths/__pycache__/astar.cpython-311.pyc,, +networkx/algorithms/shortest_paths/__pycache__/dense.cpython-311.pyc,, +networkx/algorithms/shortest_paths/__pycache__/generic.cpython-311.pyc,, +networkx/algorithms/shortest_paths/__pycache__/unweighted.cpython-311.pyc,, +networkx/algorithms/shortest_paths/__pycache__/weighted.cpython-311.pyc,, +networkx/algorithms/shortest_paths/astar.py,sha256=EhUUKwQ6kGBPVXVA7inJN3tb5nr45M99kEDygVcLPf8,8967 +networkx/algorithms/shortest_paths/dense.py,sha256=rdMTlAwrboZMaA8Hj0RmbEpqNNU9zmBxk5Ljswsg37U,8211 +networkx/algorithms/shortest_paths/generic.py,sha256=6N22Kf1t-7HFPn2-QoLqbm1kJSKk5dWCimNi8UuYzM4,25738 +networkx/algorithms/shortest_paths/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/shortest_paths/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/shortest_paths/tests/__pycache__/test_astar.cpython-311.pyc,, +networkx/algorithms/shortest_paths/tests/__pycache__/test_dense.cpython-311.pyc,, +networkx/algorithms/shortest_paths/tests/__pycache__/test_dense_numpy.cpython-311.pyc,, +networkx/algorithms/shortest_paths/tests/__pycache__/test_generic.cpython-311.pyc,, +networkx/algorithms/shortest_paths/tests/__pycache__/test_unweighted.cpython-311.pyc,, +networkx/algorithms/shortest_paths/tests/__pycache__/test_weighted.cpython-311.pyc,, +networkx/algorithms/shortest_paths/tests/test_astar.py,sha256=G9hrEo2U9c_kzaRTAXYbS1TpcJgF_uqj9249K2qbjAY,8941 +networkx/algorithms/shortest_paths/tests/test_dense.py,sha256=ievl4gu3Exl_31hp4OKcsAGPb3g3_xFUM4t3NnvrG_A,6747 +networkx/algorithms/shortest_paths/tests/test_dense_numpy.py,sha256=BNwXCe2wgNPE8o35-shPsFj8l19c_QG6Ye8tkIGphf8,2300 +networkx/algorithms/shortest_paths/tests/test_generic.py,sha256=oJBKCLIsMA1KTo8q-oG9JQmaxysc7_QSgbBqMImh23c,18456 +networkx/algorithms/shortest_paths/tests/test_unweighted.py,sha256=kMDgx5JP2QHyOST41zhyUiSc3qajKalAJP6W0Mt3oeg,5891 +networkx/algorithms/shortest_paths/tests/test_weighted.py,sha256=dmzFBYN3QEDZoun7RAtSe_spsGSbvkDiJSgUf9e-1K8,35038 +networkx/algorithms/shortest_paths/unweighted.py,sha256=3Up0AF835pSSgSQjzmTK8fw42o0CGc-tsrjenTRfjQc,15642 +networkx/algorithms/shortest_paths/weighted.py,sha256=AGX34ATlzEi1_cyayRzxeUnEPjauQmbc-nKBng6wAL0,82465 +networkx/algorithms/similarity.py,sha256=My2MeE7AsIrCfXEkX-IYfbpbcNL3O7ZUkFtlzzF-j_8,61093 +networkx/algorithms/simple_paths.py,sha256=LFdFNltpt-rRI94x7HVDQooNbgm-urkzGQCxVHfIR5Q,30320 +networkx/algorithms/smallworld.py,sha256=3xT-z2_CVdp5-Ap8vF6fsd3DiavDYtspFNZrcwcpXG0,13565 +networkx/algorithms/smetric.py,sha256=_Aj4BIMnafiXbJtLkvAfAnIEMdI9OcVvMy6kk9KKTns,770 +networkx/algorithms/sparsifiers.py,sha256=4T8pMlh-usEHA2-rZFh-CmZbBY9dcXIHjoqR-oJ2hSw,10048 +networkx/algorithms/structuralholes.py,sha256=CS89P45_m1JGFGnSGA-FlC2xnt0BYq3O5ky1zkjYEDI,9342 +networkx/algorithms/summarization.py,sha256=CygTsSthyCKHs0ZTZsCgWnyaT8annQbLpUtahmfY9Sw,23251 +networkx/algorithms/swap.py,sha256=NVZMmlnkdxgwwNw5GDrc8waNERcdCu52ydHcBdOA_hw,14744 +networkx/algorithms/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_asteroidal.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_boundary.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_bridges.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_broadcasting.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_chains.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_chordal.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_clique.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_cluster.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_communicability.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_core.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_covering.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_cuts.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_cycles.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_d_separation.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_dag.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_distance_measures.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_distance_regular.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_dominance.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_dominating.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_efficiency.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_euler.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_graph_hashing.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_graphical.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_hierarchy.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_hybrid.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_isolate.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_link_prediction.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_lowest_common_ancestors.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_matching.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_max_weight_clique.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_mis.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_moral.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_node_classification.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_non_randomness.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_planar_drawing.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_planarity.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_polynomials.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_reciprocity.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_regular.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_richclub.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_similarity.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_simple_paths.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_smallworld.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_smetric.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_sparsifiers.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_structuralholes.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_summarization.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_swap.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_threshold.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_time_dependent.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_tournament.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_triads.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_vitality.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_voronoi.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_walks.cpython-311.pyc,, +networkx/algorithms/tests/__pycache__/test_wiener.cpython-311.pyc,, +networkx/algorithms/tests/test_asteroidal.py,sha256=DnWI5_jnaaZMxtG44XD0K690HZs8ez7HU_9dSR-p6eA,502 +networkx/algorithms/tests/test_boundary.py,sha256=1OSJh32FYFhAVYB5zqxhZGEXZLS0HPp9kvfHZvWmD3o,6227 +networkx/algorithms/tests/test_bridges.py,sha256=jSCguECho0GNHnu0vpRh1twyfGP6tWFcaYL1rgvc8mU,4026 +networkx/algorithms/tests/test_broadcasting.py,sha256=2LIMrKmSGSSWRLy5TR_NzDQD1annA2JohpsbEbVJKfE,2021 +networkx/algorithms/tests/test_chains.py,sha256=Vhpf0maR3OUaa6aUxC6FNYLeUvBKPZyFimM4_WsLQKo,4364 +networkx/algorithms/tests/test_chordal.py,sha256=DPdNPY7KtqCsCwYVb4xQfnIm-z35dUJIWxNHtAiQLAQ,4438 +networkx/algorithms/tests/test_clique.py,sha256=FPIF2f8NLODsz-k_qrHt7DolClV_VdNWSh68oe8-ygI,9413 +networkx/algorithms/tests/test_cluster.py,sha256=CzYPJm4QY5SL-amMNh2ItPgQ-FjePPG9EBfIKOZHp6s,15883 +networkx/algorithms/tests/test_communicability.py,sha256=4KK9wU9gAUqHAAAyHwAKpq2dV9g415s_X0qd7Tt83gU,2938 +networkx/algorithms/tests/test_core.py,sha256=CF7YPX3F2pUtBu2sp4ZEAGRldaBkdgr1ufk6UkrETuA,9555 +networkx/algorithms/tests/test_covering.py,sha256=EeBjQ5mxcVctgavqXZ255T8ryFocuxjxdVpIxVUNFvw,2718 +networkx/algorithms/tests/test_cuts.py,sha256=gKm9VDtnmwFli6kgwV1ktEFI_rw84p2Sg02Em6SoW5Q,5376 +networkx/algorithms/tests/test_cycles.py,sha256=Sp7PSNB8iy_iST90uNDv8mXwiSOXWRYLkUFJz9pwHWU,34424 +networkx/algorithms/tests/test_d_separation.py,sha256=ZypzMVDpBZo_4qBlieFlj3RVU6vh7tejEZGlu7qcQbc,10929 +networkx/algorithms/tests/test_dag.py,sha256=aEUvVl7Ht3XC2XdBanoCDNM7vpPb8YELvMQDawLZbhQ,29385 +networkx/algorithms/tests/test_distance_measures.py,sha256=WHsOxV9mI-PqJa08C65Gd3myv5G7fzDehX_atJLql7Q,26154 +networkx/algorithms/tests/test_distance_regular.py,sha256=w27OTUtAI0VQv7cikkOdJg4bo4q7xTNIVE8nbU_x7b8,2915 +networkx/algorithms/tests/test_dominance.py,sha256=QVBj3SarZNm57YKavOLFtwU43xn4fxcEU6chn2Gfuaw,9194 +networkx/algorithms/tests/test_dominating.py,sha256=hyta7ln6BbHaGlpEUla6jVzh2PRuSjvujLSGXrmwZbc,1228 +networkx/algorithms/tests/test_efficiency.py,sha256=QKWMvyjCG1Byt-oNp7Rz_qxnVeT77Zk27lrzI1qH0mA,1894 +networkx/algorithms/tests/test_euler.py,sha256=L4L1ljHVxQxjQQludO2r6k3UZU7WAY_N6WYUjFx1fEk,11209 +networkx/algorithms/tests/test_graph_hashing.py,sha256=MqRwsNbyRWUy94V7UuDqEREuHxFTSn7-d0HzwSDI2As,24534 +networkx/algorithms/tests/test_graphical.py,sha256=uhFjvs04odxABToY4IRig_CaUTpAC3SfZRu1p1T7FwY,5366 +networkx/algorithms/tests/test_hierarchy.py,sha256=uW8DqCdXiAeypkNPKcAYX7aW86CawYH84Q0bW4cDTXo,1184 +networkx/algorithms/tests/test_hybrid.py,sha256=kQLzaMoqZcKFaJ3D7PKbY2O-FX59XDZ1pN5un8My-tk,720 +networkx/algorithms/tests/test_isolate.py,sha256=LyR0YYHJDH5vppQzGzGiJK-aaIV17_Jmla8dMf93olg,555 +networkx/algorithms/tests/test_link_prediction.py,sha256=Jah4vOGDYcWaPSl_iG-0fOXnhu5o8f6wcfakRmWuX7I,20004 +networkx/algorithms/tests/test_lowest_common_ancestors.py,sha256=GvhYCQMnVYD9LHPCNFgWMAUmOV8V5gko0fe05zi1JwU,13153 +networkx/algorithms/tests/test_matching.py,sha256=jhehNkApE5RuMPtbjWNeHn0tPqhVz65mL7QakfRA3Vw,20174 +networkx/algorithms/tests/test_max_weight_clique.py,sha256=M1eoy8OtuQVZkEvNMauV9vqR6hHtOCrtq6INv2qzMyA,6739 +networkx/algorithms/tests/test_mis.py,sha256=Z2tKoqbs-AFPzEBDYO7S8U-F7usLfZJ2l6j2DpZUts4,1865 +networkx/algorithms/tests/test_moral.py,sha256=15PZgkx7O9aXQB1npQ2JNqBBkEqPPP2RfeZzKqY-GNU,452 +networkx/algorithms/tests/test_node_classification.py,sha256=NgJJKUHH1GoD1GE3F4QRYBLM3fUo_En3RNtZvhqCjlg,4663 +networkx/algorithms/tests/test_non_randomness.py,sha256=xMkJp0F91Qn45EUuMottk1WSDfOQ90TDQfZFDSJ8tkE,1000 +networkx/algorithms/tests/test_planar_drawing.py,sha256=NN55y2cs9IdZYwUsG-RbI07aGSMx5gp5vnmGLC2vopo,8765 +networkx/algorithms/tests/test_planarity.py,sha256=rrIGX28JoG_DqINsuY4TSdDloxnz4dkCd3xeRo9Svqs,16386 +networkx/algorithms/tests/test_polynomials.py,sha256=baI0Kua1pRngRC6Scm5gRRwi1bl0iET5_Xxo3AZTP3A,1983 +networkx/algorithms/tests/test_reciprocity.py,sha256=X_PXWFOTzuEcyMWpRdwEJfm8lJOfNE_1rb9AAybf4is,1296 +networkx/algorithms/tests/test_regular.py,sha256=5KGvwhixanEigI0KgeUJ1hWPw7YRGZgNbrMkKcndd5M,2626 +networkx/algorithms/tests/test_richclub.py,sha256=ql_j69gIoph8d6oD2tzDqu3b-uW884nmEJZQmWANR6k,3965 +networkx/algorithms/tests/test_similarity.py,sha256=BV5f4DiSQHPsXkSosf29idxGQ_wLiTwEsiHtgDOLLw4,33189 +networkx/algorithms/tests/test_simple_paths.py,sha256=7U9wCXz4SHK0XeYrs1k2KjYgrYVQDnts2ggQLzU18p0,25181 +networkx/algorithms/tests/test_smallworld.py,sha256=rfgNCRU6YF55f8sCuA5WmX6MmhDci89Tb4jaz4ALjcQ,2405 +networkx/algorithms/tests/test_smetric.py,sha256=VM14L4X1AABvINDL9qKXzlech_Q2g4Aee-ozWM2Qrr4,144 +networkx/algorithms/tests/test_sparsifiers.py,sha256=1GRbQy1vfmwv6eUhP4Io0aykH2VyTJfFWmncrXmTqi4,4044 +networkx/algorithms/tests/test_structuralholes.py,sha256=NsQfW85GquVUndyHBVo5OMku_C8i8bfE-4WXJr5dILw,5290 +networkx/algorithms/tests/test_summarization.py,sha256=uNyaUstobIEu6M_Hexik-3YiYTRSy_XO6LUqoE4wazw,21312 +networkx/algorithms/tests/test_swap.py,sha256=WJtGMkSbAd1Cv06VaUeDVHosNOtdigsqEspyux0ExCs,6144 +networkx/algorithms/tests/test_threshold.py,sha256=RF_SM5tdMGJfEHETO19mFicnt69UIlvVeuCwI7rxb0M,9751 +networkx/algorithms/tests/test_time_dependent.py,sha256=NmuV2kDo4nh2MeN0hwcJf0QSDtqMD0dfSeeKSsYBtQ8,13342 +networkx/algorithms/tests/test_tournament.py,sha256=XF6TwqPwJ7bKKuD7vM1Q7a9NnKerk38lWghvqTekQfk,4159 +networkx/algorithms/tests/test_triads.py,sha256=anSuYt1ZmV0_aGtSPLl5YxEQZHOuo0QndNADUdZKqdY,9383 +networkx/algorithms/tests/test_vitality.py,sha256=p5lPWCtVMtbvxDw6TJUaf8vpb0zKPoz5pND722xiypQ,1380 +networkx/algorithms/tests/test_voronoi.py,sha256=M4B6JtkJUw56ULEWRs1kyVEUsroNrnb5FBq9OioAyHM,3477 +networkx/algorithms/tests/test_walks.py,sha256=X8cb-YvGHiiqbMEXuKMSdTAb9WtVtbHjIESNSqpJTmU,1499 +networkx/algorithms/tests/test_wiener.py,sha256=k9ld7wdPq5knS6cjo0hja8aWL-cdxYKGRpDU0z3cvNI,3209 +networkx/algorithms/threshold.py,sha256=1HBOrQTyEaEp2uoIHsAlTEMpYAYXoRnR-6PaOKIjdZE,31150 +networkx/algorithms/time_dependent.py,sha256=PAeJ7Yt8kUqbDgvBaz_ZfUFZg-w-vf1gPC0HO6go_TI,5762 +networkx/algorithms/tournament.py,sha256=nx-PSefooyyYAwhFa9a7SRZSRL_ky5Rq19lYP79-0E8,11579 +networkx/algorithms/traversal/__init__.py,sha256=YtFrfNjciqTOI6jGePQaJ01tRSEQXTHqTGGNhDEDb_8,142 +networkx/algorithms/traversal/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/traversal/__pycache__/beamsearch.cpython-311.pyc,, +networkx/algorithms/traversal/__pycache__/breadth_first_search.cpython-311.pyc,, +networkx/algorithms/traversal/__pycache__/depth_first_search.cpython-311.pyc,, +networkx/algorithms/traversal/__pycache__/edgebfs.cpython-311.pyc,, +networkx/algorithms/traversal/__pycache__/edgedfs.cpython-311.pyc,, +networkx/algorithms/traversal/beamsearch.py,sha256=Vn0U4Wck8ICShIAGggv3tVtQWVW0ABEz_hcBsGrql6o,3473 +networkx/algorithms/traversal/breadth_first_search.py,sha256=iFE-rskYn-oOOEI8ocCbCD3QMH5PX41RP8Xb2Krb2H8,18288 +networkx/algorithms/traversal/depth_first_search.py,sha256=2V4T3tGujcAtV3W6WcTQUjGAAe3b1rqinONowUhLsa8,16795 +networkx/algorithms/traversal/edgebfs.py,sha256=s8lugT0l6J8HRmB8dCs3D1UxZa95SGHGyP2WCfaABOc,6244 +networkx/algorithms/traversal/edgedfs.py,sha256=_s9N4UKaEi8sRtJ604qPHl_NIM92rOLkgec9ZPwZYp0,5957 +networkx/algorithms/traversal/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/traversal/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/traversal/tests/__pycache__/test_beamsearch.cpython-311.pyc,, +networkx/algorithms/traversal/tests/__pycache__/test_bfs.cpython-311.pyc,, +networkx/algorithms/traversal/tests/__pycache__/test_dfs.cpython-311.pyc,, +networkx/algorithms/traversal/tests/__pycache__/test_edgebfs.cpython-311.pyc,, +networkx/algorithms/traversal/tests/__pycache__/test_edgedfs.cpython-311.pyc,, +networkx/algorithms/traversal/tests/test_beamsearch.py,sha256=bzUcswZ1qo0ecDZYSER_4enbsW6SjTpb_3Nb3fqmkAo,900 +networkx/algorithms/traversal/tests/test_bfs.py,sha256=mOMBIo1SEplTa0zQI3XN__UovQgd573t8q2_rxu7e90,6465 +networkx/algorithms/traversal/tests/test_dfs.py,sha256=EqLV_C-3frQ89C-SD0jtHvWEankNfPXm6M76JDdenq0,10604 +networkx/algorithms/traversal/tests/test_edgebfs.py,sha256=8oplCu0fct3QipT0JB0-292EA2aOm8zWlMkPedfe6iY,4702 +networkx/algorithms/traversal/tests/test_edgedfs.py,sha256=HGmC3GUYSn9XLMHQpdefdE6g-Uh3KqbmgEEXBcckdYc,4775 +networkx/algorithms/tree/__init__.py,sha256=wm_FjX3G7hqJfyNmeEaJsRjZI-8Kkv0Nb5jAmQNXzSc,149 +networkx/algorithms/tree/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/tree/__pycache__/branchings.cpython-311.pyc,, +networkx/algorithms/tree/__pycache__/coding.cpython-311.pyc,, +networkx/algorithms/tree/__pycache__/decomposition.cpython-311.pyc,, +networkx/algorithms/tree/__pycache__/mst.cpython-311.pyc,, +networkx/algorithms/tree/__pycache__/operations.cpython-311.pyc,, +networkx/algorithms/tree/__pycache__/recognition.cpython-311.pyc,, +networkx/algorithms/tree/branchings.py,sha256=B0c_uKpcnV2SwJMZJRK0BMEz8LkvIcOhv1y0AI0gTnY,34339 +networkx/algorithms/tree/coding.py,sha256=uFqGL6g1QWjGC4F9MCrsz_8rjWeuMJr5HUumGNsqXV4,13464 +networkx/algorithms/tree/decomposition.py,sha256=lY_rqx9JxnLEkp1wiAv0mX62PGPwGQ6SW4Jp48o8aiw,3071 +networkx/algorithms/tree/mst.py,sha256=nvaqotj00pnqAMY6_mOr8YLAAd2u-ApefXzzWU_4JVo,46140 +networkx/algorithms/tree/operations.py,sha256=1N6AH0vfY2QyyYBH_OOE0b7dS7dx9-pT3cOTQVmE1A0,4042 +networkx/algorithms/tree/recognition.py,sha256=bYnaDN0ZaIWTgq0tbPEHAcdxQBWZpDvWypZarBbA334,7569 +networkx/algorithms/tree/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/algorithms/tree/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/algorithms/tree/tests/__pycache__/test_branchings.cpython-311.pyc,, +networkx/algorithms/tree/tests/__pycache__/test_coding.cpython-311.pyc,, +networkx/algorithms/tree/tests/__pycache__/test_decomposition.cpython-311.pyc,, +networkx/algorithms/tree/tests/__pycache__/test_mst.cpython-311.pyc,, +networkx/algorithms/tree/tests/__pycache__/test_operations.cpython-311.pyc,, +networkx/algorithms/tree/tests/__pycache__/test_recognition.cpython-311.pyc,, +networkx/algorithms/tree/tests/test_branchings.py,sha256=uSMc57nLXLBRgm_ERqUSNSrTfq9R3ZWDFkyrG3KR8Vs,17727 +networkx/algorithms/tree/tests/test_coding.py,sha256=XC6SbfA2zVGH4FyJJyv6o8eOnBu7FNzNot3SKs7QmEo,3955 +networkx/algorithms/tree/tests/test_decomposition.py,sha256=vnl_xoQzi1LnlZL25vXOZWwvaWmon3-x222OKt4eDqE,1871 +networkx/algorithms/tree/tests/test_mst.py,sha256=ad6kAEpAF9PH1FyD_jHa2xnAtgBGs75sYGTY0s530BQ,31631 +networkx/algorithms/tree/tests/test_operations.py,sha256=ybU96kROTVJRTyjLG7JSJjYlPxaWmYjUVJqbXV5VGGI,1961 +networkx/algorithms/tree/tests/test_recognition.py,sha256=qeMEIvg-j2MqaU-TNIQhCcXxao8vTBy0wjpU7jr2iw8,4521 +networkx/algorithms/triads.py,sha256=Gf0f6liwgARszL-R4yQle-ogGH4mJkF-gureeUTxGyY,16853 +networkx/algorithms/vitality.py,sha256=8M1cubIydO49El2kwVCURHZ2UwCtfGVFeGS8-JYt1ko,2289 +networkx/algorithms/voronoi.py,sha256=07SnSpxLDz4k6K59Jo-VTNA-Qy5knaHfBC-y_5vAOLQ,3183 +networkx/algorithms/walks.py,sha256=0JOLhpAyeNzmF8EtlVlYOWEPJJvCIltt7tbk1Vx52dI,2427 +networkx/algorithms/wiener.py,sha256=WOUG0L5xDKpY4uspyI-oDo1hWuHxbUnTFZEe_-IAx5M,7639 +networkx/classes/__init__.py,sha256=Q9oONJrnTFs874SGpwcbV_kyJTDcrLI69GFt99MiE6I,364 +networkx/classes/__pycache__/__init__.cpython-311.pyc,, +networkx/classes/__pycache__/coreviews.cpython-311.pyc,, +networkx/classes/__pycache__/digraph.cpython-311.pyc,, +networkx/classes/__pycache__/filters.cpython-311.pyc,, +networkx/classes/__pycache__/function.cpython-311.pyc,, +networkx/classes/__pycache__/graph.cpython-311.pyc,, +networkx/classes/__pycache__/graphviews.cpython-311.pyc,, +networkx/classes/__pycache__/multidigraph.cpython-311.pyc,, +networkx/classes/__pycache__/multigraph.cpython-311.pyc,, +networkx/classes/__pycache__/reportviews.cpython-311.pyc,, +networkx/classes/coreviews.py,sha256=9koRKORoAkI0spB-yMCkqXvry7mMd6hmSPhBab3SzcE,13143 +networkx/classes/digraph.py,sha256=Fup1GbADCpXKLA12M67RbhA0cm6BGi_4cIxBLsjHEtc,48101 +networkx/classes/filters.py,sha256=PCy7BsoIby8VcamqDjZQiNAe_5egI0WKUq-y5nc9unQ,2817 +networkx/classes/function.py,sha256=H6ho_EtU8zRTNv4VCaLb_BY_56PplSiftktk-OkqdcU,38898 +networkx/classes/graph.py,sha256=bc5yHCeDu0XyfBOR0nRx9rEMOpry9FdezxqiCIYPH1E,71102 +networkx/classes/graphviews.py,sha256=ulUTLozEK_hj_4TGHdgvxveR2-rb92Q14jjxH4oH4Go,8520 +networkx/classes/multidigraph.py,sha256=aOqjfSJ6Lx9l-1zwCIMNYRW0mW1wPDniEcRWQ8gKmYY,36351 +networkx/classes/multigraph.py,sha256=PSZR7QgyszlO5PqzhxI954LySqLHq-589OQrCOtC9pw,47248 +networkx/classes/reportviews.py,sha256=u0hNZqaWXCfLMP_lq835XCIVStkZQJ9HaQPeDPPoo88,46132 +networkx/classes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/classes/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/classes/tests/__pycache__/dispatch_interface.cpython-311.pyc,, +networkx/classes/tests/__pycache__/historical_tests.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_coreviews.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_digraph.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_digraph_historical.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_filters.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_function.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_graph.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_graph_historical.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_graphviews.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_multidigraph.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_multigraph.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_reportviews.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_special.cpython-311.pyc,, +networkx/classes/tests/__pycache__/test_subgraphviews.cpython-311.pyc,, +networkx/classes/tests/dispatch_interface.py,sha256=OA4t1XQX7Qqm3pGhTZYKno4c_zbIcvpSWstO_LXIVRo,6479 +networkx/classes/tests/historical_tests.py,sha256=nrv0ccvUMtp714VEV1I9UTwWz8ohgujbC-Xnxpc7kU8,16174 +networkx/classes/tests/test_coreviews.py,sha256=qzdozzWK8vLag-CAUqrXAM2CZZwMFN5vMu6Tdrwdf-E,12128 +networkx/classes/tests/test_digraph.py,sha256=uw0FuEu3y_YI-PSGuQCRytFpXLF7Eye2fqLJaKbXkBc,12283 +networkx/classes/tests/test_digraph_historical.py,sha256=Q8DGba1o0xRZfdsQxreq9naREFSgVhbaZOvTT7W8mdc,3684 +networkx/classes/tests/test_filters.py,sha256=fBLig8z548gsBBlQw6VJdGZb4IcqJj7_0mi2Fd2ncEM,5851 +networkx/classes/tests/test_function.py,sha256=a7fsmmdOSX-OYTEP0RV27vh4e_jyZh9w6SX1iABMVq0,34997 +networkx/classes/tests/test_graph.py,sha256=77t7pk1Pmz-txewyD2Dv19Vva6vWpWCtJSPtFx-EY_Y,30913 +networkx/classes/tests/test_graph_historical.py,sha256=Jl3aCS1BtwoCRdajMKDZcMQRypkOis0J_XU2LHEmYUE,274 +networkx/classes/tests/test_graphviews.py,sha256=i4x3ii8--PPg_pK4YA8aMR1axUQCdXZYpzmB05iEAOg,11466 +networkx/classes/tests/test_multidigraph.py,sha256=ryTKegCoYixXbAqOn3mIt9vSMb5666Dv-pfMkXEjoUE,16342 +networkx/classes/tests/test_multigraph.py,sha256=0vFQO3RCJaBpzXvnQzdWa_qYLHNo_I9DICYhPZJNUMk,18777 +networkx/classes/tests/test_reportviews.py,sha256=dNL6fMMsumYKU4Q_kx-vsXB3GU9xTQxrQn45qoa8e8I,41919 +networkx/classes/tests/test_special.py,sha256=IJsmqCS9LrTDoZ11KPmo-UOI7xEskL7NyduEJNPMNqs,4103 +networkx/classes/tests/test_subgraphviews.py,sha256=1dcJHq3F00LyoFSu6CTFPqS7DFIkWK1PyQu4QvJh5ko,13223 +networkx/conftest.py,sha256=0wpXc9prGYLSw5gG-VvummltLxH5RtKeGwrxFsChe4E,8883 +networkx/convert.py,sha256=yB_MTl3GEvNb3CgDcBiCrhIN4LlV5N_BN9A0ykhBr7E,16025 +networkx/convert_matrix.py,sha256=7kc66-0XFGQUox3fVZuapUV4qCprg92ECe9BMjfSpCE,45383 +networkx/drawing/__init__.py,sha256=rnTFNzLc4fis1hTAEpnWTC80neAR88-llVQ-LObN-i4,160 +networkx/drawing/__pycache__/__init__.cpython-311.pyc,, +networkx/drawing/__pycache__/layout.cpython-311.pyc,, +networkx/drawing/__pycache__/nx_agraph.cpython-311.pyc,, +networkx/drawing/__pycache__/nx_latex.cpython-311.pyc,, +networkx/drawing/__pycache__/nx_pydot.cpython-311.pyc,, +networkx/drawing/__pycache__/nx_pylab.cpython-311.pyc,, +networkx/drawing/layout.py,sha256=eA5YJ2xA-AYDL1WFICETTqfnl7amjRYfkgOJEJbigvw,50243 +networkx/drawing/nx_agraph.py,sha256=bbtLuusDb4vNu6EPF9rgBdJsP-DaIFyzPgxBn5KEA1I,13937 +networkx/drawing/nx_latex.py,sha256=zSGYPpn3wewWaEBCJerq6gRb5RmKP9SY0sLWhyqD8Xo,24805 +networkx/drawing/nx_pydot.py,sha256=b_USURmDffy1KWh2ue1vMf99-zCJiETldIDS7HGHitc,9591 +networkx/drawing/nx_pylab.py,sha256=WTqktY5niRF56x4bsotbGrastccRtgUcsxjqYt8Oe_s,66369 +networkx/drawing/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/drawing/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/drawing/tests/__pycache__/test_agraph.cpython-311.pyc,, +networkx/drawing/tests/__pycache__/test_latex.cpython-311.pyc,, +networkx/drawing/tests/__pycache__/test_layout.cpython-311.pyc,, +networkx/drawing/tests/__pycache__/test_pydot.cpython-311.pyc,, +networkx/drawing/tests/__pycache__/test_pylab.cpython-311.pyc,, +networkx/drawing/tests/baseline/test_house_with_colors.png,sha256=FQi9pIRFwjq4gvgB8cDdBHL5euQUJFw6sQlABf2kRVo,21918 +networkx/drawing/tests/test_agraph.py,sha256=BzrfyQYEtaUbxOzhROLE6njzpG6ZxW7QkRdpVholLAY,8789 +networkx/drawing/tests/test_latex.py,sha256=_Wng73kMltC-_sUoxdo2uBL2bkEc7HMqkKhwo9ZDJGA,8710 +networkx/drawing/tests/test_layout.py,sha256=IWl7cCFb_eGowjACF5tki9voThOzHNpPgjkonzH-pzQ,20611 +networkx/drawing/tests/test_pydot.py,sha256=X9b66gWqMgdTEyRJ7Zmy5kL9cr22waI688K9BJUf4Bk,4973 +networkx/drawing/tests/test_pylab.py,sha256=KgWiNwgkdSn-A36-DP68ZFibbb6JWV4SOJA7O433Y5U,35921 +networkx/exception.py,sha256=hC8efPfIzOFo0jiWiQbTPaNKuNTuUwhp9RPw--pdv4U,3787 +networkx/generators/__init__.py,sha256=EoYB5c5ZE4rsNKZvl1TRQy2Vo2D3T2H-YunyD2i6sa0,1366 +networkx/generators/__pycache__/__init__.cpython-311.pyc,, +networkx/generators/__pycache__/atlas.cpython-311.pyc,, +networkx/generators/__pycache__/classic.cpython-311.pyc,, +networkx/generators/__pycache__/cographs.cpython-311.pyc,, +networkx/generators/__pycache__/community.cpython-311.pyc,, +networkx/generators/__pycache__/degree_seq.cpython-311.pyc,, +networkx/generators/__pycache__/directed.cpython-311.pyc,, +networkx/generators/__pycache__/duplication.cpython-311.pyc,, +networkx/generators/__pycache__/ego.cpython-311.pyc,, +networkx/generators/__pycache__/expanders.cpython-311.pyc,, +networkx/generators/__pycache__/geometric.cpython-311.pyc,, +networkx/generators/__pycache__/harary_graph.cpython-311.pyc,, +networkx/generators/__pycache__/internet_as_graphs.cpython-311.pyc,, +networkx/generators/__pycache__/intersection.cpython-311.pyc,, +networkx/generators/__pycache__/interval_graph.cpython-311.pyc,, +networkx/generators/__pycache__/joint_degree_seq.cpython-311.pyc,, +networkx/generators/__pycache__/lattice.cpython-311.pyc,, +networkx/generators/__pycache__/line.cpython-311.pyc,, +networkx/generators/__pycache__/mycielski.cpython-311.pyc,, +networkx/generators/__pycache__/nonisomorphic_trees.cpython-311.pyc,, +networkx/generators/__pycache__/random_clustered.cpython-311.pyc,, +networkx/generators/__pycache__/random_graphs.cpython-311.pyc,, +networkx/generators/__pycache__/small.cpython-311.pyc,, +networkx/generators/__pycache__/social.cpython-311.pyc,, +networkx/generators/__pycache__/spectral_graph_forge.cpython-311.pyc,, +networkx/generators/__pycache__/stochastic.cpython-311.pyc,, +networkx/generators/__pycache__/sudoku.cpython-311.pyc,, +networkx/generators/__pycache__/time_series.cpython-311.pyc,, +networkx/generators/__pycache__/trees.cpython-311.pyc,, +networkx/generators/__pycache__/triads.cpython-311.pyc,, +networkx/generators/atlas.dat.gz,sha256=c_xBbfAWSSNgd1HLdZ9K6B3rX2VQvyW-Wcht47dH5B0,8887 +networkx/generators/atlas.py,sha256=07Xegzj5j_SiApgzgve2rSTXp0nmWwCw7-1keUjbvRo,5606 +networkx/generators/classic.py,sha256=68lCnSeo50uV1yoc6ZvjnckR7lAbrhUdniyEogczvB4,32000 +networkx/generators/cographs.py,sha256=-WR4_yrNk_X5nj7egb7A22eKPVymOdIYM-IftSRH4WA,1891 +networkx/generators/community.py,sha256=_p_4OfItbg8nS0b3EvojCXZ8cESdC-0Gj67V5w2veuM,34911 +networkx/generators/degree_seq.py,sha256=97XUApgQZrpSxyXODgVLP9drX5rEF-Xb40bYqaBGSj0,30173 +networkx/generators/directed.py,sha256=Vcg0zeWFS2-F99bFmhXj4mzlCy_yoBuuqjnSx5I-Dco,15696 +networkx/generators/duplication.py,sha256=hmYAHJBez7WlfdVGGa288JFUBHoIUdVqEGCodApKOr4,5831 +networkx/generators/ego.py,sha256=TZ-o05FpvVPAdXFBLjjfa2FnAcZwlgqr_1jMdLTzFSg,1900 +networkx/generators/expanders.py,sha256=nJMys4kHNHZzC5jkyCFftw1W_6cF_r82eGTqn7cNrDo,14455 +networkx/generators/geometric.py,sha256=cCrx1HdlLc08klO6bBzb-g0GUfF2AaktCrJOmhDSWUo,39610 +networkx/generators/harary_graph.py,sha256=N6vzXKrW-ZU-xDc2ZTF_Gf7kb0LRQVRfK2oLBQvyVO8,6159 +networkx/generators/internet_as_graphs.py,sha256=Y_pQaGhe183X6dXH4ocqIK3DzXRz0oXE-AKwsL1yCHk,14172 +networkx/generators/intersection.py,sha256=EFm0AOjnqyp8KcT7kGWqANq-_vq9kQ0d_0DzVyQyP-o,4101 +networkx/generators/interval_graph.py,sha256=ZTmdgQbBx3M6sysGWXbGyngYYOC1TAXD3Ozkw4deQFw,2204 +networkx/generators/joint_degree_seq.py,sha256=nyp86NC_4XvzvwpwwzKrrCSz1i_4bESSDtVjWvpkWFg,24773 +networkx/generators/lattice.py,sha256=kVCvTahWPQGNbok6maXfaqGzm88UuxhP7D9BkKhGW1o,13500 +networkx/generators/line.py,sha256=4mFH60EsHvb4wW34E45Byl_rXjDPICD59caoAtOE8VI,17531 +networkx/generators/mycielski.py,sha256=xBX2m77sCzumoH5cAGitksvEEW-ocbCnbdaN7fKUtVk,3314 +networkx/generators/nonisomorphic_trees.py,sha256=gE7uPB-uaE6rEfaimmR9bqobso5yclcCG6u8zwZlS48,6453 +networkx/generators/random_clustered.py,sha256=i_NdvvchHvsvbwgQtoWSY_pLwvhO9Lh02MSZXzgGb7c,4183 +networkx/generators/random_graphs.py,sha256=qi_AjT9Hx5M6ujgTe-DBVIsY9LwqPPZjuAHFMIaQOOc,51346 +networkx/generators/small.py,sha256=Xs9JNTtoLiShg7fF7_VRJ-G18JGSt4JEMmhhtpS51r8,28171 +networkx/generators/social.py,sha256=IUVgWVMUmRaUG28U0KzB--0DtKLdCFDz54tkJ69W4ms,23437 +networkx/generators/spectral_graph_forge.py,sha256=kF4SCE3dcgwBA9bMys5O-mCf529dFhraw3Zmy9GRnQ4,4240 +networkx/generators/stochastic.py,sha256=Qg9vWm9EOug2OQVIHL_dZ5HrXc16lxnWyzX52KWNEPI,1981 +networkx/generators/sudoku.py,sha256=kLM2AP0H4966uYiNO1oAFEmv5qBftU_bOfYucRxexM0,4288 +networkx/generators/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/generators/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_atlas.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_classic.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_cographs.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_community.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_degree_seq.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_directed.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_duplication.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_ego.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_expanders.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_geometric.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_harary_graph.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_internet_as_graphs.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_intersection.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_interval_graph.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_joint_degree_seq.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_lattice.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_line.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_mycielski.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_nonisomorphic_trees.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_random_clustered.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_random_graphs.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_small.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_spectral_graph_forge.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_stochastic.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_sudoku.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_time_series.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_trees.cpython-311.pyc,, +networkx/generators/tests/__pycache__/test_triads.cpython-311.pyc,, +networkx/generators/tests/test_atlas.py,sha256=nwXJL4O5jUqhTwqhkPxHY8s3KXHQTDEdsfbg4MsSzVQ,2530 +networkx/generators/tests/test_classic.py,sha256=PlEZOxT8XADzyDL-GIItEx66hW4bvVl4UCo4ojX4m80,24021 +networkx/generators/tests/test_cographs.py,sha256=Khqvx15VNWHjNkMeEpsio3oJAi8KoiYqfTqKVbQWT9U,458 +networkx/generators/tests/test_community.py,sha256=FGcDo3Ajb-yYc5kUkFbVfOJVMG-YppbAtjgBPcVzjLc,11311 +networkx/generators/tests/test_degree_seq.py,sha256=in6lg1pwcAg1N08MA3lQdr3lnm2-aoUy3BRm6Yj_OBQ,7093 +networkx/generators/tests/test_directed.py,sha256=A01l9R-VBauEN7UEtLkkp9SubjjrnC_QWR2w0Q5GHq0,5259 +networkx/generators/tests/test_duplication.py,sha256=UdIGDF_fishanWid1xO_aH4NDfie8xpIqd26qndhOqI,3155 +networkx/generators/tests/test_ego.py,sha256=8v1Qjmkli9wIhhUuqzgqCzysr0C1Z2C3oJMCUoNvgY4,1327 +networkx/generators/tests/test_expanders.py,sha256=0X78pbB1PnW4pxa7UvlA5lzq6u0ZCfnvMBMYJvLHYH0,5602 +networkx/generators/tests/test_geometric.py,sha256=gnVm4dam_Er88YwaNpNZC6mjJjfgwMYhyLOtU9oPn1o,18087 +networkx/generators/tests/test_harary_graph.py,sha256=GiX5LXXJaNxzjvd-Nyw_QuARzbFGkA6zE1R1eX8mclw,4936 +networkx/generators/tests/test_internet_as_graphs.py,sha256=QmzkOnWg9bcSrv31UcaD6Cko55AV-GPLLY5Aqb_Dmvs,6795 +networkx/generators/tests/test_intersection.py,sha256=hcIit5fKfOn3VjMhz9KqovZK9tzxZfmC6ezvA7gZAvM,819 +networkx/generators/tests/test_interval_graph.py,sha256=JYMi-QMkJQdBU9uOdfm0Xr6MEYqIbhU5oSDa6D3tSb0,4277 +networkx/generators/tests/test_joint_degree_seq.py,sha256=8TXTZI3Um2gBXtP-4yhGKf9vCi78-NVmWZw9r9WG3F8,4270 +networkx/generators/tests/test_lattice.py,sha256=q4Ri-dH9mKhfq0PNX9xMeYRUiP0JlPBr7piSruZlFlg,9290 +networkx/generators/tests/test_line.py,sha256=vXncJuny2j5ulCJyT01Rt1tTwPib4XelS3dJDdJXjx0,10378 +networkx/generators/tests/test_mycielski.py,sha256=fwZLO1ybcltRy6TzCel8tPBil1oZWv9QSXs779H6Xt0,946 +networkx/generators/tests/test_nonisomorphic_trees.py,sha256=g5zkb0T7mkb2AdT-GkIGPXvahh9lv-f-XddJ80Y0Zfg,2454 +networkx/generators/tests/test_random_clustered.py,sha256=SalHqWvpnXA3QrDRMjLx15dk2c4Us8Ck52clUERoUI8,1297 +networkx/generators/tests/test_random_graphs.py,sha256=RTrKahiDHdXIb2ScFzQk3vrxncnMOE3W5LyJfIPvuKc,18925 +networkx/generators/tests/test_small.py,sha256=K4-sSBZca3UMP1deUOWlkSzpanJBAT-vQdr11PMI_QY,7060 +networkx/generators/tests/test_spectral_graph_forge.py,sha256=x4jyTiQiydaUPWYaGsNFsIB47PAzSSwQYCNXGa2B4SU,1594 +networkx/generators/tests/test_stochastic.py,sha256=f-5KD3RpoQf369gXHH7KGebE19g5lCkXR_alcwmFm_s,2179 +networkx/generators/tests/test_sudoku.py,sha256=dgOmk-B7MxCVkbHdZzsLZppQ61FAArVy4McSVL8Afzo,1968 +networkx/generators/tests/test_time_series.py,sha256=rgmFcitlKa_kF6TzJ2ze91lSmNJlqjhvgrYet0AUZx8,2230 +networkx/generators/tests/test_trees.py,sha256=Pvh0MvTKaRuZuwWL-wpJIC0zlBAcnTirpSLJi-9c7qc,7006 +networkx/generators/tests/test_triads.py,sha256=K8anVEP8R90Y172IrKIOrYRWRJBGeqxNqU9isX7Ybxs,333 +networkx/generators/time_series.py,sha256=_DMiY9X95O_9sK2BSeeTb2yMWfStBwKFWwn6FUOXN4Q,2439 +networkx/generators/trees.py,sha256=2a8MsKTzQfFLBESG5oocbTaMv0cYX0vtedFD29eiOFA,36533 +networkx/generators/triads.py,sha256=7kScTf3ITDi3qsSa-IvGMpa9diEaFwQnRuIf3Tv4UBI,2452 +networkx/lazy_imports.py,sha256=tYxP13tZ3p8-Qh--Mey4ZXZqQhWgQAbI7xYBZRrBzw0,5764 +networkx/linalg/__init__.py,sha256=7iyNZ_YYBnlsW8zSfhUgvEkywOrUWfpIuyS86ZOKlG8,568 +networkx/linalg/__pycache__/__init__.cpython-311.pyc,, +networkx/linalg/__pycache__/algebraicconnectivity.cpython-311.pyc,, +networkx/linalg/__pycache__/attrmatrix.cpython-311.pyc,, +networkx/linalg/__pycache__/bethehessianmatrix.cpython-311.pyc,, +networkx/linalg/__pycache__/graphmatrix.cpython-311.pyc,, +networkx/linalg/__pycache__/laplacianmatrix.cpython-311.pyc,, +networkx/linalg/__pycache__/modularitymatrix.cpython-311.pyc,, +networkx/linalg/__pycache__/spectrum.cpython-311.pyc,, +networkx/linalg/algebraicconnectivity.py,sha256=3nOW8g21_8B_J_cCj6UYMVqGUHEI_T3827LcyoSxJvI,21149 +networkx/linalg/attrmatrix.py,sha256=Mwiw5dvIvjDY7Bwlb4sy85KzfoP02EF64CfG_GvJsro,15509 +networkx/linalg/bethehessianmatrix.py,sha256=Ii4NX6mo90W3MppCRcYn9dRW_MsEkVdA9TH6x7JhX8o,2697 +networkx/linalg/graphmatrix.py,sha256=NIs2uWGS_8lJJ5IQ8Og9aIWHawghtlCDWifqOIKV2-c,5623 +networkx/linalg/laplacianmatrix.py,sha256=iRHHabmb9S4ChDPx3Yn2-WIEQFd_flFD3AZkA4k-oyY,20536 +networkx/linalg/modularitymatrix.py,sha256=R_VITtgIkGenxlsCLN4u6CYxj3_HiPXfeU29yarntRo,4706 +networkx/linalg/spectrum.py,sha256=aRY7ApYv5HxrO_4O8brxpZRw3SJU3fYzlgMwhEIXcrc,4215 +networkx/linalg/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/linalg/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/linalg/tests/__pycache__/test_algebraic_connectivity.cpython-311.pyc,, +networkx/linalg/tests/__pycache__/test_attrmatrix.cpython-311.pyc,, +networkx/linalg/tests/__pycache__/test_bethehessian.cpython-311.pyc,, +networkx/linalg/tests/__pycache__/test_graphmatrix.cpython-311.pyc,, +networkx/linalg/tests/__pycache__/test_laplacian.cpython-311.pyc,, +networkx/linalg/tests/__pycache__/test_modularity.cpython-311.pyc,, +networkx/linalg/tests/__pycache__/test_spectrum.cpython-311.pyc,, +networkx/linalg/tests/test_algebraic_connectivity.py,sha256=Kj2ct6gQ71xXFP7usAbFLJxD7ZdtTzneHiFJQOoVCUQ,13737 +networkx/linalg/tests/test_attrmatrix.py,sha256=XD3YuPc5yXKWbhwVSI8YiV_wABWM-rLtwf1uwwWlnI0,2833 +networkx/linalg/tests/test_bethehessian.py,sha256=0r-Do902ywV10TyqTlIJ2Ls3iMqM6sSs2PZbod7kWBM,1327 +networkx/linalg/tests/test_graphmatrix.py,sha256=e5YSH9ih1VL64nnYgZFDvLyKbP3BFqpp0jY6t-8b2eY,8708 +networkx/linalg/tests/test_laplacian.py,sha256=0AGJwezqohoQtrmTZ94Gvg5vISMCB7_G2QdJl7JFTXg,14081 +networkx/linalg/tests/test_modularity.py,sha256=mfKUvwc3bj6Rud1aG4oK3Eu1qg12o6cB8-pv5ZFicYY,3115 +networkx/linalg/tests/test_spectrum.py,sha256=agP2DsiEIvtkNUkT94mdPtJjwnobnjMTUOwjIQa4giA,2828 +networkx/readwrite/__init__.py,sha256=TvSbnGEHQ5F9CY2tkpjWYOyrUj6BeW3sc6P4_IczbKA,561 +networkx/readwrite/__pycache__/__init__.cpython-311.pyc,, +networkx/readwrite/__pycache__/adjlist.cpython-311.pyc,, +networkx/readwrite/__pycache__/edgelist.cpython-311.pyc,, +networkx/readwrite/__pycache__/gexf.cpython-311.pyc,, +networkx/readwrite/__pycache__/gml.cpython-311.pyc,, +networkx/readwrite/__pycache__/graph6.cpython-311.pyc,, +networkx/readwrite/__pycache__/graphml.cpython-311.pyc,, +networkx/readwrite/__pycache__/leda.cpython-311.pyc,, +networkx/readwrite/__pycache__/multiline_adjlist.cpython-311.pyc,, +networkx/readwrite/__pycache__/p2g.cpython-311.pyc,, +networkx/readwrite/__pycache__/pajek.cpython-311.pyc,, +networkx/readwrite/__pycache__/sparse6.cpython-311.pyc,, +networkx/readwrite/__pycache__/text.cpython-311.pyc,, +networkx/readwrite/adjlist.py,sha256=FjVdLlrWLi7mVuKHzO16AO6CVFqA6TCJu3GxLxSOXbU,8435 +networkx/readwrite/edgelist.py,sha256=pjnG_o3_usmgthIpscQRJWHZZ8b3-39Uqgj0OF9qE_g,14237 +networkx/readwrite/gexf.py,sha256=wq50Twz2o9XuoeR6awNYcftZDP-MRSztnsukmKiE3cQ,39693 +networkx/readwrite/gml.py,sha256=5TWaEGaQv33f8F5i5IciQp8YbK0MKNxb1E5GQcKC02M,31150 +networkx/readwrite/graph6.py,sha256=q1CmarzZ_jW_A15fU3YyKFl5OhtN-qWUrVcfc0ZTv6w,11401 +networkx/readwrite/graphml.py,sha256=12KKKXLDyMIif-KB4ZWdvMpgnuRqQ2EEqwY9TX3jkj8,39318 +networkx/readwrite/json_graph/__init__.py,sha256=37XJPMmilcwwo8KqouLWUly7Yv5tZ7IKraMHbBRx3fI,677 +networkx/readwrite/json_graph/__pycache__/__init__.cpython-311.pyc,, +networkx/readwrite/json_graph/__pycache__/adjacency.cpython-311.pyc,, +networkx/readwrite/json_graph/__pycache__/cytoscape.cpython-311.pyc,, +networkx/readwrite/json_graph/__pycache__/node_link.cpython-311.pyc,, +networkx/readwrite/json_graph/__pycache__/tree.cpython-311.pyc,, +networkx/readwrite/json_graph/adjacency.py,sha256=WM6fdncV87WDLPOfF-IbOlOOBMX0utUjJ09UsxtwRAo,4716 +networkx/readwrite/json_graph/cytoscape.py,sha256=kX6_p24F4CnDdT0D5lYrD0-jypyMdmqnGQEXKR1_kH4,5338 +networkx/readwrite/json_graph/node_link.py,sha256=QUre2tj2j6PXdwz6J3ExxyoLsfX-Vs5lDwjcYQjSDcM,10792 +networkx/readwrite/json_graph/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/readwrite/json_graph/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/readwrite/json_graph/tests/__pycache__/test_adjacency.cpython-311.pyc,, +networkx/readwrite/json_graph/tests/__pycache__/test_cytoscape.cpython-311.pyc,, +networkx/readwrite/json_graph/tests/__pycache__/test_node_link.cpython-311.pyc,, +networkx/readwrite/json_graph/tests/__pycache__/test_tree.cpython-311.pyc,, +networkx/readwrite/json_graph/tests/test_adjacency.py,sha256=jueQE3Z_W5BZuCjr0hEsOWSfoQ2fP51p0o0m7IcXUuE,2456 +networkx/readwrite/json_graph/tests/test_cytoscape.py,sha256=vFoDzcSRI9THlmp4Fu2HHhIF9AUmECWs5mftVWjaWWs,2044 +networkx/readwrite/json_graph/tests/test_node_link.py,sha256=q0mqy5fqZFxxHQb18tmFXUOOp_oTP1Ye5bEWzTnXEFo,6468 +networkx/readwrite/json_graph/tests/test_tree.py,sha256=zBXv3_db2XGxFs3XQ35btNf_ku52aLXXiHZmmX4ixAs,1352 +networkx/readwrite/json_graph/tree.py,sha256=K4rF4Kds4g0JhgcPTrrR_I3Pswpze8yCVH4M-WF9nn0,3851 +networkx/readwrite/leda.py,sha256=VjpyUYeAWPD4TQSyvcC-ftcTeg6Pow9zJJqNuiGZ0zU,2797 +networkx/readwrite/multiline_adjlist.py,sha256=_3SB2719ceBdJjYPkyAZUPuCebcHX_Zwk6mQDs4OcTQ,11301 +networkx/readwrite/p2g.py,sha256=0Mi8yvV0Hy6Bo4cbCKYjNp0_0ALYmNNCUMer4w1bkrY,3092 +networkx/readwrite/pajek.py,sha256=9j3sRjLzPQxqQFdEoTCOwICpdAf7G39cdls04dhErns,8738 +networkx/readwrite/sparse6.py,sha256=MFih4PCNJSY4UFuJxBNxYjBT9_11UpIbPQrySSiE9bg,10315 +networkx/readwrite/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/readwrite/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_adjlist.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_edgelist.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_gexf.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_gml.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_graph6.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_graphml.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_leda.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_p2g.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_pajek.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_sparse6.cpython-311.pyc,, +networkx/readwrite/tests/__pycache__/test_text.cpython-311.pyc,, +networkx/readwrite/tests/test_adjlist.py,sha256=t5RL85eDQFPUIdh8W4kozY_P7PMJU2LwSXjWZGE-4Aw,10134 +networkx/readwrite/tests/test_edgelist.py,sha256=cmOqVSpVO-FTdFRUAz40_e2sSmmB9xV6uYmfvw5cNhQ,10113 +networkx/readwrite/tests/test_gexf.py,sha256=Tbqueeh0XRQ8vtmGwXcyy9K3tWPlnLu6Gop0Hy4cZcc,19405 +networkx/readwrite/tests/test_gml.py,sha256=8_2nBU6n8zLHkApiuKkZNH-xMRSdA1G8ZH3Lvjspizg,21391 +networkx/readwrite/tests/test_graph6.py,sha256=DAi58D_G3j2UGk6VpfGkLGzfSAl318TIbuXSKKZ102U,6067 +networkx/readwrite/tests/test_graphml.py,sha256=MrU3AkdqNQ6gVLtOQrZUx39pV7PjS_ETu5uuT5Ce6BI,67573 +networkx/readwrite/tests/test_leda.py,sha256=_5F4nLLQ1oAZQMZtTQoFncZL0Oc-IsztFBglEdQeH3k,1392 +networkx/readwrite/tests/test_p2g.py,sha256=drsdod5amV9TGCk-qE2RwsvAop78IKEI1WguVFfd9rs,1320 +networkx/readwrite/tests/test_pajek.py,sha256=-bT-y26OmWgpLcvk-qvVfOEa-DTcQPwV2qKB99roOrk,4629 +networkx/readwrite/tests/test_sparse6.py,sha256=cqFHWz4G_kMawaRqceofN4K-JlkmPx3BEaDXkU8DD0o,5284 +networkx/readwrite/tests/test_text.py,sha256=x1N97hD31HPkj9Wn2PYti5-gcwaFNnStkaN_38HKnIg,55319 +networkx/readwrite/text.py,sha256=9u43d_m2xcoJKl5rKQ-3N0kIdr3m4xzX2i1y05xDDbM,29163 +networkx/relabel.py,sha256=0HptAQOBToKhLZzxscd6FQpzVCNMlYmiHjHul69ct8o,10300 +networkx/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/tests/__pycache__/test_all_random_functions.cpython-311.pyc,, +networkx/tests/__pycache__/test_convert.cpython-311.pyc,, +networkx/tests/__pycache__/test_convert_numpy.cpython-311.pyc,, +networkx/tests/__pycache__/test_convert_pandas.cpython-311.pyc,, +networkx/tests/__pycache__/test_convert_scipy.cpython-311.pyc,, +networkx/tests/__pycache__/test_exceptions.cpython-311.pyc,, +networkx/tests/__pycache__/test_import.cpython-311.pyc,, +networkx/tests/__pycache__/test_lazy_imports.cpython-311.pyc,, +networkx/tests/__pycache__/test_relabel.cpython-311.pyc,, +networkx/tests/test_all_random_functions.py,sha256=VWBH5Uov3DswxuRDzlMPuDlcryPyWVaCvt2_OMw-dIQ,8673 +networkx/tests/test_convert.py,sha256=SoIVrqJFF9Gu9Jff_apfbpqg8QhkfC6QW4qzoSM-ukM,12731 +networkx/tests/test_convert_numpy.py,sha256=jw-iEj7wVAVXd5rlOxTBMHQD63m90q5RBQxv1ee9dNw,19065 +networkx/tests/test_convert_pandas.py,sha256=2LrQrGkxdlvEZxKmMvyptUvOsTsAcbo8u6siSVbnV3M,13346 +networkx/tests/test_convert_scipy.py,sha256=C2cY_8dgBksO0uttkhyCnjACXtC6KHjxqHUk47P5wH8,10436 +networkx/tests/test_exceptions.py,sha256=XYkpPzqMepSw3MPRUJN5LcFsUsy3YT_fiRDhm0OeAeQ,927 +networkx/tests/test_import.py,sha256=Gm4ujfH9JkQtDrSjOlwXXXUuubI057wskKLCkF6Z92k,220 +networkx/tests/test_lazy_imports.py,sha256=nKykNQPt_ZV8JxCH_EkwwcPNayAgZGQVf89e8I7uIlI,2680 +networkx/tests/test_relabel.py,sha256=dffbjiW_VUAQe7iD8knFS_KepUITt0F6xuwf7daWwKw,14517 +networkx/utils/__init__.py,sha256=7pxleRNpBWuL3FEQz3CzKLn17b6_eSwkM7dqnL1okDk,302 +networkx/utils/__pycache__/__init__.cpython-311.pyc,, +networkx/utils/__pycache__/backends.cpython-311.pyc,, +networkx/utils/__pycache__/configs.cpython-311.pyc,, +networkx/utils/__pycache__/decorators.cpython-311.pyc,, +networkx/utils/__pycache__/heaps.cpython-311.pyc,, +networkx/utils/__pycache__/mapped_queue.cpython-311.pyc,, +networkx/utils/__pycache__/misc.cpython-311.pyc,, +networkx/utils/__pycache__/random_sequence.cpython-311.pyc,, +networkx/utils/__pycache__/rcm.cpython-311.pyc,, +networkx/utils/__pycache__/union_find.cpython-311.pyc,, +networkx/utils/backends.py,sha256=pXioKWl33QJEcL9_FDufk2xv12_8bpgYniJYouJEq4M,113169 +networkx/utils/configs.py,sha256=v3p9eXPPllCcMqX33VhVQUVeXOm7eAn9xdASDEqMmP8,15023 +networkx/utils/decorators.py,sha256=aj07nVz7CW1TaYMBpSiHdRuw_U3_o0XdGoRyLMrJeXg,44836 +networkx/utils/heaps.py,sha256=HUZuETHfELEqiXdMBPmD9fA2KiACVhp6iEahcrjFxYM,10391 +networkx/utils/mapped_queue.py,sha256=WdIRk27D_ArmPs9tdpvQLQCV4Tmus212BQhxsFIMYgk,10184 +networkx/utils/misc.py,sha256=BN_VscZjoishxgbjwxm1PVG_J_jHqpuMd9bffwK6Q5M,21293 +networkx/utils/random_sequence.py,sha256=KzKh0BRMri0MBZlzxHNMl3qRTy2DnBexW3eDzmxKab4,4237 +networkx/utils/rcm.py,sha256=9tpXSK-wwLXFcq3ypXilYNAaJAKrmMiMwp4R78OLvuI,4624 +networkx/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +networkx/utils/tests/__pycache__/__init__.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test__init.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_backends.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_config.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_decorators.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_heaps.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_mapped_queue.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_misc.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_random_sequence.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_rcm.cpython-311.pyc,, +networkx/utils/tests/__pycache__/test_unionfind.cpython-311.pyc,, +networkx/utils/tests/test__init.py,sha256=QE0i-lNE4pG2eYjB2mZ0uw7jPD-7TdL7Y9p73JoWQmo,363 +networkx/utils/tests/test_backends.py,sha256=5fwka8bdEBtvPhjN49dMcgKsUBIVHEmMag6uckBAAd8,6108 +networkx/utils/tests/test_config.py,sha256=nImFv-UMS3uo9DFgYejSCNRm2mOUVHldKFFAY4t_2mQ,7414 +networkx/utils/tests/test_decorators.py,sha256=dm3b5yiQPlnlT_4pSm0FwK-xBGV9dcnhv14Vh9Jiz1o,14050 +networkx/utils/tests/test_heaps.py,sha256=qCuWMzpcMH1Gwu014CAams78o151QD5YL0mB1fz16Yw,3711 +networkx/utils/tests/test_mapped_queue.py,sha256=l1Nguzz68Fv91FnAT7y7B0GXSoje9uoWiObHo7TliGM,7354 +networkx/utils/tests/test_misc.py,sha256=zkD1pYO4xBuBxlGe-nU8okcX6hfDMgu0OJZGu4TMrN0,8671 +networkx/utils/tests/test_random_sequence.py,sha256=Ou-IeCFybibZuycoin5gUQzzC-iy5yanZFmrqvdGt6Q,925 +networkx/utils/tests/test_rcm.py,sha256=UvUAkgmQMGk_Nn94TJyQsle4A5SLQFqMQWld1tiQ2lk,1421 +networkx/utils/tests/test_unionfind.py,sha256=j-DF5XyeJzq1hoeAgN5Nye2Au7EPD040t8oS4Aw2IwU,1579 +networkx/utils/union_find.py,sha256=NxKlBlyS71A1Wlnt28L-wyZoI9ExZvJth_0e2XSVris,3338 diff --git a/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..da25d7b42315fc321e466d6e69705ea21bcff507 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: setuptools (75.2.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/entry_points.txt b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/entry_points.txt new file mode 100644 index 0000000000000000000000000000000000000000..377282a2e4c3dc8b924035d0dfd32d7ae50920c8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/entry_points.txt @@ -0,0 +1,2 @@ +[networkx.backends] +nx_loopback = networkx.classes.tests.dispatch_interface:backend_interface diff --git a/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..4d07dfe2f85d6849d7f416dcce756b2501ba847e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/networkx-3.4.2.dist-info/top_level.txt @@ -0,0 +1 @@ +networkx diff --git a/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/License.txt b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/License.txt new file mode 100644 index 0000000000000000000000000000000000000000..b491c70e0aef319022ded661e111ddbd45b8a17f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/License.txt @@ -0,0 +1,1568 @@ +End User License Agreement +-------------------------- + + +Preface +------- + +The Software License Agreement in Chapter 1 and the Supplement +in Chapter 2 contain license terms and conditions that govern +the use of NVIDIA software. By accepting this agreement, you +agree to comply with all the terms and conditions applicable +to the product(s) included herein. + + +NVIDIA Driver + + +Description + +This package contains the operating system driver and +fundamental system software components for NVIDIA GPUs. + + +NVIDIA CUDA Toolkit + + +Description + +The NVIDIA CUDA Toolkit provides command-line and graphical +tools for building, debugging and optimizing the performance +of applications accelerated by NVIDIA GPUs, runtime and math +libraries, and documentation including programming guides, +user manuals, and API references. + + +Default Install Location of CUDA Toolkit + +Windows platform: + +%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA\v#.# + +Linux platform: + +/usr/local/cuda-#.# + +Mac platform: + +/Developer/NVIDIA/CUDA-#.# + + +NVIDIA CUDA Samples + + +Description + +This package includes over 100+ CUDA examples that demonstrate +various CUDA programming principles, and efficient CUDA +implementation of algorithms in specific application domains. + + +Default Install Location of CUDA Samples + +Windows platform: + +%ProgramData%\NVIDIA Corporation\CUDA Samples\v#.# + +Linux platform: + +/usr/local/cuda-#.#/samples + +and + +$HOME/NVIDIA_CUDA-#.#_Samples + +Mac platform: + +/Developer/NVIDIA/CUDA-#.#/samples + + +NVIDIA Nsight Visual Studio Edition (Windows only) + + +Description + +NVIDIA Nsight Development Platform, Visual Studio Edition is a +development environment integrated into Microsoft Visual +Studio that provides tools for debugging, profiling, analyzing +and optimizing your GPU computing and graphics applications. + + +Default Install Location of Nsight Visual Studio Edition + +Windows platform: + +%ProgramFiles(x86)%\NVIDIA Corporation\Nsight Visual Studio Edition #.# + + +1. License Agreement for NVIDIA Software Development Kits +--------------------------------------------------------- + + +Release Date: July 26, 2018 +--------------------------- + + +Important NoticeRead before downloading, installing, +copying or using the licensed software: +------------------------------------------------------- + +This license agreement, including exhibits attached +("Agreement”) is a legal agreement between you and NVIDIA +Corporation ("NVIDIA") and governs your use of a NVIDIA +software development kit (“SDK”). + +Each SDK has its own set of software and materials, but here +is a description of the types of items that may be included in +a SDK: source code, header files, APIs, data sets and assets +(examples include images, textures, models, scenes, videos, +native API input/output files), binary software, sample code, +libraries, utility programs, programming code and +documentation. + +This Agreement can be accepted only by an adult of legal age +of majority in the country in which the SDK is used. + +If you are entering into this Agreement on behalf of a company +or other legal entity, you represent that you have the legal +authority to bind the entity to this Agreement, in which case +“you” will mean the entity you represent. + +If you don’t have the required age or authority to accept +this Agreement, or if you don’t accept all the terms and +conditions of this Agreement, do not download, install or use +the SDK. + +You agree to use the SDK only for purposes that are permitted +by (a) this Agreement, and (b) any applicable law, regulation +or generally accepted practices or guidelines in the relevant +jurisdictions. + + +1.1. License + + +1.1.1. License Grant + +Subject to the terms of this Agreement, NVIDIA hereby grants +you a non-exclusive, non-transferable license, without the +right to sublicense (except as expressly provided in this +Agreement) to: + + 1. Install and use the SDK, + + 2. Modify and create derivative works of sample source code + delivered in the SDK, and + + 3. Distribute those portions of the SDK that are identified + in this Agreement as distributable, as incorporated in + object code format into a software application that meets + the distribution requirements indicated in this Agreement. + + +1.1.2. Distribution Requirements + +These are the distribution requirements for you to exercise +the distribution grant: + + 1. Your application must have material additional + functionality, beyond the included portions of the SDK. + + 2. The distributable portions of the SDK shall only be + accessed by your application. + + 3. The following notice shall be included in modifications + and derivative works of sample source code distributed: + “This software contains source code provided by NVIDIA + Corporation.” + + 4. Unless a developer tool is identified in this Agreement + as distributable, it is delivered for your internal use + only. + + 5. The terms under which you distribute your application + must be consistent with the terms of this Agreement, + including (without limitation) terms relating to the + license grant and license restrictions and protection of + NVIDIA’s intellectual property rights. Additionally, you + agree that you will protect the privacy, security and + legal rights of your application users. + + 6. You agree to notify NVIDIA in writing of any known or + suspected distribution or use of the SDK not in compliance + with the requirements of this Agreement, and to enforce + the terms of your agreements with respect to distributed + SDK. + + +1.1.3. Authorized Users + +You may allow employees and contractors of your entity or of +your subsidiary(ies) to access and use the SDK from your +secure network to perform work on your behalf. + +If you are an academic institution you may allow users +enrolled or employed by the academic institution to access and +use the SDK from your secure network. + +You are responsible for the compliance with the terms of this +Agreement by your authorized users. If you become aware that +your authorized users didn’t follow the terms of this +Agreement, you agree to take reasonable steps to resolve the +non-compliance and prevent new occurrences. + + +1.1.4. Pre-Release SDK + +The SDK versions identified as alpha, beta, preview or +otherwise as pre-release, may not be fully functional, may +contain errors or design flaws, and may have reduced or +different security, privacy, accessibility, availability, and +reliability standards relative to commercial versions of +NVIDIA software and materials. Use of a pre-release SDK may +result in unexpected results, loss of data, project delays or +other unpredictable damage or loss. + +You may use a pre-release SDK at your own risk, understanding +that pre-release SDKs are not intended for use in production +or business-critical systems. + +NVIDIA may choose not to make available a commercial version +of any pre-release SDK. NVIDIA may also choose to abandon +development and terminate the availability of a pre-release +SDK at any time without liability. + + +1.1.5. Updates + +NVIDIA may, at its option, make available patches, workarounds +or other updates to this SDK. Unless the updates are provided +with their separate governing terms, they are deemed part of +the SDK licensed to you as provided in this Agreement. You +agree that the form and content of the SDK that NVIDIA +provides may change without prior notice to you. While NVIDIA +generally maintains compatibility between versions, NVIDIA may +in some cases make changes that introduce incompatibilities in +future versions of the SDK. + + +1.1.6. Third Party Licenses + +The SDK may come bundled with, or otherwise include or be +distributed with, third party software licensed by a NVIDIA +supplier and/or open source software provided under an open +source license. Use of third party software is subject to the +third-party license terms, or in the absence of third party +terms, the terms of this Agreement. Copyright to third party +software is held by the copyright holders indicated in the +third-party software or license. + + +1.1.7. Reservation of Rights + +NVIDIA reserves all rights, title, and interest in and to the +SDK, not expressly granted to you under this Agreement. + + +1.2. Limitations + +The following license limitations apply to your use of the +SDK: + + 1. You may not reverse engineer, decompile or disassemble, + or remove copyright or other proprietary notices from any + portion of the SDK or copies of the SDK. + + 2. Except as expressly provided in this Agreement, you may + not copy, sell, rent, sublicense, transfer, distribute, + modify, or create derivative works of any portion of the + SDK. For clarity, you may not distribute or sublicense the + SDK as a stand-alone product. + + 3. Unless you have an agreement with NVIDIA for this + purpose, you may not indicate that an application created + with the SDK is sponsored or endorsed by NVIDIA. + + 4. You may not bypass, disable, or circumvent any + encryption, security, digital rights management or + authentication mechanism in the SDK. + + 5. You may not use the SDK in any manner that would cause it + to become subject to an open source software license. As + examples, licenses that require as a condition of use, + modification, and/or distribution that the SDK be: + + a. Disclosed or distributed in source code form; + + b. Licensed for the purpose of making derivative works; + or + + c. Redistributable at no charge. + + 6. Unless you have an agreement with NVIDIA for this + purpose, you may not use the SDK with any system or + application where the use or failure of the system or + application can reasonably be expected to threaten or + result in personal injury, death, or catastrophic loss. + Examples include use in avionics, navigation, military, + medical, life support or other life critical applications. + NVIDIA does not design, test or manufacture the SDK for + these critical uses and NVIDIA shall not be liable to you + or any third party, in whole or in part, for any claims or + damages arising from such uses. + + 7. You agree to defend, indemnify and hold harmless NVIDIA + and its affiliates, and their respective employees, + contractors, agents, officers and directors, from and + against any and all claims, damages, obligations, losses, + liabilities, costs or debt, fines, restitutions and + expenses (including but not limited to attorney’s fees + and costs incident to establishing the right of + indemnification) arising out of or related to your use of + the SDK outside of the scope of this Agreement, or not in + compliance with its terms. + + +1.3. Ownership + + 1. NVIDIA or its licensors hold all rights, title and + interest in and to the SDK and its modifications and + derivative works, including their respective intellectual + property rights, subject to your rights described in this + section. This SDK may include software and materials from + NVIDIA’s licensors, and these licensors are intended + third party beneficiaries that may enforce this Agreement + with respect to their intellectual property rights. + + 2. You hold all rights, title and interest in and to your + applications and your derivative works of the sample + source code delivered in the SDK, including their + respective intellectual property rights, subject to + NVIDIA’s rights described in this section. + + 3. You may, but don’t have to, provide to NVIDIA + suggestions, feature requests or other feedback regarding + the SDK, including possible enhancements or modifications + to the SDK. For any feedback that you voluntarily provide, + you hereby grant NVIDIA and its affiliates a perpetual, + non-exclusive, worldwide, irrevocable license to use, + reproduce, modify, license, sublicense (through multiple + tiers of sublicensees), and distribute (through multiple + tiers of distributors) it without the payment of any + royalties or fees to you. NVIDIA will use feedback at its + choice. NVIDIA is constantly looking for ways to improve + its products, so you may send feedback to NVIDIA through + the developer portal at https://developer.nvidia.com. + + +1.4. No Warranties + +THE SDK IS PROVIDED BY NVIDIA “AS IS” AND “WITH ALL +FAULTS.” TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND +ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND +OR NATURE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, +BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, OR THE +ABSENCE OF ANY DEFECTS THEREIN, WHETHER LATENT OR PATENT. NO +WARRANTY IS MADE ON THE BASIS OF TRADE USAGE, COURSE OF +DEALING OR COURSE OF TRADE. + + +1.5. Limitation of Liability + +TO THE MAXIMUM EXTENT PERMITTED BY LAW, NVIDIA AND ITS +AFFILIATES SHALL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, +PUNITIVE OR CONSEQUENTIAL DAMAGES, OR ANY LOST PROFITS, LOSS +OF USE, LOSS OF DATA OR LOSS OF GOODWILL, OR THE COSTS OF +PROCURING SUBSTITUTE PRODUCTS, ARISING OUT OF OR IN CONNECTION +WITH THIS AGREEMENT OR THE USE OR PERFORMANCE OF THE SDK, +WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON BREACH +OF CONTRACT, BREACH OF WARRANTY, TORT (INCLUDING NEGLIGENCE), +PRODUCT LIABILITY OR ANY OTHER CAUSE OF ACTION OR THEORY OF +LIABILITY. IN NO EVENT WILL NVIDIA’S AND ITS AFFILIATES +TOTAL CUMULATIVE LIABILITY UNDER OR ARISING OUT OF THIS +AGREEMENT EXCEED US$10.00. THE NATURE OF THE LIABILITY OR THE +NUMBER OF CLAIMS OR SUITS SHALL NOT ENLARGE OR EXTEND THIS +LIMIT. + +These exclusions and limitations of liability shall apply +regardless if NVIDIA or its affiliates have been advised of +the possibility of such damages, and regardless of whether a +remedy fails its essential purpose. These exclusions and +limitations of liability form an essential basis of the +bargain between the parties, and, absent any of these +exclusions or limitations of liability, the provisions of this +Agreement, including, without limitation, the economic terms, +would be substantially different. + + +1.6. Termination + + 1. This Agreement will continue to apply until terminated by + either you or NVIDIA as described below. + + 2. If you want to terminate this Agreement, you may do so by + stopping to use the SDK. + + 3. NVIDIA may, at any time, terminate this Agreement if: + + a. (i) you fail to comply with any term of this + Agreement and the non-compliance is not fixed within + thirty (30) days following notice from NVIDIA (or + immediately if you violate NVIDIA’s intellectual + property rights); + + b. (ii) you commence or participate in any legal + proceeding against NVIDIA with respect to the SDK; or + + c. (iii) NVIDIA decides to no longer provide the SDK in + a country or, in NVIDIA’s sole discretion, the + continued use of it is no longer commercially viable. + + 4. Upon any termination of this Agreement, you agree to + promptly discontinue use of the SDK and destroy all copies + in your possession or control. Your prior distributions in + accordance with this Agreement are not affected by the + termination of this Agreement. Upon written request, you + will certify in writing that you have complied with your + commitments under this section. Upon any termination of + this Agreement all provisions survive except for the + license grant provisions. + + +1.7. General + +If you wish to assign this Agreement or your rights and +obligations, including by merger, consolidation, dissolution +or operation of law, contact NVIDIA to ask for permission. Any +attempted assignment not approved by NVIDIA in writing shall +be void and of no effect. NVIDIA may assign, delegate or +transfer this Agreement and its rights and obligations, and if +to a non-affiliate you will be notified. + +You agree to cooperate with NVIDIA and provide reasonably +requested information to verify your compliance with this +Agreement. + +This Agreement will be governed in all respects by the laws of +the United States and of the State of Delaware as those laws +are applied to contracts entered into and performed entirely +within Delaware by Delaware residents, without regard to the +conflicts of laws principles. The United Nations Convention on +Contracts for the International Sale of Goods is specifically +disclaimed. You agree to all terms of this Agreement in the +English language. + +The state or federal courts residing in Santa Clara County, +California shall have exclusive jurisdiction over any dispute +or claim arising out of this Agreement. Notwithstanding this, +you agree that NVIDIA shall still be allowed to apply for +injunctive remedies or an equivalent type of urgent legal +relief in any jurisdiction. + +If any court of competent jurisdiction determines that any +provision of this Agreement is illegal, invalid or +unenforceable, such provision will be construed as limited to +the extent necessary to be consistent with and fully +enforceable under the law and the remaining provisions will +remain in full force and effect. Unless otherwise specified, +remedies are cumulative. + +Each party acknowledges and agrees that the other is an +independent contractor in the performance of this Agreement. + +The SDK has been developed entirely at private expense and is +“commercial items” consisting of “commercial computer +software” and “commercial computer software +documentation” provided with RESTRICTED RIGHTS. Use, +duplication or disclosure by the U.S. Government or a U.S. +Government subcontractor is subject to the restrictions in +this Agreement pursuant to DFARS 227.7202-3(a) or as set forth +in subparagraphs (c)(1) and (2) of the Commercial Computer +Software - Restricted Rights clause at FAR 52.227-19, as +applicable. Contractor/manufacturer is NVIDIA, 2788 San Tomas +Expressway, Santa Clara, CA 95051. + +The SDK is subject to United States export laws and +regulations. You agree that you will not ship, transfer or +export the SDK into any country, or use the SDK in any manner, +prohibited by the United States Bureau of Industry and +Security or economic sanctions regulations administered by the +U.S. Department of Treasury’s Office of Foreign Assets +Control (OFAC), or any applicable export laws, restrictions or +regulations. These laws include restrictions on destinations, +end users and end use. By accepting this Agreement, you +confirm that you are not a resident or citizen of any country +currently embargoed by the U.S. and that you are not otherwise +prohibited from receiving the SDK. + +Any notice delivered by NVIDIA to you under this Agreement +will be delivered via mail, email or fax. You agree that any +notices that NVIDIA sends you electronically will satisfy any +legal communication requirements. Please direct your legal +notices or other correspondence to NVIDIA Corporation, 2788 +San Tomas Expressway, Santa Clara, California 95051, United +States of America, Attention: Legal Department. + +This Agreement and any exhibits incorporated into this +Agreement constitute the entire agreement of the parties with +respect to the subject matter of this Agreement and supersede +all prior negotiations or documentation exchanged between the +parties relating to this SDK license. Any additional and/or +conflicting terms on documents issued by you are null, void, +and invalid. Any amendment or waiver under this Agreement +shall be in writing and signed by representatives of both +parties. + + +2. CUDA Toolkit Supplement to Software License Agreement for +NVIDIA Software Development Kits +------------------------------------------------------------ + + +Release date: August 16, 2018 +----------------------------- + +The terms in this supplement govern your use of the NVIDIA +CUDA Toolkit SDK under the terms of your license agreement +(“Agreement”) as modified by this supplement. Capitalized +terms used but not defined below have the meaning assigned to +them in the Agreement. + +This supplement is an exhibit to the Agreement and is +incorporated as an integral part of the Agreement. In the +event of conflict between the terms in this supplement and the +terms in the Agreement, the terms in this supplement govern. + + +2.1. License Scope + +The SDK is licensed for you to develop applications only for +use in systems with NVIDIA GPUs. + + +2.2. Distribution + +The portions of the SDK that are distributable under the +Agreement are listed in Attachment A. + + +2.3. Operating Systems + +Those portions of the SDK designed exclusively for use on the +Linux or FreeBSD operating systems, or other operating systems +derived from the source code to these operating systems, may +be copied and redistributed for use in accordance with this +Agreement, provided that the object code files are not +modified in any way (except for unzipping of compressed +files). + + +2.4. Audio and Video Encoders and Decoders + +You acknowledge and agree that it is your sole responsibility +to obtain any additional third-party licenses required to +make, have made, use, have used, sell, import, and offer for +sale your products or services that include or incorporate any +third-party software and content relating to audio and/or +video encoders and decoders from, including but not limited +to, Microsoft, Thomson, Fraunhofer IIS, Sisvel S.p.A., +MPEG-LA, and Coding Technologies. NVIDIA does not grant to you +under this Agreement any necessary patent or other rights with +respect to any audio and/or video encoders and decoders. + + +2.5. Licensing + +If the distribution terms in this Agreement are not suitable +for your organization, or for any questions regarding this +Agreement, please contact NVIDIA at +nvidia-compute-license-questions@nvidia.com. + + +2.6. Attachment A + +The following portions of the SDK are distributable under the +Agreement: + +Component + +CUDA Runtime + +Windows + +cudart.dll, cudart_static.lib, cudadevrt.lib + +Mac OSX + +libcudart.dylib, libcudart_static.a, libcudadevrt.a + +Linux + +libcudart.so, libcudart_static.a, libcudadevrt.a + +Android + +libcudart.so, libcudart_static.a, libcudadevrt.a + +Component + +CUDA FFT Library + +Windows + +cufft.dll, cufftw.dll, cufft.lib, cufftw.lib + +Mac OSX + +libcufft.dylib, libcufft_static.a, libcufftw.dylib, +libcufftw_static.a + +Linux + +libcufft.so, libcufft_static.a, libcufftw.so, +libcufftw_static.a + +Android + +libcufft.so, libcufft_static.a, libcufftw.so, +libcufftw_static.a + +Component + +CUDA BLAS Library + +Windows + +cublas.dll, cublasLt.dll + +Mac OSX + +libcublas.dylib, libcublasLt.dylib, libcublas_static.a, +libcublasLt_static.a + +Linux + +libcublas.so, libcublasLt.so, libcublas_static.a, +libcublasLt_static.a + +Android + +libcublas.so, libcublasLt.so, libcublas_static.a, +libcublasLt_static.a + +Component + +NVIDIA "Drop-in" BLAS Library + +Windows + +nvblas.dll + +Mac OSX + +libnvblas.dylib + +Linux + +libnvblas.so + +Component + +CUDA Sparse Matrix Library + +Windows + +cusparse.dll, cusparse.lib + +Mac OSX + +libcusparse.dylib, libcusparse_static.a + +Linux + +libcusparse.so, libcusparse_static.a + +Android + +libcusparse.so, libcusparse_static.a + +Component + +CUDA Linear Solver Library + +Windows + +cusolver.dll, cusolver.lib + +Mac OSX + +libcusolver.dylib, libcusolver_static.a + +Linux + +libcusolver.so, libcusolver_static.a + +Android + +libcusolver.so, libcusolver_static.a + +Component + +CUDA Random Number Generation Library + +Windows + +curand.dll, curand.lib + +Mac OSX + +libcurand.dylib, libcurand_static.a + +Linux + +libcurand.so, libcurand_static.a + +Android + +libcurand.so, libcurand_static.a + +Component + +CUDA Accelerated Graph Library + +Component + +NVIDIA Performance Primitives Library + +Windows + +nppc.dll, nppc.lib, nppial.dll, nppial.lib, nppicc.dll, +nppicc.lib, nppicom.dll, nppicom.lib, nppidei.dll, +nppidei.lib, nppif.dll, nppif.lib, nppig.dll, nppig.lib, +nppim.dll, nppim.lib, nppist.dll, nppist.lib, nppisu.dll, +nppisu.lib, nppitc.dll, nppitc.lib, npps.dll, npps.lib + +Mac OSX + +libnppc.dylib, libnppc_static.a, libnppial.dylib, +libnppial_static.a, libnppicc.dylib, libnppicc_static.a, +libnppicom.dylib, libnppicom_static.a, libnppidei.dylib, +libnppidei_static.a, libnppif.dylib, libnppif_static.a, +libnppig.dylib, libnppig_static.a, libnppim.dylib, +libnppisu_static.a, libnppitc.dylib, libnppitc_static.a, +libnpps.dylib, libnpps_static.a + +Linux + +libnppc.so, libnppc_static.a, libnppial.so, +libnppial_static.a, libnppicc.so, libnppicc_static.a, +libnppicom.so, libnppicom_static.a, libnppidei.so, +libnppidei_static.a, libnppif.so, libnppif_static.a +libnppig.so, libnppig_static.a, libnppim.so, +libnppim_static.a, libnppist.so, libnppist_static.a, +libnppisu.so, libnppisu_static.a, libnppitc.so +libnppitc_static.a, libnpps.so, libnpps_static.a + +Android + +libnppc.so, libnppc_static.a, libnppial.so, +libnppial_static.a, libnppicc.so, libnppicc_static.a, +libnppicom.so, libnppicom_static.a, libnppidei.so, +libnppidei_static.a, libnppif.so, libnppif_static.a +libnppig.so, libnppig_static.a, libnppim.so, +libnppim_static.a, libnppist.so, libnppist_static.a, +libnppisu.so, libnppisu_static.a, libnppitc.so +libnppitc_static.a, libnpps.so, libnpps_static.a + +Component + +NVIDIA JPEG Library + +Linux + +libnvjpeg.so, libnvjpeg_static.a + +Component + +Internal common library required for statically linking to +cuBLAS, cuSPARSE, cuFFT, cuRAND, nvJPEG and NPP + +Mac OSX + +libculibos.a + +Linux + +libculibos.a + +Component + +NVIDIA Runtime Compilation Library and Header + +All + +nvrtc.h + +Windows + +nvrtc.dll, nvrtc-builtins.dll + +Mac OSX + +libnvrtc.dylib, libnvrtc-builtins.dylib + +Linux + +libnvrtc.so, libnvrtc-builtins.so + +Component + +NVIDIA Optimizing Compiler Library + +Windows + +nvvm.dll + +Mac OSX + +libnvvm.dylib + +Linux + +libnvvm.so + +Component + +NVIDIA Common Device Math Functions Library + +Windows + +libdevice.10.bc + +Mac OSX + +libdevice.10.bc + +Linux + +libdevice.10.bc + +Component + +CUDA Occupancy Calculation Header Library + +All + +cuda_occupancy.h + +Component + +CUDA Half Precision Headers + +All + +cuda_fp16.h, cuda_fp16.hpp + +Component + +CUDA Profiling Tools Interface (CUPTI) Library + +Windows + +cupti.dll + +Mac OSX + +libcupti.dylib + +Linux + +libcupti.so + +Component + +NVIDIA Tools Extension Library + +Windows + +nvToolsExt.dll, nvToolsExt.lib + +Mac OSX + +libnvToolsExt.dylib + +Linux + +libnvToolsExt.so + +Component + +NVIDIA CUDA Driver Libraries + +Linux + +libcuda.so, libnvidia-fatbinaryloader.so, +libnvidia-ptxjitcompiler.so + +The NVIDIA CUDA Driver Libraries are only distributable in +applications that meet this criteria: + + 1. The application was developed starting from a NVIDIA CUDA + container obtained from Docker Hub or the NVIDIA GPU + Cloud, and + + 2. The resulting application is packaged as a Docker + container and distributed to users on Docker Hub or the + NVIDIA GPU Cloud only. + + +2.7. Attachment B + + +Additional Licensing Obligations + +The following third party components included in the SOFTWARE +are licensed to Licensee pursuant to the following terms and +conditions: + + 1. Licensee's use of the GDB third party component is + subject to the terms and conditions of GNU GPL v3: + + This product includes copyrighted third-party software licensed + under the terms of the GNU General Public License v3 ("GPL v3"). + All third-party software packages are copyright by their respective + authors. GPL v3 terms and conditions are hereby incorporated into + the Agreement by this reference: http://www.gnu.org/licenses/gpl.txt + + Consistent with these licensing requirements, the software + listed below is provided under the terms of the specified + open source software licenses. To obtain source code for + software provided under licenses that require + redistribution of source code, including the GNU General + Public License (GPL) and GNU Lesser General Public License + (LGPL), contact oss-requests@nvidia.com. This offer is + valid for a period of three (3) years from the date of the + distribution of this product by NVIDIA CORPORATION. + + Component License + CUDA-GDB GPL v3 + + 2. Licensee represents and warrants that any and all third + party licensing and/or royalty payment obligations in + connection with Licensee's use of the H.264 video codecs + are solely the responsibility of Licensee. + + 3. Licensee's use of the Thrust library is subject to the + terms and conditions of the Apache License Version 2.0. + All third-party software packages are copyright by their + respective authors. Apache License Version 2.0 terms and + conditions are hereby incorporated into the Agreement by + this reference. + http://www.apache.org/licenses/LICENSE-2.0.html + + In addition, Licensee acknowledges the following notice: + Thrust includes source code from the Boost Iterator, + Tuple, System, and Random Number libraries. + + Boost Software License - Version 1.0 - August 17th, 2003 + . . . . + + Permission is hereby granted, free of charge, to any person or + organization obtaining a copy of the software and accompanying + documentation covered by this license (the "Software") to use, + reproduce, display, distribute, execute, and transmit the Software, + and to prepare derivative works of the Software, and to permit + third-parties to whom the Software is furnished to do so, all + subject to the following: + + The copyright notices in the Software and this entire statement, + including the above license grant, this restriction and the following + disclaimer, must be included in all copies of the Software, in whole + or in part, and all derivative works of the Software, unless such + copies or derivative works are solely in the form of machine-executable + object code generated by a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR + ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR + OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + 4. Licensee's use of the LLVM third party component is + subject to the following terms and conditions: + + ====================================================== + LLVM Release License + ====================================================== + University of Illinois/NCSA + Open Source License + + Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign. + All rights reserved. + + Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal with the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at Urbana- + Champaign, nor the names of its contributors may be used to endorse or + promote products derived from this Software without specific prior + written permission. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS WITH THE SOFTWARE. + + 5. Licensee's use (e.g. nvprof) of the PCRE third party + component is subject to the following terms and + conditions: + + ------------ + PCRE LICENCE + ------------ + PCRE is a library of functions to support regular expressions whose syntax + and semantics are as close as possible to those of the Perl 5 language. + Release 8 of PCRE is distributed under the terms of the "BSD" licence, as + specified below. The documentation for PCRE, supplied in the "doc" + directory, is distributed under the same terms as the software itself. The + basic library functions are written in C and are freestanding. Also + included in the distribution is a set of C++ wrapper functions, and a just- + in-time compiler that can be used to optimize pattern matching. These are + both optional features that can be omitted when the library is built. + + THE BASIC LIBRARY FUNCTIONS + --------------------------- + Written by: Philip Hazel + Email local part: ph10 + Email domain: cam.ac.uk + University of Cambridge Computing Service, + Cambridge, England. + Copyright (c) 1997-2012 University of Cambridge + All rights reserved. + + PCRE JUST-IN-TIME COMPILATION SUPPORT + ------------------------------------- + Written by: Zoltan Herczeg + Email local part: hzmester + Emain domain: freemail.hu + Copyright(c) 2010-2012 Zoltan Herczeg + All rights reserved. + + STACK-LESS JUST-IN-TIME COMPILER + -------------------------------- + Written by: Zoltan Herczeg + Email local part: hzmester + Emain domain: freemail.hu + Copyright(c) 2009-2012 Zoltan Herczeg + All rights reserved. + + THE C++ WRAPPER FUNCTIONS + ------------------------- + Contributed by: Google Inc. + Copyright (c) 2007-2012, Google Inc. + All rights reserved. + + THE "BSD" LICENCE + ----------------- + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the name of Google + Inc. nor the names of their contributors may be used to endorse or + promote products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + 6. Some of the cuBLAS library routines were written by or + derived from code written by Vasily Volkov and are subject + to the Modified Berkeley Software Distribution License as + follows: + + Copyright (c) 2007-2009, Regents of the University of California + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the University of California, Berkeley nor + the names of its contributors may be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + 7. Some of the cuBLAS library routines were written by or + derived from code written by Davide Barbieri and are + subject to the Modified Berkeley Software Distribution + License as follows: + + Copyright (c) 2008-2009 Davide Barbieri @ University of Rome Tor Vergata. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + 8. Some of the cuBLAS library routines were derived from + code developed by the University of Tennessee and are + subject to the Modified Berkeley Software Distribution + License as follows: + + Copyright (c) 2010 The University of Tennessee. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer listed in this license in the documentation and/or + other materials provided with the distribution. + * Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + 9. Some of the cuBLAS library routines were written by or + derived from code written by Jonathan Hogg and are subject + to the Modified Berkeley Software Distribution License as + follows: + + Copyright (c) 2012, The Science and Technology Facilities Council (STFC). + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the STFC nor the names of its contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE STFC BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + 10. Some of the cuBLAS library routines were written by or + derived from code written by Ahmad M. Abdelfattah, David + Keyes, and Hatem Ltaief, and are subject to the Apache + License, Version 2.0, as follows: + + -- (C) Copyright 2013 King Abdullah University of Science and Technology + Authors: + Ahmad Abdelfattah (ahmad.ahmad@kaust.edu.sa) + David Keyes (david.keyes@kaust.edu.sa) + Hatem Ltaief (hatem.ltaief@kaust.edu.sa) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the King Abdullah University of Science and + Technology nor the names of its contributors may be used to endorse + or promote products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + + 11. Some of the cuSPARSE library routines were written by or + derived from code written by Li-Wen Chang and are subject + to the NCSA Open Source License as follows: + + Copyright (c) 2012, University of Illinois. + + All rights reserved. + + Developed by: IMPACT Group, University of Illinois, http://impact.crhc.illinois.edu + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal with the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimers in the documentation and/or other materials provided + with the distribution. + * Neither the names of IMPACT Group, University of Illinois, nor + the names of its contributors may be used to endorse or promote + products derived from this Software without specific prior + written permission. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR + IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE + SOFTWARE. + + 12. Some of the cuRAND library routines were written by or + derived from code written by Mutsuo Saito and Makoto + Matsumoto and are subject to the following license: + + Copyright (c) 2009, 2010 Mutsuo Saito, Makoto Matsumoto and Hiroshima + University. All rights reserved. + + Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima + University and University of Tokyo. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the Hiroshima University nor the names of + its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + 13. Some of the cuRAND library routines were derived from + code developed by D. E. Shaw Research and are subject to + the following license: + + Copyright 2010-2011, D. E. Shaw Research. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions, and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions, and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of D. E. Shaw Research nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + 14. Some of the Math library routines were written by or + derived from code developed by Norbert Juffa and are + subject to the following license: + + Copyright (c) 2015-2017, Norbert Juffa + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + 15. Licensee's use of the lz4 third party component is + subject to the following terms and conditions: + + Copyright (C) 2011-2013, Yann Collet. + BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + 16. The NPP library uses code from the Boost Math Toolkit, + and is subject to the following license: + + Boost Software License - Version 1.0 - August 17th, 2003 + . . . . + + Permission is hereby granted, free of charge, to any person or + organization obtaining a copy of the software and accompanying + documentation covered by this license (the "Software") to use, + reproduce, display, distribute, execute, and transmit the Software, + and to prepare derivative works of the Software, and to permit + third-parties to whom the Software is furnished to do so, all + subject to the following: + + The copyright notices in the Software and this entire statement, + including the above license grant, this restriction and the following + disclaimer, must be included in all copies of the Software, in whole + or in part, and all derivative works of the Software, unless such + copies or derivative works are solely in the form of machine-executable + object code generated by a source language processor. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR + ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR + OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + 17. Portions of the Nsight Eclipse Edition is subject to the + following license: + + The Eclipse Foundation makes available all content in this plug-in + ("Content"). Unless otherwise indicated below, the Content is provided + to you under the terms and conditions of the Eclipse Public License + Version 1.0 ("EPL"). A copy of the EPL is available at http:// + www.eclipse.org/legal/epl-v10.html. For purposes of the EPL, "Program" + will mean the Content. + + If you did not receive this Content directly from the Eclipse + Foundation, the Content is being redistributed by another party + ("Redistributor") and different terms and conditions may apply to your + use of any object code in the Content. Check the Redistributor's + license that was provided with the Content. If no such license exists, + contact the Redistributor. Unless otherwise indicated below, the terms + and conditions of the EPL still apply to any source code in the + Content and such source code may be obtained at http://www.eclipse.org. + + 18. Some of the cuBLAS library routines uses code from + OpenAI, which is subject to the following license: + + License URL + https://github.com/openai/openai-gemm/blob/master/LICENSE + + License Text + The MIT License + + Copyright (c) 2016 OpenAI (http://openai.com), 2016 Google Inc. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + + 19. Licensee's use of the Visual Studio Setup Configuration + Samples is subject to the following license: + + The MIT License (MIT) + Copyright (C) Microsoft Corporation. All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + 20. Licensee's use of linmath.h header for CPU functions for + GL vector/matrix operations from lunarG is subject to the + Apache License Version 2.0. + + 21. The DX12-CUDA sample uses the d3dx12.h header, which is + subject to the MIT license . + +----------------- diff --git a/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/METADATA b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..0700cabfe978ba3e103a9c43790d698a0072fff8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/METADATA @@ -0,0 +1,35 @@ +Metadata-Version: 2.1 +Name: nvidia-cuda-runtime-cu12 +Version: 12.4.127 +Summary: CUDA Runtime native Libraries +Home-page: https://developer.nvidia.com/cuda-zone +Author: Nvidia CUDA Installer Team +Author-email: cuda_installer@nvidia.com +License: NVIDIA Proprietary Software +Keywords: cuda,nvidia,runtime,machine learning,deep learning +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: Intended Audience :: Education +Classifier: Intended Audience :: Science/Research +Classifier: License :: Other/Proprietary License +Classifier: Natural Language :: English +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Topic :: Scientific/Engineering +Classifier: Topic :: Scientific/Engineering :: Mathematics +Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence +Classifier: Topic :: Software Development +Classifier: Topic :: Software Development :: Libraries +Classifier: Operating System :: Microsoft :: Windows +Classifier: Operating System :: POSIX :: Linux +Requires-Python: >=3 +License-File: License.txt + +CUDA Runtime native Libraries diff --git a/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/RECORD b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..1fec56f745c611049390853aacbe46d98d89dcc2 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/RECORD @@ -0,0 +1,106 @@ +nvidia/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +nvidia/__pycache__/__init__.cpython-311.pyc,, +nvidia/cuda_runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +nvidia/cuda_runtime/__pycache__/__init__.cpython-311.pyc,, +nvidia/cuda_runtime/include/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +nvidia/cuda_runtime/include/__pycache__/__init__.cpython-311.pyc,, +nvidia/cuda_runtime/include/builtin_types.h,sha256=JxT9Vf2q2snxTBOL9ACzNmYzTWACO2VOVUu1KdFt7_g,3150 +nvidia/cuda_runtime/include/channel_descriptor.h,sha256=no_vNky02LeMLI0CF8GDVGHaPm_uRUGcVUMYdt_Xn4U,21482 +nvidia/cuda_runtime/include/common_functions.h,sha256=22LTZRVcPZzEH6MJda7nNMCvMgIjSTe0OKR7sEQj6kc,3410 +nvidia/cuda_runtime/include/cooperative_groups.h,sha256=JUBW-C1x_7WWuNOaoorTKQab0qzrykkG8oAw1mEHZ2s,60332 +nvidia/cuda_runtime/include/cooperative_groups/details/async.h,sha256=xsEHCZP3nuEY3l2p8SU2d1226XiXumUvDP_Gyh8PdVY,19122 +nvidia/cuda_runtime/include/cooperative_groups/details/coalesced_reduce.h,sha256=pBQgFY7i64V87XNATg1UEIQHVNYOItQtHjS5B4yn8pc,4257 +nvidia/cuda_runtime/include/cooperative_groups/details/coalesced_scan.h,sha256=DfZv5d5W0XJv-tZVhgrIdjLjs6aCx_u0oy1lDIpjo1Q,7314 +nvidia/cuda_runtime/include/cooperative_groups/details/driver_abi.h,sha256=v-ZUb4UgGKJk6NR2WCWHD3x_42y-togI1urFn70Gi-g,3964 +nvidia/cuda_runtime/include/cooperative_groups/details/functional.h,sha256=2BV8i8Bidz0kgxuYkJCAbwFxOIZRyzHgG-c_rVKhRzc,8905 +nvidia/cuda_runtime/include/cooperative_groups/details/helpers.h,sha256=K9jvxnXc5-6Fum1KG4EQKJJrVZ4BhHOSAJbZR4uDL0c,26476 +nvidia/cuda_runtime/include/cooperative_groups/details/info.h,sha256=Ij_cqIrcXCcwlaQqCL7AHzMD4H89y0tJeQXCbjTGsFo,12578 +nvidia/cuda_runtime/include/cooperative_groups/details/invoke.h,sha256=Osq3K-tZuXHVCMQJ708PjPo-BwMhjhjApO4b0TYLFJg,8616 +nvidia/cuda_runtime/include/cooperative_groups/details/memory.h,sha256=WU28eUcYLA1z131VYGulR4eVCSN9xK9KSxbV656YPs0,5484 +nvidia/cuda_runtime/include/cooperative_groups/details/partitioning.h,sha256=4UXuvUmZvGANy0hd4erdBNllpgnn4K4qFWWlfzAsHO8,7125 +nvidia/cuda_runtime/include/cooperative_groups/details/reduce.h,sha256=UfMezM5pqRIotJjmuFgOmiMvbu49sYgjraHutmVVr0w,22111 +nvidia/cuda_runtime/include/cooperative_groups/details/scan.h,sha256=-Ttwb2AfEEY_tsmqJjR2dojkPpoRx387SoqxgvfdBtQ,17166 +nvidia/cuda_runtime/include/cooperative_groups/details/sync.h,sha256=zoiBicvB7rlXa_r_VSNuvHVwrLIM7EjF_KdmhvPj1LM,10638 +nvidia/cuda_runtime/include/cooperative_groups/memcpy_async.h,sha256=erOIHuObdfxRhBWfrXE3wsZF4B2GUuqwzQrsPwKPpbg,2960 +nvidia/cuda_runtime/include/cooperative_groups/reduce.h,sha256=B0hgDkqM-6ueqTTgb3b34A0RH4vGz8mBf5e2jT1dJ1o,2949 +nvidia/cuda_runtime/include/cooperative_groups/scan.h,sha256=2EU6T5cWNwftm2B7FicV31PojoI61yo5fHXGRYkGk40,2940 +nvidia/cuda_runtime/include/cuComplex.h,sha256=WpcgpaiPhU_o9sTPMcNTEZuyXDIc8x3sz4dUWSztL2g,12186 +nvidia/cuda_runtime/include/cuda.h,sha256=29OuNnfs8Hb2sqCXHUKy3VudXxzN8050d0oW_C33ysE,1048458 +nvidia/cuda_runtime/include/cudaEGL.h,sha256=_CwaQ4cEP1vfNyBSSd5qFxznPCYOovF6Cpj-QWSIBq4,39544 +nvidia/cuda_runtime/include/cudaEGLTypedefs.h,sha256=xF_FAN1Kar9oyHJ3cCU7jztTpxX8WylpiuYyYpGGHek,5645 +nvidia/cuda_runtime/include/cudaGL.h,sha256=gMT1HPGa-siuji0gAsKYr4X45Lc29HKglC_ttNSGyUM,22501 +nvidia/cuda_runtime/include/cudaGLTypedefs.h,sha256=dClpQI-LuXgF9rPSBsj7OkIg8g_fXDjT0hLZS8TGpOg,6576 +nvidia/cuda_runtime/include/cudaProfilerTypedefs.h,sha256=F2aWLIKv_AhNbxNOaZVcRsxIh0kuscnV8UMWWxkBAlY,3297 +nvidia/cuda_runtime/include/cudaTypedefs.h,sha256=0hWYyV-KM7R5Qjagz9UP1ldhAZDHGIcJmYtYvB_nwNc,110387 +nvidia/cuda_runtime/include/cudaVDPAU.h,sha256=Np7Nc2Wjaz--hkpbhW6f9aapr-NbcPDAgkot0sJerco,12694 +nvidia/cuda_runtime/include/cudaVDPAUTypedefs.h,sha256=wz8nyOUdwM9mH9JO3QZW-A9dyxt-IufSX7nggSXpCNs,4144 +nvidia/cuda_runtime/include/cuda_awbarrier.h,sha256=3ZH-ZlXODhSiwSY9rqSni_EQwi25QMHP6Tm-zOdxBwE,9340 +nvidia/cuda_runtime/include/cuda_awbarrier_helpers.h,sha256=OCskCts5bCKl_RKBe9M74zKSIsVpePn44S_aJp1tFXE,12489 +nvidia/cuda_runtime/include/cuda_awbarrier_primitives.h,sha256=n5__E1jYYDhlgH-f3u8MQjtz57UZ7v5VshhMye1eicM,4699 +nvidia/cuda_runtime/include/cuda_bf16.h,sha256=CUmV313-EoESxCNDiAC1azacAWxzzVWj7vE7bZNoebI,188194 +nvidia/cuda_runtime/include/cuda_bf16.hpp,sha256=Z2hjeJHZMwa-VQCgd5BNsJjo9rRfK2wqJH942HTVrQE,134181 +nvidia/cuda_runtime/include/cuda_device_runtime_api.h,sha256=bIhfusirXe5-osOTPAILDh6pY8MW1hefyZvTD_IzgqM,46249 +nvidia/cuda_runtime/include/cuda_egl_interop.h,sha256=PNWYns30MIytJQHSOh7UbZYlaTX5e0bavzK14tde_C8,37109 +nvidia/cuda_runtime/include/cuda_fp16.h,sha256=4yaQaQw0__T0TOOr37gtz-l1zxOc8nH-qhJ6RSk30OU,178258 +nvidia/cuda_runtime/include/cuda_fp16.hpp,sha256=wgSLe8EsVPul3XEpm4kD0k9jmmxlyHNiiZPpGpDU8dQ,119751 +nvidia/cuda_runtime/include/cuda_fp8.h,sha256=Q3OP5o_3rSYbKtVIlcXVr_CncU3SPM-09j605e2Zegw,13833 +nvidia/cuda_runtime/include/cuda_fp8.hpp,sha256=b-PcyZgei5MmIp6op0QQ40BgNupO_ei648hG_dUS-FQ,64246 +nvidia/cuda_runtime/include/cuda_gl_interop.h,sha256=VQEswFeOBF6JN6Q0pdlkvc5WT7bD1FnTfKewvANulCc,19150 +nvidia/cuda_runtime/include/cuda_occupancy.h,sha256=Kr9HyOe-hlRjBAzbINwUYkNgbbIgIjuvKs09UZhMYQo,67179 +nvidia/cuda_runtime/include/cuda_pipeline.h,sha256=0enXG49wN4JajlQi3ahbp2ei_ufTY_Mznic7zfWmKHM,8130 +nvidia/cuda_runtime/include/cuda_pipeline_helpers.h,sha256=bo1L7e6vCuM-K3Il8K1z4wJUja5DyXQKdo_hSWUME-E,13852 +nvidia/cuda_runtime/include/cuda_pipeline_primitives.h,sha256=FnJJtuV6rHr6LgL56XDwilcSbFr6W1Hj6mf1AJaMI20,8675 +nvidia/cuda_runtime/include/cuda_runtime.h,sha256=a-OXWPsmKSPst7mRCCxHNZV7m-uRLCAY8oGRi-dJzPA,90683 +nvidia/cuda_runtime/include/cuda_runtime_api.h,sha256=7Ys9yv_2trFEVybtbh-UJKnDKG8fHWvUjSX4cgZGCck,608580 +nvidia/cuda_runtime/include/cuda_surface_types.h,sha256=Mw5Lo4b8Q-f9mogOvATGyHhu9d2t2K6XOxuqtZrSh3A,3688 +nvidia/cuda_runtime/include/cuda_texture_types.h,sha256=ITbX-JNnP7Rm-JSgNVdJ9pq6k8FVor8RbnruDsKq6sk,3688 +nvidia/cuda_runtime/include/cuda_vdpau_interop.h,sha256=bXQanWc2IFXZAKWNGl2xAz9nLvFmQpWyGrsDvfeS9FA,7727 +nvidia/cuda_runtime/include/cudart_platform.h,sha256=YN6sKhB0b9w5tGX1IYL7ulJVPrWAiX9A44qLv4EtW5Q,2717 +nvidia/cuda_runtime/include/device_atomic_functions.h,sha256=OR2jNSfSKzaFri74zh4Vtz5M0z9UDBU3rKeC1rYaVQs,9500 +nvidia/cuda_runtime/include/device_atomic_functions.hpp,sha256=0e7MOiNNUnnloXpB_r9WT5YOws5cxgzQQAzRCYvgaFA,10486 +nvidia/cuda_runtime/include/device_double_functions.h,sha256=KUxId5Z1fx8SWfLRTxPD7RB-zN7zslzb4n7JaJLfL3I,3452 +nvidia/cuda_runtime/include/device_functions.h,sha256=bWSrhTYE9NQlss7xMSMEVusvto9j2fgUDXWVH2W_cOA,3410 +nvidia/cuda_runtime/include/device_launch_parameters.h,sha256=H1_CC-vvAaS26ys4XsTFkMgTxUTciAjdjswjizkisvQ,3846 +nvidia/cuda_runtime/include/device_types.h,sha256=2LFxoZBJPoA5V0H1EbKTEaXDi3GDJPtzOPdRHDaucIQ,3588 +nvidia/cuda_runtime/include/driver_functions.h,sha256=cN3IjRAz2Mj2Pj35SyxJIkZNDDusnJqaqzBdMzpQKbA,4625 +nvidia/cuda_runtime/include/driver_types.h,sha256=4eBQ10Nzgfs2BlxGaGHVMWLvnJfKrEnMml9zfFi0DyA,177782 +nvidia/cuda_runtime/include/host_config.h,sha256=BscH_GazAZbbotddVzL5RmafbQ-QjRx8f-I1O01IBW8,3380 +nvidia/cuda_runtime/include/host_defines.h,sha256=bBQwQF5C1N1c2qpLV56g1c-weu9Ysgz-gIf2Kn3uz_A,3386 +nvidia/cuda_runtime/include/library_types.h,sha256=p6746aCd_A_1VlgKRhLJChzeZ4tN7e4HBH2Hm7hDjbU,4836 +nvidia/cuda_runtime/include/math_constants.h,sha256=cV6hAyQe8X7f7MBtaKjjIJq3BycOUDp6I5cizJX5HLw,7608 +nvidia/cuda_runtime/include/math_functions.h,sha256=5XcC6j-fJKttvhwc4hZNoLHNw808a2ZYIOtZ7ry7yd0,3398 +nvidia/cuda_runtime/include/mma.h,sha256=IY_VenxuEncwGq92MhrWUb-Xswh0ekAXLy9Rbxhxa2Y,2932 +nvidia/cuda_runtime/include/sm_20_atomic_functions.h,sha256=x4ycINVq__l9B4SQPD-I48jQbKxxdBmgp8Vf2GO0Qfg,4478 +nvidia/cuda_runtime/include/sm_20_atomic_functions.hpp,sha256=1l5NLM8DhDbqYZ_E51LoqElQJXObkbwo57d3r-4uEbE,4107 +nvidia/cuda_runtime/include/sm_20_intrinsics.h,sha256=a4jDSp_DUW0d09g5wgEm_I7bGTAe73HKRinkhBKQBis,51048 +nvidia/cuda_runtime/include/sm_20_intrinsics.hpp,sha256=BhEBuXSKBsNGJDBJDtYL0cGRI3wX_w_OIgA5D-YxIWk,7694 +nvidia/cuda_runtime/include/sm_30_intrinsics.h,sha256=b6W8Vxp9vD9OCJI6lZuGyZYXEdQ3Ei8PTAloHNkwCcQ,16978 +nvidia/cuda_runtime/include/sm_30_intrinsics.hpp,sha256=yX0ebd265tJ-BDhvluP2BhadPuWXpRZPI2eeQFFt5ys,24567 +nvidia/cuda_runtime/include/sm_32_atomic_functions.h,sha256=HGnZgQHACE2AAb6zabGUURc53IsVZelc2BSJqvs9OgY,5703 +nvidia/cuda_runtime/include/sm_32_atomic_functions.hpp,sha256=CQTTvOEYp-s5hqAgLvAon11vLYDrDp8cTHdel-XRzBQ,6592 +nvidia/cuda_runtime/include/sm_32_intrinsics.h,sha256=Xdkogdsjy1vh8u3eGu0i5xTmHxBGAjj6_vVGR-spdOE,33539 +nvidia/cuda_runtime/include/sm_32_intrinsics.hpp,sha256=Gl8aSLDLcit4W3pKQS19GsDG8RYcwD65HwYB_CeZe8M,70616 +nvidia/cuda_runtime/include/sm_35_atomic_functions.h,sha256=a3XoEsKRCEOf0Q_5Y__rMfmC4pScv4VkUggVgVJVn44,2909 +nvidia/cuda_runtime/include/sm_35_intrinsics.h,sha256=0mS5-LCgvZiTvL7-MG_4YwI-zWGvM-s4xyRuMkunMC8,2664 +nvidia/cuda_runtime/include/sm_60_atomic_functions.h,sha256=_anfNaJsvQpDEorYeUKIkbizYkwrinBcG_ZCiECtLqI,13178 +nvidia/cuda_runtime/include/sm_60_atomic_functions.hpp,sha256=cgIKddDn2B3QzYlzeBILAP1IRys74QCCxsH0QqaVGls,22903 +nvidia/cuda_runtime/include/sm_61_intrinsics.h,sha256=h_MBL1UUDxQX_qOddSImzqyFjcrhhm_63G97pGDyreU,10902 +nvidia/cuda_runtime/include/sm_61_intrinsics.hpp,sha256=N-nQvcBsPMT2Umy5zR69c9K1q366W-Jqe7NpoLTqTmg,6787 +nvidia/cuda_runtime/include/surface_functions.h,sha256=b1O82SAvEgWWxA9uZTWQcGimzZUoem2QbAET3wh3fZc,6782 +nvidia/cuda_runtime/include/surface_indirect_functions.h,sha256=vy9QuFVV-ezZP-x2RT9RLp2qIUgdngACOCmalSfVFPA,10877 +nvidia/cuda_runtime/include/surface_types.h,sha256=XkFXD1nHbeSMgajR-UJE9uQ7TByzJnjdnUL4-yGiufk,4530 +nvidia/cuda_runtime/include/texture_fetch_functions.h,sha256=KLCmUxf5aY5_UalX8tSFB6e4TrjA8hyUPxLOkMFltAo,12468 +nvidia/cuda_runtime/include/texture_indirect_functions.h,sha256=lH_y3Ni-hq4RZ0_PMFbBM0th5-OmTn3TtqtpkHHhA8w,21163 +nvidia/cuda_runtime/include/texture_types.h,sha256=73ntVyg8r8fzKy5VIk6yuvC45GDeWepaLIqIk-M3Ri8,6360 +nvidia/cuda_runtime/include/vector_functions.h,sha256=WypGkL-IDbGOlay7g_G0p3HO7OLGRE0Do__JtiFoWxY,8003 +nvidia/cuda_runtime/include/vector_functions.hpp,sha256=afXhNSd3LFTZo96EPtesTLfvxd4nTmLVzgkj967rTRg,10060 +nvidia/cuda_runtime/include/vector_types.h,sha256=6CJ4yt3KD7zQVfm1NhrgqNYYEDEIZWwaivlFx12nhNg,13396 +nvidia/cuda_runtime/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +nvidia/cuda_runtime/lib/__pycache__/__init__.cpython-311.pyc,, +nvidia/cuda_runtime/lib/libcudart.so.12,sha256=h3QiT1sRpzsV0HSj_M5zJzIsXEz9_ZJNaoJnee7JaP4,707904 +nvidia_cuda_runtime_cu12-12.4.127.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +nvidia_cuda_runtime_cu12-12.4.127.dist-info/License.txt,sha256=rW9YU_ugyg0VnQ9Y1JrkmDDC-Mk_epJki5zpCttMbM0,59262 +nvidia_cuda_runtime_cu12-12.4.127.dist-info/METADATA,sha256=AcAo5k7tWjg-wgkViCrnv6J1v-QkwuViwNkUy8Pfk_0,1507 +nvidia_cuda_runtime_cu12-12.4.127.dist-info/RECORD,, +nvidia_cuda_runtime_cu12-12.4.127.dist-info/WHEEL,sha256=XDTs3wIbcE-BcRO08VJlZpA6z9OaC1mOKPCGGGwuM2g,109 +nvidia_cuda_runtime_cu12-12.4.127.dist-info/top_level.txt,sha256=fTkAtiFuL16nUrB9ytDDtpytz2t0B4NvYTnRzwAhO14,7 diff --git a/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..e6c30e957cfb045017a9fef3430bb8ee87c4a074 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: true +Tag: py3-none-manylinux2014_x86_64 + diff --git a/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..862f7abf232cdfbb928609856247292e81c9decb --- /dev/null +++ b/.venv/lib/python3.11/site-packages/nvidia_cuda_runtime_cu12-12.4.127.dist-info/top_level.txt @@ -0,0 +1 @@ +nvidia diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/AUTHORS.txt b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/AUTHORS.txt new file mode 100644 index 0000000000000000000000000000000000000000..0e6354892d82871ea2900c002d763496b0a9474f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/AUTHORS.txt @@ -0,0 +1,760 @@ +@Switch01 +A_Rog +Aakanksha Agrawal +Abhinav Sagar +ABHYUDAY PRATAP SINGH +abs51295 +AceGentile +Adam Chainz +Adam Tse +Adam Wentz +admin +Adrien Morison +ahayrapetyan +Ahilya +AinsworthK +Akash Srivastava +Alan Yee +Albert Tugushev +Albert-Guan +albertg +Alberto Sottile +Aleks Bunin +Ales Erjavec +Alethea Flowers +Alex Gaynor +Alex Grönholm +Alex Hedges +Alex Loosley +Alex Morega +Alex Stachowiak +Alexander Shtyrov +Alexandre Conrad +Alexey Popravka +Aleš Erjavec +Alli +Ami Fischman +Ananya Maiti +Anatoly Techtonik +Anders Kaseorg +Andre Aguiar +Andreas Lutro +Andrei Geacar +Andrew Gaul +Andrew Shymanel +Andrey Bienkowski +Andrey Bulgakov +Andrés Delfino +Andy Freeland +Andy Kluger +Ani Hayrapetyan +Aniruddha Basak +Anish Tambe +Anrs Hu +Anthony Sottile +Antoine Musso +Anton Ovchinnikov +Anton Patrushev +Antonio Alvarado Hernandez +Antony Lee +Antti Kaihola +Anubhav Patel +Anudit Nagar +Anuj Godase +AQNOUCH Mohammed +AraHaan +Arindam Choudhury +Armin Ronacher +Artem +Arun Babu Neelicattu +Ashley Manton +Ashwin Ramaswami +atse +Atsushi Odagiri +Avinash Karhana +Avner Cohen +Awit (Ah-Wit) Ghirmai +Baptiste Mispelon +Barney Gale +barneygale +Bartek Ogryczak +Bastian Venthur +Ben Bodenmiller +Ben Darnell +Ben Hoyt +Ben Mares +Ben Rosser +Bence Nagy +Benjamin Peterson +Benjamin VanEvery +Benoit Pierre +Berker Peksag +Bernard +Bernard Tyers +Bernardo B. Marques +Bernhard M. Wiedemann +Bertil Hatt +Bhavam Vidyarthi +Blazej Michalik +Bogdan Opanchuk +BorisZZZ +Brad Erickson +Bradley Ayers +Brandon L. Reiss +Brandt Bucher +Brett Randall +Brett Rosen +Brian Cristante +Brian Rosner +briantracy +BrownTruck +Bruno Oliveira +Bruno Renié +Bruno S +Bstrdsmkr +Buck Golemon +burrows +Bussonnier Matthias +bwoodsend +c22 +Caleb Martinez +Calvin Smith +Carl Meyer +Carlos Liam +Carol Willing +Carter Thayer +Cass +Chandrasekhar Atina +Chih-Hsuan Yen +Chris Brinker +Chris Hunt +Chris Jerdonek +Chris Kuehl +Chris McDonough +Chris Pawley +Chris Pryer +Chris Wolfe +Christian Clauss +Christian Heimes +Christian Oudard +Christoph Reiter +Christopher Hunt +Christopher Snyder +cjc7373 +Clark Boylan +Claudio Jolowicz +Clay McClure +Cody +Cody Soyland +Colin Watson +Collin Anderson +Connor Osborn +Cooper Lees +Cooper Ry Lees +Cory Benfield +Cory Wright +Craig Kerstiens +Cristian Sorinel +Cristina +Cristina Muñoz +Curtis Doty +cytolentino +Daan De Meyer +Dale +Damian +Damian Quiroga +Damian Shaw +Dan Black +Dan Savilonis +Dan Sully +Dane Hillard +daniel +Daniel Collins +Daniel Hahler +Daniel Holth +Daniel Jost +Daniel Katz +Daniel Shaulov +Daniele Esposti +Daniele Nicolodi +Daniele Procida +Daniil Konovalenko +Danny Hermes +Danny McClanahan +Darren Kavanagh +Dav Clark +Dave Abrahams +Dave Jones +David Aguilar +David Black +David Bordeynik +David Caro +David D Lowe +David Evans +David Hewitt +David Linke +David Poggi +David Pursehouse +David Runge +David Tucker +David Wales +Davidovich +ddelange +Deepak Sharma +Deepyaman Datta +Denise Yu +dependabot[bot] +derwolfe +Desetude +Devesh Kumar Singh +Diego Caraballo +Diego Ramirez +DiegoCaraballo +Dimitri Merejkowsky +Dimitri Papadopoulos +Dirk Stolle +Dmitry Gladkov +Dmitry Volodin +Domen Kožar +Dominic Davis-Foster +Donald Stufft +Dongweiming +doron zarhi +Dos Moonen +Douglas Thor +DrFeathers +Dustin Ingram +Dwayne Bailey +Ed Morley +Edgar Ramírez +Edgar Ramírez Mondragón +Ee Durbin +Efflam Lemaillet +efflamlemaillet +Eitan Adler +ekristina +elainechan +Eli Schwartz +Elisha Hollander +Ellen Marie Dash +Emil Burzo +Emil Styrke +Emmanuel Arias +Endoh Takanao +enoch +Erdinc Mutlu +Eric Cousineau +Eric Gillingham +Eric Hanchrow +Eric Hopper +Erik M. Bray +Erik Rose +Erwin Janssen +Eugene Vereshchagin +everdimension +Federico +Felipe Peter +Felix Yan +fiber-space +Filip Kokosiński +Filipe Laíns +Finn Womack +finnagin +Flavio Amurrio +Florian Briand +Florian Rathgeber +Francesco +Francesco Montesano +Frost Ming +Gabriel Curio +Gabriel de Perthuis +Garry Polley +gavin +gdanielson +Geoffrey Sneddon +George Song +Georgi Valkov +Georgy Pchelkin +ghost +Giftlin Rajaiah +gizmoguy1 +gkdoc +Godefroid Chapelle +Gopinath M +GOTO Hayato +gousaiyang +gpiks +Greg Roodt +Greg Ward +Guilherme Espada +Guillaume Seguin +gutsytechster +Guy Rozendorn +Guy Tuval +gzpan123 +Hanjun Kim +Hari Charan +Harsh Vardhan +harupy +Harutaka Kawamura +hauntsaninja +Henrich Hartzer +Henry Schreiner +Herbert Pfennig +Holly Stotelmyer +Honnix +Hsiaoming Yang +Hugo Lopes Tavares +Hugo van Kemenade +Hugues Bruant +Hynek Schlawack +Ian Bicking +Ian Cordasco +Ian Lee +Ian Stapleton Cordasco +Ian Wienand +Igor Kuzmitshov +Igor Sobreira +Ilan Schnell +Illia Volochii +Ilya Baryshev +Inada Naoki +Ionel Cristian Mărieș +Ionel Maries Cristian +Itamar Turner-Trauring +Ivan Pozdeev +J. Nick Koston +Jacob Kim +Jacob Walls +Jaime Sanz +jakirkham +Jakub Kuczys +Jakub Stasiak +Jakub Vysoky +Jakub Wilk +James Cleveland +James Curtin +James Firth +James Gerity +James Polley +Jan Pokorný +Jannis Leidel +Jarek Potiuk +jarondl +Jason Curtis +Jason R. Coombs +JasonMo +JasonMo1 +Jay Graves +Jean Abou Samra +Jean-Christophe Fillion-Robin +Jeff Barber +Jeff Dairiki +Jeff Widman +Jelmer Vernooij +jenix21 +Jeremy Stanley +Jeremy Zafran +Jesse Rittner +Jiashuo Li +Jim Fisher +Jim Garrison +Jiun Bae +Jivan Amara +Joe Bylund +Joe Michelini +John Paton +John T. Wodder II +John-Scott Atlakson +johnthagen +Jon Banafato +Jon Dufresne +Jon Parise +Jonas Nockert +Jonathan Herbert +Joonatan Partanen +Joost Molenaar +Jorge Niedbalski +Joseph Bylund +Joseph Long +Josh Bronson +Josh Hansen +Josh Schneier +Joshua +Juan Luis Cano Rodríguez +Juanjo Bazán +Judah Rand +Julian Berman +Julian Gethmann +Julien Demoor +Jussi Kukkonen +jwg4 +Jyrki Pulliainen +Kai Chen +Kai Mueller +Kamal Bin Mustafa +kasium +kaustav haldar +keanemind +Keith Maxwell +Kelsey Hightower +Kenneth Belitzky +Kenneth Reitz +Kevin Burke +Kevin Carter +Kevin Frommelt +Kevin R Patterson +Kexuan Sun +Kit Randel +Klaas van Schelven +KOLANICH +kpinc +Krishna Oza +Kumar McMillan +Kurt McKee +Kyle Persohn +lakshmanaram +Laszlo Kiss-Kollar +Laurent Bristiel +Laurent LAPORTE +Laurie O +Laurie Opperman +layday +Leon Sasson +Lev Givon +Lincoln de Sousa +Lipis +lorddavidiii +Loren Carvalho +Lucas Cimon +Ludovic Gasc +Lukas Geiger +Lukas Juhrich +Luke Macken +Luo Jiebin +luojiebin +luz.paz +László Kiss Kollár +M00nL1ght +Marc Abramowitz +Marc Tamlyn +Marcus Smith +Mariatta +Mark Kohler +Mark Williams +Markus Hametner +Martey Dodoo +Martin Fischer +Martin Häcker +Martin Pavlasek +Masaki +Masklinn +Matej Stuchlik +Mathew Jennings +Mathieu Bridon +Mathieu Kniewallner +Matt Bacchi +Matt Good +Matt Maker +Matt Robenolt +matthew +Matthew Einhorn +Matthew Feickert +Matthew Gilliard +Matthew Iversen +Matthew Treinish +Matthew Trumbell +Matthew Willson +Matthias Bussonnier +mattip +Maurits van Rees +Max W Chase +Maxim Kurnikov +Maxime Rouyrre +mayeut +mbaluna +mdebi +memoselyk +meowmeowcat +Michael +Michael Aquilina +Michael E. Karpeles +Michael Klich +Michael Mintz +Michael Williamson +michaelpacer +Michał Górny +Mickaël Schoentgen +Miguel Araujo Perez +Mihir Singh +Mike +Mike Hendricks +Min RK +MinRK +Miro Hrončok +Monica Baluna +montefra +Monty Taylor +Muha Ajjan‮ +Nadav Wexler +Nahuel Ambrosini +Nate Coraor +Nate Prewitt +Nathan Houghton +Nathaniel J. Smith +Nehal J Wani +Neil Botelho +Nguyễn Gia Phong +Nicholas Serra +Nick Coghlan +Nick Stenning +Nick Timkovich +Nicolas Bock +Nicole Harris +Nikhil Benesch +Nikhil Ladha +Nikita Chepanov +Nikolay Korolev +Nipunn Koorapati +Nitesh Sharma +Niyas Sait +Noah +Noah Gorny +Nowell Strite +NtaleGrey +nvdv +OBITORASU +Ofek Lev +ofrinevo +Oliver Freund +Oliver Jeeves +Oliver Mannion +Oliver Tonnhofer +Olivier Girardot +Olivier Grisel +Ollie Rutherfurd +OMOTO Kenji +Omry Yadan +onlinejudge95 +Oren Held +Oscar Benjamin +Oz N Tiram +Pachwenko +Patrick Dubroy +Patrick Jenkins +Patrick Lawson +patricktokeeffe +Patrik Kopkan +Paul Ganssle +Paul Kehrer +Paul Moore +Paul Nasrat +Paul Oswald +Paul van der Linden +Paulus Schoutsen +Pavel Safronov +Pavithra Eswaramoorthy +Pawel Jasinski +Paweł Szramowski +Pekka Klärck +Peter Gessler +Peter Lisák +Peter Waller +petr-tik +Phaneendra Chiruvella +Phil Elson +Phil Freo +Phil Pennock +Phil Whelan +Philip Jägenstedt +Philip Molloy +Philippe Ombredanne +Pi Delport +Pierre-Yves Rofes +Pieter Degroote +pip +Prabakaran Kumaresshan +Prabhjyotsing Surjit Singh Sodhi +Prabhu Marappan +Pradyun Gedam +Prashant Sharma +Pratik Mallya +pre-commit-ci[bot] +Preet Thakkar +Preston Holmes +Przemek Wrzos +Pulkit Goyal +q0w +Qiangning Hong +Qiming Xu +Quentin Lee +Quentin Pradet +R. David Murray +Rafael Caricio +Ralf Schmitt +Razzi Abuissa +rdb +Reece Dunham +Remi Rampin +Rene Dudfield +Riccardo Magliocchetti +Riccardo Schirone +Richard Jones +Richard Si +Ricky Ng-Adam +Rishi +RobberPhex +Robert Collins +Robert McGibbon +Robert Pollak +Robert T. McGibbon +robin elisha robinson +Roey Berman +Rohan Jain +Roman Bogorodskiy +Roman Donchenko +Romuald Brunet +ronaudinho +Ronny Pfannschmidt +Rory McCann +Ross Brattain +Roy Wellington Ⅳ +Ruairidh MacLeod +Russell Keith-Magee +Ryan Shepherd +Ryan Wooden +ryneeverett +Sachi King +Salvatore Rinchiera +sandeepkiran-js +Sander Van Balen +Savio Jomton +schlamar +Scott Kitterman +Sean +seanj +Sebastian Jordan +Sebastian Schaetz +Segev Finer +SeongSoo Cho +Sergey Vasilyev +Seth Michael Larson +Seth Woodworth +Shahar Epstein +Shantanu +shireenrao +Shivansh-007 +Shlomi Fish +Shovan Maity +Simeon Visser +Simon Cross +Simon Pichugin +sinoroc +sinscary +snook92 +socketubs +Sorin Sbarnea +Srinivas Nyayapati +Stavros Korokithakis +Stefan Scherfke +Stefano Rivera +Stephan Erb +Stephen Rosen +stepshal +Steve (Gadget) Barnes +Steve Barnes +Steve Dower +Steve Kowalik +Steven Myint +Steven Silvester +stonebig +studioj +Stéphane Bidoul +Stéphane Bidoul (ACSONE) +Stéphane Klein +Sumana Harihareswara +Surbhi Sharma +Sviatoslav Sydorenko +Swat009 +Sylvain +Takayuki SHIMIZUKAWA +Taneli Hukkinen +tbeswick +Thiago +Thijs Triemstra +Thomas Fenzl +Thomas Grainger +Thomas Guettler +Thomas Johansson +Thomas Kluyver +Thomas Smith +Thomas VINCENT +Tim D. Smith +Tim Gates +Tim Harder +Tim Heap +tim smith +tinruufu +Tobias Hermann +Tom Forbes +Tom Freudenheim +Tom V +Tomas Hrnciar +Tomas Orsava +Tomer Chachamu +Tommi Enenkel | AnB +Tomáš Hrnčiar +Tony Beswick +Tony Narlock +Tony Zhaocheng Tan +TonyBeswick +toonarmycaptain +Toshio Kuratomi +toxinu +Travis Swicegood +Tushar Sadhwani +Tzu-ping Chung +Valentin Haenel +Victor Stinner +victorvpaulo +Vikram - Google +Viktor Szépe +Ville Skyttä +Vinay Sajip +Vincent Philippon +Vinicyus Macedo +Vipul Kumar +Vitaly Babiy +Vladimir Fokow +Vladimir Rutsky +W. Trevor King +Wil Tan +Wilfred Hughes +William Edwards +William ML Leslie +William T Olson +William Woodruff +Wilson Mo +wim glenn +Winson Luk +Wolfgang Maier +Wu Zhenyu +XAMES3 +Xavier Fernandez +xoviat +xtreak +YAMAMOTO Takashi +Yen Chi Hsuan +Yeray Diaz Diaz +Yoval P +Yu Jian +Yuan Jing Vincent Yan +Yusuke Hayashi +Zearin +Zhiping Deng +ziebam +Zvezdan Petkovic +Łukasz Langa +Роман Донченко +Семён Марьясин +‮rekcäH nitraM‮ diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/LICENSE.txt b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/LICENSE.txt new file mode 100644 index 0000000000000000000000000000000000000000..8e7b65eaf628360e6f32f4140fcdd7ec7c2b7077 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/LICENSE.txt @@ -0,0 +1,20 @@ +Copyright (c) 2008-present The pip developers (see AUTHORS.txt file) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/METADATA b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/METADATA new file mode 100644 index 0000000000000000000000000000000000000000..e5b45bdd68f8e6310663b6782665b50818fff579 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/METADATA @@ -0,0 +1,88 @@ +Metadata-Version: 2.1 +Name: pip +Version: 24.0 +Summary: The PyPA recommended tool for installing Python packages. +Author-email: The pip developers +License: MIT +Project-URL: Homepage, https://pip.pypa.io/ +Project-URL: Documentation, https://pip.pypa.io +Project-URL: Source, https://github.com/pypa/pip +Project-URL: Changelog, https://pip.pypa.io/en/stable/news/ +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Topic :: Software Development :: Build Tools +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3 :: Only +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: 3.10 +Classifier: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=3.7 +Description-Content-Type: text/x-rst +License-File: LICENSE.txt +License-File: AUTHORS.txt + +pip - The Python Package Installer +================================== + +.. image:: https://img.shields.io/pypi/v/pip.svg + :target: https://pypi.org/project/pip/ + :alt: PyPI + +.. image:: https://img.shields.io/pypi/pyversions/pip + :target: https://pypi.org/project/pip + :alt: PyPI - Python Version + +.. image:: https://readthedocs.org/projects/pip/badge/?version=latest + :target: https://pip.pypa.io/en/latest + :alt: Documentation + +pip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes. + +Please take a look at our documentation for how to install and use pip: + +* `Installation`_ +* `Usage`_ + +We release updates regularly, with a new version every 3 months. Find more details in our documentation: + +* `Release notes`_ +* `Release process`_ + +If you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms: + +* `Issue tracking`_ +* `Discourse channel`_ +* `User IRC`_ + +If you want to get involved head over to GitHub to get the source code, look at our development documentation and feel free to jump on the developer mailing lists and chat rooms: + +* `GitHub page`_ +* `Development documentation`_ +* `Development IRC`_ + +Code of Conduct +--------------- + +Everyone interacting in the pip project's codebases, issue trackers, chat +rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_. + +.. _package installer: https://packaging.python.org/guides/tool-recommendations/ +.. _Python Package Index: https://pypi.org +.. _Installation: https://pip.pypa.io/en/stable/installation/ +.. _Usage: https://pip.pypa.io/en/stable/ +.. _Release notes: https://pip.pypa.io/en/stable/news.html +.. _Release process: https://pip.pypa.io/en/latest/development/release-process/ +.. _GitHub page: https://github.com/pypa/pip +.. _Development documentation: https://pip.pypa.io/en/latest/development +.. _Issue tracking: https://github.com/pypa/pip/issues +.. _Discourse channel: https://discuss.python.org/c/packaging +.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa +.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev +.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/RECORD b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..d4168c9c6940c9d1c147db65cab1c0e3736af272 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/RECORD @@ -0,0 +1,1024 @@ +../../../bin/pip,sha256=gSK9dVnDRORoMjvx0R6Bd5ADEDWvxgPj8ltkkB2IuOc,239 +../../../bin/pip3,sha256=gSK9dVnDRORoMjvx0R6Bd5ADEDWvxgPj8ltkkB2IuOc,239 +../../../bin/pip3.11,sha256=gSK9dVnDRORoMjvx0R6Bd5ADEDWvxgPj8ltkkB2IuOc,239 +pip-24.0.dist-info/AUTHORS.txt,sha256=SwXm4nkwRkmtnO1ZY-dLy7EPeoQNXMNLby5CN3GlNhY,10388 +pip-24.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pip-24.0.dist-info/LICENSE.txt,sha256=Y0MApmnUmurmWxLGxIySTFGkzfPR_whtw0VtyLyqIQQ,1093 +pip-24.0.dist-info/METADATA,sha256=kNEfJ3_Vho2mee4lfJdlbd5RHIqsfQJSMUB-bOkIOeI,3581 +pip-24.0.dist-info/RECORD,, +pip-24.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip-24.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92 +pip-24.0.dist-info/entry_points.txt,sha256=ynZN1_707_L23Oa8_O5LOxEoccj1nDa4xHT5galfN7o,125 +pip-24.0.dist-info/top_level.txt,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +pip/__init__.py,sha256=oAk1nFpLmUVS5Ln7NxvNoGUn5Vkn6FGQjPaNDf8Q8pk,355 +pip/__main__.py,sha256=WzbhHXTbSE6gBY19mNN9m4s5o_365LOvTYSgqgbdBhE,854 +pip/__pip-runner__.py,sha256=EnrfKmKMzWAdqg_JicLCOP9Y95Ux7zHh4ObvqLtQcjo,1444 +pip/__pycache__/__init__.cpython-311.pyc,, +pip/__pycache__/__main__.cpython-311.pyc,, +pip/__pycache__/__pip-runner__.cpython-311.pyc,, +pip/_internal/__init__.py,sha256=iqZ5-YQsQV08tkUc7L806Reop6tguLFWf70ySF6be0Y,515 +pip/_internal/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/__pycache__/build_env.cpython-311.pyc,, +pip/_internal/__pycache__/cache.cpython-311.pyc,, +pip/_internal/__pycache__/configuration.cpython-311.pyc,, +pip/_internal/__pycache__/exceptions.cpython-311.pyc,, +pip/_internal/__pycache__/main.cpython-311.pyc,, +pip/_internal/__pycache__/pyproject.cpython-311.pyc,, +pip/_internal/__pycache__/self_outdated_check.cpython-311.pyc,, +pip/_internal/__pycache__/wheel_builder.cpython-311.pyc,, +pip/_internal/build_env.py,sha256=1ESpqw0iupS_K7phZK5zshVE5Czy9BtGLFU4W6Enva8,10243 +pip/_internal/cache.py,sha256=uiYD-9F0Bv1C8ZyWE85lpzDmQf7hcUkgL99GmI8I41Q,10370 +pip/_internal/cli/__init__.py,sha256=FkHBgpxxb-_gd6r1FjnNhfMOzAUYyXoXKJ6abijfcFU,132 +pip/_internal/cli/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/cli/__pycache__/autocompletion.cpython-311.pyc,, +pip/_internal/cli/__pycache__/base_command.cpython-311.pyc,, +pip/_internal/cli/__pycache__/cmdoptions.cpython-311.pyc,, +pip/_internal/cli/__pycache__/command_context.cpython-311.pyc,, +pip/_internal/cli/__pycache__/main.cpython-311.pyc,, +pip/_internal/cli/__pycache__/main_parser.cpython-311.pyc,, +pip/_internal/cli/__pycache__/parser.cpython-311.pyc,, +pip/_internal/cli/__pycache__/progress_bars.cpython-311.pyc,, +pip/_internal/cli/__pycache__/req_command.cpython-311.pyc,, +pip/_internal/cli/__pycache__/spinners.cpython-311.pyc,, +pip/_internal/cli/__pycache__/status_codes.cpython-311.pyc,, +pip/_internal/cli/autocompletion.py,sha256=_br_5NgSxSuvPjMF0MLHzS5s6BpSkQAQHKrLK89VauM,6690 +pip/_internal/cli/base_command.py,sha256=iuVWGa2oTq7gBReo0er3Z0tXJ2oqBIC6QjDHcnDhKXY,8733 +pip/_internal/cli/cmdoptions.py,sha256=1EIm8yMixQMELO4QzogdIoWkvIlQqlAW0YnPeOmnvEA,30064 +pip/_internal/cli/command_context.py,sha256=RHgIPwtObh5KhMrd3YZTkl8zbVG-6Okml7YbFX4Ehg0,774 +pip/_internal/cli/main.py,sha256=Uzxt_YD1hIvB1AW5mxt6IVcht5G712AtMqdo51UMhmQ,2816 +pip/_internal/cli/main_parser.py,sha256=laDpsuBDl6kyfywp9eMMA9s84jfH2TJJn-vmL0GG90w,4338 +pip/_internal/cli/parser.py,sha256=KW6C3-7-4ErTNB0TfLTKwOdHcd-qefCeGnrOoE2r0RQ,10781 +pip/_internal/cli/progress_bars.py,sha256=So4mPoSjXkXiSHiTzzquH3VVyVD_njXlHJSExYPXAow,1968 +pip/_internal/cli/req_command.py,sha256=c7_XHABnXmD3_qlK9-r37KqdKBAcgmVKvQ2WcTrNLfc,18369 +pip/_internal/cli/spinners.py,sha256=hIJ83GerdFgFCdobIA23Jggetegl_uC4Sp586nzFbPE,5118 +pip/_internal/cli/status_codes.py,sha256=sEFHUaUJbqv8iArL3HAtcztWZmGOFX01hTesSytDEh0,116 +pip/_internal/commands/__init__.py,sha256=5oRO9O3dM2vGuh0bFw4HOVletryrz5HHMmmPWwJrH9U,3882 +pip/_internal/commands/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/commands/__pycache__/cache.cpython-311.pyc,, +pip/_internal/commands/__pycache__/check.cpython-311.pyc,, +pip/_internal/commands/__pycache__/completion.cpython-311.pyc,, +pip/_internal/commands/__pycache__/configuration.cpython-311.pyc,, +pip/_internal/commands/__pycache__/debug.cpython-311.pyc,, +pip/_internal/commands/__pycache__/download.cpython-311.pyc,, +pip/_internal/commands/__pycache__/freeze.cpython-311.pyc,, +pip/_internal/commands/__pycache__/hash.cpython-311.pyc,, +pip/_internal/commands/__pycache__/help.cpython-311.pyc,, +pip/_internal/commands/__pycache__/index.cpython-311.pyc,, +pip/_internal/commands/__pycache__/inspect.cpython-311.pyc,, +pip/_internal/commands/__pycache__/install.cpython-311.pyc,, +pip/_internal/commands/__pycache__/list.cpython-311.pyc,, +pip/_internal/commands/__pycache__/search.cpython-311.pyc,, +pip/_internal/commands/__pycache__/show.cpython-311.pyc,, +pip/_internal/commands/__pycache__/uninstall.cpython-311.pyc,, +pip/_internal/commands/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/commands/cache.py,sha256=xg76_ZFEBC6zoQ3gXLRfMZJft4z2a0RwH4GEFZC6nnU,7944 +pip/_internal/commands/check.py,sha256=Rb13Q28yoLh0j1gpx5SU0jlResNct21eQCRsnaO9xKA,1782 +pip/_internal/commands/completion.py,sha256=HT4lD0bgsflHq2IDgYfiEdp7IGGtE7s6MgI3xn0VQEw,4287 +pip/_internal/commands/configuration.py,sha256=n98enwp6y0b5G6fiRQjaZo43FlJKYve_daMhN-4BRNc,9766 +pip/_internal/commands/debug.py,sha256=63972uUCeMIGOdMMVeIUGrOjTOqTVWplFC82a-hcKyA,6777 +pip/_internal/commands/download.py,sha256=e4hw088zGo26WmJaMIRvCniLlLmoOjqolGyfHjsCkCQ,5335 +pip/_internal/commands/freeze.py,sha256=2qjQrH9KWi5Roav0CuR7vc7hWm4uOi_0l6tp3ESKDHM,3172 +pip/_internal/commands/hash.py,sha256=EVVOuvGtoPEdFi8SNnmdqlCQrhCxV-kJsdwtdcCnXGQ,1703 +pip/_internal/commands/help.py,sha256=gcc6QDkcgHMOuAn5UxaZwAStsRBrnGSn_yxjS57JIoM,1132 +pip/_internal/commands/index.py,sha256=CNXQer_PeZKSJooURcCFCBEKGfwyNoUWYP_MWczAcOM,4775 +pip/_internal/commands/inspect.py,sha256=2wSPt9yfr3r6g-s2S5L6PvRtaHNVyb4TuodMStJ39cw,3188 +pip/_internal/commands/install.py,sha256=VxDd-BD3a27ApeE2OK34rfBXS6Zo2wtemK9-HCwPqxM,28782 +pip/_internal/commands/list.py,sha256=7wRUUmdyyOknl-WZYbO_LtFQxHlWod3pjOY9yYH435o,12450 +pip/_internal/commands/search.py,sha256=sbBZiARRc050QquOKcCvOr2K3XLsoYebLKZGRi__iUI,5697 +pip/_internal/commands/show.py,sha256=t5jia4zcYJRJZy4U_Von7zMl03hJmmcofj6oDNTnj7Y,6419 +pip/_internal/commands/uninstall.py,sha256=OIqO9tqadY8kM4HwhFf1Q62fUIp7v8KDrTRo8yWMz7Y,3886 +pip/_internal/commands/wheel.py,sha256=CSnX8Pmf1oPCnd7j7bn1_f58G9KHNiAblvVJ5zykN-A,6476 +pip/_internal/configuration.py,sha256=XkAiBS0hpzsM-LF0Qu5hvPWO_Bs67-oQKRYFBuMbESs,14006 +pip/_internal/distributions/__init__.py,sha256=Hq6kt6gXBgjNit5hTTWLAzeCNOKoB-N0pGYSqehrli8,858 +pip/_internal/distributions/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/base.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/installed.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/sdist.cpython-311.pyc,, +pip/_internal/distributions/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/distributions/base.py,sha256=oRSEvnv2ZjBnargamnv2fcJa1n6gUDKaW0g6CWSEpWs,1743 +pip/_internal/distributions/installed.py,sha256=QinHFbWAQ8oE0pbD8MFZWkwlnfU1QYTccA1vnhrlYOU,842 +pip/_internal/distributions/sdist.py,sha256=4K3V0VNMllHbBzCJibjwd_tylUKpmIdu2AQyhplvCQo,6709 +pip/_internal/distributions/wheel.py,sha256=-ma3sOtUQj0AxXCEb6_Fhmjl3nh4k3A0HC2taAb2N-4,1277 +pip/_internal/exceptions.py,sha256=TmF1iNFEneSWaemwlg6a5bpPuq2cMHK7d1-SvjsQHb0,23634 +pip/_internal/index/__init__.py,sha256=vpt-JeTZefh8a-FC22ZeBSXFVbuBcXSGiILhQZJaNpQ,30 +pip/_internal/index/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/index/__pycache__/collector.cpython-311.pyc,, +pip/_internal/index/__pycache__/package_finder.cpython-311.pyc,, +pip/_internal/index/__pycache__/sources.cpython-311.pyc,, +pip/_internal/index/collector.py,sha256=sH0tL_cOoCk6pLLfCSGVjFM4rPEJtllF-VobvAvLSH4,16590 +pip/_internal/index/package_finder.py,sha256=S_nC8gzVIMY6ikWfKoSOzRtoesUqnfNhAPl_BwSOusA,37843 +pip/_internal/index/sources.py,sha256=dJegiR9f86kslaAHcv9-R5L_XBf5Rzm_FkyPteDuPxI,8688 +pip/_internal/locations/__init__.py,sha256=Dh8LJWG8LRlDK4JIj9sfRF96TREzE--N_AIlx7Tqoe4,15365 +pip/_internal/locations/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/locations/__pycache__/_distutils.cpython-311.pyc,, +pip/_internal/locations/__pycache__/_sysconfig.cpython-311.pyc,, +pip/_internal/locations/__pycache__/base.cpython-311.pyc,, +pip/_internal/locations/_distutils.py,sha256=H9ZHK_35rdDV1Qsmi4QeaBULjFT4Mbu6QuoVGkJ6QHI,6009 +pip/_internal/locations/_sysconfig.py,sha256=jyNVtUfMIf0mtyY-Xp1m9yQ8iwECozSVVFmjkN9a2yw,7680 +pip/_internal/locations/base.py,sha256=RQiPi1d4FVM2Bxk04dQhXZ2PqkeljEL2fZZ9SYqIQ78,2556 +pip/_internal/main.py,sha256=r-UnUe8HLo5XFJz8inTcOOTiu_sxNhgHb6VwlGUllOI,340 +pip/_internal/metadata/__init__.py,sha256=9pU3W3s-6HtjFuYhWcLTYVmSaziklPv7k2x8p7X1GmA,4339 +pip/_internal/metadata/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/metadata/__pycache__/_json.cpython-311.pyc,, +pip/_internal/metadata/__pycache__/base.cpython-311.pyc,, +pip/_internal/metadata/__pycache__/pkg_resources.cpython-311.pyc,, +pip/_internal/metadata/_json.py,sha256=Rz5M5ciSNvITwaTQR6NfN8TgKgM5WfTws4D6CFknovE,2627 +pip/_internal/metadata/base.py,sha256=l3Wgku4xlgr8s4p6fS-3qQ4QKOpPbWLRwi5d9omEFG4,25907 +pip/_internal/metadata/importlib/__init__.py,sha256=jUUidoxnHcfITHHaAWG1G2i5fdBYklv_uJcjo2x7VYE,135 +pip/_internal/metadata/importlib/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/metadata/importlib/__pycache__/_compat.cpython-311.pyc,, +pip/_internal/metadata/importlib/__pycache__/_dists.cpython-311.pyc,, +pip/_internal/metadata/importlib/__pycache__/_envs.cpython-311.pyc,, +pip/_internal/metadata/importlib/_compat.py,sha256=GAe_prIfCE4iUylrnr_2dJRlkkBVRUbOidEoID7LPoE,1882 +pip/_internal/metadata/importlib/_dists.py,sha256=UPl1wUujFqiwiltRJ1tMF42WRINO1sSpNNlYQ2mX0mk,8297 +pip/_internal/metadata/importlib/_envs.py,sha256=XTaFIYERP2JF0QUZuPx2ETiugXbPEcZ8q8ZKeht6Lpc,7456 +pip/_internal/metadata/pkg_resources.py,sha256=opjw4IBSqHvie6sXJ_cbT42meygoPEUfNURJuWZY7sk,10035 +pip/_internal/models/__init__.py,sha256=3DHUd_qxpPozfzouoqa9g9ts1Czr5qaHfFxbnxriepM,63 +pip/_internal/models/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/models/__pycache__/candidate.cpython-311.pyc,, +pip/_internal/models/__pycache__/direct_url.cpython-311.pyc,, +pip/_internal/models/__pycache__/format_control.cpython-311.pyc,, +pip/_internal/models/__pycache__/index.cpython-311.pyc,, +pip/_internal/models/__pycache__/installation_report.cpython-311.pyc,, +pip/_internal/models/__pycache__/link.cpython-311.pyc,, +pip/_internal/models/__pycache__/scheme.cpython-311.pyc,, +pip/_internal/models/__pycache__/search_scope.cpython-311.pyc,, +pip/_internal/models/__pycache__/selection_prefs.cpython-311.pyc,, +pip/_internal/models/__pycache__/target_python.cpython-311.pyc,, +pip/_internal/models/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/models/candidate.py,sha256=hEPu8VdGE5qVASv6vLz-R-Rgh5-7LMbai1jgthMCd8M,931 +pip/_internal/models/direct_url.py,sha256=FwouYBKcqckh7B-k2H3HVgRhhFTukFwqiS3kfvtFLSk,6889 +pip/_internal/models/format_control.py,sha256=wtsQqSK9HaUiNxQEuB-C62eVimw6G4_VQFxV9-_KDBE,2486 +pip/_internal/models/index.py,sha256=tYnL8oxGi4aSNWur0mG8DAP7rC6yuha_MwJO8xw0crI,1030 +pip/_internal/models/installation_report.py,sha256=zRVZoaz-2vsrezj_H3hLOhMZCK9c7TbzWgC-jOalD00,2818 +pip/_internal/models/link.py,sha256=XirOAGv1jgMu7vu87kuPbohGj7VHpwVrd2q3KUgVQNg,20777 +pip/_internal/models/scheme.py,sha256=3EFQp_ICu_shH1-TBqhl0QAusKCPDFOlgHFeN4XowWs,738 +pip/_internal/models/search_scope.py,sha256=ASVyyZxiJILw7bTIVVpJx8J293M3Hk5F33ilGn0e80c,4643 +pip/_internal/models/selection_prefs.py,sha256=KZdi66gsR-_RUXUr9uejssk3rmTHrQVJWeNA2sV-VSY,1907 +pip/_internal/models/target_python.py,sha256=34EkorrMuRvRp-bjqHKJ-bOO71m9xdjN2b8WWFEC2HU,4272 +pip/_internal/models/wheel.py,sha256=YqazoIZyma_Q1ejFa1C7NHKQRRWlvWkdK96VRKmDBeI,3600 +pip/_internal/network/__init__.py,sha256=jf6Tt5nV_7zkARBrKojIXItgejvoegVJVKUbhAa5Ioc,50 +pip/_internal/network/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/network/__pycache__/auth.cpython-311.pyc,, +pip/_internal/network/__pycache__/cache.cpython-311.pyc,, +pip/_internal/network/__pycache__/download.cpython-311.pyc,, +pip/_internal/network/__pycache__/lazy_wheel.cpython-311.pyc,, +pip/_internal/network/__pycache__/session.cpython-311.pyc,, +pip/_internal/network/__pycache__/utils.cpython-311.pyc,, +pip/_internal/network/__pycache__/xmlrpc.cpython-311.pyc,, +pip/_internal/network/auth.py,sha256=TC-OcW2KU4W6R1hU4qPgQXvVH54adACpZz6sWq-R9NA,20541 +pip/_internal/network/cache.py,sha256=48A971qCzKNFvkb57uGEk7-0xaqPS0HWj2711QNTxkU,3935 +pip/_internal/network/download.py,sha256=i0Tn55CD5D7XYEFY3TxiYaCf0OaaTQ6SScNgCsSeV14,6086 +pip/_internal/network/lazy_wheel.py,sha256=2PXVduYZPCPZkkQFe1J1GbfHJWeCU--FXonGyIfw9eU,7638 +pip/_internal/network/session.py,sha256=9tqEDD8JiVaFdplOEXJxNo9cjRfBZ6RIa0yQQ_qBNiM,18698 +pip/_internal/network/utils.py,sha256=6A5SrUJEEUHxbGtbscwU2NpCyz-3ztiDlGWHpRRhsJ8,4073 +pip/_internal/network/xmlrpc.py,sha256=sAxzOacJ-N1NXGPvap9jC3zuYWSnnv3GXtgR2-E2APA,1838 +pip/_internal/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/operations/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/operations/__pycache__/check.cpython-311.pyc,, +pip/_internal/operations/__pycache__/freeze.cpython-311.pyc,, +pip/_internal/operations/__pycache__/prepare.cpython-311.pyc,, +pip/_internal/operations/build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/operations/build/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/build_tracker.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/metadata.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/metadata_editable.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/wheel_editable.cpython-311.pyc,, +pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-311.pyc,, +pip/_internal/operations/build/build_tracker.py,sha256=z-H5DOknZdBa3dh2Vq6VBMY5qLYIKmlj2p6CGZK5Lc8,4832 +pip/_internal/operations/build/metadata.py,sha256=9S0CUD8U3QqZeXp-Zyt8HxwU90lE4QrnYDgrqZDzBnc,1422 +pip/_internal/operations/build/metadata_editable.py,sha256=VLL7LvntKE8qxdhUdEJhcotFzUsOSI8NNS043xULKew,1474 +pip/_internal/operations/build/metadata_legacy.py,sha256=o-eU21As175hDC7dluM1fJJ_FqokTIShyWpjKaIpHZw,2198 +pip/_internal/operations/build/wheel.py,sha256=sT12FBLAxDC6wyrDorh8kvcZ1jG5qInCRWzzP-UkJiQ,1075 +pip/_internal/operations/build/wheel_editable.py,sha256=yOtoH6zpAkoKYEUtr8FhzrYnkNHQaQBjWQ2HYae1MQg,1417 +pip/_internal/operations/build/wheel_legacy.py,sha256=C9j6rukgQI1n_JeQLoZGuDdfUwzCXShyIdPTp6edbMQ,3064 +pip/_internal/operations/check.py,sha256=fsqA88iGaqftCr2tlP3sSU202CSkoODRtW0O-JU9M4Y,6806 +pip/_internal/operations/freeze.py,sha256=uqoeTAf6HOYVMR2UgAT8N85UZoGEVEoQdan_Ao6SOfk,9816 +pip/_internal/operations/install/__init__.py,sha256=mX7hyD2GNBO2mFGokDQ30r_GXv7Y_PLdtxcUv144e-s,51 +pip/_internal/operations/install/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/operations/install/__pycache__/editable_legacy.cpython-311.pyc,, +pip/_internal/operations/install/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/operations/install/editable_legacy.py,sha256=YeR0KadWXw_ZheC1NtAG1qVIEkOgRGHc23x-YtGW7NU,1282 +pip/_internal/operations/install/wheel.py,sha256=9hGb1c4bRnPIb2FG7CtUSPfPxqprmHQBtwIAlWPNTtE,27311 +pip/_internal/operations/prepare.py,sha256=57Oq87HfunX3Rbqp47FdaJr9cHbAKUm_3gv7WhBAqbE,28128 +pip/_internal/pyproject.py,sha256=4Xszp11xgr126yzG6BbJA0oaQ9WXuhb0jyUb-y_6lPQ,7152 +pip/_internal/req/__init__.py,sha256=TELFgZOof3lhMmaICVWL9U7PlhXo9OufokbMAJ6J2GI,2738 +pip/_internal/req/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/req/__pycache__/constructors.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_file.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_install.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_set.cpython-311.pyc,, +pip/_internal/req/__pycache__/req_uninstall.cpython-311.pyc,, +pip/_internal/req/constructors.py,sha256=8hlY56imEthLORRwmloyKz3YOyXymIaKsNB6P9ewvNI,19018 +pip/_internal/req/req_file.py,sha256=M8ttOZL-PwAj7scPElhW3ZD2hiD9mm_6FJAGIbwAzEI,17790 +pip/_internal/req/req_install.py,sha256=wtOPxkyRSM8comTks8oL1Gp2oyGqbH7JwIDRci2QiPk,35460 +pip/_internal/req/req_set.py,sha256=iMYDUToSgkxFyrP_OrTtPSgw4dwjRyGRDpGooTqeA4Y,4704 +pip/_internal/req/req_uninstall.py,sha256=nmvTQaRCC0iu-5Tw0djlXJhSj6WmqHRvT3qkkEdC35E,24551 +pip/_internal/resolution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/resolution/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/resolution/__pycache__/base.cpython-311.pyc,, +pip/_internal/resolution/base.py,sha256=qlmh325SBVfvG6Me9gc5Nsh5sdwHBwzHBq6aEXtKsLA,583 +pip/_internal/resolution/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/resolution/legacy/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/resolution/legacy/__pycache__/resolver.cpython-311.pyc,, +pip/_internal/resolution/legacy/resolver.py,sha256=Xk24jQ62GvLr4Mc7IjN_qiO88qp0BImzVmPIFz9QLOE,24025 +pip/_internal/resolution/resolvelib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/base.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-311.pyc,, +pip/_internal/resolution/resolvelib/base.py,sha256=jg5COmHLhmBIKOR-4spdJD3jyULYa1BdsqiBu2YJnJ4,5173 +pip/_internal/resolution/resolvelib/candidates.py,sha256=19Ki91Po-MSxBknGIfOGkaWkFdOznN0W_nKv7jL28L0,21052 +pip/_internal/resolution/resolvelib/factory.py,sha256=vqqk-hjchdhShwWVdeW2_A-5ZblLhE_nC_v3Mhz4Svc,32292 +pip/_internal/resolution/resolvelib/found_candidates.py,sha256=hvL3Hoa9VaYo-qEOZkBi2Iqw251UDxPz-uMHVaWmLpE,5705 +pip/_internal/resolution/resolvelib/provider.py,sha256=4t23ivjruqM6hKBX1KpGiTt-M4HGhRcZnGLV0c01K7U,9824 +pip/_internal/resolution/resolvelib/reporter.py,sha256=YFm9hQvz4DFCbjZeFTQ56hTz3Ac-mDBnHkeNRVvMHLY,3100 +pip/_internal/resolution/resolvelib/requirements.py,sha256=-kJONP0WjDfdTvBAs2vUXPgAnOyNIBEAXY4b72ogtPE,5696 +pip/_internal/resolution/resolvelib/resolver.py,sha256=nLJOsVMEVi2gQUVJoUFKMZAeu2f7GRMjGMvNSWyz0Bc,12592 +pip/_internal/self_outdated_check.py,sha256=saxQLB8UzIFtMScquytG10TOTsYVFJQ_mkW1NY-46wE,8378 +pip/_internal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_internal/utils/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/utils/__pycache__/_jaraco_text.cpython-311.pyc,, +pip/_internal/utils/__pycache__/_log.cpython-311.pyc,, +pip/_internal/utils/__pycache__/appdirs.cpython-311.pyc,, +pip/_internal/utils/__pycache__/compat.cpython-311.pyc,, +pip/_internal/utils/__pycache__/compatibility_tags.cpython-311.pyc,, +pip/_internal/utils/__pycache__/datetime.cpython-311.pyc,, +pip/_internal/utils/__pycache__/deprecation.cpython-311.pyc,, +pip/_internal/utils/__pycache__/direct_url_helpers.cpython-311.pyc,, +pip/_internal/utils/__pycache__/egg_link.cpython-311.pyc,, +pip/_internal/utils/__pycache__/encoding.cpython-311.pyc,, +pip/_internal/utils/__pycache__/entrypoints.cpython-311.pyc,, +pip/_internal/utils/__pycache__/filesystem.cpython-311.pyc,, +pip/_internal/utils/__pycache__/filetypes.cpython-311.pyc,, +pip/_internal/utils/__pycache__/glibc.cpython-311.pyc,, +pip/_internal/utils/__pycache__/hashes.cpython-311.pyc,, +pip/_internal/utils/__pycache__/logging.cpython-311.pyc,, +pip/_internal/utils/__pycache__/misc.cpython-311.pyc,, +pip/_internal/utils/__pycache__/models.cpython-311.pyc,, +pip/_internal/utils/__pycache__/packaging.cpython-311.pyc,, +pip/_internal/utils/__pycache__/setuptools_build.cpython-311.pyc,, +pip/_internal/utils/__pycache__/subprocess.cpython-311.pyc,, +pip/_internal/utils/__pycache__/temp_dir.cpython-311.pyc,, +pip/_internal/utils/__pycache__/unpacking.cpython-311.pyc,, +pip/_internal/utils/__pycache__/urls.cpython-311.pyc,, +pip/_internal/utils/__pycache__/virtualenv.cpython-311.pyc,, +pip/_internal/utils/__pycache__/wheel.cpython-311.pyc,, +pip/_internal/utils/_jaraco_text.py,sha256=yvDGelTVugRayPaOF2k4ab0Ky4d3uOkAfuOQjASjImY,3351 +pip/_internal/utils/_log.py,sha256=-jHLOE_THaZz5BFcCnoSL9EYAtJ0nXem49s9of4jvKw,1015 +pip/_internal/utils/appdirs.py,sha256=swgcTKOm3daLeXTW6v5BUS2Ti2RvEnGRQYH_yDXklAo,1665 +pip/_internal/utils/compat.py,sha256=ACyBfLgj3_XG-iA5omEDrXqDM0cQKzi8h8HRBInzG6Q,1884 +pip/_internal/utils/compatibility_tags.py,sha256=ydin8QG8BHqYRsPY4OL6cmb44CbqXl1T0xxS97VhHkk,5377 +pip/_internal/utils/datetime.py,sha256=m21Y3wAtQc-ji6Veb6k_M5g6A0ZyFI4egchTdnwh-pQ,242 +pip/_internal/utils/deprecation.py,sha256=NKo8VqLioJ4nnXXGmW4KdasxF90EFHkZaHeX1fT08C8,3627 +pip/_internal/utils/direct_url_helpers.py,sha256=6F1tc2rcKaCZmgfVwsE6ObIe_Pux23mUVYA-2D9wCFc,3206 +pip/_internal/utils/egg_link.py,sha256=0FePZoUYKv4RGQ2t6x7w5Z427wbA_Uo3WZnAkrgsuqo,2463 +pip/_internal/utils/encoding.py,sha256=qqsXDtiwMIjXMEiIVSaOjwH5YmirCaK-dIzb6-XJsL0,1169 +pip/_internal/utils/entrypoints.py,sha256=YlhLTRl2oHBAuqhc-zmL7USS67TPWVHImjeAQHreZTQ,3064 +pip/_internal/utils/filesystem.py,sha256=RhMIXUaNVMGjc3rhsDahWQ4MavvEQDdqXqgq-F6fpw8,5122 +pip/_internal/utils/filetypes.py,sha256=i8XAQ0eFCog26Fw9yV0Yb1ygAqKYB1w9Cz9n0fj8gZU,716 +pip/_internal/utils/glibc.py,sha256=Mesxxgg3BLxheLZx-dSf30b6gKpOgdVXw6W--uHSszQ,3113 +pip/_internal/utils/hashes.py,sha256=MjOigC75z6qoRMkgHiHqot7eqxfwDZSrEflJMPm-bHE,5118 +pip/_internal/utils/logging.py,sha256=fdtuZJ-AKkqwDTANDvGcBEpssL8el7T1jnwk1CnZl3Y,11603 +pip/_internal/utils/misc.py,sha256=fNXwaeeikvnUt4CPMFIL4-IQbZDxxjj4jDpzCi4ZsOw,23623 +pip/_internal/utils/models.py,sha256=5GoYU586SrxURMvDn_jBMJInitviJg4O5-iOU-6I0WY,1193 +pip/_internal/utils/packaging.py,sha256=5Wm6_x7lKrlqVjPI5MBN_RurcRHwVYoQ7Ksrs84de7s,2108 +pip/_internal/utils/setuptools_build.py,sha256=ouXpud-jeS8xPyTPsXJ-m34NPvK5os45otAzdSV_IJE,4435 +pip/_internal/utils/subprocess.py,sha256=zzdimb75jVLE1GU4WlTZ055gczhD7n1y1xTcNc7vNZQ,9207 +pip/_internal/utils/temp_dir.py,sha256=DUAw22uFruQdK43i2L2K53C-CDjRCPeAsBKJpu-rHQ4,9312 +pip/_internal/utils/unpacking.py,sha256=SBb2iV1crb89MDRTEKY86R4A_UOWApTQn9VQVcMDOlE,8821 +pip/_internal/utils/urls.py,sha256=AhaesUGl-9it6uvG6fsFPOr9ynFpGaTMk4t5XTX7Z_Q,1759 +pip/_internal/utils/virtualenv.py,sha256=S6f7csYorRpiD6cvn3jISZYc3I8PJC43H5iMFpRAEDU,3456 +pip/_internal/utils/wheel.py,sha256=i4BwUNHattzN0ixy3HBAF04tZPRh2CcxaT6t86viwkE,4499 +pip/_internal/vcs/__init__.py,sha256=UAqvzpbi0VbZo3Ub6skEeZAw-ooIZR-zX_WpCbxyCoU,596 +pip/_internal/vcs/__pycache__/__init__.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/bazaar.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/git.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/mercurial.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/subversion.cpython-311.pyc,, +pip/_internal/vcs/__pycache__/versioncontrol.cpython-311.pyc,, +pip/_internal/vcs/bazaar.py,sha256=j0oin0fpGRHcCFCxEcpPCQoFEvA-DMLULKdGP8Nv76o,3519 +pip/_internal/vcs/git.py,sha256=CeKBGJnl6uskvvjkAUXrJVxbHJrpS_B_pyfFdjL3CRc,18121 +pip/_internal/vcs/mercurial.py,sha256=oULOhzJ2Uie-06d1omkL-_Gc6meGaUkyogvqG9ZCyPs,5249 +pip/_internal/vcs/subversion.py,sha256=vhZs8L-TNggXqM1bbhl-FpbxE3TrIB6Tgnx8fh3S2HE,11729 +pip/_internal/vcs/versioncontrol.py,sha256=3eIjtOMYvOY5qP6BMYIYDZ375CSuec6kSEB0bOo1cSs,22787 +pip/_internal/wheel_builder.py,sha256=qTTzQV8F6b1jNsFCda1TRQC8J7gK-m7iuRNgKo7Dj68,11801 +pip/_vendor/__init__.py,sha256=U51NPwXdA-wXOiANIQncYjcMp6txgeOL5nHxksJeyas,4993 +pip/_vendor/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/__pycache__/six.cpython-311.pyc,, +pip/_vendor/__pycache__/typing_extensions.cpython-311.pyc,, +pip/_vendor/cachecontrol/__init__.py,sha256=ctHagMhQXuvQDdm4TirZrwDOT5H8oBNAJqzdKI6sovk,676 +pip/_vendor/cachecontrol/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/adapter.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/cache.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/controller.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/serialize.cpython-311.pyc,, +pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-311.pyc,, +pip/_vendor/cachecontrol/_cmd.py,sha256=iist2EpzJvDVIhMAxXq8iFnTBsiZAd6iplxfmNboNyk,1737 +pip/_vendor/cachecontrol/adapter.py,sha256=_CcWvUP9048qAZjsNqViaHbdcLs9mmFNixVfpO7oebE,6392 +pip/_vendor/cachecontrol/cache.py,sha256=OTQj72tUf8C1uEgczdl3Gc8vkldSzsTITKtDGKMx4z8,1952 +pip/_vendor/cachecontrol/caches/__init__.py,sha256=dtrrroK5BnADR1GWjCZ19aZ0tFsMfvFBtLQQU1sp_ag,303 +pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-311.pyc,, +pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-311.pyc,, +pip/_vendor/cachecontrol/caches/file_cache.py,sha256=3z8AWKD-vfKeiJqIzLmJyIYtR2yd6Tsh3u1TyLRQoIQ,5352 +pip/_vendor/cachecontrol/caches/redis_cache.py,sha256=9rmqwtYu_ljVkW6_oLqbC7EaX_a8YT_yLuna-eS0dgo,1386 +pip/_vendor/cachecontrol/controller.py,sha256=keCFA3ZaNVaWTwHd6F1zqWhb4vyvNx_UvZuo5iIYMfo,18384 +pip/_vendor/cachecontrol/filewrapper.py,sha256=STttGmIPBvZzt2b51dUOwoWX5crcMCpKZOisM3f5BNc,4292 +pip/_vendor/cachecontrol/heuristics.py,sha256=fdFbk9W8IeLrjteIz_fK4mj2HD_Y7COXF2Uc8TgjT1c,4828 +pip/_vendor/cachecontrol/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/cachecontrol/serialize.py,sha256=0dHeMaDwysVAAnGVlhMOP4tDliohgNK0Jxk_zsOiWxw,7173 +pip/_vendor/cachecontrol/wrapper.py,sha256=hsGc7g8QGQTT-4f8tgz3AM5qwScg6FO0BSdLSRdEvpU,1417 +pip/_vendor/certifi/__init__.py,sha256=L_j-d0kYuA_MzA2_2hraF1ovf6KT6DTquRdV3paQwOk,94 +pip/_vendor/certifi/__main__.py,sha256=1k3Cr95vCxxGRGDljrW3wMdpZdL3Nhf0u1n-k2qdsCY,255 +pip/_vendor/certifi/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/certifi/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/certifi/__pycache__/core.cpython-311.pyc,, +pip/_vendor/certifi/cacert.pem,sha256=eU0Dn_3yd8BH4m8sfVj4Glhl2KDrcCSg-sEWT-pNJ88,281617 +pip/_vendor/certifi/core.py,sha256=ZwiOsv-sD_ouU1ft8wy_xZ3LQ7UbcVzyqj2XNyrsZis,4279 +pip/_vendor/certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/chardet/__init__.py,sha256=57R-HSxj0PWmILMN0GFmUNqEMfrEVSamXyjD-W6_fbs,4797 +pip/_vendor/chardet/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/big5freq.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/big5prober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/chardistribution.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/charsetprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/codingstatemachinedict.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/cp949prober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/enums.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/escprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/escsm.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/eucjpprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/euckrfreq.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/euckrprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/euctwfreq.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/euctwprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/gb2312freq.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/gb2312prober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/hebrewprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/jisfreq.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/johabfreq.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/johabprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/jpcntx.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/langthaimodel.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/latin1prober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/macromanprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/mbcssm.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/resultdict.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/sjisprober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/universaldetector.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/utf1632prober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/utf8prober.cpython-311.pyc,, +pip/_vendor/chardet/__pycache__/version.cpython-311.pyc,, +pip/_vendor/chardet/big5freq.py,sha256=ltcfP-3PjlNHCoo5e4a7C4z-2DhBTXRfY6jbMbB7P30,31274 +pip/_vendor/chardet/big5prober.py,sha256=lPMfwCX6v2AaPgvFh_cSWZcgLDbWiFCHLZ_p9RQ9uxE,1763 +pip/_vendor/chardet/chardistribution.py,sha256=13B8XUG4oXDuLdXvfbIWwLFeR-ZU21AqTS1zcdON8bU,10032 +pip/_vendor/chardet/charsetgroupprober.py,sha256=UKK3SaIZB2PCdKSIS0gnvMtLR9JJX62M-fZJu3OlWyg,3915 +pip/_vendor/chardet/charsetprober.py,sha256=L3t8_wIOov8em-vZWOcbkdsrwe43N6_gqNh5pH7WPd4,5420 +pip/_vendor/chardet/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/chardet/cli/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-311.pyc,, +pip/_vendor/chardet/cli/chardetect.py,sha256=zibMVg5RpKb-ME9_7EYG4ZM2Sf07NHcQzZ12U-rYJho,3242 +pip/_vendor/chardet/codingstatemachine.py,sha256=K7k69sw3jY5DmTXoSJQVsUtFIQKYPQVOSJJhBuGv_yE,3732 +pip/_vendor/chardet/codingstatemachinedict.py,sha256=0GY3Hi2qIZvDrOOJ3AtqppM1RsYxr_66ER4EHjuMiMc,542 +pip/_vendor/chardet/cp949prober.py,sha256=0jKRV7fECuWI16rNnks0ZECKA1iZYCIEaP8A1ZvjUSI,1860 +pip/_vendor/chardet/enums.py,sha256=TzECiZoCKNMqgwU76cPCeKWFBqaWvAdLMev5_bCkhY8,1683 +pip/_vendor/chardet/escprober.py,sha256=Kho48X65xE0scFylIdeJjM2bcbvRvv0h0WUbMWrJD3A,4006 +pip/_vendor/chardet/escsm.py,sha256=AqyXpA2FQFD7k-buBty_7itGEYkhmVa8X09NLRul3QM,12176 +pip/_vendor/chardet/eucjpprober.py,sha256=5KYaM9fsxkRYzw1b5k0fL-j_-ezIw-ij9r97a9MHxLY,3934 +pip/_vendor/chardet/euckrfreq.py,sha256=3mHuRvXfsq_QcQysDQFb8qSudvTiol71C6Ic2w57tKM,13566 +pip/_vendor/chardet/euckrprober.py,sha256=hiFT6wM174GIwRvqDsIcuOc-dDsq2uPKMKbyV8-1Xnc,1753 +pip/_vendor/chardet/euctwfreq.py,sha256=2alILE1Lh5eqiFJZjzRkMQXolNJRHY5oBQd-vmZYFFM,36913 +pip/_vendor/chardet/euctwprober.py,sha256=NxbpNdBtU0VFI0bKfGfDkpP7S2_8_6FlO87dVH0ogws,1753 +pip/_vendor/chardet/gb2312freq.py,sha256=49OrdXzD-HXqwavkqjo8Z7gvs58hONNzDhAyMENNkvY,20735 +pip/_vendor/chardet/gb2312prober.py,sha256=KPEBueaSLSvBpFeINMu0D6TgHcR90e5PaQawifzF4o0,1759 +pip/_vendor/chardet/hebrewprober.py,sha256=96T_Lj_OmW-fK7JrSHojYjyG3fsGgbzkoTNleZ3kfYE,14537 +pip/_vendor/chardet/jisfreq.py,sha256=mm8tfrwqhpOd3wzZKS4NJqkYBQVcDfTM2JiQ5aW932E,25796 +pip/_vendor/chardet/johabfreq.py,sha256=dBpOYG34GRX6SL8k_LbS9rxZPMjLjoMlgZ03Pz5Hmqc,42498 +pip/_vendor/chardet/johabprober.py,sha256=O1Qw9nVzRnun7vZp4UZM7wvJSv9W941mEU9uDMnY3DU,1752 +pip/_vendor/chardet/jpcntx.py,sha256=uhHrYWkLxE_rF5OkHKInm0HUsrjgKHHVQvtt3UcvotA,27055 +pip/_vendor/chardet/langbulgarianmodel.py,sha256=vmbvYFP8SZkSxoBvLkFqKiH1sjma5ihk3PTpdy71Rr4,104562 +pip/_vendor/chardet/langgreekmodel.py,sha256=JfB7bupjjJH2w3X_mYnQr9cJA_7EuITC2cRW13fUjeI,98484 +pip/_vendor/chardet/langhebrewmodel.py,sha256=3HXHaLQPNAGcXnJjkIJfozNZLTvTJmf4W5Awi6zRRKc,98196 +pip/_vendor/chardet/langhungarianmodel.py,sha256=WxbeQIxkv8YtApiNqxQcvj-tMycsoI4Xy-fwkDHpP_Y,101363 +pip/_vendor/chardet/langrussianmodel.py,sha256=s395bTZ87ESTrZCOdgXbEjZ9P1iGPwCl_8xSsac_DLY,128035 +pip/_vendor/chardet/langthaimodel.py,sha256=7bJlQitRpTnVGABmbSznHnJwOHDy3InkTvtFUx13WQI,102774 +pip/_vendor/chardet/langturkishmodel.py,sha256=XY0eGdTIy4eQ9Xg1LVPZacb-UBhHBR-cq0IpPVHowKc,95372 +pip/_vendor/chardet/latin1prober.py,sha256=p15EEmFbmQUwbKLC7lOJVGHEZwcG45ubEZYTGu01J5g,5380 +pip/_vendor/chardet/macromanprober.py,sha256=9anfzmY6TBfUPDyBDOdY07kqmTHpZ1tK0jL-p1JWcOY,6077 +pip/_vendor/chardet/mbcharsetprober.py,sha256=Wr04WNI4F3X_VxEverNG-H25g7u-MDDKlNt-JGj-_uU,3715 +pip/_vendor/chardet/mbcsgroupprober.py,sha256=iRpaNBjV0DNwYPu_z6TiHgRpwYahiM7ztI_4kZ4Uz9A,2131 +pip/_vendor/chardet/mbcssm.py,sha256=hUtPvDYgWDaA2dWdgLsshbwRfm3Q5YRlRogdmeRUNQw,30391 +pip/_vendor/chardet/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/chardet/metadata/__pycache__/languages.cpython-311.pyc,, +pip/_vendor/chardet/metadata/languages.py,sha256=FhvBIdZFxRQ-dTwkb_0madRKgVBCaUMQz9I5xqjE5iQ,13560 +pip/_vendor/chardet/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/chardet/resultdict.py,sha256=ez4FRvN5KaSosJeJ2WzUyKdDdg35HDy_SSLPXKCdt5M,402 +pip/_vendor/chardet/sbcharsetprober.py,sha256=-nd3F90i7GpXLjehLVHqVBE0KlWzGvQUPETLBNn4o6U,6400 +pip/_vendor/chardet/sbcsgroupprober.py,sha256=gcgI0fOfgw_3YTClpbra_MNxwyEyJ3eUXraoLHYb59E,4137 +pip/_vendor/chardet/sjisprober.py,sha256=aqQufMzRw46ZpFlzmYaYeT2-nzmKb-hmcrApppJ862k,4007 +pip/_vendor/chardet/universaldetector.py,sha256=xYBrg4x0dd9WnT8qclfADVD9ondrUNkqPmvte1pa520,14848 +pip/_vendor/chardet/utf1632prober.py,sha256=pw1epGdMj1hDGiCu1AHqqzOEfjX8MVdiW7O1BlT8-eQ,8505 +pip/_vendor/chardet/utf8prober.py,sha256=8m08Ub5490H4jQ6LYXvFysGtgKoKsHUd2zH_i8_TnVw,2812 +pip/_vendor/chardet/version.py,sha256=lGtJcxGM44Qz4Cbk4rbbmrKxnNr1-97U25TameLehZw,244 +pip/_vendor/colorama/__init__.py,sha256=wePQA4U20tKgYARySLEC047ucNX-g8pRLpYBuiHlLb8,266 +pip/_vendor/colorama/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/colorama/__pycache__/ansi.cpython-311.pyc,, +pip/_vendor/colorama/__pycache__/ansitowin32.cpython-311.pyc,, +pip/_vendor/colorama/__pycache__/initialise.cpython-311.pyc,, +pip/_vendor/colorama/__pycache__/win32.cpython-311.pyc,, +pip/_vendor/colorama/__pycache__/winterm.cpython-311.pyc,, +pip/_vendor/colorama/ansi.py,sha256=Top4EeEuaQdBWdteKMEcGOTeKeF19Q-Wo_6_Cj5kOzQ,2522 +pip/_vendor/colorama/ansitowin32.py,sha256=vPNYa3OZbxjbuFyaVo0Tmhmy1FZ1lKMWCnT7odXpItk,11128 +pip/_vendor/colorama/initialise.py,sha256=-hIny86ClXo39ixh5iSCfUIa2f_h_bgKRDW7gqs-KLU,3325 +pip/_vendor/colorama/tests/__init__.py,sha256=MkgPAEzGQd-Rq0w0PZXSX2LadRWhUECcisJY8lSrm4Q,75 +pip/_vendor/colorama/tests/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/colorama/tests/__pycache__/ansi_test.cpython-311.pyc,, +pip/_vendor/colorama/tests/__pycache__/ansitowin32_test.cpython-311.pyc,, +pip/_vendor/colorama/tests/__pycache__/initialise_test.cpython-311.pyc,, +pip/_vendor/colorama/tests/__pycache__/isatty_test.cpython-311.pyc,, +pip/_vendor/colorama/tests/__pycache__/utils.cpython-311.pyc,, +pip/_vendor/colorama/tests/__pycache__/winterm_test.cpython-311.pyc,, +pip/_vendor/colorama/tests/ansi_test.py,sha256=FeViDrUINIZcr505PAxvU4AjXz1asEiALs9GXMhwRaE,2839 +pip/_vendor/colorama/tests/ansitowin32_test.py,sha256=RN7AIhMJ5EqDsYaCjVo-o4u8JzDD4ukJbmevWKS70rY,10678 +pip/_vendor/colorama/tests/initialise_test.py,sha256=BbPy-XfyHwJ6zKozuQOvNvQZzsx9vdb_0bYXn7hsBTc,6741 +pip/_vendor/colorama/tests/isatty_test.py,sha256=Pg26LRpv0yQDB5Ac-sxgVXG7hsA1NYvapFgApZfYzZg,1866 +pip/_vendor/colorama/tests/utils.py,sha256=1IIRylG39z5-dzq09R_ngufxyPZxgldNbrxKxUGwGKE,1079 +pip/_vendor/colorama/tests/winterm_test.py,sha256=qoWFPEjym5gm2RuMwpf3pOis3a5r_PJZFCzK254JL8A,3709 +pip/_vendor/colorama/win32.py,sha256=YQOKwMTwtGBbsY4dL5HYTvwTeP9wIQra5MvPNddpxZs,6181 +pip/_vendor/colorama/winterm.py,sha256=XCQFDHjPi6AHYNdZwy0tA02H-Jh48Jp-HvCjeLeLp3U,7134 +pip/_vendor/distlib/__init__.py,sha256=hJKF7FHoqbmGckncDuEINWo_OYkDNiHODtYXSMcvjcc,625 +pip/_vendor/distlib/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/compat.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/database.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/index.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/locators.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/manifest.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/markers.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/metadata.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/resources.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/scripts.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/util.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/version.cpython-311.pyc,, +pip/_vendor/distlib/__pycache__/wheel.cpython-311.pyc,, +pip/_vendor/distlib/compat.py,sha256=Un-uIBvy02w-D267OG4VEhuddqWgKj9nNkxVltAb75w,41487 +pip/_vendor/distlib/database.py,sha256=0V9Qvs0Vrxa2F_-hLWitIyVyRifJ0pCxyOI-kEOBwsA,51965 +pip/_vendor/distlib/index.py,sha256=lTbw268rRhj8dw1sib3VZ_0EhSGgoJO3FKJzSFMOaeA,20797 +pip/_vendor/distlib/locators.py,sha256=o1r_M86_bRLafSpetmyfX8KRtFu-_Q58abvQrnOSnbA,51767 +pip/_vendor/distlib/manifest.py,sha256=3qfmAmVwxRqU1o23AlfXrQGZzh6g_GGzTAP_Hb9C5zQ,14168 +pip/_vendor/distlib/markers.py,sha256=n3DfOh1yvZ_8EW7atMyoYeZFXjYla0Nz0itQlojCd0A,5268 +pip/_vendor/distlib/metadata.py,sha256=pB9WZ9mBfmQxc9OVIldLS5CjOoQRvKAvUwwQyKwKQtQ,39693 +pip/_vendor/distlib/resources.py,sha256=LwbPksc0A1JMbi6XnuPdMBUn83X7BPuFNWqPGEKI698,10820 +pip/_vendor/distlib/scripts.py,sha256=nQFXN6G7nOWNDUyxirUep-3WOlJhB7McvCs9zOnkGTI,18315 +pip/_vendor/distlib/t32.exe,sha256=a0GV5kCoWsMutvliiCKmIgV98eRZ33wXoS-XrqvJQVs,97792 +pip/_vendor/distlib/t64-arm.exe,sha256=68TAa32V504xVBnufojh0PcenpR3U4wAqTqf-MZqbPw,182784 +pip/_vendor/distlib/t64.exe,sha256=gaYY8hy4fbkHYTTnA4i26ct8IQZzkBG2pRdy0iyuBrc,108032 +pip/_vendor/distlib/util.py,sha256=XSznxEi_i3T20UJuaVc0qXHz5ksGUCW1khYlBprN_QE,67530 +pip/_vendor/distlib/version.py,sha256=9pXkduchve_aN7JG6iL9VTYV_kqNSGoc2Dwl8JuySnQ,23747 +pip/_vendor/distlib/w32.exe,sha256=R4csx3-OGM9kL4aPIzQKRo5TfmRSHZo6QWyLhDhNBks,91648 +pip/_vendor/distlib/w64-arm.exe,sha256=xdyYhKj0WDcVUOCb05blQYvzdYIKMbmJn2SZvzkcey4,168448 +pip/_vendor/distlib/w64.exe,sha256=ejGf-rojoBfXseGLpya6bFTFPWRG21X5KvU8J5iU-K0,101888 +pip/_vendor/distlib/wheel.py,sha256=FVQCve8u-L0QYk5-YTZc7s4WmNQdvjRWTK08KXzZVX4,43958 +pip/_vendor/distro/__init__.py,sha256=2fHjF-SfgPvjyNZ1iHh_wjqWdR_Yo5ODHwZC0jLBPhc,981 +pip/_vendor/distro/__main__.py,sha256=bu9d3TifoKciZFcqRBuygV3GSuThnVD_m2IK4cz96Vs,64 +pip/_vendor/distro/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/distro/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/distro/__pycache__/distro.cpython-311.pyc,, +pip/_vendor/distro/distro.py,sha256=UZO1LjIhtFCMdlbiz39gj3raV-Amf3SBwzGzfApiMHw,49330 +pip/_vendor/distro/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/idna/__init__.py,sha256=KJQN1eQBr8iIK5SKrJ47lXvxG0BJ7Lm38W4zT0v_8lk,849 +pip/_vendor/idna/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/codec.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/compat.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/core.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/idnadata.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/intranges.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/package_data.cpython-311.pyc,, +pip/_vendor/idna/__pycache__/uts46data.cpython-311.pyc,, +pip/_vendor/idna/codec.py,sha256=6ly5odKfqrytKT9_7UrlGklHnf1DSK2r9C6cSM4sa28,3374 +pip/_vendor/idna/compat.py,sha256=0_sOEUMT4CVw9doD3vyRhX80X19PwqFoUBs7gWsFME4,321 +pip/_vendor/idna/core.py,sha256=1JxchwKzkxBSn7R_oCE12oBu3eVux0VzdxolmIad24M,12950 +pip/_vendor/idna/idnadata.py,sha256=xUjqKqiJV8Ho_XzBpAtv5JFoVPSupK-SUXvtjygUHqw,44375 +pip/_vendor/idna/intranges.py,sha256=YBr4fRYuWH7kTKS2tXlFjM24ZF1Pdvcir-aywniInqg,1881 +pip/_vendor/idna/package_data.py,sha256=C_jHJzmX8PI4xq0jpzmcTMxpb5lDsq4o5VyxQzlVrZE,21 +pip/_vendor/idna/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/idna/uts46data.py,sha256=zvjZU24s58_uAS850Mcd0NnD0X7_gCMAMjzWNIeUJdc,206539 +pip/_vendor/msgpack/__init__.py,sha256=hyGhlnmcJkxryJBKC3X5FnEph375kQoL_mG8LZUuXgY,1132 +pip/_vendor/msgpack/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/msgpack/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/msgpack/__pycache__/ext.cpython-311.pyc,, +pip/_vendor/msgpack/__pycache__/fallback.cpython-311.pyc,, +pip/_vendor/msgpack/exceptions.py,sha256=dCTWei8dpkrMsQDcjQk74ATl9HsIBH0ybt8zOPNqMYc,1081 +pip/_vendor/msgpack/ext.py,sha256=C5MK8JhVYGYFWPvxsORsqZAnvOXefYQ57m1Ym0luW5M,6079 +pip/_vendor/msgpack/fallback.py,sha256=tvNBHyxxFbuVlC8GZShETClJxjLiDMOja4XwwyvNm2g,34544 +pip/_vendor/packaging/__about__.py,sha256=ugASIO2w1oUyH8_COqQ2X_s0rDhjbhQC3yJocD03h2c,661 +pip/_vendor/packaging/__init__.py,sha256=b9Kk5MF7KxhhLgcDmiUWukN-LatWFxPdNug0joPhHSk,497 +pip/_vendor/packaging/__pycache__/__about__.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_manylinux.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_musllinux.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/_structures.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/markers.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/requirements.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/specifiers.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/tags.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/utils.cpython-311.pyc,, +pip/_vendor/packaging/__pycache__/version.cpython-311.pyc,, +pip/_vendor/packaging/_manylinux.py,sha256=XcbiXB-qcjv3bcohp6N98TMpOP4_j3m-iOA8ptK2GWY,11488 +pip/_vendor/packaging/_musllinux.py,sha256=_KGgY_qc7vhMGpoqss25n2hiLCNKRtvz9mCrS7gkqyc,4378 +pip/_vendor/packaging/_structures.py,sha256=q3eVNmbWJGG_S0Dit_S3Ao8qQqz_5PYTXFAKBZe5yr4,1431 +pip/_vendor/packaging/markers.py,sha256=AJBOcY8Oq0kYc570KuuPTkvuqjAlhufaE2c9sCUbm64,8487 +pip/_vendor/packaging/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/packaging/requirements.py,sha256=NtDlPBtojpn1IUC85iMjPNsUmufjpSlwnNA-Xb4m5NA,4676 +pip/_vendor/packaging/specifiers.py,sha256=LRQ0kFsHrl5qfcFNEEJrIFYsnIHQUJXY9fIsakTrrqE,30110 +pip/_vendor/packaging/tags.py,sha256=lmsnGNiJ8C4D_Pf9PbM0qgbZvD9kmB9lpZBQUZa3R_Y,15699 +pip/_vendor/packaging/utils.py,sha256=dJjeat3BS-TYn1RrUFVwufUMasbtzLfYRoy_HXENeFQ,4200 +pip/_vendor/packaging/version.py,sha256=_fLRNrFrxYcHVfyo8vk9j8s6JM8N_xsSxVFr6RJyco8,14665 +pip/_vendor/pkg_resources/__init__.py,sha256=hTAeJCNYb7dJseIDVsYK3mPQep_gphj4tQh-bspX8bg,109364 +pip/_vendor/pkg_resources/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/platformdirs/__init__.py,sha256=SkhEYVyC_HUHC6KX7n4M_6coyRMtEB38QMyOYIAX6Yk,20155 +pip/_vendor/platformdirs/__main__.py,sha256=fVvSiTzr2-RM6IsjWjj4fkaOtDOgDhUWv6sA99do4CQ,1476 +pip/_vendor/platformdirs/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/android.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/api.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/macos.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/unix.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/version.cpython-311.pyc,, +pip/_vendor/platformdirs/__pycache__/windows.cpython-311.pyc,, +pip/_vendor/platformdirs/android.py,sha256=y_EEMKwYl2-bzYBDovksSn8m76on0Lda8eyJksVQE9U,7211 +pip/_vendor/platformdirs/api.py,sha256=jWtX06jAJytYrkJDOqEls97mCkyHRSZkoqUlbMK5Qew,7132 +pip/_vendor/platformdirs/macos.py,sha256=LueVOoVgGWDBwQb8OFwXkVKfVn33CM1Lkwf1-A86tRQ,3678 +pip/_vendor/platformdirs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/platformdirs/unix.py,sha256=22JhR8ZY0aLxSVCFnKrc6f1iz6Gv42K24Daj7aTjfSg,8809 +pip/_vendor/platformdirs/version.py,sha256=mavZTQIJIXfdewEaSTn7EWrNfPZWeRofb-74xqW5f2M,160 +pip/_vendor/platformdirs/windows.py,sha256=4TtbPGoWG2PRgI11uquDa7eRk8TcxvnUNuuMGZItnXc,9573 +pip/_vendor/pygments/__init__.py,sha256=6AuDljQtvf89DTNUyWM7k3oUlP_lq70NU-INKKteOBY,2983 +pip/_vendor/pygments/__main__.py,sha256=es8EKMvXj5yToIfQ-pf3Dv5TnIeeM6sME0LW-n4ecHo,353 +pip/_vendor/pygments/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/cmdline.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/console.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/filter.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/formatter.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/lexer.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/modeline.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/plugin.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/regexopt.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/scanner.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/sphinxext.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/style.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/token.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/unistring.cpython-311.pyc,, +pip/_vendor/pygments/__pycache__/util.cpython-311.pyc,, +pip/_vendor/pygments/cmdline.py,sha256=byxYJp9gnjVeyhRlZ3UTMgo_LhkXh1afvN8wJBtAcc8,23685 +pip/_vendor/pygments/console.py,sha256=2wZ5W-U6TudJD1_NLUwjclMpbomFM91lNv11_60sfGY,1697 +pip/_vendor/pygments/filter.py,sha256=j5aLM9a9wSx6eH1oy473oSkJ02hGWNptBlVo4s1g_30,1938 +pip/_vendor/pygments/filters/__init__.py,sha256=h_koYkUFo-FFUxjs564JHUAz7O3yJpVwI6fKN3MYzG0,40386 +pip/_vendor/pygments/filters/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/formatter.py,sha256=J9OL9hXLJKZk7moUgKwpjW9HNf4WlJFg_o_-Z_S_tTY,4178 +pip/_vendor/pygments/formatters/__init__.py,sha256=_xgAcdFKr0QNYwh_i98AU9hvfP3X2wAkhElFcRRF3Uo,5424 +pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/groff.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/html.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/img.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/irc.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/latex.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/other.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/svg.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-311.pyc,, +pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-311.pyc,, +pip/_vendor/pygments/formatters/_mapping.py,sha256=1Cw37FuQlNacnxRKmtlPX4nyLoX9_ttko5ZwscNUZZ4,4176 +pip/_vendor/pygments/formatters/bbcode.py,sha256=r1b7wzWTJouADDLh-Z11iRi4iQxD0JKJ1qHl6mOYxsA,3314 +pip/_vendor/pygments/formatters/groff.py,sha256=xy8Zf3tXOo6MWrXh7yPGWx3lVEkg_DhY4CxmsDb0IVo,5094 +pip/_vendor/pygments/formatters/html.py,sha256=PIzAyilNqaTzSSP2slDG2VDLE3qNioWy2rgtSSoviuI,35610 +pip/_vendor/pygments/formatters/img.py,sha256=XKXmg2_XONrR4mtq2jfEU8XCsoln3VSGTw-UYiEokys,21938 +pip/_vendor/pygments/formatters/irc.py,sha256=Ep-m8jd3voFO6Fv57cUGFmz6JVA67IEgyiBOwv0N4a0,4981 +pip/_vendor/pygments/formatters/latex.py,sha256=FGzJ-YqSTE8z_voWPdzvLY5Tq8jE_ygjGjM6dXZJ8-k,19351 +pip/_vendor/pygments/formatters/other.py,sha256=gPxkk5BdAzWTCgbEHg1lpLi-1F6ZPh5A_aotgLXHnzg,5073 +pip/_vendor/pygments/formatters/pangomarkup.py,sha256=6LKnQc8yh49f802bF0sPvbzck4QivMYqqoXAPaYP8uU,2212 +pip/_vendor/pygments/formatters/rtf.py,sha256=aA0v_psW6KZI3N18TKDifxeL6mcF8EDXcPXDWI4vhVQ,5014 +pip/_vendor/pygments/formatters/svg.py,sha256=dQONWypbzfvzGCDtdp3M_NJawScJvM2DiHbx1k-ww7g,7335 +pip/_vendor/pygments/formatters/terminal.py,sha256=FG-rpjRpFmNpiGB4NzIucvxq6sQIXB3HOTo2meTKtrU,4674 +pip/_vendor/pygments/formatters/terminal256.py,sha256=13SJ3D5pFdqZ9zROE6HbWnBDwHvOGE8GlsmqGhprRp4,11753 +pip/_vendor/pygments/lexer.py,sha256=2BpqLlT2ExvOOi7vnjK5nB4Fp-m52ldiPaXMox5uwug,34618 +pip/_vendor/pygments/lexers/__init__.py,sha256=j5KEi5O_VQ5GS59H49l-10gzUOkWKxlwGeVMlGO2MMk,12130 +pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-311.pyc,, +pip/_vendor/pygments/lexers/__pycache__/python.cpython-311.pyc,, +pip/_vendor/pygments/lexers/_mapping.py,sha256=Hts4r_ZQ8icftGM7gkBPeED5lyVSv4affFgXYE6Ap04,72281 +pip/_vendor/pygments/lexers/python.py,sha256=c7jnmKFU9DLxTJW0UbwXt6Z9FJqbBlVsWA1Qr9xSA_w,53424 +pip/_vendor/pygments/modeline.py,sha256=eF2vO4LpOGoPvIKKkbPfnyut8hT4UiebZPpb-BYGQdI,986 +pip/_vendor/pygments/plugin.py,sha256=j1Fh310RbV2DQ9nvkmkqvlj38gdyuYKllLnGxbc8sJM,2591 +pip/_vendor/pygments/regexopt.py,sha256=jg1ALogcYGU96TQS9isBl6dCrvw5y5--BP_K-uFk_8s,3072 +pip/_vendor/pygments/scanner.py,sha256=b_nu5_f3HCgSdp5S_aNRBQ1MSCm4ZjDwec2OmTRickw,3092 +pip/_vendor/pygments/sphinxext.py,sha256=wBFYm180qea9JKt__UzhRlNRNhczPDFDaqGD21sbuso,6882 +pip/_vendor/pygments/style.py,sha256=C4qyoJrUTkq-OV3iO-8Vz3UtWYpJwSTdh5_vlGCGdNQ,6257 +pip/_vendor/pygments/styles/__init__.py,sha256=he7HjQx7sC0d2kfTVLjUs0J15mtToJM6M1brwIm9--Q,3700 +pip/_vendor/pygments/styles/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pygments/token.py,sha256=seNsmcch9OEHXYirh8Ool7w8xDhfNTbLj5rHAC-gc_o,6184 +pip/_vendor/pygments/unistring.py,sha256=FaUfG14NBJEKLQoY9qj6JYeXrpYcLmKulghdxOGFaOc,63223 +pip/_vendor/pygments/util.py,sha256=AEVY0qonyyEMgv4Do2dINrrqUAwUk2XYSqHM650uzek,10230 +pip/_vendor/pyparsing/__init__.py,sha256=9m1JbE2JTLdBG0Mb6B0lEaZj181Wx5cuPXZpsbHEYgE,9116 +pip/_vendor/pyparsing/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/actions.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/common.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/core.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/helpers.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/results.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/testing.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/unicode.cpython-311.pyc,, +pip/_vendor/pyparsing/__pycache__/util.cpython-311.pyc,, +pip/_vendor/pyparsing/actions.py,sha256=05uaIPOznJPQ7VgRdmGCmG4sDnUPtwgv5qOYIqbL2UY,6567 +pip/_vendor/pyparsing/common.py,sha256=p-3c83E5-DjlkF35G0O9-kjQRpoejP-2_z0hxZ-eol4,13387 +pip/_vendor/pyparsing/core.py,sha256=yvuRlLpXSF8mgk-QhiW3OVLqD9T0rsj9tbibhRH4Yaw,224445 +pip/_vendor/pyparsing/diagram/__init__.py,sha256=nxmDOoYF9NXuLaGYy01tKFjkNReWJlrGFuJNWEiTo84,24215 +pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pyparsing/exceptions.py,sha256=6Jc6W1eDZBzyFu1J0YrcdNFVBC-RINujZmveSnB8Rxw,9523 +pip/_vendor/pyparsing/helpers.py,sha256=BZJHCA8SS0pYio30KGQTc9w2qMOaK4YpZ7hcvHbnTgk,38646 +pip/_vendor/pyparsing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/pyparsing/results.py,sha256=9dyqQ-w3MjfmxWbFt8KEPU6IfXeyRdoWp2Og802rUQY,26692 +pip/_vendor/pyparsing/testing.py,sha256=eJncg0p83zm1FTPvM9auNT6oavIvXaibmRFDf1qmwkY,13488 +pip/_vendor/pyparsing/unicode.py,sha256=fAPdsJiARFbkPAih6NkYry0dpj4jPqelGVMlE4wWFW8,10646 +pip/_vendor/pyparsing/util.py,sha256=vTMzTdwSDyV8d_dSgquUTdWgBFoA_W30nfxEJDsshRQ,8670 +pip/_vendor/pyproject_hooks/__init__.py,sha256=kCehmy0UaBa9oVMD7ZIZrnswfnP3LXZ5lvnNJAL5JBM,491 +pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/__pycache__/_compat.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/_compat.py,sha256=by6evrYnqkisiM-MQcvOKs5bgDMzlOSgZqRHNqf04zE,138 +pip/_vendor/pyproject_hooks/_impl.py,sha256=61GJxzQip0IInhuO69ZI5GbNQ82XEDUB_1Gg5_KtUoc,11920 +pip/_vendor/pyproject_hooks/_in_process/__init__.py,sha256=9gQATptbFkelkIy0OfWFEACzqxXJMQDWCH9rBOAZVwQ,546 +pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-311.pyc,, +pip/_vendor/pyproject_hooks/_in_process/_in_process.py,sha256=m2b34c917IW5o-Q_6TYIHlsK9lSUlNiyrITTUH_zwew,10927 +pip/_vendor/requests/__init__.py,sha256=owujob4dk45Siy4EYtbCKR6wcFph7E04a_v_OuAacBA,5169 +pip/_vendor/requests/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/__version__.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/_internal_utils.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/adapters.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/api.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/auth.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/certs.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/compat.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/cookies.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/help.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/hooks.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/models.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/packages.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/sessions.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/status_codes.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/structures.cpython-311.pyc,, +pip/_vendor/requests/__pycache__/utils.cpython-311.pyc,, +pip/_vendor/requests/__version__.py,sha256=ssI3Ezt7PaxgkOW45GhtwPUclo_SO_ygtIm4A74IOfw,435 +pip/_vendor/requests/_internal_utils.py,sha256=nMQymr4hs32TqVo5AbCrmcJEhvPUh7xXlluyqwslLiQ,1495 +pip/_vendor/requests/adapters.py,sha256=idj6cZcId3L5xNNeJ7ieOLtw3awJk5A64xUfetHwq3M,19697 +pip/_vendor/requests/api.py,sha256=q61xcXq4tmiImrvcSVLTbFyCiD2F-L_-hWKGbz4y8vg,6449 +pip/_vendor/requests/auth.py,sha256=h-HLlVx9j8rKV5hfSAycP2ApOSglTz77R0tz7qCbbEE,10187 +pip/_vendor/requests/certs.py,sha256=PVPooB0jP5hkZEULSCwC074532UFbR2Ptgu0I5zwmCs,575 +pip/_vendor/requests/compat.py,sha256=IhK9quyX0RRuWTNcg6d2JGSAOUbM6mym2p_2XjLTwf4,1286 +pip/_vendor/requests/cookies.py,sha256=kD3kNEcCj-mxbtf5fJsSaT86eGoEYpD3X0CSgpzl7BM,18560 +pip/_vendor/requests/exceptions.py,sha256=FA-_kVwBZ2jhXauRctN_ewHVK25b-fj0Azyz1THQ0Kk,3823 +pip/_vendor/requests/help.py,sha256=FnAAklv8MGm_qb2UilDQgS6l0cUttiCFKUjx0zn2XNA,3879 +pip/_vendor/requests/hooks.py,sha256=CiuysiHA39V5UfcCBXFIx83IrDpuwfN9RcTUgv28ftQ,733 +pip/_vendor/requests/models.py,sha256=dDZ-iThotky-Noq9yy97cUEJhr3wnY6mv-xR_ePg_lk,35288 +pip/_vendor/requests/packages.py,sha256=njJmVifY4aSctuW3PP5EFRCxjEwMRDO6J_feG2dKWsI,695 +pip/_vendor/requests/sessions.py,sha256=-LvTzrPtetSTrR3buxu4XhdgMrJFLB1q5D7P--L2Xhw,30373 +pip/_vendor/requests/status_codes.py,sha256=FvHmT5uH-_uimtRz5hH9VCbt7VV-Nei2J9upbej6j8g,4235 +pip/_vendor/requests/structures.py,sha256=-IbmhVz06S-5aPSZuUthZ6-6D9XOjRuTXHOabY041XM,2912 +pip/_vendor/requests/utils.py,sha256=kOPn0qYD6xRTzaxbqTdYiSInBZHl6379AJsyIgzYGLY,33460 +pip/_vendor/resolvelib/__init__.py,sha256=h509TdEcpb5-44JonaU3ex2TM15GVBLjM9CNCPwnTTs,537 +pip/_vendor/resolvelib/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/resolvelib/__pycache__/providers.cpython-311.pyc,, +pip/_vendor/resolvelib/__pycache__/reporters.cpython-311.pyc,, +pip/_vendor/resolvelib/__pycache__/resolvers.cpython-311.pyc,, +pip/_vendor/resolvelib/__pycache__/structs.cpython-311.pyc,, +pip/_vendor/resolvelib/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-311.pyc,, +pip/_vendor/resolvelib/compat/collections_abc.py,sha256=uy8xUZ-NDEw916tugUXm8HgwCGiMO0f-RcdnpkfXfOs,156 +pip/_vendor/resolvelib/providers.py,sha256=fuuvVrCetu5gsxPB43ERyjfO8aReS3rFQHpDgiItbs4,5871 +pip/_vendor/resolvelib/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/resolvelib/reporters.py,sha256=TSbRmWzTc26w0ggsV1bxVpeWDB8QNIre6twYl7GIZBE,1601 +pip/_vendor/resolvelib/resolvers.py,sha256=G8rsLZSq64g5VmIq-lB7UcIJ1gjAxIQJmTF4REZleQ0,20511 +pip/_vendor/resolvelib/structs.py,sha256=0_1_XO8z_CLhegP3Vpf9VJ3zJcfLm0NOHRM-i0Ykz3o,4963 +pip/_vendor/rich/__init__.py,sha256=dRxjIL-SbFVY0q3IjSMrfgBTHrm1LZDgLOygVBwiYZc,6090 +pip/_vendor/rich/__main__.py,sha256=TT8sb9PTnsnKhhrGuHkLN0jdN0dtKhtPkEr9CidDbPM,8478 +pip/_vendor/rich/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/__main__.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_cell_widths.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_emoji_codes.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_emoji_replace.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_export_format.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_extension.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_fileno.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_inspect.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_log_render.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_loop.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_null_file.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_palettes.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_pick.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_ratio.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_spinners.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_stack.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_timer.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_win32_console.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_windows.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_windows_renderer.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/_wrap.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/abc.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/align.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/ansi.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/bar.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/box.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/cells.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/color.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/color_triplet.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/columns.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/console.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/constrain.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/containers.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/control.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/default_styles.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/diagnose.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/emoji.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/errors.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/file_proxy.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/filesize.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/highlighter.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/json.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/jupyter.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/layout.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/live.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/live_render.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/logging.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/markup.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/measure.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/padding.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/pager.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/palette.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/panel.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/pretty.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/progress.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/progress_bar.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/prompt.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/protocol.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/region.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/repr.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/rule.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/scope.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/screen.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/segment.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/spinner.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/status.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/style.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/styled.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/syntax.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/table.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/terminal_theme.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/text.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/theme.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/themes.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/traceback.cpython-311.pyc,, +pip/_vendor/rich/__pycache__/tree.cpython-311.pyc,, +pip/_vendor/rich/_cell_widths.py,sha256=2n4EiJi3X9sqIq0O16kUZ_zy6UYMd3xFfChlKfnW1Hc,10096 +pip/_vendor/rich/_emoji_codes.py,sha256=hu1VL9nbVdppJrVoijVshRlcRRe_v3dju3Mmd2sKZdY,140235 +pip/_vendor/rich/_emoji_replace.py,sha256=n-kcetsEUx2ZUmhQrfeMNc-teeGhpuSQ5F8VPBsyvDo,1064 +pip/_vendor/rich/_export_format.py,sha256=qxgV3nKnXQu1hfbnRVswPYy-AwIg1X0LSC47cK5s8jk,2100 +pip/_vendor/rich/_extension.py,sha256=Xt47QacCKwYruzjDi-gOBq724JReDj9Cm9xUi5fr-34,265 +pip/_vendor/rich/_fileno.py,sha256=HWZxP5C2ajMbHryvAQZseflVfQoGzsKOHzKGsLD8ynQ,799 +pip/_vendor/rich/_inspect.py,sha256=oZJGw31e64dwXSCmrDnvZbwVb1ZKhWfU8wI3VWohjJk,9695 +pip/_vendor/rich/_log_render.py,sha256=1ByI0PA1ZpxZY3CGJOK54hjlq4X-Bz_boIjIqCd8Kns,3225 +pip/_vendor/rich/_loop.py,sha256=hV_6CLdoPm0va22Wpw4zKqM0RYsz3TZxXj0PoS-9eDQ,1236 +pip/_vendor/rich/_null_file.py,sha256=tGSXk_v-IZmbj1GAzHit8A3kYIQMiCpVsCFfsC-_KJ4,1387 +pip/_vendor/rich/_palettes.py,sha256=cdev1JQKZ0JvlguV9ipHgznTdnvlIzUFDBb0It2PzjI,7063 +pip/_vendor/rich/_pick.py,sha256=evDt8QN4lF5CiwrUIXlOJCntitBCOsI3ZLPEIAVRLJU,423 +pip/_vendor/rich/_ratio.py,sha256=2lLSliL025Y-YMfdfGbutkQDevhcyDqc-DtUYW9mU70,5472 +pip/_vendor/rich/_spinners.py,sha256=U2r1_g_1zSjsjiUdAESc2iAMc3i4ri_S8PYP6kQ5z1I,19919 +pip/_vendor/rich/_stack.py,sha256=-C8OK7rxn3sIUdVwxZBBpeHhIzX0eI-VM3MemYfaXm0,351 +pip/_vendor/rich/_timer.py,sha256=zelxbT6oPFZnNrwWPpc1ktUeAT-Vc4fuFcRZLQGLtMI,417 +pip/_vendor/rich/_win32_console.py,sha256=P0vxI2fcndym1UU1S37XAzQzQnkyY7YqAKmxm24_gug,22820 +pip/_vendor/rich/_windows.py,sha256=dvNl9TmfPzNVxiKk5WDFihErZ5796g2UC9-KGGyfXmk,1926 +pip/_vendor/rich/_windows_renderer.py,sha256=t74ZL3xuDCP3nmTp9pH1L5LiI2cakJuQRQleHCJerlk,2783 +pip/_vendor/rich/_wrap.py,sha256=xfV_9t0Sg6rzimmrDru8fCVmUlalYAcHLDfrJZnbbwQ,1840 +pip/_vendor/rich/abc.py,sha256=ON-E-ZqSSheZ88VrKX2M3PXpFbGEUUZPMa_Af0l-4f0,890 +pip/_vendor/rich/align.py,sha256=Ji-Yokfkhnfe_xMmr4ISjZB07TJXggBCOYoYa-HDAr8,10368 +pip/_vendor/rich/ansi.py,sha256=iD6532QYqnBm6hADulKjrV8l8kFJ-9fEVooHJHH3hMg,6906 +pip/_vendor/rich/bar.py,sha256=a7UD303BccRCrEhGjfMElpv5RFYIinaAhAuqYqhUvmw,3264 +pip/_vendor/rich/box.py,sha256=FJ6nI3jD7h2XNFU138bJUt2HYmWOlRbltoCEuIAZhew,9842 +pip/_vendor/rich/cells.py,sha256=627ztJs9zOL-38HJ7kXBerR-gT8KBfYC8UzEwMJDYYo,4509 +pip/_vendor/rich/color.py,sha256=9Gh958U3f75WVdLTeC0U9nkGTn2n0wnojKpJ6jQEkIE,18224 +pip/_vendor/rich/color_triplet.py,sha256=3lhQkdJbvWPoLDO-AnYImAWmJvV5dlgYNCVZ97ORaN4,1054 +pip/_vendor/rich/columns.py,sha256=HUX0KcMm9dsKNi11fTbiM_h2iDtl8ySCaVcxlalEzq8,7131 +pip/_vendor/rich/console.py,sha256=pDvkbLkvtZIMIwQx_jkZ-seyNl4zGBLviXoWXte9fwg,99218 +pip/_vendor/rich/constrain.py,sha256=1VIPuC8AgtKWrcncQrjBdYqA3JVWysu6jZo1rrh7c7Q,1288 +pip/_vendor/rich/containers.py,sha256=aKgm5UDHn5Nmui6IJaKdsZhbHClh_X7D-_Wg8Ehrr7s,5497 +pip/_vendor/rich/control.py,sha256=DSkHTUQLorfSERAKE_oTAEUFefZnZp4bQb4q8rHbKws,6630 +pip/_vendor/rich/default_styles.py,sha256=-Fe318kMVI_IwciK5POpThcO0-9DYJ67TZAN6DlmlmM,8082 +pip/_vendor/rich/diagnose.py,sha256=an6uouwhKPAlvQhYpNNpGq9EJysfMIOvvCbO3oSoR24,972 +pip/_vendor/rich/emoji.py,sha256=omTF9asaAnsM4yLY94eR_9dgRRSm1lHUszX20D1yYCQ,2501 +pip/_vendor/rich/errors.py,sha256=5pP3Kc5d4QJ_c0KFsxrfyhjiPVe7J1zOqSFbFAzcV-Y,642 +pip/_vendor/rich/file_proxy.py,sha256=Tl9THMDZ-Pk5Wm8sI1gGg_U5DhusmxD-FZ0fUbcU0W0,1683 +pip/_vendor/rich/filesize.py,sha256=9fTLAPCAwHmBXdRv7KZU194jSgNrRb6Wx7RIoBgqeKY,2508 +pip/_vendor/rich/highlighter.py,sha256=p3C1g4QYzezFKdR7NF9EhPbzQDvdPUhGRgSyGGEmPko,9584 +pip/_vendor/rich/json.py,sha256=EYp9ucj-nDjYDkHCV6Mk1ve8nUOpuFLaW76X50Mis2M,5032 +pip/_vendor/rich/jupyter.py,sha256=QyoKoE_8IdCbrtiSHp9TsTSNyTHY0FO5whE7jOTd9UE,3252 +pip/_vendor/rich/layout.py,sha256=RFYL6HdCFsHf9WRpcvi3w-fpj-8O5dMZ8W96VdKNdbI,14007 +pip/_vendor/rich/live.py,sha256=vZzYvu7fqwlv3Gthl2xiw1Dc_O80VlGcCV0DOHwCyDM,14273 +pip/_vendor/rich/live_render.py,sha256=zElm3PrfSIvjOce28zETHMIUf9pFYSUA5o0AflgUP64,3667 +pip/_vendor/rich/logging.py,sha256=uB-cB-3Q4bmXDLLpbOWkmFviw-Fde39zyMV6tKJ2WHQ,11903 +pip/_vendor/rich/markup.py,sha256=xzF4uAafiEeEYDJYt_vUnJOGoTU8RrH-PH7WcWYXjCg,8198 +pip/_vendor/rich/measure.py,sha256=HmrIJX8sWRTHbgh8MxEay_83VkqNW_70s8aKP5ZcYI8,5305 +pip/_vendor/rich/padding.py,sha256=kTFGsdGe0os7tXLnHKpwTI90CXEvrceeZGCshmJy5zw,4970 +pip/_vendor/rich/pager.py,sha256=SO_ETBFKbg3n_AgOzXm41Sv36YxXAyI3_R-KOY2_uSc,828 +pip/_vendor/rich/palette.py,sha256=lInvR1ODDT2f3UZMfL1grq7dY_pDdKHw4bdUgOGaM4Y,3396 +pip/_vendor/rich/panel.py,sha256=wGMe40J8KCGgQoM0LyjRErmGIkv2bsYA71RCXThD0xE,10574 +pip/_vendor/rich/pretty.py,sha256=eLEYN9xVaMNuA6EJVYm4li7HdOHxCqmVKvnOqJpyFt0,35852 +pip/_vendor/rich/progress.py,sha256=n4KF9vky8_5iYeXcyZPEvzyLplWlDvFLkM5JI0Bs08A,59706 +pip/_vendor/rich/progress_bar.py,sha256=cEoBfkc3lLwqba4XKsUpy4vSQKDh2QQ5J2J94-ACFoo,8165 +pip/_vendor/rich/prompt.py,sha256=x0mW-pIPodJM4ry6grgmmLrl8VZp99kqcmdnBe70YYA,11303 +pip/_vendor/rich/protocol.py,sha256=5hHHDDNHckdk8iWH5zEbi-zuIVSF5hbU2jIo47R7lTE,1391 +pip/_vendor/rich/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/rich/region.py,sha256=rNT9xZrVZTYIXZC0NYn41CJQwYNbR-KecPOxTgQvB8Y,166 +pip/_vendor/rich/repr.py,sha256=9Z8otOmM-tyxnyTodvXlectP60lwahjGiDTrbrxPSTg,4431 +pip/_vendor/rich/rule.py,sha256=0fNaS_aERa3UMRc3T5WMpN_sumtDxfaor2y3of1ftBk,4602 +pip/_vendor/rich/scope.py,sha256=TMUU8qo17thyqQCPqjDLYpg_UU1k5qVd-WwiJvnJVas,2843 +pip/_vendor/rich/screen.py,sha256=YoeReESUhx74grqb0mSSb9lghhysWmFHYhsbMVQjXO8,1591 +pip/_vendor/rich/segment.py,sha256=XLnJEFvcV3bjaVzMNUJiem3n8lvvI9TJ5PTu-IG2uTg,24247 +pip/_vendor/rich/spinner.py,sha256=15koCmF0DQeD8-k28Lpt6X_zJQUlzEhgo_6A6uy47lc,4339 +pip/_vendor/rich/status.py,sha256=gJsIXIZeSo3urOyxRUjs6VrhX5CZrA0NxIQ-dxhCnwo,4425 +pip/_vendor/rich/style.py,sha256=3hiocH_4N8vwRm3-8yFWzM7tSwjjEven69XqWasSQwM,27073 +pip/_vendor/rich/styled.py,sha256=eZNnzGrI4ki_54pgY3Oj0T-x3lxdXTYh4_ryDB24wBU,1258 +pip/_vendor/rich/syntax.py,sha256=jgDiVCK6cpR0NmBOpZmIu-Ud4eaW7fHvjJZkDbjpcSA,35173 +pip/_vendor/rich/table.py,sha256=-WzesL-VJKsaiDU3uyczpJMHy6VCaSewBYJwx8RudI8,39684 +pip/_vendor/rich/terminal_theme.py,sha256=1j5-ufJfnvlAo5Qsi_ACZiXDmwMXzqgmFByObT9-yJY,3370 +pip/_vendor/rich/text.py,sha256=_8JBlSau0c2z8ENOZMi1hJ7M1ZGY408E4-hXjHyyg1A,45525 +pip/_vendor/rich/theme.py,sha256=belFJogzA0W0HysQabKaHOc3RWH2ko3fQAJhoN-AFdo,3777 +pip/_vendor/rich/themes.py,sha256=0xgTLozfabebYtcJtDdC5QkX5IVUEaviqDUJJh4YVFk,102 +pip/_vendor/rich/traceback.py,sha256=yCLVrCtyoFNENd9mkm2xeG3KmqkTwH9xpFOO7p2Bq0A,29604 +pip/_vendor/rich/tree.py,sha256=BMbUYNjS9uodNPfvtY_odmU09GA5QzcMbQ5cJZhllQI,9169 +pip/_vendor/six.py,sha256=TOOfQi7nFGfMrIvtdr6wX4wyHH8M7aknmuLfo2cBBrM,34549 +pip/_vendor/tenacity/__init__.py,sha256=3kvAL6KClq8GFo2KFhmOzskRKSDQI-ubrlfZ8AQEEI0,20493 +pip/_vendor/tenacity/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/_asyncio.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/_utils.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/after.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/before.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/before_sleep.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/nap.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/retry.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/stop.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-311.pyc,, +pip/_vendor/tenacity/__pycache__/wait.cpython-311.pyc,, +pip/_vendor/tenacity/_asyncio.py,sha256=Qi6wgQsGa9MQibYRy3OXqcDQswIZZ00dLOoSUGN-6o8,3551 +pip/_vendor/tenacity/_utils.py,sha256=ubs6a7sxj3JDNRKWCyCU2j5r1CB7rgyONgZzYZq6D_4,2179 +pip/_vendor/tenacity/after.py,sha256=S5NCISScPeIrKwIeXRwdJl3kV9Q4nqZfnNPDx6Hf__g,1682 +pip/_vendor/tenacity/before.py,sha256=dIZE9gmBTffisfwNkK0F1xFwGPV41u5GK70UY4Pi5Kc,1562 +pip/_vendor/tenacity/before_sleep.py,sha256=YmpgN9Y7HGlH97U24vvq_YWb5deaK4_DbiD8ZuFmy-E,2372 +pip/_vendor/tenacity/nap.py,sha256=fRWvnz1aIzbIq9Ap3gAkAZgDH6oo5zxMrU6ZOVByq0I,1383 +pip/_vendor/tenacity/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/tenacity/retry.py,sha256=jrzD_mxA5mSTUEdiYB7SHpxltjhPSYZSnSRATb-ggRc,8746 +pip/_vendor/tenacity/stop.py,sha256=YMJs7ZgZfND65PRLqlGB_agpfGXlemx_5Hm4PKnBqpQ,3086 +pip/_vendor/tenacity/tornadoweb.py,sha256=po29_F1Mt8qZpsFjX7EVwAT0ydC_NbVia9gVi7R_wXA,2142 +pip/_vendor/tenacity/wait.py,sha256=3FcBJoCDgym12_dN6xfK8C1gROY0Hn4NSI2u8xv50uE,8024 +pip/_vendor/tomli/__init__.py,sha256=JhUwV66DB1g4Hvt1UQCVMdfCu-IgAV8FXmvDU9onxd4,396 +pip/_vendor/tomli/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/tomli/__pycache__/_parser.cpython-311.pyc,, +pip/_vendor/tomli/__pycache__/_re.cpython-311.pyc,, +pip/_vendor/tomli/__pycache__/_types.cpython-311.pyc,, +pip/_vendor/tomli/_parser.py,sha256=g9-ENaALS-B8dokYpCuzUFalWlog7T-SIYMjLZSWrtM,22633 +pip/_vendor/tomli/_re.py,sha256=dbjg5ChZT23Ka9z9DHOXfdtSpPwUfdgMXnj8NOoly-w,2943 +pip/_vendor/tomli/_types.py,sha256=-GTG2VUqkpxwMqzmVO4F7ybKddIbAnuAHXfmWQcTi3Q,254 +pip/_vendor/tomli/py.typed,sha256=8PjyZ1aVoQpRVvt71muvuq5qE-jTFZkK-GLHkhdebmc,26 +pip/_vendor/truststore/__init__.py,sha256=qzTLSH8PvAkY1fr6QQ2vV-KwE_M83wdXugtpJaP_AbM,403 +pip/_vendor/truststore/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_api.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_macos.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_openssl.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-311.pyc,, +pip/_vendor/truststore/__pycache__/_windows.cpython-311.pyc,, +pip/_vendor/truststore/_api.py,sha256=xjuEu_rlH4hcdJTROImEyOEqdw-F8t5vO2H2BToY0Ro,9893 +pip/_vendor/truststore/_macos.py,sha256=BjvAKoAjXhdIPuxpY124HJIFswDb0pq8DjynzJOVwqc,17694 +pip/_vendor/truststore/_openssl.py,sha256=LLUZ7ZGaio-i5dpKKjKCSeSufmn6T8pi9lDcFnvSyq0,2324 +pip/_vendor/truststore/_ssl_constants.py,sha256=NUD4fVKdSD02ri7-db0tnO0VqLP9aHuzmStcW7tAl08,1130 +pip/_vendor/truststore/_windows.py,sha256=1x_EhROeJ9QK1sMAjfnZC7awYI8UnBJYL-TjACUYI4A,17468 +pip/_vendor/truststore/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/typing_extensions.py,sha256=EWpcpyQnVmc48E9fSyPGs-vXgHcAk9tQABQIxmMsCGk,111130 +pip/_vendor/urllib3/__init__.py,sha256=iXLcYiJySn0GNbWOOZDDApgBL1JgP44EZ8i1760S8Mc,3333 +pip/_vendor/urllib3/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/_collections.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/_version.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/connection.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/connectionpool.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/exceptions.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/fields.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/filepost.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/poolmanager.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/request.cpython-311.pyc,, +pip/_vendor/urllib3/__pycache__/response.cpython-311.pyc,, +pip/_vendor/urllib3/_collections.py,sha256=Rp1mVyBgc_UlAcp6M3at1skJBXR5J43NawRTvW2g_XY,10811 +pip/_vendor/urllib3/_version.py,sha256=azoM7M7BUADl2kBhMVR6PPf2GhBDI90me1fcnzTwdcw,64 +pip/_vendor/urllib3/connection.py,sha256=92k9td_y4PEiTIjNufCUa1NzMB3J3w0LEdyokYgXnW8,20300 +pip/_vendor/urllib3/connectionpool.py,sha256=ItVDasDnPRPP9R8bNxY7tPBlC724nJ9nlxVgXG_SLbI,39990 +pip/_vendor/urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_appengine_environ.py,sha256=bDbyOEhW2CKLJcQqAKAyrEHN-aklsyHFKq6vF8ZFsmk,957 +pip/_vendor/urllib3/contrib/_securetransport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-311.pyc,, +pip/_vendor/urllib3/contrib/_securetransport/bindings.py,sha256=4Xk64qIkPBt09A5q-RIFUuDhNc9mXilVapm7WnYnzRw,17632 +pip/_vendor/urllib3/contrib/_securetransport/low_level.py,sha256=B2JBB2_NRP02xK6DCa1Pa9IuxrPwxzDzZbixQkb7U9M,13922 +pip/_vendor/urllib3/contrib/appengine.py,sha256=VR68eAVE137lxTgjBDwCna5UiBZTOKa01Aj_-5BaCz4,11036 +pip/_vendor/urllib3/contrib/ntlmpool.py,sha256=NlfkW7WMdW8ziqudopjHoW299og1BTWi0IeIibquFwk,4528 +pip/_vendor/urllib3/contrib/pyopenssl.py,sha256=hDJh4MhyY_p-oKlFcYcQaVQRDv6GMmBGuW9yjxyeejM,17081 +pip/_vendor/urllib3/contrib/securetransport.py,sha256=yhZdmVjY6PI6EeFbp7qYOp6-vp1Rkv2NMuOGaEj7pmc,34448 +pip/_vendor/urllib3/contrib/socks.py,sha256=aRi9eWXo9ZEb95XUxef4Z21CFlnnjbEiAo9HOseoMt4,7097 +pip/_vendor/urllib3/exceptions.py,sha256=0Mnno3KHTNfXRfY7638NufOPkUb6mXOm-Lqj-4x2w8A,8217 +pip/_vendor/urllib3/fields.py,sha256=kvLDCg_JmH1lLjUUEY_FLS8UhY7hBvDPuVETbY8mdrM,8579 +pip/_vendor/urllib3/filepost.py,sha256=5b_qqgRHVlL7uLtdAYBzBh-GHmU5AfJVt_2N0XS3PeY,2440 +pip/_vendor/urllib3/packages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/packages/__pycache__/six.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-311.pyc,, +pip/_vendor/urllib3/packages/backports/makefile.py,sha256=nbzt3i0agPVP07jqqgjhaYjMmuAi_W5E0EywZivVO8E,1417 +pip/_vendor/urllib3/packages/backports/weakref_finalize.py,sha256=tRCal5OAhNSRyb0DhHp-38AtIlCsRP8BxF3NX-6rqIA,5343 +pip/_vendor/urllib3/packages/six.py,sha256=b9LM0wBXv7E7SrbCjAm4wwN-hrH-iNxv18LgWNMMKPo,34665 +pip/_vendor/urllib3/poolmanager.py,sha256=0i8cJgrqupza67IBPZ_u9jXvnSxr5UBlVEiUqdkPtYI,19752 +pip/_vendor/urllib3/request.py,sha256=YTWFNr7QIwh7E1W9dde9LM77v2VWTJ5V78XuTTw7D1A,6691 +pip/_vendor/urllib3/response.py,sha256=fmDJAFkG71uFTn-sVSTh2Iw0WmcXQYqkbRjihvwBjU8,30641 +pip/_vendor/urllib3/util/__init__.py,sha256=JEmSmmqqLyaw8P51gUImZh8Gwg9i1zSe-DoqAitn2nc,1155 +pip/_vendor/urllib3/util/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/connection.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/proxy.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/queue.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/request.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/response.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/retry.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/timeout.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/url.cpython-311.pyc,, +pip/_vendor/urllib3/util/__pycache__/wait.cpython-311.pyc,, +pip/_vendor/urllib3/util/connection.py,sha256=5Lx2B1PW29KxBn2T0xkN1CBgRBa3gGVJBKoQoRogEVk,4901 +pip/_vendor/urllib3/util/proxy.py,sha256=zUvPPCJrp6dOF0N4GAVbOcl6o-4uXKSrGiTkkr5vUS4,1605 +pip/_vendor/urllib3/util/queue.py,sha256=nRgX8_eX-_VkvxoX096QWoz8Ps0QHUAExILCY_7PncM,498 +pip/_vendor/urllib3/util/request.py,sha256=C0OUt2tcU6LRiQJ7YYNP9GvPrSvl7ziIBekQ-5nlBZk,3997 +pip/_vendor/urllib3/util/response.py,sha256=GJpg3Egi9qaJXRwBh5wv-MNuRWan5BIu40oReoxWP28,3510 +pip/_vendor/urllib3/util/retry.py,sha256=Z6WEf518eTOXP5jr5QSQ9gqJI0DVYt3Xs3EKnYaTmus,22013 +pip/_vendor/urllib3/util/ssl_.py,sha256=X4-AqW91aYPhPx6-xbf66yHFQKbqqfC_5Zt4WkLX1Hc,17177 +pip/_vendor/urllib3/util/ssl_match_hostname.py,sha256=Ir4cZVEjmAk8gUAIHWSi7wtOO83UCYABY2xFD1Ql_WA,5758 +pip/_vendor/urllib3/util/ssltransport.py,sha256=NA-u5rMTrDFDFC8QzRKUEKMG0561hOD4qBTr3Z4pv6E,6895 +pip/_vendor/urllib3/util/timeout.py,sha256=cwq4dMk87mJHSBktK1miYJ-85G-3T3RmT20v7SFCpno,10168 +pip/_vendor/urllib3/util/url.py,sha256=lCAE7M5myA8EDdW0sJuyyZhVB9K_j38ljWhHAnFaWoE,14296 +pip/_vendor/urllib3/util/wait.py,sha256=fOX0_faozG2P7iVojQoE1mbydweNyTcm-hXEfFrTtLI,5403 +pip/_vendor/vendor.txt,sha256=4NKk7fQhVsZw0U-0zmm9Q2LgGyaPXacFbnJAaS0Q6EY,493 +pip/_vendor/webencodings/__init__.py,sha256=qOBJIuPy_4ByYH6W_bNgJF-qYQ2DoU-dKsDu5yRWCXg,10579 +pip/_vendor/webencodings/__pycache__/__init__.cpython-311.pyc,, +pip/_vendor/webencodings/__pycache__/labels.cpython-311.pyc,, +pip/_vendor/webencodings/__pycache__/mklabels.cpython-311.pyc,, +pip/_vendor/webencodings/__pycache__/tests.cpython-311.pyc,, +pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-311.pyc,, +pip/_vendor/webencodings/labels.py,sha256=4AO_KxTddqGtrL9ns7kAPjb0CcN6xsCIxbK37HY9r3E,8979 +pip/_vendor/webencodings/mklabels.py,sha256=GYIeywnpaLnP0GSic8LFWgd0UVvO_l1Nc6YoF-87R_4,1305 +pip/_vendor/webencodings/tests.py,sha256=OtGLyjhNY1fvkW1GvLJ_FV9ZoqC9Anyjr7q3kxTbzNs,6563 +pip/_vendor/webencodings/x_user_defined.py,sha256=yOqWSdmpytGfUgh_Z6JYgDNhoc-BAHyyeeT15Fr42tM,4307 +pip/py.typed,sha256=EBVvvPRTn_eIpz5e5QztSCdrMX7Qwd7VP93RSoIlZ2I,286 diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/REQUESTED b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/REQUESTED new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/WHEEL b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/WHEEL new file mode 100644 index 0000000000000000000000000000000000000000..98c0d20b7a64f4f998d7913e1d38a05dba20916c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/WHEEL @@ -0,0 +1,5 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.42.0) +Root-Is-Purelib: true +Tag: py3-none-any + diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/entry_points.txt b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/entry_points.txt new file mode 100644 index 0000000000000000000000000000000000000000..5367846d2a5758a86f74ddea7cbb12c1c4424f21 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/entry_points.txt @@ -0,0 +1,4 @@ +[console_scripts] +pip = pip._internal.cli.main:main +pip3 = pip._internal.cli.main:main +pip3.10 = pip._internal.cli.main:main diff --git a/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/top_level.txt b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/top_level.txt new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pip-24.0.dist-info/top_level.txt @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/pycparser/__pycache__/yacctab.cpython-311.pyc b/.venv/lib/python3.11/site-packages/pycparser/__pycache__/yacctab.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6d71a709314bb90d42ddec683f5d61ba3294c23e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/pycparser/__pycache__/yacctab.cpython-311.pyc @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79de84a92242bf37e0f61a313d231b8000212b9baec8669b1d3c0d9ff0a34f13 +size 196262 diff --git a/.venv/lib/python3.11/site-packages/torchvision.libs/libcudart.41118559.so.12 b/.venv/lib/python3.11/site-packages/torchvision.libs/libcudart.41118559.so.12 new file mode 100644 index 0000000000000000000000000000000000000000..9b5121d6c2bab36a1b404058da1e8488f2933c94 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/torchvision.libs/libcudart.41118559.so.12 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8774224f5b11a73b15d074a3fcce7327322c5c4cfdfd924d6a826779eec968fe +size 707904 diff --git a/.venv/lib/python3.11/site-packages/torchvision.libs/libjpeg.ceea7512.so.62 b/.venv/lib/python3.11/site-packages/torchvision.libs/libjpeg.ceea7512.so.62 new file mode 100644 index 0000000000000000000000000000000000000000..77c99d55bc623eba835b47acfb233cfc5abc7b65 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/torchvision.libs/libjpeg.ceea7512.so.62 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43436dd54ee4bf238f387dfba3d1321fdeb004415c807d4d3490c368bd5e5dec +size 285328 diff --git a/.venv/lib/python3.11/site-packages/torchvision.libs/libnvjpeg.02b6d700.so.12 b/.venv/lib/python3.11/site-packages/torchvision.libs/libnvjpeg.02b6d700.so.12 new file mode 100644 index 0000000000000000000000000000000000000000..522f8225f0025a36065a19eca90b4ccfc268cc1a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/torchvision.libs/libnvjpeg.02b6d700.so.12 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ed2eaa5a2cdff393bc95c543474b96117a67188bbea46ea74d12f7f83874797 +size 6722352 diff --git a/.venv/lib/python3.11/site-packages/torchvision.libs/libwebp.4a54d2c8.so.4 b/.venv/lib/python3.11/site-packages/torchvision.libs/libwebp.4a54d2c8.so.4 new file mode 100644 index 0000000000000000000000000000000000000000..fcba3219a680692dd6115fee30a5dec055481799 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/torchvision.libs/libwebp.4a54d2c8.so.4 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c26a626be26af68395846b81ff0cff460ed0744c89ec3ee50c62689a6137611 +size 320536 diff --git a/.venv/lib/python3.11/site-packages/torchvision.libs/libz.5f199d92.so.1 b/.venv/lib/python3.11/site-packages/torchvision.libs/libz.5f199d92.so.1 new file mode 100644 index 0000000000000000000000000000000000000000..64cd6a309bad00dc38040a577191f6681e18bf89 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/torchvision.libs/libz.5f199d92.so.1 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b0e682a9dc7fd4895a6783288f851b793dc89633f28714027974fa4d66f3914 +size 124744 diff --git a/.venv/lib/python3.11/site-packages/urllib3-2.3.0.dist-info/INSTALLER b/.venv/lib/python3.11/site-packages/urllib3-2.3.0.dist-info/INSTALLER new file mode 100644 index 0000000000000000000000000000000000000000..a1b589e38a32041e49332e5e81c2d363dc418d68 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/urllib3-2.3.0.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/.venv/lib/python3.11/site-packages/urllib3-2.3.0.dist-info/RECORD b/.venv/lib/python3.11/site-packages/urllib3-2.3.0.dist-info/RECORD new file mode 100644 index 0000000000000000000000000000000000000000..a37fe04ab637b29247053c6df9dcfa9babb58245 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/urllib3-2.3.0.dist-info/RECORD @@ -0,0 +1,79 @@ +urllib3-2.3.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +urllib3-2.3.0.dist-info/METADATA,sha256=quSdNDoWoaG7idKpqr1_2N52fUBfxTtifpP3sofNwAY,6488 +urllib3-2.3.0.dist-info/RECORD,, +urllib3-2.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87 +urllib3-2.3.0.dist-info/licenses/LICENSE.txt,sha256=Ew46ZNX91dCWp1JpRjSn2d8oRGnehuVzIQAmgEHj1oY,1093 +urllib3/__init__.py,sha256=JMo1tg1nIV1AeJ2vENC_Txfl0e5h6Gzl9DGVk1rWRbo,6979 +urllib3/__pycache__/__init__.cpython-311.pyc,, +urllib3/__pycache__/_base_connection.cpython-311.pyc,, +urllib3/__pycache__/_collections.cpython-311.pyc,, +urllib3/__pycache__/_request_methods.cpython-311.pyc,, +urllib3/__pycache__/_version.cpython-311.pyc,, +urllib3/__pycache__/connection.cpython-311.pyc,, +urllib3/__pycache__/connectionpool.cpython-311.pyc,, +urllib3/__pycache__/exceptions.cpython-311.pyc,, +urllib3/__pycache__/fields.cpython-311.pyc,, +urllib3/__pycache__/filepost.cpython-311.pyc,, +urllib3/__pycache__/poolmanager.cpython-311.pyc,, +urllib3/__pycache__/response.cpython-311.pyc,, +urllib3/_base_connection.py,sha256=T1cwH3RhzsrBh6Bz3AOGVDboRsE7veijqZPXXQTR2Rg,5568 +urllib3/_collections.py,sha256=tM7c6J1iKtWZYV_QGYb8-r7Nr1524Dehnsa0Ufh6_mU,17295 +urllib3/_request_methods.py,sha256=gCeF85SO_UU4WoPwYHIoz_tw-eM_EVOkLFp8OFsC7DA,9931 +urllib3/_version.py,sha256=ChsIHG8bRc-eXUbXOgv4Fm4DstSKLq9FpsTAsaMeR08,411 +urllib3/connection.py,sha256=dsVIUaPrOdATuO9OGnF5GzMhlVKlAw-2qH9FWYuic4s,39875 +urllib3/connectionpool.py,sha256=ZEhudsa8BIubD2M0XoxBBsjxbsXwMgUScH7oQ9i-j1Y,43371 +urllib3/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +urllib3/contrib/__pycache__/__init__.cpython-311.pyc,, +urllib3/contrib/__pycache__/pyopenssl.cpython-311.pyc,, +urllib3/contrib/__pycache__/socks.cpython-311.pyc,, +urllib3/contrib/emscripten/__init__.py,sha256=u6KNgzjlFZbuAAXa_ybCR7gQ71VJESnF-IIdDA73brw,733 +urllib3/contrib/emscripten/__pycache__/__init__.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/connection.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/fetch.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/request.cpython-311.pyc,, +urllib3/contrib/emscripten/__pycache__/response.cpython-311.pyc,, +urllib3/contrib/emscripten/connection.py,sha256=j8DR_flE7hsoFhNfiqHLiaPaCsVbzG44jgahwvsQ52A,8771 +urllib3/contrib/emscripten/emscripten_fetch_worker.js,sha256=CDfYF_9CDobtx2lGidyJ1zjDEvwNT5F-dchmVWXDh0E,3655 +urllib3/contrib/emscripten/fetch.py,sha256=Li6sUnFuFog0fBiahk1Y0C0tdn5fxmj4ucDofPWFiXc,22867 +urllib3/contrib/emscripten/request.py,sha256=mL28szy1KvE3NJhWor5jNmarp8gwplDU-7gwGZY5g0Q,566 +urllib3/contrib/emscripten/response.py,sha256=sc0CJCEV_3t_HTadOmvWNuO-WkYbI1YfQWnBBmaeriE,9981 +urllib3/contrib/pyopenssl.py,sha256=uMNfy0e-wT-WNrTF-4oOQ17-I3w0NPrREm1t5AC9wxg,19398 +urllib3/contrib/socks.py,sha256=-iardc61GypsJzD6W6yuRS7KVCyfowcQrl_719H7lIM,7549 +urllib3/exceptions.py,sha256=VSkjQkvw3iolMKP_ZWfiiXumAj2VCvhmz2B3W-MP4BA,9633 +urllib3/fields.py,sha256=FCf7UULSkf10cuTRUWTQESzxgl1WT8e2aCy3kfyZins,10829 +urllib3/filepost.py,sha256=U8eNZ-mpKKHhrlbHEEiTxxgK16IejhEa7uz42yqA_dI,2388 +urllib3/http2/__init__.py,sha256=xzrASH7R5ANRkPJOot5lGnATOq3KKuyXzI42rcnwmqs,1741 +urllib3/http2/__pycache__/__init__.cpython-311.pyc,, +urllib3/http2/__pycache__/connection.cpython-311.pyc,, +urllib3/http2/__pycache__/probe.cpython-311.pyc,, +urllib3/http2/connection.py,sha256=GNlp9BjI3DmfSKe1W0b9IqRBeM8Q13xd2MA3ROcJ3dY,12668 +urllib3/http2/probe.py,sha256=nnAkqbhAakOiF75rz7W0udZ38Eeh_uD8fjV74N73FEI,3014 +urllib3/poolmanager.py,sha256=2_L2AjVDgoQ0qBmYbX9u9QqyU1u5J37zQbtv_-ueZQA,22913 +urllib3/py.typed,sha256=UaCuPFa3H8UAakbt-5G8SPacldTOGvJv18pPjUJ5gDY,93 +urllib3/response.py,sha256=PBW5ZnK3kYeq0fqeUYywyASKQWK7uRzSa-HgDBzZedU,45190 +urllib3/util/__init__.py,sha256=-qeS0QceivazvBEKDNFCAI-6ACcdDOE4TMvo7SLNlAQ,1001 +urllib3/util/__pycache__/__init__.cpython-311.pyc,, +urllib3/util/__pycache__/connection.cpython-311.pyc,, +urllib3/util/__pycache__/proxy.cpython-311.pyc,, +urllib3/util/__pycache__/request.cpython-311.pyc,, +urllib3/util/__pycache__/response.cpython-311.pyc,, +urllib3/util/__pycache__/retry.cpython-311.pyc,, +urllib3/util/__pycache__/ssl_.cpython-311.pyc,, +urllib3/util/__pycache__/ssl_match_hostname.cpython-311.pyc,, +urllib3/util/__pycache__/ssltransport.cpython-311.pyc,, +urllib3/util/__pycache__/timeout.cpython-311.pyc,, +urllib3/util/__pycache__/url.cpython-311.pyc,, +urllib3/util/__pycache__/util.cpython-311.pyc,, +urllib3/util/__pycache__/wait.cpython-311.pyc,, +urllib3/util/connection.py,sha256=JjO722lzHlzLXPTkr9ZWBdhseXnMVjMSb1DJLVrXSnQ,4444 +urllib3/util/proxy.py,sha256=seP8-Q5B6bB0dMtwPj-YcZZQ30vHuLqRu-tI0JZ2fzs,1148 +urllib3/util/request.py,sha256=qSwxEsJJ-9DUfFDEAZIgQe8sgyywKY0o3faH3ixi3i8,8218 +urllib3/util/response.py,sha256=vQE639uoEhj1vpjEdxu5lNIhJCSUZkd7pqllUI0BZOA,3374 +urllib3/util/retry.py,sha256=bj-2YUqblxLlv8THg5fxww-DM54XCbjgZXIQ71XioCY,18459 +urllib3/util/ssl_.py,sha256=CcYPnFKqJDn58Us2J5AFBQLMthIVVMjb69HwvdmPgoQ,18884 +urllib3/util/ssl_match_hostname.py,sha256=gaWqixoYtQ_GKO8fcRGFj3VXeMoqyxQQuUTPgWeiL_M,5812 +urllib3/util/ssltransport.py,sha256=Ez4O8pR_vT8dan_FvqBYS6dgDfBXEMfVfrzcdUoWfi4,8847 +urllib3/util/timeout.py,sha256=4eT1FVeZZU7h7mYD1Jq2OXNe4fxekdNvhoWUkZusRpA,10346 +urllib3/util/url.py,sha256=WRh-TMYXosmgp8m8lT4H5spoHw5yUjlcMCfU53AkoAs,15205 +urllib3/util/util.py,sha256=j3lbZK1jPyiwD34T8IgJzdWEZVT-4E-0vYIJi9UjeNA,1146 +urllib3/util/wait.py,sha256=_ph8IrUR3sqPqi0OopQgJUlH4wzkGeM5CiyA7XGGtmI,4423