Skip to main content

Python wrapper for Google's RE2 using Cython

Project description

Maintainer’s Note

This is an updated fork of [pyre2](https://github.com/andreasvc/pyre2). It has built wheels for newer Python versions.

All docs below are taken from the pyre2 package.

Summary

pyre2 is a Python extension that wraps Google’s RE2 regular expression library. The RE2 engine compiles (strictly) regular expressions to deterministic finite automata, which guarantees linear-time behavior.

Intended as a drop-in replacement for re. Unicode is supported by encoding to UTF-8, and bytes strings are treated as UTF-8 when the UNICODE flag is given. For best performance, work with UTF-8 encoded bytes strings.

Installation

Normal usage for Linux/Mac/Windows:

$ pip install pyre2-updated

Compiling from source

Requirements for building the C++ extension from the repo source:

  • A build environment with gcc or clang (e.g. sudo apt-get install build-essential)

  • Build tools and libraries: RE2, pybind11, and cmake installed in the build environment.

    • On Ubuntu/Debian: sudo apt-get install build-essential cmake ninja-build python3-dev cython3 pybind11-dev libre2-dev

    • On Gentoo, install dev-util/cmake, dev-python/pybind11, and dev-libs/re2

    • For a venv you can install the pybind11, cmake, and cython packages from PyPI

On MacOS, use the brew package manager:

$ brew install -s re2 pybind11

On Windows use the vcpkg package manager:

$ vcpkg install re2:x64-windows pybind11:x64-windows

You can pass some cmake environment variables to alter the build type or pass a toolchain file (the latter is required on Windows) or specify the cmake generator. For example:

$ CMAKE_GENERATOR="Unix Makefiles" CMAKE_TOOLCHAIN_FILE=clang_toolchain.cmake tox -e deploy

For development, get the source:

$ git clone git://github.com/tyteen4a03/pyre2.git
$ cd pyre2
$ make install

Platform-agnostic building with conda

An alternative to the above is provided via the conda recipe (use the miniconda installer if you don’t have conda installed already).

Backwards Compatibility

The stated goal of this module is to be a drop-in replacement for re, i.e.:

try:
    import re2 as re
except ImportError:
    import re

That being said, there are features of the re module that this module may never have; these will be handled through fallback to the original re module:

  • lookahead assertions (?!...)

  • backreferences, e.g., \\1 in search pattern

  • possessive quantifiers *+, ++, ?+, {m,n}+

  • atomic groups (?>...)

  • \W and \S not supported inside character classes

On the other hand, unicode character classes are supported (e.g., \p{Greek}). Syntax reference: https://github.com/google/re2/wiki/Syntax

However, there are times when you may want to be notified of a failover. The function set_fallback_notification determines the behavior in these cases:

try:
    import re2 as re
except ImportError:
    import re
else:
    re.set_fallback_notification(re.FALLBACK_WARNING)

set_fallback_notification takes three values: re.FALLBACK_QUIETLY (default), re.FALLBACK_WARNING (raise a warning), and re.FALLBACK_EXCEPTION (raise an exception).

Documentation

Consult the docstrings in the source code or interactively through ipython or pydoc re2 etc.

Unicode Support

Python bytes and unicode strings are fully supported, but note that RE2 works with UTF-8 encoded strings under the hood, which means that unicode strings need to be encoded and decoded back and forth. There are two important factors:

  • whether a unicode pattern and search string is used (will be encoded to UTF-8 internally)

  • the UNICODE flag: whether operators such as \w recognize Unicode characters.

To avoid the overhead of encoding and decoding to UTF-8, it is possible to pass UTF-8 encoded bytes strings directly but still treat them as unicode:

In [18]: re2.findall(u'\w'.encode('utf8'), u'Mötley Crüe'.encode('utf8'), flags=re2.UNICODE)
Out[18]: ['M', '\xc3\xb6', 't', 'l', 'e', 'y', 'C', 'r', '\xc3\xbc', 'e']
In [19]: re2.findall(u'\w'.encode('utf8'), u'Mötley Crüe'.encode('utf8'))
Out[19]: ['M', 't', 'l', 'e', 'y', 'C', 'r', 'e']

However, note that the indices in Match objects will refer to the bytes string. The indices of the match in the unicode string could be computed by decoding/encoding, but this is done automatically and more efficiently if you pass the unicode string:

>>> re2.search(u'ü'.encode('utf8'), u'Mötley Crüe'.encode('utf8'), flags=re2.UNICODE)
<re2.Match object; span=(10, 12), match='\xc3\xbc'>
>>> re2.search(u'ü', u'Mötley Crüe', flags=re2.UNICODE)
<re2.Match object; span=(9, 10), match=u'\xfc'>

Finally, if you want to match bytes without regard for Unicode characters, pass bytes strings and leave out the UNICODE flag (this will cause Latin 1 encoding to be used with RE2 under the hood):

>>> re2.findall(br'.', b'\x80\x81\x82')
['\x80', '\x81', '\x82']

Performance

Performance is of course the point of this module, so it better perform well. Regular expressions vary widely in complexity, and the salient feature of RE2 is that it behaves well asymptotically. This being said, for very simple substitutions, I’ve found that occasionally python’s regular re module is actually slightly faster. However, when the re module gets slow, it gets really slow, while this module buzzes along.

In the below example, I’m running the data against 8MB of text from the colossal Wikipedia XML file. I’m running them multiple times, being careful to use the timeit module. To see more details, please see the performance script.

Test

Description

# total runs

re time(s)

re2 time(s)

% re time

regex time(s)

% regex time

Findall URI|Email

Find list of ‘([a-zA-Z][a-zA-Z0-9]*)://([^ /]+)(/[^ ]*)?|([^ @]+)@([^ @]+)’

2

6.262

0.131

2.08%

5.119

2.55%

Replace WikiLinks

This test replaces links of the form [[Obama|Barack_Obama]] to Obama.

100

4.374

0.815

18.63%

1.176

69.33%

Remove WikiLinks

This test splits the data by the <page> tag.

100

4.153

0.225

5.43%

0.537

42.01%

Feel free to add more speed tests to the bottom of the script and send a pull request my way!

Current Status

The tests show the following differences with Python’s re module:

  • The $ operator in Python’s re matches twice if the string ends with \n. This can be simulated using \n?$, except when doing substitutions.

  • The pyre2 module and Python’s re may behave differently with nested groups. See tests/test_emptygroups.txt for the examples.

Please report any further issues with pyre2.

Tests

If you would like to help, one thing that would be very useful is writing comprehensive tests for this. It’s actually really easy:

  • Come up with regular expression problems using the regular python ‘re’ module.

  • Write a session in python traceback format Example.

  • Replace your import re with import re2 as re.

  • Save it with as test_<name>.txt in the tests directory. You can comment on it however you like and indent the code with 4 spaces.

Credits

This code builds on the following projects (in chronological order):

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyre2_updated-0.3.9.post1.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyre2_updated-0.3.9.post1-cp313-cp313-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

pyre2_updated-0.3.9.post1-cp313-cp313-win32.whl (1.5 MB view details)

Uploaded CPython 3.13Windows x86

pyre2_updated-0.3.9.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pyre2_updated-0.3.9.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

pyre2_updated-0.3.9.post1-cp313-cp313-macosx_14_0_arm64.whl (771.1 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

pyre2_updated-0.3.9.post1-cp313-cp313-macosx_13_0_x86_64.whl (783.9 kB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

pyre2_updated-0.3.9.post1-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

pyre2_updated-0.3.9.post1-cp312-cp312-win32.whl (1.5 MB view details)

Uploaded CPython 3.12Windows x86

pyre2_updated-0.3.9.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pyre2_updated-0.3.9.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pyre2_updated-0.3.9.post1-cp312-cp312-macosx_14_0_arm64.whl (772.6 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pyre2_updated-0.3.9.post1-cp312-cp312-macosx_13_0_x86_64.whl (784.8 kB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

pyre2_updated-0.3.9.post1-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

pyre2_updated-0.3.9.post1-cp311-cp311-win32.whl (1.5 MB view details)

Uploaded CPython 3.11Windows x86

pyre2_updated-0.3.9.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyre2_updated-0.3.9.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pyre2_updated-0.3.9.post1-cp311-cp311-macosx_14_0_arm64.whl (776.8 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pyre2_updated-0.3.9.post1-cp311-cp311-macosx_13_0_x86_64.whl (788.5 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

pyre2_updated-0.3.9.post1-cp310-cp310-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pyre2_updated-0.3.9.post1-cp310-cp310-win32.whl (1.5 MB view details)

Uploaded CPython 3.10Windows x86

pyre2_updated-0.3.9.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyre2_updated-0.3.9.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (988.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pyre2_updated-0.3.9.post1-cp310-cp310-macosx_14_0_arm64.whl (775.2 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

pyre2_updated-0.3.9.post1-cp310-cp310-macosx_13_0_x86_64.whl (786.9 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

pyre2_updated-0.3.9.post1-cp39-cp39-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.9Windows x86-64

pyre2_updated-0.3.9.post1-cp39-cp39-win32.whl (1.5 MB view details)

Uploaded CPython 3.9Windows x86

pyre2_updated-0.3.9.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyre2_updated-0.3.9.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (989.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pyre2_updated-0.3.9.post1-cp39-cp39-macosx_14_0_arm64.whl (775.2 kB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

pyre2_updated-0.3.9.post1-cp39-cp39-macosx_13_0_x86_64.whl (787.1 kB view details)

Uploaded CPython 3.9macOS 13.0+ x86-64

File details

Details for the file pyre2_updated-0.3.9.post1.tar.gz.

File metadata

  • Download URL: pyre2_updated-0.3.9.post1.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyre2_updated-0.3.9.post1.tar.gz
Algorithm Hash digest
SHA256 02fb67dbaeb3274b123b58e2d49cc7a477dca56c6e6aefdac180cd1ed0282f9e
MD5 a3187da13ba81cd67d5558628542b71a
BLAKE2b-256 e0c8fe8084e525949f2d784a9b48067346fa2afba07885e2eec0b926680240c6

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d1eb084e27273650d870c17c457a38927ea5106ea8cd01a74c8230e4e73eb3ec
MD5 cd4721b0d2894aba4ea046f0ca78af5e
BLAKE2b-256 61dadf4c3e2e9f5ebc4246a81c486a52d3945a4a531a98522fcf26bc39852fde

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 5532899cb52b2fb453f5cfcda3e4aa0832a7a40c9d075ff52e4b84ffc393d96f
MD5 c13926c43cd7754f2d43157a8647a4b9
BLAKE2b-256 0cfa779370b7c0df75266a5abfe1900341e203a4cbddaccc25137edb05506e2f

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a419e12e5ea022fdf7544f7c521352b51087c7d055ba1038ec8ac601f6348227
MD5 4b9ec243abb847408dda2a7e885ae160
BLAKE2b-256 64861fb033c93e43dbfd76dee75eecb32193ba1cac5865244b8d21e05b7f44c2

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dfee37b107893171c8faa9998ccc802f4585e771c981a28a0d9aaeffe7796301
MD5 76f98975f1a19febbcd37db315389efd
BLAKE2b-256 647c6a7fa1cacc1f828c3472951155a7ea8afcec982387d56c9e5c98014a3778

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c43b5bf8e41c9b858205fa03f013bac91956ad4ba4df4ad8fa083fab099d0f54
MD5 c68f1704dbe1a3a83b07fd9bd94dd285
BLAKE2b-256 0a5aa460fc3d1ba7c014295a83cf52ac3079f5709bd36e02dc5c3bac33e769e1

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 cd1032b5cc3b48922fa3756160f6b0e969b6da85a5982f02faabf8578a20843c
MD5 27c266f78bee417f5995acdfb9d44715
BLAKE2b-256 870997349cb9379a8f71358dcfcd44abec626aa9100c8ca41c1b8f2329c76bd4

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f42e12e228c17142db79c93cc9db46dc0489ac088a4465fcabed6663a3bff27d
MD5 bb1122a11e4c50fe9557775aba9dcff5
BLAKE2b-256 0b2d69b5de222989840ea260c87e82109527016a56b0831ab78fa5db7dd2875b

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 dccc789cfbf6c84d7cd01d552039213cad88799f5797a0691f4fd3b9cb63ecb5
MD5 b98bfa7207660344e3ed41eaa0a389d8
BLAKE2b-256 9b2bb4ee5c64d26f1a8a546b6ceb00ab18e8973b99f813adfa6464a21f285da0

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d6057d6029d8584f3599f1e218fd099e331a033da5c2bed9e0f22a371c2647a
MD5 97ac520c0d4fead684543921e341cd65
BLAKE2b-256 db49f98f7ef4ca2d22cfc2b0d84e5e58e117c018c8eec17f9c4283df1c8fc6c7

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ca9b6c471dd332107919b9319ad1a6bb3f2a08f1cad6755913b3174c99d19059
MD5 8f3ad38674fec6702e2cfa8b4326789f
BLAKE2b-256 b1efe66f4f0f55406c26d1c4cc5da8fa2aca53461fdde9de24fb775f286363d8

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5ca7c7a2436c2266d831fd94b70a54db0b0ab8f41b0a241afe771f3f97c3e132
MD5 33e4119a99e87aea25080b1c6fa7fca5
BLAKE2b-256 2646545e834c2e7c70d3bdc8b2195fef95e193b99a72274b1e61918dfb186031

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 240edc72302ad61a8b1ecd384284e14f8fa45004b207059948c95ce00b52c955
MD5 1123bef1b3e8999c3f6ac8fe15622223
BLAKE2b-256 348530e084a196b9f4b573a9ef8979a1dfb193f683501c92f2bd188051e0f911

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5d3e3f0f112176d2e67c5a2d516e8d27a75d76abce9bb83cb597b54b5b7f5c7a
MD5 10946aeeac959bcee795b45107fd8758
BLAKE2b-256 4e9d354a801bc6dbf95c4979eb257bcac71ccc57cd7d28061465f1a619681190

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f21f77313d1c320d28830258b94655264be6bea5db0e2c0cf8769eb95240caff
MD5 43b18acff962631e9cfe141bc6c1dc62
BLAKE2b-256 bdb7b151a7610b828968d878796e415f70b2176e0e6489ca3c68b6b47e67f036

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0228a7789bc77d20ce1e285f0e9283cf8fa63c0d3b8e46a4444a05d35626311b
MD5 0c5c45c18c30c5ce127ac73864b48bed
BLAKE2b-256 77fc7d2a1d7526ece9f132cdb0e527343a7dc1c794d6173b6cfc98d26e959125

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 99f674defce4fb98a8ffc4663d283fc8319b0b586a572ae86f1d4c876fc7d6e3
MD5 842e81b81861ef2e2c3fb4b5bc2a3e55
BLAKE2b-256 2c3064b893a30c9c75f5da4d79a6105856052fbefae6d8114d32264c91349d2c

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7963790361a5d93640b90413dd3ca23896640b4ff62c7037706a377b7c0f762a
MD5 d7ec4b0e921296b7ac16e341bf775216
BLAKE2b-256 d2d79b71fb4a3e632bbc53eb8ac26cf46688179880d5e31bb3e57eff8e07e365

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e5530561f228a86d9b428ab3f29e60f23fe6c36d3ace3063b4dedf02fc2d0e58
MD5 d2a29bcf7c169970d0360d559eca4a75
BLAKE2b-256 c344e4e39b038c970eb8c79b6f658207d6fd0ab0d464decbaa1b5fffdd787bc5

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c708a894b0ee368e38b50230e9571791bc214a21d58c6098f35b83fbfaf12d5d
MD5 1aeff42e7d7aaa4732bc86fbb34a4d3c
BLAKE2b-256 201878100a34198a6d3401d425c022fbeea1eac4f88a4ef505df0d8acec416c1

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 4e3a5b6f2796458197dd04e521127d5e756c9cbb8e647645be882a3e62a7aada
MD5 35ba229efccd0c642223337577f5d774
BLAKE2b-256 caff3b91f72c29efedf0f95b52389ea37cc54f7fa6766e0e95e33f59edc45830

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8fa6997e3862ce278ee464c1f3aec63f28f90d02aef0a324e8d5e2116b1390ab
MD5 fa4ab365e00d1e9961e96c83ea5ccbac
BLAKE2b-256 5c728ade72c54eb24f4b0b6847d6b2f6a9ebe4d67dcc07375ebf92d5472f00bd

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 48fec5d1907aeb45b3f9ae57af1ec70bdcb5c5f92317b9deccb027408ccd8be3
MD5 b7fdff8882562c3ed99d4960e4b103d0
BLAKE2b-256 3854fe695204e0b4e5e44d7069cb0cc9ffd2c5f121674b91d2e5d04ceea8ccbd

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6d52edfe132f09ed0e9f769c339fbfb23e7a4de24586a981c939f3dcca443d82
MD5 e1ef7abdfa532fb5625934123625cc2d
BLAKE2b-256 dd8f53a6a6c933f13b15a521d7d282d594c535b635ac99a27fba0871b8d06224

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 c556203b01832e94964be389ec263bfce9f66c6d5497f0dbcd419aa59983efe7
MD5 736ab0d7b0a620ee3d78ea764a2d9416
BLAKE2b-256 629ca786ddd9489c43df4ddae18d2749cda337a9121066633047232ca883e6cc

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 de16b1fce51ded3d11a1058730520d22eedc4cf0cd0e0b369916bfa97622b6ae
MD5 92419a50be73d7fe5c04bca054aca109
BLAKE2b-256 6ff3fcc83d8255879652bf4a7bdb9fb8abe906f5ba856a2e455b8c580a9c9e7a

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a3251a9b8b33f87dc1c191d23877cb1221c043590262a193c62fb939ac78d9f5
MD5 2cd3d8ff75f951da9fb008ecf73c7be4
BLAKE2b-256 347db58a9f8a7d9222fb439d446b126907173e0a1da9ee130e8d08f9fbb825cc

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ba9a5385bfc8006e9b76372cbf66d16af97a8295c663e64ea84de5c179b795e
MD5 aad23b1227b5d52c76de1f5bcc003098
BLAKE2b-256 f79984f705f6dd09b468366c6e0accfbbb4a2aa50cb9160ee94043c7a91fd47b

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c00f5a1bcd5e41879432178b95452777a25c5f0a9fb460aa158477a747d4952b
MD5 5fd7de7f89cbac25379de13e47bfe0e4
BLAKE2b-256 ad20f7a0e607fc25eddf9024ab547b85e81f592bd742352a3534f0c09f7abb43

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3e6cf1765b98fd61bac00ee1c49a9f3b5629efc6ab4d7c792be854227ce26969
MD5 fcb0ecf5a6d490e1bf0b4bb7aa39ac29
BLAKE2b-256 6ed2e86ffc2671e1d8e62a5af634bfa98bc92bf6e01aab8c8c3d29ae58270d29

See more details on using hashes here.

File details

Details for the file pyre2_updated-0.3.9.post1-cp39-cp39-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pyre2_updated-0.3.9.post1-cp39-cp39-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0a358797af769450d061784f128b4f68e29e106ffade572808b07cb96e351598
MD5 3265f37363d1d538f9415bc49cdb8ad3
BLAKE2b-256 cc481b2fdb4093652b3cf32c69aa95a4c653b5c3bf6cf5b195e4ed06e89f4ca8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page