pyhash2


Namepyhash2 JSON
Version 0.9.4 PyPI version JSON
download
home_pagehttps://github.com/nnnewb/pyfasthash
SummaryA fork of Python Non-cryptographic Hash Library
upload_time2024-10-24 10:02:03
maintainerNone
docs_urlNone
authorweak_ptr
requires_pythonNone
licenseApache Software License
keywords hash hashing fasthash
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Introduction [![pypi](https://img.shields.io/pypi/v/pyhash.svg)](https://pypi.org/project/pyhash/) [![Travis CI Status](https://travis-ci.org/flier/pyfasthash.svg?branch=master)](https://travis-ci.org/flier/pyfasthash) [![codecov](https://codecov.io/gh/flier/pyfasthash/branch/master/graph/badge.svg)](https://codecov.io/gh/flier/pyfasthash)

`pyhash` is a python non-cryptographic hash library.

It provides several common hash algorithms with C/C++ implementation for performance and compatibility.

```python
>>> import pyhash
>>> hasher = pyhash.fnv1_32()

>>> hasher('hello world')
2805756500L

>>> hasher('hello', ' ', 'world')
2805756500L

>>> hasher('world', seed=hasher('hello '))
2805756500L
```

It also can be used to generate fingerprints without seed.

```python
>>> import pyhash
>>> fp = pyhash.farm_fingerprint_64()

>>> fp('hello')
>>> 13009744463427800296L

>>> fp('hello', 'world')
>>> [13009744463427800296L, 16436542438370751598L]
```

**Notes**

`hasher('hello', ' ', 'world')` is a syntax sugar for `hasher('world', seed=hasher(' ', seed=hasher('hello')))`, and may not equals to `hasher('hello world')`, because some hash algorithms use different `hash` and `seed` size.

For example, `metro` hash always use 32bit seed for 64/128 bit hash value.

```python
>>> import pyhash
>>> hasher = pyhash.metro_64()

>>> hasher('hello world')
>>> 5622782129197849471L

>>> hasher('hello', ' ', 'world')
>>> 16402988188088019159L

>>> hasher('world', seed=hasher(' ', seed=hasher('hello')))
>>> 16402988188088019159L
```

# Installation

```bash
$ pip install pyhash
```

**Notes**

If `pip` install failed with similar errors, [#27](https://github.com/flier/pyfasthash/issues/27)

```
/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h:846:1: error: inlining failed in call to always_inline 'long long unsigned int _mm_crc32_u64(long long unsigned int, long long unsigned int)': target specific option mismatch
 _mm_crc32_u64 (unsigned long long __C, unsigned long long __V)
 ^~~~~~~~~~~~~
src/smhasher/metrohash64crc.cpp:52:34: note: called from here
             v[0] ^= _mm_crc32_u64(v[0], read_u64(ptr)); ptr += 8;
                     ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
```

Please upgrade `pip` and `setuptools` to latest version and try again

```bash
$ pip install --upgrade pip setuptools
```

**Notes**

If `pip` install failed on MacOS with similar errors [#28](https://github.com/flier/pyfasthash/issues/28)

```
   creating build/temp.macosx-10.6-intel-3.6
   ...
   /usr/bin/clang -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -c src/smhasher/metrohash64crc.cpp -o build/temp.macosx-10.6-intel-3.6/src/smhasher/metrohash64crc.o -msse4.2 -maes -mavx -mavx2
    src/smhasher/metrohash64crc.cpp:52:21: error: use of undeclared identifier '_mm_crc32_u64'
                v[0] ^= _mm_crc32_u64(v[0], read_u64(ptr)); ptr += 8;
                        ^
```

You may try to

```bash
$ CFLAGS="-mmacosx-version-min=10.13" pip install pyhash
```

**Notes**

`pyhash` only support `pypy` v6.0 or newer, please [download and install](https://pypy.org/download.html) the latest `pypy`.

# Algorithms

pyhash supports the following hash algorithms

- [FNV](http://isthe.com/chongo/tech/comp/fnv/) (Fowler-Noll-Vo) hash
  - fnv1_32
  - fnv1a_32
  - fnv1_64
  - fnv1a_64
- [MurmurHash](http://code.google.com/p/smhasher/)
  - murmur1_32
  - murmur1_aligned_32
  - murmur2_32
  - murmur2a_32
  - murmur2_aligned_32
  - murmur2_neutral_32
  - murmur2_x64_64a
  - murmur2_x86_64b
  - murmur3_32
  - murmur3_x86_128
  - murmur3_x64_128
- [lookup3](http://burtleburtle.net/bob/hash/doobs.html)
  - lookup3
  - lookup3_little
  - lookup3_big
- [SuperFastHash](http://www.azillionmonkeys.com/qed/hash.html)
  - super_fast_hash
- [City Hash](https://code.google.com/p/cityhash/)
  _ city_32
  - city_64
  - city_128
  - city_crc_128
  - city_fingerprint_256
- [Spooky Hash](http://burtleburtle.net/bob/hash/spooky.html)
  - spooky_32
  - spooky_64
  - spooky_128
- [FarmHash](https://github.com/google/farmhash)
  - farm_32
  - farm_64
  - farm_128
  - farm_fingerprint_32
  - farm_fingerprint_64
  - farm_fingerprint_128
- [MetroHash](https://github.com/jandrewrogers/MetroHash)
  - metro_64
  - metro_128
  - metro_crc_64
  - metro_crc_128
- [MumHash](https://github.com/vnmakarov/mum-hash)
  - mum_64
- [T1Ha](https://github.com/leo-yuriev/t1ha)
  - t1ha2 _(64-bit little-endian)_
  - t1ha2_128 _(128-bit little-endian)_
  - t1ha1 _(64-bit native-endian)_
  - t1ha1_le _(64-bit little-endian)_
  - t1ha1_be _(64-bit big-endian)_
  - t1ha0 _(64-bit, choice fastest function in runtime.)_
  - ~~t1_32~~
  - ~~t1_32_be~~
  - ~~t1_64~~
  - ~~t1_64_be~~
- [XXHash](https://github.com/Cyan4973/xxHash)
  - xx_32
  - xx_64
  - xxh3_64 **NEW**
  - xxh3_128 **NEW**
- [Highway Hash](https://github.com/google/highwayhash)
  - highway_64 **NEW**
  - highway_128 **NEW**
  - highway_256 **NEW**

## String and Bytes literals

Python has two types can be used to present string literals, the hash values of the two types are definitely different.

- For Python 2.x [String literals](https://docs.python.org/2/reference/lexical_analysis.html#string-literals), `str` will be used by default, `unicode` can be used with the `u` prefix.
- For Python 3.x [String and Bytes literals](https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals), `unicode` will be used by default, `bytes` can be used with the `b` prefix.

For example,

```
$ python2
Python 2.7.15 (default, Jun 17 2018, 12:46:58)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyhash
>>> hasher = pyhash.murmur3_32()
>>> hasher('foo')
4138058784L
>>> hasher(u'foo')
2085578581L
>>> hasher(b'foo')
4138058784L
```

```
$ python3
Python 3.7.0 (default, Jun 29 2018, 20:13:13)
[Clang 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyhash
>>> hasher = pyhash.murmur3_32()
>>> hasher('foo')
2085578581
>>> hasher(u'foo')
2085578581
>>> hasher(b'foo')
4138058784
```

You can also import [unicode_literals](http://python-future.org/unicode_literals.html) to use unicode literals in Python 2.x

```python
from __future__ import unicode_literals
```

> In general, it is more compelling to use unicode_literals when back-porting new or existing Python 3 code to Python 2/3 than when porting existing Python 2 code to 2/3. In the latter case, explicitly marking up all unicode string literals with u'' prefixes would help to avoid unintentionally changing the existing Python 2 API. However, if changing the existing Python 2 API is not a concern, using unicode_literals may speed up the porting process.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/nnnewb/pyfasthash",
    "name": "pyhash2",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "hash hashing fasthash",
    "author": "weak_ptr",
    "author_email": "weak_ptr@outlook.com",
    "download_url": "https://files.pythonhosted.org/packages/43/4f/9af03248cfe0a979fdd8282678968636a133cd06f5916a2073c2b7b027dc/pyhash2-0.9.4.tar.gz",
    "platform": "x86",
    "description": "# Introduction [![pypi](https://img.shields.io/pypi/v/pyhash.svg)](https://pypi.org/project/pyhash/) [![Travis CI Status](https://travis-ci.org/flier/pyfasthash.svg?branch=master)](https://travis-ci.org/flier/pyfasthash) [![codecov](https://codecov.io/gh/flier/pyfasthash/branch/master/graph/badge.svg)](https://codecov.io/gh/flier/pyfasthash)\n\n`pyhash` is a python non-cryptographic hash library.\n\nIt provides several common hash algorithms with C/C++ implementation for performance and compatibility.\n\n```python\n>>> import pyhash\n>>> hasher = pyhash.fnv1_32()\n\n>>> hasher('hello world')\n2805756500L\n\n>>> hasher('hello', ' ', 'world')\n2805756500L\n\n>>> hasher('world', seed=hasher('hello '))\n2805756500L\n```\n\nIt also can be used to generate fingerprints without seed.\n\n```python\n>>> import pyhash\n>>> fp = pyhash.farm_fingerprint_64()\n\n>>> fp('hello')\n>>> 13009744463427800296L\n\n>>> fp('hello', 'world')\n>>> [13009744463427800296L, 16436542438370751598L]\n```\n\n**Notes**\n\n`hasher('hello', ' ', 'world')` is a syntax sugar for `hasher('world', seed=hasher(' ', seed=hasher('hello')))`, and may not equals to `hasher('hello world')`, because some hash algorithms use different `hash` and `seed` size.\n\nFor example, `metro` hash always use 32bit seed for 64/128 bit hash value.\n\n```python\n>>> import pyhash\n>>> hasher = pyhash.metro_64()\n\n>>> hasher('hello world')\n>>> 5622782129197849471L\n\n>>> hasher('hello', ' ', 'world')\n>>> 16402988188088019159L\n\n>>> hasher('world', seed=hasher(' ', seed=hasher('hello')))\n>>> 16402988188088019159L\n```\n\n# Installation\n\n```bash\n$ pip install pyhash\n```\n\n**Notes**\n\nIf `pip` install failed with similar errors, [#27](https://github.com/flier/pyfasthash/issues/27)\n\n```\n/usr/lib/gcc/x86_64-linux-gnu/6/include/smmintrin.h:846:1: error: inlining failed in call to always_inline 'long long unsigned int _mm_crc32_u64(long long unsigned int, long long unsigned int)': target specific option mismatch\n _mm_crc32_u64 (unsigned long long __C, unsigned long long __V)\n ^~~~~~~~~~~~~\nsrc/smhasher/metrohash64crc.cpp:52:34: note: called from here\n             v[0] ^= _mm_crc32_u64(v[0], read_u64(ptr)); ptr += 8;\n                     ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~\n```\n\nPlease upgrade `pip` and `setuptools` to latest version and try again\n\n```bash\n$ pip install --upgrade pip setuptools\n```\n\n**Notes**\n\nIf `pip` install failed on MacOS with similar errors [#28](https://github.com/flier/pyfasthash/issues/28)\n\n```\n   creating build/temp.macosx-10.6-intel-3.6\n   ...\n   /usr/bin/clang -fno-strict-aliasing -Wsign-compare -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -c src/smhasher/metrohash64crc.cpp -o build/temp.macosx-10.6-intel-3.6/src/smhasher/metrohash64crc.o -msse4.2 -maes -mavx -mavx2\n    src/smhasher/metrohash64crc.cpp:52:21: error: use of undeclared identifier '_mm_crc32_u64'\n                v[0] ^= _mm_crc32_u64(v[0], read_u64(ptr)); ptr += 8;\n                        ^\n```\n\nYou may try to\n\n```bash\n$ CFLAGS=\"-mmacosx-version-min=10.13\" pip install pyhash\n```\n\n**Notes**\n\n`pyhash` only support `pypy` v6.0 or newer, please [download and install](https://pypy.org/download.html) the latest `pypy`.\n\n# Algorithms\n\npyhash supports the following hash algorithms\n\n- [FNV](http://isthe.com/chongo/tech/comp/fnv/) (Fowler-Noll-Vo) hash\n  - fnv1_32\n  - fnv1a_32\n  - fnv1_64\n  - fnv1a_64\n- [MurmurHash](http://code.google.com/p/smhasher/)\n  - murmur1_32\n  - murmur1_aligned_32\n  - murmur2_32\n  - murmur2a_32\n  - murmur2_aligned_32\n  - murmur2_neutral_32\n  - murmur2_x64_64a\n  - murmur2_x86_64b\n  - murmur3_32\n  - murmur3_x86_128\n  - murmur3_x64_128\n- [lookup3](http://burtleburtle.net/bob/hash/doobs.html)\n  - lookup3\n  - lookup3_little\n  - lookup3_big\n- [SuperFastHash](http://www.azillionmonkeys.com/qed/hash.html)\n  - super_fast_hash\n- [City Hash](https://code.google.com/p/cityhash/)\n  _ city_32\n  - city_64\n  - city_128\n  - city_crc_128\n  - city_fingerprint_256\n- [Spooky Hash](http://burtleburtle.net/bob/hash/spooky.html)\n  - spooky_32\n  - spooky_64\n  - spooky_128\n- [FarmHash](https://github.com/google/farmhash)\n  - farm_32\n  - farm_64\n  - farm_128\n  - farm_fingerprint_32\n  - farm_fingerprint_64\n  - farm_fingerprint_128\n- [MetroHash](https://github.com/jandrewrogers/MetroHash)\n  - metro_64\n  - metro_128\n  - metro_crc_64\n  - metro_crc_128\n- [MumHash](https://github.com/vnmakarov/mum-hash)\n  - mum_64\n- [T1Ha](https://github.com/leo-yuriev/t1ha)\n  - t1ha2 _(64-bit little-endian)_\n  - t1ha2_128 _(128-bit little-endian)_\n  - t1ha1 _(64-bit native-endian)_\n  - t1ha1_le _(64-bit little-endian)_\n  - t1ha1_be _(64-bit big-endian)_\n  - t1ha0 _(64-bit, choice fastest function in runtime.)_\n  - ~~t1_32~~\n  - ~~t1_32_be~~\n  - ~~t1_64~~\n  - ~~t1_64_be~~\n- [XXHash](https://github.com/Cyan4973/xxHash)\n  - xx_32\n  - xx_64\n  - xxh3_64 **NEW**\n  - xxh3_128 **NEW**\n- [Highway Hash](https://github.com/google/highwayhash)\n  - highway_64 **NEW**\n  - highway_128 **NEW**\n  - highway_256 **NEW**\n\n## String and Bytes literals\n\nPython has two types can be used to present string literals, the hash values of the two types are definitely different.\n\n- For Python 2.x [String literals](https://docs.python.org/2/reference/lexical_analysis.html#string-literals), `str` will be used by default, `unicode` can be used with the `u` prefix.\n- For Python 3.x [String and Bytes literals](https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals), `unicode` will be used by default, `bytes` can be used with the `b` prefix.\n\nFor example,\n\n```\n$ python2\nPython 2.7.15 (default, Jun 17 2018, 12:46:58)\n[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> import pyhash\n>>> hasher = pyhash.murmur3_32()\n>>> hasher('foo')\n4138058784L\n>>> hasher(u'foo')\n2085578581L\n>>> hasher(b'foo')\n4138058784L\n```\n\n```\n$ python3\nPython 3.7.0 (default, Jun 29 2018, 20:13:13)\n[Clang 9.1.0 (clang-902.0.39.2)] on darwin\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n>>> import pyhash\n>>> hasher = pyhash.murmur3_32()\n>>> hasher('foo')\n2085578581\n>>> hasher(u'foo')\n2085578581\n>>> hasher(b'foo')\n4138058784\n```\n\nYou can also import [unicode_literals](http://python-future.org/unicode_literals.html) to use unicode literals in Python 2.x\n\n```python\nfrom __future__ import unicode_literals\n```\n\n> In general, it is more compelling to use unicode_literals when back-porting new or existing Python 3 code to Python 2/3 than when porting existing Python 2 code to 2/3. In the latter case, explicitly marking up all unicode string literals with u'' prefixes would help to avoid unintentionally changing the existing Python 2 API. However, if changing the existing Python 2 API is not a concern, using unicode_literals may speed up the porting process.\n",
    "bugtrack_url": null,
    "license": "Apache Software License",
    "summary": "A fork of Python Non-cryptographic Hash Library",
    "version": "0.9.4",
    "project_urls": {
        "Download": "https://github.com/nnnewb/pyfasthash/releases",
        "Homepage": "https://github.com/nnnewb/pyfasthash"
    },
    "split_keywords": [
        "hash",
        "hashing",
        "fasthash"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a0bbb357e987eb8686912f048e3d9f51aad1c354ec6d9c0852ad11b0c25ed805",
                "md5": "69f73da49162ed4f7d486119dd6350bb",
                "sha256": "b24d90d2e2114a7349a5aa2b8ac0ffeee73617ea18a976c049aea6c9970ecef9"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "69f73da49162ed4f7d486119dd6350bb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 260837,
            "upload_time": "2024-10-24T10:02:00",
            "upload_time_iso_8601": "2024-10-24T10:02:00.483087Z",
            "url": "https://files.pythonhosted.org/packages/a0/bb/b357e987eb8686912f048e3d9f51aad1c354ec6d9c0852ad11b0c25ed805/pyhash2-0.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6108633b528cfd1b7764844998915e8cf408854b46096b1c97535e0415f36324",
                "md5": "c36fcb5deb31fc6bd6dd69ee3f27335e",
                "sha256": "9baed6c86723b1b94b8689d8f0b071a5ff3d2b80987095b993e4c046166c7d00"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c36fcb5deb31fc6bd6dd69ee3f27335e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 234841,
            "upload_time": "2024-10-24T10:09:31",
            "upload_time_iso_8601": "2024-10-24T10:09:31.500385Z",
            "url": "https://files.pythonhosted.org/packages/61/08/633b528cfd1b7764844998915e8cf408854b46096b1c97535e0415f36324/pyhash2-0.9.4-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "74c9fa6fa87ab34abcf43c4bbf69298a5c3961d27aac36cd6cc30b4d6f3fa191",
                "md5": "6e2ab00b579532f361ee575707dca140",
                "sha256": "33ef84cefdaf2f0591bf2c82154d7b1c30300a4d432a247247cf71768f582c5a"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6e2ab00b579532f361ee575707dca140",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 262706,
            "upload_time": "2024-10-24T10:02:01",
            "upload_time_iso_8601": "2024-10-24T10:02:01.965865Z",
            "url": "https://files.pythonhosted.org/packages/74/c9/fa6fa87ab34abcf43c4bbf69298a5c3961d27aac36cd6cc30b4d6f3fa191/pyhash2-0.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b6ec13dd035ef4544e90d519116fb426dca025559fe29f5eb42239a89fb39c9e",
                "md5": "50a586d439bb776633695b9d2f742701",
                "sha256": "6ede768bf65fd57ce84582e08c09d3bcaa4d297c1e0db958c1a5fd1b09a26d96"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_38_aarch64.whl",
            "has_sig": false,
            "md5_digest": "50a586d439bb776633695b9d2f742701",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 221558,
            "upload_time": "2024-10-24T10:02:26",
            "upload_time_iso_8601": "2024-10-24T10:02:26.049161Z",
            "url": "https://files.pythonhosted.org/packages/b6/ec/13dd035ef4544e90d519116fb426dca025559fe29f5eb42239a89fb39c9e/pyhash2-0.9.4-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_38_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "24907bf5f7dcec97253bce0a881115a9a0524d38701412ec7764a1ea30a0f601",
                "md5": "6f7016c55c5308a667f2e7b332b34b02",
                "sha256": "ae89b5bfeddd1fd6c6d21b32f7a1e346829c179163c5c111f4fa610e85319877"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6f7016c55c5308a667f2e7b332b34b02",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 236099,
            "upload_time": "2024-10-24T10:09:24",
            "upload_time_iso_8601": "2024-10-24T10:09:24.556860Z",
            "url": "https://files.pythonhosted.org/packages/24/90/7bf5f7dcec97253bce0a881115a9a0524d38701412ec7764a1ea30a0f601/pyhash2-0.9.4-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6350ec3bdd6fb35edef301bc30e23b5bdaab46b05e1f2e84d7d6304fd7373e10",
                "md5": "f7140c99967670eccc445d95b5e14e8e",
                "sha256": "5ef58766ff4a542f9ede627aa62f42e16f5c7be9b7ded857898925c121f03c0e"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f7140c99967670eccc445d95b5e14e8e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 261106,
            "upload_time": "2024-10-24T10:02:07",
            "upload_time_iso_8601": "2024-10-24T10:02:07.430509Z",
            "url": "https://files.pythonhosted.org/packages/63/50/ec3bdd6fb35edef301bc30e23b5bdaab46b05e1f2e84d7d6304fd7373e10/pyhash2-0.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "30b9b0461d80ee789c54b772a3ac207f3a5a4bc5267952893789f18b90f98562",
                "md5": "c77cd0b2478a5c0d14614079d44b5813",
                "sha256": "ee8d1805a85517dea017924a3c1639b160d2d4ee257c4297570aeaa5bd0a08ec"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c77cd0b2478a5c0d14614079d44b5813",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 235820,
            "upload_time": "2024-10-24T10:09:23",
            "upload_time_iso_8601": "2024-10-24T10:09:23.042420Z",
            "url": "https://files.pythonhosted.org/packages/30/b9/b0461d80ee789c54b772a3ac207f3a5a4bc5267952893789f18b90f98562/pyhash2-0.9.4-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cbfcbacdf75c627fcdf20cad4f3e0e66c9f8707b9c4b906938117ba6b63f7381",
                "md5": "4bc2eec63cacac8edb38ef22ba507920",
                "sha256": "a8db1f3b3e03bd2a5b8872aab42c0af0272f7c5f5e898dbc0f9fed3b563debbd"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4bc2eec63cacac8edb38ef22ba507920",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 262177,
            "upload_time": "2024-10-24T10:02:01",
            "upload_time_iso_8601": "2024-10-24T10:02:01.951596Z",
            "url": "https://files.pythonhosted.org/packages/cb/fc/bacdf75c627fcdf20cad4f3e0e66c9f8707b9c4b906938117ba6b63f7381/pyhash2-0.9.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "88f294f40a6aaa8c210a0909ac1479df40b4e516056358e196ab4e65c319b25b",
                "md5": "2dd36c3d1f37b907b69b4097c61aab17",
                "sha256": "ad5286d4d53158c786cf6eb469ef7161a8d69523007b391f918573e0841f3471"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2dd36c3d1f37b907b69b4097c61aab17",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": null,
            "size": 235847,
            "upload_time": "2024-10-24T10:10:54",
            "upload_time_iso_8601": "2024-10-24T10:10:54.171519Z",
            "url": "https://files.pythonhosted.org/packages/88/f2/94f40a6aaa8c210a0909ac1479df40b4e516056358e196ab4e65c319b25b/pyhash2-0.9.4-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "df322a49dbbafa7476adfeec2082535376095bc40b7ae3aa2a4078a37808621b",
                "md5": "9722142f6744a10c9354b06fe32bd1f9",
                "sha256": "9f2ea26106ee5a58e066977b0aa5bbe6f2be3f1d1c5cb997984418e25dff132b"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9722142f6744a10c9354b06fe32bd1f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 260502,
            "upload_time": "2024-10-24T10:02:07",
            "upload_time_iso_8601": "2024-10-24T10:02:07.384179Z",
            "url": "https://files.pythonhosted.org/packages/df/32/2a49dbbafa7476adfeec2082535376095bc40b7ae3aa2a4078a37808621b/pyhash2-0.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6521c254704aa3b29e6deea75b622c7095ffb001d6075f5ee7396df02aa381de",
                "md5": "bb05f0c0f2a5fa024ea187784c63d98f",
                "sha256": "b2de5fb2c153e90201ea09d3a38ab3ca881c98e8c2ee0cdfbd46c0940813ab81"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bb05f0c0f2a5fa024ea187784c63d98f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 234864,
            "upload_time": "2024-10-24T10:09:46",
            "upload_time_iso_8601": "2024-10-24T10:09:46.648742Z",
            "url": "https://files.pythonhosted.org/packages/65/21/c254704aa3b29e6deea75b622c7095ffb001d6075f5ee7396df02aa381de/pyhash2-0.9.4-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "523370f0e20a77f234c71989ece2e5d856fa068cf8ea4bbd8a5d5e1a13a08462",
                "md5": "7837e2ff99f8aa4ce9565d91a17f1ad9",
                "sha256": "37db697cdb21d187441b633195bf5338b32bda6068e17aa08301ad956ee8c0ee"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7837e2ff99f8aa4ce9565d91a17f1ad9",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 261235,
            "upload_time": "2024-10-24T10:02:01",
            "upload_time_iso_8601": "2024-10-24T10:02:01.960766Z",
            "url": "https://files.pythonhosted.org/packages/52/33/70f0e20a77f234c71989ece2e5d856fa068cf8ea4bbd8a5d5e1a13a08462/pyhash2-0.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f75c63baea827a9eacd1c45bf4a29b16ddd2c9dc7e58126c6ace2340e792e2a1",
                "md5": "9b0b2547d23164ff5597adb284303de6",
                "sha256": "1357dfd023f69fb29acdb2f42b9dacbe7d13632046b34b45200d66e3695894fd"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9b0b2547d23164ff5597adb284303de6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 234975,
            "upload_time": "2024-10-24T10:09:48",
            "upload_time_iso_8601": "2024-10-24T10:09:48.931026Z",
            "url": "https://files.pythonhosted.org/packages/f7/5c/63baea827a9eacd1c45bf4a29b16ddd2c9dc7e58126c6ace2340e792e2a1/pyhash2-0.9.4-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "434f9af03248cfe0a979fdd8282678968636a133cd06f5916a2073c2b7b027dc",
                "md5": "21f73a38d89f35d170f3e820f4842f04",
                "sha256": "39d037c4fdf94ed737736ab2e77b4f28afe47345016cf9a128f9cdefdee42296"
            },
            "downloads": -1,
            "filename": "pyhash2-0.9.4.tar.gz",
            "has_sig": false,
            "md5_digest": "21f73a38d89f35d170f3e820f4842f04",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1364325,
            "upload_time": "2024-10-24T10:02:03",
            "upload_time_iso_8601": "2024-10-24T10:02:03.058794Z",
            "url": "https://files.pythonhosted.org/packages/43/4f/9af03248cfe0a979fdd8282678968636a133cd06f5916a2073c2b7b027dc/pyhash2-0.9.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-24 10:02:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nnnewb",
    "github_project": "pyfasthash",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "pyhash2"
}
        
Elapsed time: 0.35377s