Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .cache/pip/http-v2/0/0/e/9/d/00e9d7b0e1cda3bfdf322be5b79cb9c4a6e6ef6159d3de3d7d3abe87 +0 -0
- .cache/pip/http-v2/0/0/e/9/d/00e9d7b0e1cda3bfdf322be5b79cb9c4a6e6ef6159d3de3d7d3abe87.body +0 -0
- .cache/pip/http-v2/0/2/d/4/2/02d4221e858694abc22129c65515f1df2c4c326330eb1a34ceb0b382 +0 -0
- .cache/pip/http-v2/0/2/f/8/e/02f8e820ca8231526982c4a2b93baef519d0948ff85c925acd226f06.body +0 -0
- .cache/pip/http-v2/0/5/8/9/6/0589682f53f4c502330bc0fa01138806ce0467c549c2af469b6afb31 +0 -0
- .cache/pip/http-v2/0/6/7/2/6/06726d442b7e33afe35f1740674b6dee72357a95eef3aca0ef7abf21 +0 -0
- .cache/pip/http-v2/0/9/a/c/f/09acf4ef8859e657a77d0079dea556ad6f8dc87031ab1c54b1a9cbfe +0 -0
- .cache/pip/http-v2/0/9/a/c/f/09acf4ef8859e657a77d0079dea556ad6f8dc87031ab1c54b1a9cbfe.body +0 -0
- .cache/pip/http-v2/0/c/2/1/8/0c218d526767991766d9b365a4f3e4449ce3579fd8b0f96a707d5a52.body +0 -0
- .cache/pip/http-v2/0/c/f/6/e/0cf6e817e2c5554000c735ecab0f3cf492f7d33b50d5a474a801ba24 +0 -0
- .cache/pip/http-v2/1/0/e/d/c/10edc2fedb88f9a82f91dc7f8666c74a4e7067dbd945b9923a040482 +0 -0
- .cache/pip/http-v2/1/2/e/6/c/12e6c0100f8dcc54f1445b9845cfdcecf519882e2fe2767cf43bd439.body +0 -0
- .cache/pip/http-v2/1/8/e/e/a/18eea207de73c88bb45229bed4bcc74fbcbddadf2aa9f49e4df1f66a.body +88 -0
- .cache/pip/http-v2/1/a/9/9/5/1a995e0685d0b5c5a3f3321cda9ebcbc376a9137828d1c100a493532.body +0 -0
- .cache/pip/http-v2/1/d/8/a/2/1d8a24cdff71edbc3f733b6b4d52640c1c1129289938aa4d1c7adcf5.body +0 -0
- .cache/pip/http-v2/2/1/c/8/b/21c8bac038994bd5727db00d02b53b7ccbc2a8ea142f49d934129bc8 +0 -0
- .cache/pip/http-v2/2/1/c/8/b/21c8bac038994bd5727db00d02b53b7ccbc2a8ea142f49d934129bc8.body +0 -0
- .cache/pip/http-v2/2/e/1/8/3/2e183ebf5293bbe308140b02c615ef7366590e4863fcd1adbcaec181 +0 -0
- .cache/pip/http-v2/2/e/1/8/3/2e183ebf5293bbe308140b02c615ef7366590e4863fcd1adbcaec181.body +0 -0
- .cache/pip/http-v2/2/e/2/d/8/2e2d841f57ca6a43dfc96af93374304dda5b757176df2cce7ca2b18d +0 -0
- .cache/pip/http-v2/2/e/2/d/8/2e2d841f57ca6a43dfc96af93374304dda5b757176df2cce7ca2b18d.body +0 -0
- .cache/pip/http-v2/2/e/a/5/8/2ea58cbd4e5eb121ff41bc95c898f06d3d9fb75f92176c76e2872a66 +0 -0
- .cache/pip/http-v2/2/e/a/5/8/2ea58cbd4e5eb121ff41bc95c898f06d3d9fb75f92176c76e2872a66.body +0 -0
- .cache/pip/http-v2/3/2/2/c/b/322cb2d2fa9c18feda7312c66e98b038ca0bb7446362e84c4a580aa3 +0 -0
- .cache/pip/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f.body +0 -0
- .cache/pip/http-v2/3/8/6/0/e/3860e4de9ae53c79d2fd61419e9049df314ccc8b640782c02c6e2e2d +0 -0
- .cache/pip/http-v2/3/8/6/0/e/3860e4de9ae53c79d2fd61419e9049df314ccc8b640782c02c6e2e2d.body +0 -0
- .cache/pip/http-v2/3/e/5/3/9/3e539fe82b1fed185245471443d02ce645e9bdc1609842fbef8a265b.body +0 -0
- .cache/pip/http-v2/3/f/0/b/5/3f0b530a5c9fab3e5025382bf4f606f0e51cb4c0cd8174857429d8fe +0 -0
- .cache/pip/http-v2/4/9/0/f/6/490f6d7cd33219a4671ccf426e5cf1fb77b4a08820a91961cb0ae903 +0 -0
- .cache/pip/http-v2/4/d/2/7/2/4d272e6453941ce8b0a37a02cdb1685fc612c33441fa74691fb40656.body +0 -0
- .cache/pip/http-v2/4/d/c/0/7/4dc07ffa7cae87ee16d69571b2c74399b5b61681aa545c7822dd5b40 +0 -0
- .cache/pip/http-v2/4/d/c/0/7/4dc07ffa7cae87ee16d69571b2c74399b5b61681aa545c7822dd5b40.body +0 -0
- .cache/pip/http-v2/4/d/f/a/e/4dfae04f17d427ebc4b6c05d97151b6b499fbc86608df73928edd551.body +0 -0
- .cache/pip/http-v2/5/6/f/9/d/56f9d9bd534016b34d1660bb01a66bb1704ef80e0f133b683da4f133 +0 -0
- .cache/pip/http-v2/5/8/d/9/8/58d9818b2a061ba2b595a1744fd86d4eb017703b38f7209903256e4e.body +297 -0
- .cache/pip/http-v2/5/a/2/6/c/5a26cc45879e115d5aabd5f6ef627d6747bf3160bca5548379570c58 +0 -0
- .cache/pip/http-v2/5/a/2/6/c/5a26cc45879e115d5aabd5f6ef627d6747bf3160bca5548379570c58.body +113 -0
- .cache/pip/http-v2/6/1/4/f/4/614f46c6d1c16fa5b0800dfd0497e41c5b320e16ee8c9d943d4dd341 +0 -0
- .cache/pip/http-v2/6/5/0/7/2/65072c35290c429df2e84cb69eba045284d50944561efa156675456a +0 -0
- .cache/pip/http-v2/6/6/b/a/b/66bab8cde451822060c031dc988659e1fe4348c71c2fbd112ca75eca +0 -0
- .cache/pip/http-v2/6/6/e/c/7/66ec76a7b6ed4081044f5c7821af293b63c17bc2ac523ff93d5ca7d5.body +0 -0
- .cache/pip/http-v2/7/1/9/e/0/719e0feaf94b669c315daed4ef76501cc929d482e4315b25fd3b0082 +0 -0
- .cache/pip/http-v2/7/1/b/9/d/71b9df22187d5c54f1147d4ac0849d1438ec19aedc20363a3478b854.body +62 -0
- .cache/pip/http-v2/7/2/2/9/f/7229fb50bdca3f16cb03ca953b540cb67fb07fb971b675db32ae3239.body +522 -0
- .cache/pip/http-v2/7/7/6/7/2/7767287c95ec4491394e4204f2ba3be9eb9e3ed9ca0ffd45d421b772 +0 -0
- .cache/pip/http-v2/7/c/4/b/8/7c4b8a19f4f69494c22868b76649cd91120de17447e4ff71fb7a7f10 +0 -0
- .cache/pip/http-v2/7/c/c/b/9/7ccb994e5cb08d1aee93acb83ae5881083c4a349402f61c9f7d304f8 +0 -0
- .cache/pip/http-v2/7/e/1/d/d/7e1dd8fd372b5a4d9dab3a30df124fb3e1f8789a9ab79f867640876a +0 -0
- .cache/pip/http-v2/8/1/1/c/d/811cdc5b0df1a4862e5588ed7d10948f806b064e30962a3f3e310c26 +0 -0
.cache/pip/http-v2/0/0/e/9/d/00e9d7b0e1cda3bfdf322be5b79cb9c4a6e6ef6159d3de3d7d3abe87
ADDED
Binary file (1.11 kB). View file
|
|
.cache/pip/http-v2/0/0/e/9/d/00e9d7b0e1cda3bfdf322be5b79cb9c4a6e6ef6159d3de3d7d3abe87.body
ADDED
Binary file (617 kB). View file
|
|
.cache/pip/http-v2/0/2/d/4/2/02d4221e858694abc22129c65515f1df2c4c326330eb1a34ceb0b382
ADDED
Binary file (1.12 kB). View file
|
|
.cache/pip/http-v2/0/2/f/8/e/02f8e820ca8231526982c4a2b93baef519d0948ff85c925acd226f06.body
ADDED
Binary file (37.1 kB). View file
|
|
.cache/pip/http-v2/0/5/8/9/6/0589682f53f4c502330bc0fa01138806ce0467c549c2af469b6afb31
ADDED
Binary file (1.15 kB). View file
|
|
.cache/pip/http-v2/0/6/7/2/6/06726d442b7e33afe35f1740674b6dee72357a95eef3aca0ef7abf21
ADDED
Binary file (1.81 kB). View file
|
|
.cache/pip/http-v2/0/9/a/c/f/09acf4ef8859e657a77d0079dea556ad6f8dc87031ab1c54b1a9cbfe
ADDED
Binary file (1.15 kB). View file
|
|
.cache/pip/http-v2/0/9/a/c/f/09acf4ef8859e657a77d0079dea556ad6f8dc87031ab1c54b1a9cbfe.body
ADDED
Binary file (342 kB). View file
|
|
.cache/pip/http-v2/0/c/2/1/8/0c218d526767991766d9b365a4f3e4449ce3579fd8b0f96a707d5a52.body
ADDED
Binary file (43.7 kB). View file
|
|
.cache/pip/http-v2/0/c/f/6/e/0cf6e817e2c5554000c735ecab0f3cf492f7d33b50d5a474a801ba24
ADDED
Binary file (1.81 kB). View file
|
|
.cache/pip/http-v2/1/0/e/d/c/10edc2fedb88f9a82f91dc7f8666c74a4e7067dbd945b9923a040482
ADDED
Binary file (1.82 kB). View file
|
|
.cache/pip/http-v2/1/2/e/6/c/12e6c0100f8dcc54f1445b9845cfdcecf519882e2fe2767cf43bd439.body
ADDED
Binary file (2.16 kB). View file
|
|
.cache/pip/http-v2/1/8/e/e/a/18eea207de73c88bb45229bed4bcc74fbcbddadf2aa9f49e4df1f66a.body
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Metadata-Version: 2.1
|
2 |
+
Name: pip
|
3 |
+
Version: 24.0
|
4 |
+
Summary: The PyPA recommended tool for installing Python packages.
|
5 |
+
Author-email: The pip developers <distutils-sig@python.org>
|
6 |
+
License: MIT
|
7 |
+
Project-URL: Homepage, https://pip.pypa.io/
|
8 |
+
Project-URL: Documentation, https://pip.pypa.io
|
9 |
+
Project-URL: Source, https://github.com/pypa/pip
|
10 |
+
Project-URL: Changelog, https://pip.pypa.io/en/stable/news/
|
11 |
+
Classifier: Development Status :: 5 - Production/Stable
|
12 |
+
Classifier: Intended Audience :: Developers
|
13 |
+
Classifier: License :: OSI Approved :: MIT License
|
14 |
+
Classifier: Topic :: Software Development :: Build Tools
|
15 |
+
Classifier: Programming Language :: Python
|
16 |
+
Classifier: Programming Language :: Python :: 3
|
17 |
+
Classifier: Programming Language :: Python :: 3 :: Only
|
18 |
+
Classifier: Programming Language :: Python :: 3.7
|
19 |
+
Classifier: Programming Language :: Python :: 3.8
|
20 |
+
Classifier: Programming Language :: Python :: 3.9
|
21 |
+
Classifier: Programming Language :: Python :: 3.10
|
22 |
+
Classifier: Programming Language :: Python :: 3.11
|
23 |
+
Classifier: Programming Language :: Python :: 3.12
|
24 |
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
25 |
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
26 |
+
Requires-Python: >=3.7
|
27 |
+
Description-Content-Type: text/x-rst
|
28 |
+
License-File: LICENSE.txt
|
29 |
+
License-File: AUTHORS.txt
|
30 |
+
|
31 |
+
pip - The Python Package Installer
|
32 |
+
==================================
|
33 |
+
|
34 |
+
.. image:: https://img.shields.io/pypi/v/pip.svg
|
35 |
+
:target: https://pypi.org/project/pip/
|
36 |
+
:alt: PyPI
|
37 |
+
|
38 |
+
.. image:: https://img.shields.io/pypi/pyversions/pip
|
39 |
+
:target: https://pypi.org/project/pip
|
40 |
+
:alt: PyPI - Python Version
|
41 |
+
|
42 |
+
.. image:: https://readthedocs.org/projects/pip/badge/?version=latest
|
43 |
+
:target: https://pip.pypa.io/en/latest
|
44 |
+
:alt: Documentation
|
45 |
+
|
46 |
+
pip is the `package installer`_ for Python. You can use pip to install packages from the `Python Package Index`_ and other indexes.
|
47 |
+
|
48 |
+
Please take a look at our documentation for how to install and use pip:
|
49 |
+
|
50 |
+
* `Installation`_
|
51 |
+
* `Usage`_
|
52 |
+
|
53 |
+
We release updates regularly, with a new version every 3 months. Find more details in our documentation:
|
54 |
+
|
55 |
+
* `Release notes`_
|
56 |
+
* `Release process`_
|
57 |
+
|
58 |
+
If you find bugs, need help, or want to talk to the developers, please use our mailing lists or chat rooms:
|
59 |
+
|
60 |
+
* `Issue tracking`_
|
61 |
+
* `Discourse channel`_
|
62 |
+
* `User IRC`_
|
63 |
+
|
64 |
+
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:
|
65 |
+
|
66 |
+
* `GitHub page`_
|
67 |
+
* `Development documentation`_
|
68 |
+
* `Development IRC`_
|
69 |
+
|
70 |
+
Code of Conduct
|
71 |
+
---------------
|
72 |
+
|
73 |
+
Everyone interacting in the pip project's codebases, issue trackers, chat
|
74 |
+
rooms, and mailing lists is expected to follow the `PSF Code of Conduct`_.
|
75 |
+
|
76 |
+
.. _package installer: https://packaging.python.org/guides/tool-recommendations/
|
77 |
+
.. _Python Package Index: https://pypi.org
|
78 |
+
.. _Installation: https://pip.pypa.io/en/stable/installation/
|
79 |
+
.. _Usage: https://pip.pypa.io/en/stable/
|
80 |
+
.. _Release notes: https://pip.pypa.io/en/stable/news.html
|
81 |
+
.. _Release process: https://pip.pypa.io/en/latest/development/release-process/
|
82 |
+
.. _GitHub page: https://github.com/pypa/pip
|
83 |
+
.. _Development documentation: https://pip.pypa.io/en/latest/development
|
84 |
+
.. _Issue tracking: https://github.com/pypa/pip/issues
|
85 |
+
.. _Discourse channel: https://discuss.python.org/c/packaging
|
86 |
+
.. _User IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa
|
87 |
+
.. _Development IRC: https://kiwiirc.com/nextclient/#ircs://irc.libera.chat:+6697/pypa-dev
|
88 |
+
.. _PSF Code of Conduct: https://github.com/pypa/.github/blob/main/CODE_OF_CONDUCT.md
|
.cache/pip/http-v2/1/a/9/9/5/1a995e0685d0b5c5a3f3321cda9ebcbc376a9137828d1c100a493532.body
ADDED
Binary file (8.9 kB). View file
|
|
.cache/pip/http-v2/1/d/8/a/2/1d8a24cdff71edbc3f733b6b4d52640c1c1129289938aa4d1c7adcf5.body
ADDED
Binary file (207 kB). View file
|
|
.cache/pip/http-v2/2/1/c/8/b/21c8bac038994bd5727db00d02b53b7ccbc2a8ea142f49d934129bc8
ADDED
Binary file (1.82 kB). View file
|
|
.cache/pip/http-v2/2/1/c/8/b/21c8bac038994bd5727db00d02b53b7ccbc2a8ea142f49d934129bc8.body
ADDED
Binary file (83.7 kB). View file
|
|
.cache/pip/http-v2/2/e/1/8/3/2e183ebf5293bbe308140b02c615ef7366590e4863fcd1adbcaec181
ADDED
Binary file (1.15 kB). View file
|
|
.cache/pip/http-v2/2/e/1/8/3/2e183ebf5293bbe308140b02c615ef7366590e4863fcd1adbcaec181.body
ADDED
Binary file (317 kB). View file
|
|
.cache/pip/http-v2/2/e/2/d/8/2e2d841f57ca6a43dfc96af93374304dda5b757176df2cce7ca2b18d
ADDED
Binary file (1.11 kB). View file
|
|
.cache/pip/http-v2/2/e/2/d/8/2e2d841f57ca6a43dfc96af93374304dda5b757176df2cce7ca2b18d.body
ADDED
Binary file (97.9 kB). View file
|
|
.cache/pip/http-v2/2/e/a/5/8/2ea58cbd4e5eb121ff41bc95c898f06d3d9fb75f92176c76e2872a66
ADDED
Binary file (1.16 kB). View file
|
|
.cache/pip/http-v2/2/e/a/5/8/2ea58cbd4e5eb121ff41bc95c898f06d3d9fb75f92176c76e2872a66.body
ADDED
Binary file (820 kB). View file
|
|
.cache/pip/http-v2/3/2/2/c/b/322cb2d2fa9c18feda7312c66e98b038ca0bb7446362e84c4a580aa3
ADDED
Binary file (1.17 kB). View file
|
|
.cache/pip/http-v2/3/3/9/7/4/33974f84394d9a943f68359da08431dab4af9f86c33962982ea21b5f.body
ADDED
Binary file (6.59 kB). View file
|
|
.cache/pip/http-v2/3/8/6/0/e/3860e4de9ae53c79d2fd61419e9049df314ccc8b640782c02c6e2e2d
ADDED
Binary file (1.81 kB). View file
|
|
.cache/pip/http-v2/3/8/6/0/e/3860e4de9ae53c79d2fd61419e9049df314ccc8b640782c02c6e2e2d.body
ADDED
Binary file (40.7 kB). View file
|
|
.cache/pip/http-v2/3/e/5/3/9/3e539fe82b1fed185245471443d02ce645e9bdc1609842fbef8a265b.body
ADDED
Binary file (783 kB). View file
|
|
.cache/pip/http-v2/3/f/0/b/5/3f0b530a5c9fab3e5025382bf4f606f0e51cb4c0cd8174857429d8fe
ADDED
Binary file (1.12 kB). View file
|
|
.cache/pip/http-v2/4/9/0/f/6/490f6d7cd33219a4671ccf426e5cf1fb77b4a08820a91961cb0ae903
ADDED
Binary file (1.81 kB). View file
|
|
.cache/pip/http-v2/4/d/2/7/2/4d272e6453941ce8b0a37a02cdb1685fc612c33441fa74691fb40656.body
ADDED
Binary file (15.5 kB). View file
|
|
.cache/pip/http-v2/4/d/c/0/7/4dc07ffa7cae87ee16d69571b2c74399b5b61681aa545c7822dd5b40
ADDED
Binary file (1.81 kB). View file
|
|
.cache/pip/http-v2/4/d/c/0/7/4dc07ffa7cae87ee16d69571b2c74399b5b61681aa545c7822dd5b40.body
ADDED
Binary file (5.11 kB). View file
|
|
.cache/pip/http-v2/4/d/f/a/e/4dfae04f17d427ebc4b6c05d97151b6b499fbc86608df73928edd551.body
ADDED
Binary file (311 kB). View file
|
|
.cache/pip/http-v2/5/6/f/9/d/56f9d9bd534016b34d1660bb01a66bb1704ef80e0f133b683da4f133
ADDED
Binary file (1.19 kB). View file
|
|
.cache/pip/http-v2/5/8/d/9/8/58d9818b2a061ba2b595a1744fd86d4eb017703b38f7209903256e4e.body
ADDED
@@ -0,0 +1,297 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Metadata-Version: 2.1
|
2 |
+
Name: GitPython
|
3 |
+
Version: 3.1.43
|
4 |
+
Summary: GitPython is a Python library used to interact with Git repositories
|
5 |
+
Home-page: https://github.com/gitpython-developers/GitPython
|
6 |
+
Author: Sebastian Thiel, Michael Trier
|
7 |
+
Author-email: byronimo@gmail.com, mtrier@gmail.com
|
8 |
+
License: BSD-3-Clause
|
9 |
+
Classifier: Development Status :: 5 - Production/Stable
|
10 |
+
Classifier: Environment :: Console
|
11 |
+
Classifier: Intended Audience :: Developers
|
12 |
+
Classifier: License :: OSI Approved :: BSD License
|
13 |
+
Classifier: Operating System :: OS Independent
|
14 |
+
Classifier: Operating System :: POSIX
|
15 |
+
Classifier: Operating System :: Microsoft :: Windows
|
16 |
+
Classifier: Operating System :: MacOS :: MacOS X
|
17 |
+
Classifier: Typing :: Typed
|
18 |
+
Classifier: Programming Language :: Python
|
19 |
+
Classifier: Programming Language :: Python :: 3
|
20 |
+
Classifier: Programming Language :: Python :: 3.7
|
21 |
+
Classifier: Programming Language :: Python :: 3.8
|
22 |
+
Classifier: Programming Language :: Python :: 3.9
|
23 |
+
Classifier: Programming Language :: Python :: 3.10
|
24 |
+
Classifier: Programming Language :: Python :: 3.11
|
25 |
+
Classifier: Programming Language :: Python :: 3.12
|
26 |
+
Requires-Python: >=3.7
|
27 |
+
Description-Content-Type: text/markdown
|
28 |
+
License-File: LICENSE
|
29 |
+
License-File: AUTHORS
|
30 |
+
Requires-Dist: gitdb <5,>=4.0.1
|
31 |
+
Requires-Dist: typing-extensions >=3.7.4.3 ; python_version < "3.8"
|
32 |
+
Provides-Extra: doc
|
33 |
+
Requires-Dist: sphinx ==4.3.2 ; extra == 'doc'
|
34 |
+
Requires-Dist: sphinx-rtd-theme ; extra == 'doc'
|
35 |
+
Requires-Dist: sphinxcontrib-applehelp <=1.0.4,>=1.0.2 ; extra == 'doc'
|
36 |
+
Requires-Dist: sphinxcontrib-devhelp ==1.0.2 ; extra == 'doc'
|
37 |
+
Requires-Dist: sphinxcontrib-htmlhelp <=2.0.1,>=2.0.0 ; extra == 'doc'
|
38 |
+
Requires-Dist: sphinxcontrib-qthelp ==1.0.3 ; extra == 'doc'
|
39 |
+
Requires-Dist: sphinxcontrib-serializinghtml ==1.1.5 ; extra == 'doc'
|
40 |
+
Requires-Dist: sphinx-autodoc-typehints ; extra == 'doc'
|
41 |
+
Provides-Extra: test
|
42 |
+
Requires-Dist: coverage[toml] ; extra == 'test'
|
43 |
+
Requires-Dist: ddt !=1.4.3,>=1.1.1 ; extra == 'test'
|
44 |
+
Requires-Dist: mypy ; extra == 'test'
|
45 |
+
Requires-Dist: pre-commit ; extra == 'test'
|
46 |
+
Requires-Dist: pytest >=7.3.1 ; extra == 'test'
|
47 |
+
Requires-Dist: pytest-cov ; extra == 'test'
|
48 |
+
Requires-Dist: pytest-instafail ; extra == 'test'
|
49 |
+
Requires-Dist: pytest-mock ; extra == 'test'
|
50 |
+
Requires-Dist: pytest-sugar ; extra == 'test'
|
51 |
+
Requires-Dist: typing-extensions ; (python_version < "3.11") and extra == 'test'
|
52 |
+
Requires-Dist: mock ; (python_version < "3.8") and extra == 'test'
|
53 |
+
|
54 |
+
![Python package](https://github.com/gitpython-developers/GitPython/workflows/Python%20package/badge.svg)
|
55 |
+
[![Documentation Status](https://readthedocs.org/projects/gitpython/badge/?version=stable)](https://readthedocs.org/projects/gitpython/?badge=stable)
|
56 |
+
[![Packaging status](https://repology.org/badge/tiny-repos/python:gitpython.svg)](https://repology.org/metapackage/python:gitpython/versions)
|
57 |
+
|
58 |
+
## [Gitoxide](https://github.com/Byron/gitoxide): A peek into the future…
|
59 |
+
|
60 |
+
I started working on GitPython in 2009, back in the days when Python was 'my thing' and I had great plans with it.
|
61 |
+
Of course, back in the days, I didn't really know what I was doing and this shows in many places. Somewhat similar to
|
62 |
+
Python this happens to be 'good enough', but at the same time is deeply flawed and broken beyond repair.
|
63 |
+
|
64 |
+
By now, GitPython is widely used and I am sure there is a good reason for that, it's something to be proud of and happy about.
|
65 |
+
The community is maintaining the software and is keeping it relevant for which I am absolutely grateful. For the time to come I am happy to continue maintaining GitPython, remaining hopeful that one day it won't be needed anymore.
|
66 |
+
|
67 |
+
More than 15 years after my first meeting with 'git' I am still in excited about it, and am happy to finally have the tools and
|
68 |
+
probably the skills to scratch that itch of mine: implement `git` in a way that makes tool creation a piece of cake for most.
|
69 |
+
|
70 |
+
If you like the idea and want to learn more, please head over to [gitoxide](https://github.com/Byron/gitoxide), an
|
71 |
+
implementation of 'git' in [Rust](https://www.rust-lang.org).
|
72 |
+
|
73 |
+
*(Please note that `gitoxide` is not currently available for use in Python, and that Rust is required.)*
|
74 |
+
|
75 |
+
## GitPython
|
76 |
+
|
77 |
+
GitPython is a python library used to interact with git repositories, high-level like git-porcelain,
|
78 |
+
or low-level like git-plumbing.
|
79 |
+
|
80 |
+
It provides abstractions of git objects for easy access of repository data often backed by calling the `git`
|
81 |
+
command-line program.
|
82 |
+
|
83 |
+
### DEVELOPMENT STATUS
|
84 |
+
|
85 |
+
This project is in **maintenance mode**, which means that
|
86 |
+
|
87 |
+
- …there will be no feature development, unless these are contributed
|
88 |
+
- …there will be no bug fixes, unless they are relevant to the safety of users, or contributed
|
89 |
+
- …issues will be responded to with waiting times of up to a month
|
90 |
+
|
91 |
+
The project is open to contributions of all kinds, as well as new maintainers.
|
92 |
+
|
93 |
+
### REQUIREMENTS
|
94 |
+
|
95 |
+
GitPython needs the `git` executable to be installed on the system and available in your
|
96 |
+
`PATH` for most operations. If it is not in your `PATH`, you can help GitPython find it
|
97 |
+
by setting the `GIT_PYTHON_GIT_EXECUTABLE=<path/to/git>` environment variable.
|
98 |
+
|
99 |
+
- Git (1.7.x or newer)
|
100 |
+
- Python >= 3.7
|
101 |
+
|
102 |
+
The list of dependencies are listed in `./requirements.txt` and `./test-requirements.txt`.
|
103 |
+
The installer takes care of installing them for you.
|
104 |
+
|
105 |
+
### INSTALL
|
106 |
+
|
107 |
+
GitPython and its required package dependencies can be installed in any of the following ways, all of which should typically be done in a [virtual environment](https://docs.python.org/3/tutorial/venv.html).
|
108 |
+
|
109 |
+
#### From PyPI
|
110 |
+
|
111 |
+
To obtain and install a copy [from PyPI](https://pypi.org/project/GitPython/), run:
|
112 |
+
|
113 |
+
```sh
|
114 |
+
pip install GitPython
|
115 |
+
```
|
116 |
+
|
117 |
+
(A distribution package can also be downloaded for manual installation at [the PyPI page](https://pypi.org/project/GitPython/).)
|
118 |
+
|
119 |
+
#### From downloaded source code
|
120 |
+
|
121 |
+
If you have downloaded the source code, run this from inside the unpacked `GitPython` directory:
|
122 |
+
|
123 |
+
```sh
|
124 |
+
pip install .
|
125 |
+
```
|
126 |
+
|
127 |
+
#### By cloning the source code repository
|
128 |
+
|
129 |
+
To clone the [the GitHub repository](https://github.com/gitpython-developers/GitPython) from source to work on the code, you can do it like so:
|
130 |
+
|
131 |
+
```sh
|
132 |
+
git clone https://github.com/gitpython-developers/GitPython
|
133 |
+
cd GitPython
|
134 |
+
./init-tests-after-clone.sh
|
135 |
+
```
|
136 |
+
|
137 |
+
On Windows, `./init-tests-after-clone.sh` can be run in a Git Bash shell.
|
138 |
+
|
139 |
+
If you are cloning [your own fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks), then replace the above `git clone` command with one that gives the URL of your fork. Or use this [`gh`](https://cli.github.com/) command (assuming you have `gh` and your fork is called `GitPython`):
|
140 |
+
|
141 |
+
```sh
|
142 |
+
gh repo clone GitPython
|
143 |
+
```
|
144 |
+
|
145 |
+
Having cloned the repo, create and activate your [virtual environment](https://docs.python.org/3/tutorial/venv.html).
|
146 |
+
|
147 |
+
Then make an [editable install](https://pip.pypa.io/en/stable/topics/local-project-installs/#editable-installs):
|
148 |
+
|
149 |
+
```sh
|
150 |
+
pip install -e ".[test]"
|
151 |
+
```
|
152 |
+
|
153 |
+
In the less common case that you do not want to install test dependencies, `pip install -e .` can be used instead.
|
154 |
+
|
155 |
+
#### With editable *dependencies* (not preferred, and rarely needed)
|
156 |
+
|
157 |
+
In rare cases, you may want to work on GitPython and one or both of its [gitdb](https://github.com/gitpython-developers/gitdb) and [smmap](https://github.com/gitpython-developers/smmap) dependencies at the same time, with changes in your local working copy of gitdb or smmap immediatley reflected in the behavior of your local working copy of GitPython. This can be done by making editable installations of those dependencies in the same virtual environment where you install GitPython.
|
158 |
+
|
159 |
+
If you want to do that *and* you want the versions in GitPython's git submodules to be used, then pass `-e git/ext/gitdb` and/or `-e git/ext/gitdb/gitdb/ext/smmap` to `pip install`. This can be done in any order, and in separate `pip install` commands or the same one, so long as `-e` appears before *each* path. For example, you can install GitPython, gitdb, and smmap editably in the currently active virtual environment this way:
|
160 |
+
|
161 |
+
```sh
|
162 |
+
pip install -e ".[test]" -e git/ext/gitdb -e git/ext/gitdb/gitdb/ext/smmap
|
163 |
+
```
|
164 |
+
|
165 |
+
The submodules must have been cloned for that to work, but that will already be the case if you have run `./init-tests-after-clone.sh`. You can use `pip list` to check which packages are installed editably and which are installed normally.
|
166 |
+
|
167 |
+
To reiterate, this approach should only rarely be used. For most development it is preferable to allow the gitdb and smmap dependencices to be retrieved automatically from PyPI in their latest stable packaged versions.
|
168 |
+
|
169 |
+
### Limitations
|
170 |
+
|
171 |
+
#### Leakage of System Resources
|
172 |
+
|
173 |
+
GitPython is not suited for long-running processes (like daemons) as it tends to
|
174 |
+
leak system resources. It was written in a time where destructors (as implemented
|
175 |
+
in the `__del__` method) still ran deterministically.
|
176 |
+
|
177 |
+
In case you still want to use it in such a context, you will want to search the
|
178 |
+
codebase for `__del__` implementations and call these yourself when you see fit.
|
179 |
+
|
180 |
+
Another way assure proper cleanup of resources is to factor out GitPython into a
|
181 |
+
separate process which can be dropped periodically.
|
182 |
+
|
183 |
+
#### Windows support
|
184 |
+
|
185 |
+
See [Issue #525](https://github.com/gitpython-developers/GitPython/issues/525).
|
186 |
+
|
187 |
+
### RUNNING TESTS
|
188 |
+
|
189 |
+
_Important_: Right after cloning this repository, please be sure to have executed
|
190 |
+
the `./init-tests-after-clone.sh` script in the repository root. Otherwise
|
191 |
+
you will encounter test failures.
|
192 |
+
|
193 |
+
#### Install test dependencies
|
194 |
+
|
195 |
+
Ensure testing libraries are installed. This is taken care of already if you installed with:
|
196 |
+
|
197 |
+
```sh
|
198 |
+
pip install -e ".[test]"
|
199 |
+
```
|
200 |
+
|
201 |
+
If you had installed with a command like `pip install -e .` instead, you can still run
|
202 |
+
the above command to add the testing dependencies.
|
203 |
+
|
204 |
+
#### Test commands
|
205 |
+
|
206 |
+
To test, run:
|
207 |
+
|
208 |
+
```sh
|
209 |
+
pytest
|
210 |
+
```
|
211 |
+
|
212 |
+
To lint, and apply some linting fixes as well as automatic code formatting, run:
|
213 |
+
|
214 |
+
```sh
|
215 |
+
pre-commit run --all-files
|
216 |
+
```
|
217 |
+
|
218 |
+
This includes the linting and autoformatting done by Ruff, as well as some other checks.
|
219 |
+
|
220 |
+
To typecheck, run:
|
221 |
+
|
222 |
+
```sh
|
223 |
+
mypy
|
224 |
+
```
|
225 |
+
|
226 |
+
#### CI (and tox)
|
227 |
+
|
228 |
+
Style and formatting checks, and running tests on all the different supported Python versions, will be performed:
|
229 |
+
|
230 |
+
- Upon submitting a pull request.
|
231 |
+
- On each push, *if* you have a fork with GitHub Actions enabled.
|
232 |
+
- Locally, if you run [`tox`](https://tox.wiki/) (this skips any Python versions you don't have installed).
|
233 |
+
|
234 |
+
#### Configuration files
|
235 |
+
|
236 |
+
Specific tools are all configured in the `./pyproject.toml` file:
|
237 |
+
|
238 |
+
- `pytest` (test runner)
|
239 |
+
- `coverage.py` (code coverage)
|
240 |
+
- `ruff` (linter and formatter)
|
241 |
+
- `mypy` (type checker)
|
242 |
+
|
243 |
+
Orchestration tools:
|
244 |
+
|
245 |
+
- Configuration for `pre-commit` is in the `./.pre-commit-config.yaml` file.
|
246 |
+
- Configuration for `tox` is in `./tox.ini`.
|
247 |
+
- Configuration for GitHub Actions (CI) is in files inside `./.github/workflows/`.
|
248 |
+
|
249 |
+
### Contributions
|
250 |
+
|
251 |
+
Please have a look at the [contributions file][contributing].
|
252 |
+
|
253 |
+
### INFRASTRUCTURE
|
254 |
+
|
255 |
+
- [User Documentation](http://gitpython.readthedocs.org)
|
256 |
+
- [Questions and Answers](http://stackexchange.com/filters/167317/gitpython)
|
257 |
+
- Please post on Stack Overflow and use the `gitpython` tag
|
258 |
+
- [Issue Tracker](https://github.com/gitpython-developers/GitPython/issues)
|
259 |
+
- Post reproducible bugs and feature requests as a new issue.
|
260 |
+
Please be sure to provide the following information if posting bugs:
|
261 |
+
- GitPython version (e.g. `import git; git.__version__`)
|
262 |
+
- Python version (e.g. `python --version`)
|
263 |
+
- The encountered stack-trace, if applicable
|
264 |
+
- Enough information to allow reproducing the issue
|
265 |
+
|
266 |
+
### How to make a new release
|
267 |
+
|
268 |
+
1. Update/verify the **version** in the `VERSION` file.
|
269 |
+
2. Update/verify that the `doc/source/changes.rst` changelog file was updated. It should include a link to the forthcoming release page: `https://github.com/gitpython-developers/GitPython/releases/tag/<version>`
|
270 |
+
3. Commit everything.
|
271 |
+
4. Run `git tag -s <version>` to tag the version in Git.
|
272 |
+
5. _Optionally_ create and activate a [virtual environment](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment). (Then the next step can install `build` and `twine`.)
|
273 |
+
6. Run `make release`.
|
274 |
+
7. Go to [GitHub Releases](https://github.com/gitpython-developers/GitPython/releases) and publish a new one with the recently pushed tag. Generate the changelog.
|
275 |
+
|
276 |
+
### Projects using GitPython
|
277 |
+
|
278 |
+
- [PyDriller](https://github.com/ishepard/pydriller)
|
279 |
+
- [Kivy Designer](https://github.com/kivy/kivy-designer)
|
280 |
+
- [Prowl](https://github.com/nettitude/Prowl)
|
281 |
+
- [Python Taint](https://github.com/python-security/pyt)
|
282 |
+
- [Buster](https://github.com/axitkhurana/buster)
|
283 |
+
- [git-ftp](https://github.com/ezyang/git-ftp)
|
284 |
+
- [Git-Pandas](https://github.com/wdm0006/git-pandas)
|
285 |
+
- [PyGitUp](https://github.com/msiemens/PyGitUp)
|
286 |
+
- [PyJFuzz](https://github.com/mseclab/PyJFuzz)
|
287 |
+
- [Loki](https://github.com/Neo23x0/Loki)
|
288 |
+
- [Omniwallet](https://github.com/OmniLayer/omniwallet)
|
289 |
+
- [GitViper](https://github.com/BeayemX/GitViper)
|
290 |
+
- [Git Gud](https://github.com/bthayer2365/git-gud)
|
291 |
+
|
292 |
+
### LICENSE
|
293 |
+
|
294 |
+
[3-Clause BSD License](https://opensource.org/license/bsd-3-clause/), also known as the New BSD License. See the [LICENSE file][license].
|
295 |
+
|
296 |
+
[contributing]: https://github.com/gitpython-developers/GitPython/blob/main/CONTRIBUTING.md
|
297 |
+
[license]: https://github.com/gitpython-developers/GitPython/blob/main/LICENSE
|
.cache/pip/http-v2/5/a/2/6/c/5a26cc45879e115d5aabd5f6ef627d6747bf3160bca5548379570c58
ADDED
Binary file (1.15 kB). View file
|
|
.cache/pip/http-v2/5/a/2/6/c/5a26cc45879e115d5aabd5f6ef627d6747bf3160bca5548379570c58.body
ADDED
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Metadata-Version: 2.1
|
2 |
+
Name: smmap
|
3 |
+
Version: 5.0.1
|
4 |
+
Summary: A pure Python implementation of a sliding window memory map manager
|
5 |
+
Home-page: https://github.com/gitpython-developers/smmap
|
6 |
+
Author: Sebastian Thiel
|
7 |
+
Author-email: byronimo@gmail.com
|
8 |
+
License: BSD
|
9 |
+
Platform: any
|
10 |
+
Classifier: Development Status :: 5 - Production/Stable
|
11 |
+
Classifier: Environment :: Console
|
12 |
+
Classifier: Intended Audience :: Developers
|
13 |
+
Classifier: License :: OSI Approved :: BSD License
|
14 |
+
Classifier: Operating System :: OS Independent
|
15 |
+
Classifier: Operating System :: POSIX
|
16 |
+
Classifier: Operating System :: Microsoft :: Windows
|
17 |
+
Classifier: Operating System :: MacOS :: MacOS X
|
18 |
+
Classifier: Programming Language :: Python
|
19 |
+
Classifier: Programming Language :: Python :: 3
|
20 |
+
Classifier: Programming Language :: Python :: 3.7
|
21 |
+
Classifier: Programming Language :: Python :: 3.8
|
22 |
+
Classifier: Programming Language :: Python :: 3.9
|
23 |
+
Classifier: Programming Language :: Python :: 3.10
|
24 |
+
Classifier: Programming Language :: Python :: 3.11
|
25 |
+
Classifier: Programming Language :: Python :: 3.12
|
26 |
+
Classifier: Programming Language :: Python :: 3 :: Only
|
27 |
+
Requires-Python: >=3.7
|
28 |
+
Description-Content-Type: text/markdown
|
29 |
+
License-File: LICENSE
|
30 |
+
|
31 |
+
## Motivation
|
32 |
+
|
33 |
+
When reading from many possibly large files in a fashion similar to random access, it is usually the fastest and most efficient to use memory maps.
|
34 |
+
|
35 |
+
Although memory maps have many advantages, they represent a very limited system resource as every map uses one file descriptor, whose amount is limited per process. On 32 bit systems, the amount of memory you can have mapped at a time is naturally limited to theoretical 4GB of memory, which may not be enough for some applications.
|
36 |
+
|
37 |
+
|
38 |
+
## Limitations
|
39 |
+
|
40 |
+
* **System resources (file-handles) are likely to be leaked!** This is due to the library authors reliance on a deterministic `__del__()` destructor.
|
41 |
+
* The memory access is read-only by design.
|
42 |
+
|
43 |
+
|
44 |
+
## Overview
|
45 |
+
|
46 |
+
![Python package](https://github.com/gitpython-developers/smmap/workflows/Python%20package/badge.svg)
|
47 |
+
|
48 |
+
Smmap wraps an interface around mmap and tracks the mapped files as well as the amount of clients who use it. If the system runs out of resources, or if a memory limit is reached, it will automatically unload unused maps to allow continued operation.
|
49 |
+
|
50 |
+
To allow processing large files even on 32 bit systems, it allows only portions of the file to be mapped. Once the user reads beyond the mapped region, smmap will automatically map the next required region, unloading unused regions using a LRU algorithm.
|
51 |
+
|
52 |
+
Although the library can be used most efficiently with its native interface, a Buffer implementation is provided to hide these details behind a simple string-like interface.
|
53 |
+
|
54 |
+
For performance critical 64 bit applications, a simplified version of memory mapping is provided which always maps the whole file, but still provides the benefit of unloading unused mappings on demand.
|
55 |
+
|
56 |
+
|
57 |
+
|
58 |
+
## Prerequisites
|
59 |
+
|
60 |
+
* Python 3.7+
|
61 |
+
* OSX, Windows or Linux
|
62 |
+
|
63 |
+
The package was tested on all of the previously mentioned configurations.
|
64 |
+
|
65 |
+
## Installing smmap
|
66 |
+
|
67 |
+
[![Documentation Status](https://readthedocs.org/projects/smmap/badge/?version=latest)](https://readthedocs.org/projects/smmap/?badge=latest)
|
68 |
+
|
69 |
+
Its easiest to install smmap using the [pip](http://www.pip-installer.org/en/latest) program:
|
70 |
+
|
71 |
+
```bash
|
72 |
+
$ pip install smmap
|
73 |
+
```
|
74 |
+
|
75 |
+
As the command will install smmap in your respective python distribution, you will most likely need root permissions to authorize the required changes.
|
76 |
+
|
77 |
+
If you have downloaded the source archive, the package can be installed by running the `setup.py` script:
|
78 |
+
|
79 |
+
```bash
|
80 |
+
$ python setup.py install
|
81 |
+
```
|
82 |
+
|
83 |
+
It is advised to have a look at the **Usage Guide** for a brief introduction on the different database implementations.
|
84 |
+
|
85 |
+
|
86 |
+
|
87 |
+
## Homepage and Links
|
88 |
+
|
89 |
+
The project is home on github at https://github.com/gitpython-developers/smmap .
|
90 |
+
|
91 |
+
The latest source can be cloned from github as well:
|
92 |
+
|
93 |
+
* git://github.com/gitpython-developers/smmap.git
|
94 |
+
|
95 |
+
|
96 |
+
For support, please use the git-python mailing list:
|
97 |
+
|
98 |
+
* http://groups.google.com/group/git-python
|
99 |
+
|
100 |
+
|
101 |
+
Issues can be filed on github:
|
102 |
+
|
103 |
+
* https://github.com/gitpython-developers/smmap/issues
|
104 |
+
|
105 |
+
A link to the pypi page related to this repository:
|
106 |
+
|
107 |
+
* https://pypi.org/project/smmap/
|
108 |
+
|
109 |
+
|
110 |
+
## License Information
|
111 |
+
|
112 |
+
*smmap* is licensed under the New BSD License.
|
113 |
+
|
.cache/pip/http-v2/6/1/4/f/4/614f46c6d1c16fa5b0800dfd0497e41c5b320e16ee8c9d943d4dd341
ADDED
Binary file (1.81 kB). View file
|
|
.cache/pip/http-v2/6/5/0/7/2/65072c35290c429df2e84cb69eba045284d50944561efa156675456a
ADDED
Binary file (1.2 kB). View file
|
|
.cache/pip/http-v2/6/6/b/a/b/66bab8cde451822060c031dc988659e1fe4348c71c2fbd112ca75eca
ADDED
Binary file (1.81 kB). View file
|
|
.cache/pip/http-v2/6/6/e/c/7/66ec76a7b6ed4081044f5c7821af293b63c17bc2ac523ff93d5ca7d5.body
ADDED
Binary file (216 kB). View file
|
|
.cache/pip/http-v2/7/1/9/e/0/719e0feaf94b669c315daed4ef76501cc929d482e4315b25fd3b0082
ADDED
Binary file (1.2 kB). View file
|
|
.cache/pip/http-v2/7/1/b/9/d/71b9df22187d5c54f1147d4ac0849d1438ec19aedc20363a3478b854.body
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Metadata-Version: 2.1
|
2 |
+
Name: docker-pycreds
|
3 |
+
Version: 0.4.0
|
4 |
+
Summary: Python bindings for the docker credentials store API
|
5 |
+
Home-page: https://github.com/shin-/dockerpy-creds
|
6 |
+
Author: UNKNOWN
|
7 |
+
Author-email: UNKNOWN
|
8 |
+
License: Apache License 2.0
|
9 |
+
Platform: UNKNOWN
|
10 |
+
Classifier: Development Status :: 4 - Beta
|
11 |
+
Classifier: Environment :: Other Environment
|
12 |
+
Classifier: Intended Audience :: Developers
|
13 |
+
Classifier: Operating System :: OS Independent
|
14 |
+
Classifier: Programming Language :: Python
|
15 |
+
Classifier: Programming Language :: Python :: 2
|
16 |
+
Classifier: Programming Language :: Python :: 2.6
|
17 |
+
Classifier: Programming Language :: Python :: 2.7
|
18 |
+
Classifier: Programming Language :: Python :: 3
|
19 |
+
Classifier: Programming Language :: Python :: 3.3
|
20 |
+
Classifier: Programming Language :: Python :: 3.4
|
21 |
+
Classifier: Programming Language :: Python :: 3.5
|
22 |
+
Classifier: Programming Language :: Python :: 3.6
|
23 |
+
Classifier: Topic :: Utilities
|
24 |
+
Classifier: License :: OSI Approved :: Apache Software License
|
25 |
+
Requires-Dist: six (>=1.4.0)
|
26 |
+
|
27 |
+
# docker-pycreds
|
28 |
+
|
29 |
+
[![CircleCI](https://circleci.com/gh/shin-/dockerpy-creds/tree/master.svg?style=svg)](https://circleci.com/gh/shin-/dockerpy-creds/tree/master)
|
30 |
+
|
31 |
+
Python bindings for the docker credentials store API
|
32 |
+
|
33 |
+
## Credentials store info
|
34 |
+
|
35 |
+
[Docker documentation page](https://docs.docker.com/engine/reference/commandline/login/#/credentials-store)
|
36 |
+
|
37 |
+
## Requirements
|
38 |
+
|
39 |
+
On top of the dependencies in `requirements.txt`, the `docker-credential`
|
40 |
+
executable for the platform must be installed on the user's system.
|
41 |
+
|
42 |
+
## API usage
|
43 |
+
|
44 |
+
```python
|
45 |
+
|
46 |
+
import dockerpycreds
|
47 |
+
|
48 |
+
store = dockerpycreds.Store('secretservice')
|
49 |
+
store.store(
|
50 |
+
server='https://index.docker.io/v1/', username='johndoe',
|
51 |
+
secret='hunter2'
|
52 |
+
)
|
53 |
+
|
54 |
+
print(store.list())
|
55 |
+
|
56 |
+
print(store.get('https://index.docker.io/v1/'))
|
57 |
+
|
58 |
+
|
59 |
+
store.erase('https://index.docker.io/v1/')
|
60 |
+
```
|
61 |
+
|
62 |
+
|
.cache/pip/http-v2/7/2/2/9/f/7229fb50bdca3f16cb03ca953b540cb67fb07fb971b675db32ae3239.body
ADDED
@@ -0,0 +1,522 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Metadata-Version: 2.1
|
2 |
+
Name: xxhash
|
3 |
+
Version: 3.5.0
|
4 |
+
Summary: Python binding for xxHash
|
5 |
+
Home-page: https://github.com/ifduyue/python-xxhash
|
6 |
+
Author: Yue Du
|
7 |
+
Author-email: ifduyue@gmail.com
|
8 |
+
License: BSD
|
9 |
+
Classifier: Development Status :: 5 - Production/Stable
|
10 |
+
Classifier: License :: OSI Approved :: BSD License
|
11 |
+
Classifier: Intended Audience :: Developers
|
12 |
+
Classifier: Programming Language :: Python
|
13 |
+
Classifier: Programming Language :: Python :: 3
|
14 |
+
Classifier: Programming Language :: Python :: 3 :: Only
|
15 |
+
Classifier: Programming Language :: Python :: 3.7
|
16 |
+
Classifier: Programming Language :: Python :: 3.8
|
17 |
+
Classifier: Programming Language :: Python :: 3.9
|
18 |
+
Classifier: Programming Language :: Python :: 3.10
|
19 |
+
Classifier: Programming Language :: Python :: 3.11
|
20 |
+
Classifier: Programming Language :: Python :: 3.12
|
21 |
+
Classifier: Programming Language :: Python :: 3.13
|
22 |
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
23 |
+
Requires-Python: >=3.7
|
24 |
+
Description-Content-Type: text/x-rst
|
25 |
+
License-File: LICENSE
|
26 |
+
|
27 |
+
python-xxhash
|
28 |
+
=============
|
29 |
+
|
30 |
+
.. image:: https://github.com/ifduyue/python-xxhash/actions/workflows/test.yml/badge.svg
|
31 |
+
:target: https://github.com/ifduyue/python-xxhash/actions/workflows/test.yml
|
32 |
+
:alt: Github Actions Status
|
33 |
+
|
34 |
+
.. image:: https://img.shields.io/pypi/v/xxhash.svg
|
35 |
+
:target: https://pypi.org/project/xxhash/
|
36 |
+
:alt: Latest Version
|
37 |
+
|
38 |
+
.. image:: https://img.shields.io/pypi/pyversions/xxhash.svg
|
39 |
+
:target: https://pypi.org/project/xxhash/
|
40 |
+
:alt: Supported Python versions
|
41 |
+
|
42 |
+
.. image:: https://img.shields.io/pypi/l/xxhash.svg
|
43 |
+
:target: https://pypi.org/project/xxhash/
|
44 |
+
:alt: License
|
45 |
+
|
46 |
+
|
47 |
+
.. _HMAC: http://en.wikipedia.org/wiki/Hash-based_message_authentication_code
|
48 |
+
.. _xxHash: https://github.com/Cyan4973/xxHash
|
49 |
+
.. _Cyan4973: https://github.com/Cyan4973
|
50 |
+
|
51 |
+
|
52 |
+
xxhash is a Python binding for the xxHash_ library by `Yann Collet`__.
|
53 |
+
|
54 |
+
__ Cyan4973_
|
55 |
+
|
56 |
+
Installation
|
57 |
+
------------
|
58 |
+
|
59 |
+
.. code-block:: bash
|
60 |
+
|
61 |
+
$ pip install xxhash
|
62 |
+
|
63 |
+
You can also install using conda:
|
64 |
+
|
65 |
+
.. code-block:: bash
|
66 |
+
|
67 |
+
$ conda install -c conda-forge python-xxhash
|
68 |
+
|
69 |
+
|
70 |
+
Installing From Source
|
71 |
+
~~~~~~~~~~~~~~~~~~~~~~~
|
72 |
+
|
73 |
+
.. code-block:: bash
|
74 |
+
|
75 |
+
$ pip install --no-binary xxhash xxhash
|
76 |
+
|
77 |
+
Prerequisites
|
78 |
+
++++++++++++++
|
79 |
+
|
80 |
+
On Debian/Ubuntu:
|
81 |
+
|
82 |
+
.. code-block:: bash
|
83 |
+
|
84 |
+
$ apt-get install python-dev gcc
|
85 |
+
|
86 |
+
On CentOS/Fedora:
|
87 |
+
|
88 |
+
.. code-block:: bash
|
89 |
+
|
90 |
+
$ yum install python-devel gcc redhat-rpm-config
|
91 |
+
|
92 |
+
Linking to libxxhash.so
|
93 |
+
~~~~~~~~~~~~~~~~~~~~~~~~
|
94 |
+
|
95 |
+
By default python-xxhash will use bundled xxHash,
|
96 |
+
we can change this by specifying ENV var ``XXHASH_LINK_SO``:
|
97 |
+
|
98 |
+
.. code-block:: bash
|
99 |
+
|
100 |
+
$ XXHASH_LINK_SO=1 pip install --no-binary xxhash xxhash
|
101 |
+
|
102 |
+
Usage
|
103 |
+
--------
|
104 |
+
|
105 |
+
Module version and its backend xxHash library version can be retrieved using
|
106 |
+
the module properties ``VERSION`` AND ``XXHASH_VERSION`` respectively.
|
107 |
+
|
108 |
+
.. code-block:: python
|
109 |
+
|
110 |
+
>>> import xxhash
|
111 |
+
>>> xxhash.VERSION
|
112 |
+
'2.0.0'
|
113 |
+
>>> xxhash.XXHASH_VERSION
|
114 |
+
'0.8.0'
|
115 |
+
|
116 |
+
This module is hashlib-compliant, which means you can use it in the same way as ``hashlib.md5``.
|
117 |
+
|
118 |
+
| update() -- update the current digest with an additional string
|
119 |
+
| digest() -- return the current digest value
|
120 |
+
| hexdigest() -- return the current digest as a string of hexadecimal digits
|
121 |
+
| intdigest() -- return the current digest as an integer
|
122 |
+
| copy() -- return a copy of the current xxhash object
|
123 |
+
| reset() -- reset state
|
124 |
+
|
125 |
+
md5 digest returns bytes, but the original xxh32 and xxh64 C APIs return integers.
|
126 |
+
While this module is made hashlib-compliant, ``intdigest()`` is also provided to
|
127 |
+
get the integer digest.
|
128 |
+
|
129 |
+
Constructors for hash algorithms provided by this module are ``xxh32()`` and ``xxh64()``.
|
130 |
+
|
131 |
+
For example, to obtain the digest of the byte string ``b'Nobody inspects the spammish repetition'``:
|
132 |
+
|
133 |
+
.. code-block:: python
|
134 |
+
|
135 |
+
>>> import xxhash
|
136 |
+
>>> x = xxhash.xxh32()
|
137 |
+
>>> x.update(b'Nobody inspects')
|
138 |
+
>>> x.update(b' the spammish repetition')
|
139 |
+
>>> x.digest()
|
140 |
+
b'\xe2);/'
|
141 |
+
>>> x.digest_size
|
142 |
+
4
|
143 |
+
>>> x.block_size
|
144 |
+
16
|
145 |
+
|
146 |
+
More condensed:
|
147 |
+
|
148 |
+
.. code-block:: python
|
149 |
+
|
150 |
+
>>> xxhash.xxh32(b'Nobody inspects the spammish repetition').hexdigest()
|
151 |
+
'e2293b2f'
|
152 |
+
>>> xxhash.xxh32(b'Nobody inspects the spammish repetition').digest() == x.digest()
|
153 |
+
True
|
154 |
+
|
155 |
+
An optional seed (default is 0) can be used to alter the result predictably:
|
156 |
+
|
157 |
+
.. code-block:: python
|
158 |
+
|
159 |
+
>>> import xxhash
|
160 |
+
>>> xxhash.xxh64('xxhash').hexdigest()
|
161 |
+
'32dd38952c4bc720'
|
162 |
+
>>> xxhash.xxh64('xxhash', seed=20141025).hexdigest()
|
163 |
+
'b559b98d844e0635'
|
164 |
+
>>> x = xxhash.xxh64(seed=20141025)
|
165 |
+
>>> x.update('xxhash')
|
166 |
+
>>> x.hexdigest()
|
167 |
+
'b559b98d844e0635'
|
168 |
+
>>> x.intdigest()
|
169 |
+
13067679811253438005
|
170 |
+
|
171 |
+
Be careful that xxh32 takes an unsigned 32-bit integer as seed, while xxh64
|
172 |
+
takes an unsigned 64-bit integer. Although unsigned integer overflow is
|
173 |
+
defined behavior, it's better not to make it happen:
|
174 |
+
|
175 |
+
.. code-block:: python
|
176 |
+
|
177 |
+
>>> xxhash.xxh32('I want an unsigned 32-bit seed!', seed=0).hexdigest()
|
178 |
+
'f7a35af8'
|
179 |
+
>>> xxhash.xxh32('I want an unsigned 32-bit seed!', seed=2**32).hexdigest()
|
180 |
+
'f7a35af8'
|
181 |
+
>>> xxhash.xxh32('I want an unsigned 32-bit seed!', seed=1).hexdigest()
|
182 |
+
'd8d4b4ba'
|
183 |
+
>>> xxhash.xxh32('I want an unsigned 32-bit seed!', seed=2**32+1).hexdigest()
|
184 |
+
'd8d4b4ba'
|
185 |
+
>>>
|
186 |
+
>>> xxhash.xxh64('I want an unsigned 64-bit seed!', seed=0).hexdigest()
|
187 |
+
'd4cb0a70a2b8c7c1'
|
188 |
+
>>> xxhash.xxh64('I want an unsigned 64-bit seed!', seed=2**64).hexdigest()
|
189 |
+
'd4cb0a70a2b8c7c1'
|
190 |
+
>>> xxhash.xxh64('I want an unsigned 64-bit seed!', seed=1).hexdigest()
|
191 |
+
'ce5087f12470d961'
|
192 |
+
>>> xxhash.xxh64('I want an unsigned 64-bit seed!', seed=2**64+1).hexdigest()
|
193 |
+
'ce5087f12470d961'
|
194 |
+
|
195 |
+
|
196 |
+
``digest()`` returns bytes of the **big-endian** representation of the integer
|
197 |
+
digest:
|
198 |
+
|
199 |
+
.. code-block:: python
|
200 |
+
|
201 |
+
>>> import xxhash
|
202 |
+
>>> h = xxhash.xxh64()
|
203 |
+
>>> h.digest()
|
204 |
+
b'\xefF\xdb7Q\xd8\xe9\x99'
|
205 |
+
>>> h.intdigest().to_bytes(8, 'big')
|
206 |
+
b'\xefF\xdb7Q\xd8\xe9\x99'
|
207 |
+
>>> h.hexdigest()
|
208 |
+
'ef46db3751d8e999'
|
209 |
+
>>> format(h.intdigest(), '016x')
|
210 |
+
'ef46db3751d8e999'
|
211 |
+
>>> h.intdigest()
|
212 |
+
17241709254077376921
|
213 |
+
>>> int(h.hexdigest(), 16)
|
214 |
+
17241709254077376921
|
215 |
+
|
216 |
+
Besides xxh32/xxh64 mentioned above, oneshot functions are also provided,
|
217 |
+
so we can avoid allocating XXH32/64 state on heap:
|
218 |
+
|
219 |
+
| xxh32_digest(bytes, seed=0)
|
220 |
+
| xxh32_intdigest(bytes, seed=0)
|
221 |
+
| xxh32_hexdigest(bytes, seed=0)
|
222 |
+
| xxh64_digest(bytes, seed=0)
|
223 |
+
| xxh64_intdigest(bytes, seed=0)
|
224 |
+
| xxh64_hexdigest(bytes, seed=0)
|
225 |
+
|
226 |
+
.. code-block:: python
|
227 |
+
|
228 |
+
>>> import xxhash
|
229 |
+
>>> xxhash.xxh64('a').digest() == xxhash.xxh64_digest('a')
|
230 |
+
True
|
231 |
+
>>> xxhash.xxh64('a').intdigest() == xxhash.xxh64_intdigest('a')
|
232 |
+
True
|
233 |
+
>>> xxhash.xxh64('a').hexdigest() == xxhash.xxh64_hexdigest('a')
|
234 |
+
True
|
235 |
+
>>> xxhash.xxh64_hexdigest('xxhash', seed=20141025)
|
236 |
+
'b559b98d844e0635'
|
237 |
+
>>> xxhash.xxh64_intdigest('xxhash', seed=20141025)
|
238 |
+
13067679811253438005L
|
239 |
+
>>> xxhash.xxh64_digest('xxhash', seed=20141025)
|
240 |
+
'\xb5Y\xb9\x8d\x84N\x065'
|
241 |
+
|
242 |
+
.. code-block:: python
|
243 |
+
|
244 |
+
In [1]: import xxhash
|
245 |
+
|
246 |
+
In [2]: %timeit xxhash.xxh64_hexdigest('xxhash')
|
247 |
+
268 ns ± 24.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
|
248 |
+
|
249 |
+
In [3]: %timeit xxhash.xxh64('xxhash').hexdigest()
|
250 |
+
416 ns ± 17.3 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
|
251 |
+
|
252 |
+
|
253 |
+
XXH3 hashes are available since v2.0.0 (xxHash v0.8.0), they are:
|
254 |
+
|
255 |
+
Streaming classes:
|
256 |
+
|
257 |
+
| xxh3_64
|
258 |
+
| xxh3_128
|
259 |
+
|
260 |
+
Oneshot functions:
|
261 |
+
|
262 |
+
| xxh3_64_digest(bytes, seed=0)
|
263 |
+
| xxh3_64_intdigest(bytes, seed=0)
|
264 |
+
| xxh3_64_hexdigest(bytes, seed=0)
|
265 |
+
| xxh3_128_digest(bytes, seed=0)
|
266 |
+
| xxh3_128_intdigest(bytes, seed=0)
|
267 |
+
| xxh3_128_hexdigest(bytes, seed=0)
|
268 |
+
|
269 |
+
And aliases:
|
270 |
+
|
271 |
+
| xxh128 = xxh3_128
|
272 |
+
| xxh128_digest = xxh3_128_digest
|
273 |
+
| xxh128_intdigest = xxh3_128_intdigest
|
274 |
+
| xxh128_hexdigest = xxh3_128_hexdigest
|
275 |
+
|
276 |
+
Caveats
|
277 |
+
-------
|
278 |
+
|
279 |
+
SEED OVERFLOW
|
280 |
+
~~~~~~~~~~~~~~
|
281 |
+
|
282 |
+
xxh32 takes an unsigned 32-bit integer as seed, and xxh64 takes
|
283 |
+
an unsigned 64-bit integer as seed. Make sure that the seed is greater than
|
284 |
+
or equal to ``0``.
|
285 |
+
|
286 |
+
ENDIANNESS
|
287 |
+
~~~~~~~~~~~
|
288 |
+
|
289 |
+
As of python-xxhash 0.3.0, ``digest()`` returns bytes of the
|
290 |
+
**big-endian** representation of the integer digest. It used
|
291 |
+
to be little-endian.
|
292 |
+
|
293 |
+
DONT USE XXHASH IN HMAC
|
294 |
+
~~~~~~~~~~~~~~~~~~~~~~~
|
295 |
+
Though you can use xxhash as an HMAC_ hash function, but it's
|
296 |
+
highly recommended not to.
|
297 |
+
|
298 |
+
xxhash is **NOT** a cryptographic hash function, it is a
|
299 |
+
non-cryptographic hash algorithm aimed at speed and quality.
|
300 |
+
Do not put xxhash in any position where cryptographic hash
|
301 |
+
functions are required.
|
302 |
+
|
303 |
+
|
304 |
+
Copyright and License
|
305 |
+
---------------------
|
306 |
+
|
307 |
+
Copyright (c) 2014-2024 Yue Du - https://github.com/ifduyue
|
308 |
+
|
309 |
+
Licensed under `BSD 2-Clause License <http://opensource.org/licenses/BSD-2-Clause>`_
|
310 |
+
|
311 |
+
CHANGELOG
|
312 |
+
-----------
|
313 |
+
|
314 |
+
v3.5.0 2024-08-17
|
315 |
+
~~~~~~~~~~~~~~~~~
|
316 |
+
|
317 |
+
- Build wheels for Python 3.13
|
318 |
+
|
319 |
+
v3.4.1 2023-10-05
|
320 |
+
~~~~~~~~~~~~~~~~~
|
321 |
+
|
322 |
+
- Build wheels for Python 3.12
|
323 |
+
- Remove setuptools_scm
|
324 |
+
|
325 |
+
v3.4.0 2023-10-05
|
326 |
+
~~~~~~~~~~~~~~~~~
|
327 |
+
|
328 |
+
*Yanked* due to wheels building problem.
|
329 |
+
|
330 |
+
v3.3.0 2023-07-29
|
331 |
+
~~~~~~~~~~~~~~~~~
|
332 |
+
|
333 |
+
- Upgrade xxHash to v0.8.2
|
334 |
+
- Drop support for Python 3.6
|
335 |
+
|
336 |
+
v3.2.0 2022-12-28
|
337 |
+
~~~~~~~~~~~~~~~~~
|
338 |
+
|
339 |
+
This is the last version to support Python 3.6
|
340 |
+
|
341 |
+
- Build Python 3.11 wheels.
|
342 |
+
- Remove setup.py test_suites, call unittest directly
|
343 |
+
|
344 |
+
v3.1.0 2022-10-19
|
345 |
+
~~~~~~~~~~~~~~~~~
|
346 |
+
|
347 |
+
- Type annotations.
|
348 |
+
- Enabled muslinux wheels building.
|
349 |
+
|
350 |
+
v3.0.0 2022-02-25
|
351 |
+
~~~~~~~~~~~~~~~~~
|
352 |
+
|
353 |
+
- New set `algorithms_available` lists all implemented algorithms in `xxhash`
|
354 |
+
package.
|
355 |
+
- Upgrade xxHash to v0.8.1.
|
356 |
+
- Drop support for EOL Python versions, require python >= 3.6 from now on.
|
357 |
+
- Migrate to github actions and build arm64 wheels for macOS.
|
358 |
+
- Always release GIL.
|
359 |
+
|
360 |
+
|
361 |
+
v2.0.2 2021-04-15
|
362 |
+
~~~~~~~~~~~~~~~~~
|
363 |
+
|
364 |
+
- Fix Travis CI OSX dpl python2.7 get-pip.py error
|
365 |
+
|
366 |
+
v2.0.1 2021-04-15
|
367 |
+
~~~~~~~~~~~~~~~~~
|
368 |
+
|
369 |
+
- Only to trigger Python 3.9 wheels building.
|
370 |
+
|
371 |
+
v2.0.0 2020-08-03
|
372 |
+
~~~~~~~~~~~~~~~~~
|
373 |
+
|
374 |
+
- **Require xxHash version >= v0.8.0**
|
375 |
+
- Upgrade xxHash to v0.8.0
|
376 |
+
- XXH3 hashes: `xxh3_64`, `xxh3_128`, and their oneshot functions
|
377 |
+
|
378 |
+
v1.4.4 2020-06-20
|
379 |
+
~~~~~~~~~~~~~~~~~
|
380 |
+
|
381 |
+
- Upgrade xxHash to v0.7.3
|
382 |
+
- Stop using PEP393 deprecated APIs
|
383 |
+
- Use XXH(32|64)_canonicalFromHash to replace u2bytes and ull2bytes
|
384 |
+
|
385 |
+
v1.4.3 2019-11-12
|
386 |
+
~~~~~~~~~~~~~~~~~
|
387 |
+
|
388 |
+
- Upgrade xxHash to v0.7.2
|
389 |
+
- Python 3.8 wheels
|
390 |
+
|
391 |
+
v1.4.2 2019-10-13
|
392 |
+
~~~~~~~~~~~~~~~~~
|
393 |
+
|
394 |
+
- Fixed: setup.py fails when reading README.rst and the default encoding is not UTF-8
|
395 |
+
|
396 |
+
v1.4.1 2019-08-27
|
397 |
+
~~~~~~~~~~~~~~~~~
|
398 |
+
|
399 |
+
- Fixed: xxh3.h in missing from source tarball
|
400 |
+
|
401 |
+
v1.4.0 2019-08-25
|
402 |
+
~~~~~~~~~~~~~~~~~
|
403 |
+
|
404 |
+
- Upgrade xxHash to v0.7.1
|
405 |
+
|
406 |
+
v1.3.0 2018-10-21
|
407 |
+
~~~~~~~~~~~~~~~~~
|
408 |
+
|
409 |
+
- Wheels are now built automatically
|
410 |
+
- Split CFFI variant into a separate package `ifduyue/python-xxhash-cffi <https://github.com/ifduyue/python-xxhash-cffi>`_
|
411 |
+
|
412 |
+
v1.2.0 2018-07-13
|
413 |
+
~~~~~~~~~~~~~~~~~
|
414 |
+
|
415 |
+
- Add oneshot functions xxh{32,64}_{,int,hex}digest
|
416 |
+
|
417 |
+
v1.1.0 2018-07-05
|
418 |
+
~~~~~~~~~~~~~~~~~
|
419 |
+
|
420 |
+
- Allow input larger than 2GB
|
421 |
+
- Release the GIL on sufficiently large input
|
422 |
+
- Drop support for Python 3.2
|
423 |
+
|
424 |
+
v1.0.1 2017-03-02
|
425 |
+
~~~~~~~~~~~~~~~~~~
|
426 |
+
|
427 |
+
- Free state actively, instead of delegating it to ffi.gc
|
428 |
+
|
429 |
+
v1.0.0 2017-02-10
|
430 |
+
~~~~~~~~~~~~~~~~~~
|
431 |
+
|
432 |
+
- Fixed copy() segfault
|
433 |
+
- Added CFFI variant
|
434 |
+
|
435 |
+
v0.6.3 2017-02-10
|
436 |
+
~~~~~~~~~~~~~~~~~~
|
437 |
+
|
438 |
+
- Fixed copy() segfault
|
439 |
+
|
440 |
+
v0.6.2 2017-02-10
|
441 |
+
~~~~~~~~~~~~~~~~~~
|
442 |
+
|
443 |
+
- Upgrade xxHash to v0.6.2
|
444 |
+
|
445 |
+
v0.6.1 2016-06-26
|
446 |
+
~~~~~~~~~~~~~~~~~~
|
447 |
+
|
448 |
+
- Upgrade xxHash to v0.6.1
|
449 |
+
|
450 |
+
v0.5.0 2016-03-02
|
451 |
+
~~~~~~~~~~~~~~~~~~
|
452 |
+
|
453 |
+
- Upgrade xxHash to v0.5.0
|
454 |
+
|
455 |
+
v0.4.3 2015-08-21
|
456 |
+
~~~~~~~~~~~~~~~~~~
|
457 |
+
|
458 |
+
- Upgrade xxHash to r42
|
459 |
+
|
460 |
+
v0.4.1 2015-08-16
|
461 |
+
~~~~~~~~~~~~~~~~~~
|
462 |
+
|
463 |
+
- Upgrade xxHash to r41
|
464 |
+
|
465 |
+
v0.4.0 2015-08-05
|
466 |
+
~~~~~~~~~~~~~~~~~~
|
467 |
+
|
468 |
+
- Added method reset
|
469 |
+
- Upgrade xxHash to r40
|
470 |
+
|
471 |
+
v0.3.2 2015-01-27
|
472 |
+
~~~~~~~~~~~~~~~~~~
|
473 |
+
|
474 |
+
- Fixed some typos in docstrings
|
475 |
+
|
476 |
+
v0.3.1 2015-01-24
|
477 |
+
~~~~~~~~~~~~~~~~~~
|
478 |
+
|
479 |
+
- Upgrade xxHash to r39
|
480 |
+
|
481 |
+
v0.3.0 2014-11-11
|
482 |
+
~~~~~~~~~~~~~~~~~~
|
483 |
+
|
484 |
+
- Change digest() from little-endian representation to big-endian representation of the integer digest.
|
485 |
+
This change breaks compatibility (digest() results are different).
|
486 |
+
|
487 |
+
v0.2.0 2014-10-25
|
488 |
+
~~~~~~~~~~~~~~~~~~
|
489 |
+
|
490 |
+
- Make this package hashlib-compliant
|
491 |
+
|
492 |
+
v0.1.3 2014-10-23
|
493 |
+
~~~~~~~~~~~~~~~~~~
|
494 |
+
|
495 |
+
- Update xxHash to r37
|
496 |
+
|
497 |
+
v0.1.2 2014-10-19
|
498 |
+
~~~~~~~~~~~~~~~~~~
|
499 |
+
|
500 |
+
- Improve: Check XXHnn_init() return value.
|
501 |
+
- Update xxHash to r36
|
502 |
+
|
503 |
+
v0.1.1 2014-08-07
|
504 |
+
~~~~~~~~~~~~~~~~~~
|
505 |
+
|
506 |
+
- Improve: Can now be built with Visual C++ Compiler.
|
507 |
+
|
508 |
+
v0.1.0 2014-08-05
|
509 |
+
~~~~~~~~~~~~~~~~~~
|
510 |
+
|
511 |
+
- New: XXH32 and XXH64 type, which support partially update.
|
512 |
+
- Fix: build under Python 3.4
|
513 |
+
|
514 |
+
v0.0.2 2014-08-03
|
515 |
+
~~~~~~~~~~~~~~~~~~
|
516 |
+
|
517 |
+
- NEW: Support Python 3
|
518 |
+
|
519 |
+
v0.0.1 2014-07-30
|
520 |
+
~~~~~~~~~~~~~~~~~~
|
521 |
+
|
522 |
+
- NEW: xxh32 and xxh64
|
.cache/pip/http-v2/7/7/6/7/2/7767287c95ec4491394e4204f2ba3be9eb9e3ed9ca0ffd45d421b772
ADDED
Binary file (1.11 kB). View file
|
|
.cache/pip/http-v2/7/c/4/b/8/7c4b8a19f4f69494c22868b76649cd91120de17447e4ff71fb7a7f10
ADDED
Binary file (1.84 kB). View file
|
|
.cache/pip/http-v2/7/c/c/b/9/7ccb994e5cb08d1aee93acb83ae5881083c4a349402f61c9f7d304f8
ADDED
Binary file (1.82 kB). View file
|
|
.cache/pip/http-v2/7/e/1/d/d/7e1dd8fd372b5a4d9dab3a30df124fb3e1f8789a9ab79f867640876a
ADDED
Binary file (1.15 kB). View file
|
|
.cache/pip/http-v2/8/1/1/c/d/811cdc5b0df1a4862e5588ed7d10948f806b064e30962a3f3e310c26
ADDED
Binary file (1.2 kB). View file
|
|