Skip to main content

A fast and simple NER tool

Project description

Quickner ⚡

A simple, fast, and easy to use NER annotator for Python

PyPI version License PyPI - Downloads Build Status

Showcase

Quickner is a new tool to quickly annotate texts for NER (Named Entity Recognition). It is written in Rust and accessible through a Python API.

Quickner is blazing fast, simple to use, and easy to configure using a TOML file.

Installation

# Create a virtual environment
python3 -m venv env
source env/bin/activate

# Install quickner
pip install quickner # or pip3 install quickner

Usage

Using the config file

from quickner import Quickner, Config

config = Config(path="config.toml") # or Config() if the config file is in the current directory

# Initialize the annotator
quick = Quickner(config=config)

# Annotate the texts using the config file
quick.process() # or annotator.process(True) to save the annotated data to a file

Using Documents

from quickner import Quickner, Document

# Create documents
rust = Document("rust is made by Mozilla")
python = Document("Python was created by Guido van Rossum")
java = Document("Java was created by James Gosling")

# Documents can be added to a list
documents = [rust, python, java]

# Initialize the annotator

quick = Quickner(documents=documents)
quick
>>> Entities: 0 | Documents: 3 | Annotations:
>>> quick.documents
[Document(id="87e03d58b1ba4d72", text=rust is made by Mozilla, label=[]), Document(id="f1da5d23ef88f3dc", text=Python was created by Guido van Rossum, label=[]), Document(id="e4324f9818e7e598", text=Java was created by James Gosling, label=[])]
>>> quick.entities
[]

Using Documents and Entities

from quickner import Quickner, Document, Entity

# Create documents from texts
texts = (
  "rust is made by Mozilla",
  "Python was created by Guido van Rossum",
  "Java was created by James Gosling at Sun Microsystems",
  "Swift was created by Chris Lattner and Apple",
)
documents = [Document(text) for text in texts]

# Create entities
entities = (
  ("Rust", "PL"),
  ("Python", "PL"),
  ("Java", "PL"),
  ("Swift", "PL"),
  ("Mozilla", "ORG"),
  ("Apple", "ORG"),
  ("Sun Microsystems", "ORG"),
  ("Guido van Rossum", "PERSON"),
  ("James Gosling", "PERSON"),
  ("Chris Lattner", "PERSON"),
)
entities = [Entity(*(entity)) for entity in entities]

# Initialize the annotator
quick = Quickner(documents=documents, entities=entities)
quick.process()

>>> quick
Entities: 6 | Documents: 3 | Annotations: PERSON: 2, PL: 3, ORG: 1
>>> quick.documents 
[Document(id=87e03d58b1ba4d72, text=rust is made by Mozilla, label=[(0, 4, PL), (16, 23, ORG)]), Document(id=f1da5d23ef88f3dc, text=Python was created by Guido van Rossum, label=[(0, 6, PL), (22, 38, PERSON)]), Document(id=e4324f9818e7e598, text=Java was created by James Gosling, label=[(0, 4, PL), (20, 33, PERSON)])]

Find documents by label or entity

When you have annotated your documents, you can use the find_documents_by_label and find_documents_by_entity methods to find documents by label or entity.

Both methods return a list of documents, and are not case sensitive.

Example:

# Find documents by label
>>> quick.find_documents_by_label("PERSON")
[Document(id=f1da5d23ef88f3dc, text=Python was created by Guido van Rossum, label=[(0, 6, PL), (22, 38, PERSON)]), Document(id=e4324f9818e7e598, text=Java was created by James Gosling, label=[(0, 4, PL), (20, 33, PERSON)])]

# Find documents by entity
>>> quick.find_documents_by_entity("Guido van Rossum")
[Document(id=f1da5d23ef88f3dc, text=Python was created by Guido van Rossum, label=[(0, 6, PL), (22, 38, PERSON)])]
>>> quick.find_documents_by_entity("rust")
[Document(id=87e03d58b1ba4d72, text=rust is made by Mozilla, label=[(0, 4, PL), (16, 23, ORG)])]
>>> quick.find_documents_by_entity("Chris Lattner")
[Document(id=3b0b3b5b0b5b0b5b, text=Swift was created by Chris Lattner and Apple, label=[(0, 5, PL), (21, 35, PERSON), (40, 45, ORG)])]

Get a Spacy Compatible Generator Object

You can use the spacy method to get a spacy compatible generator object.

The generator object can be used to feed a spacy model with the annotated data, you still need to convert the data into DocBin format.

Example:

# Get a spacy compatible generator object
>>> quick.spacy()
<builtins.SpacyGenerator object at 0x102311440>
# Divide the documents into chunks
>>> chunks = quick.spacy(chunks=2)
>>> for chunk in chunks:
...     print(chunk)
...
[('rust is made by Mozilla', {'entitiy': [(0, 4, 'PL'), (16, 23, 'ORG')]}), ('Python was created by Guido van Rossum', {'entitiy': [(0, 6, 'PL'), (22, 38, 'PERSON')]})]
[('Java was created by James Gosling at Sun Microsystems', {'entitiy': [(0, 4, 'PL'), (20, 33, 'PERSON'), (37, 53, 'ORG')]}), ('Swift was created by Chris Lattner and Apple', {'entitiy': [(0, 5, 'PL'), (21, 34, 'PERSON'), (39, 44, 'ORG')]})]

Single document annotation

You can also annotate a single document with a list of entities.

This is useful when you want to annotate a document with a list of entities is not in the list of entities of the Quickner object.

Example:

from quickner import Document, Entity

# Create a document from a string
# Method 1
rust = Document.from_string("rust is made by Mozilla")
# Method 2
rust = Document("rust is made by Mozilla")

# Create a list of entities
entities = [Entity("Rust", "PL"), Entity("Mozilla", "ORG")]
# Annotate the document with the entities, case_sensitive is set to False by default
>>> rust.annotate(entities, case_sensitive=True)
>>> rust
Document(id="87e03d58b1ba4d72", text=rust is made by Mozilla, label=[(16, 23, ORG)])
>>> rust.annotate(entities, case_sensitive=False)
>>> rust
Document(id="87e03d58b1ba4d72", text=rust is made by Mozilla, label=[(16, 23, ORG), (0, 4, PL)])

Load from file

Initialize the Quickner object from a file containing existing annotations.

Quickner.from_jsonl and Quickner.from_spacy are class methods that return a Quickner object and are able to parse the annotations and entities from a jsonl or spaCy file.

from quickner import Quickner

quick = Quickner.from_jsonl("annotations.jsonl") # load the annotations from a jsonl file
quick = Quickner.from_spacy("annotations.json") # load the annotations from a spaCy file

Configuration

The configuration file is a TOML file with the following structure:

# Configuration file for the NER tool

[general]
# Mode to run the tool, modes are:
# Annotation from the start
# Annotation from already annotated texts
# Load annotations and add new entities

[logging]
level = "debug" # level of logging (debug, info, warning, error, fatal)

[texts]

[texts.input]
filter = false     # if true, only texts in the filter list will be used
path = "texts.csv" # path to the texts file

[texts.filters]
accept_special_characters = ".,-" # list of special characters to accept in the text (if special_characters is true)
alphanumeric = false              # if true, only strictly alphanumeric texts will be used
case_sensitive = false            # if true, case sensitive search will be used
max_length = 1024                 # maximum length of the text
min_length = 0                    # minimum length of the text
numbers = false                   # if true, texts with numbers will not be used
punctuation = false               # if true, texts with punctuation will not be used
special_characters = false        # if true, texts with special characters will not be used

[annotations]
format = "spacy" # format of the output file (jsonl, spaCy, brat, conll)

[annotations.output]
path = "annotations.jsonl" # path to the output file

[entities]

[entities.input]
filter = true         # if true, only entities in the filter list will be used
path = "entities.csv" # path to the entities file
save = true           # if true, the entities found will be saved in the output file

[entities.filters]
accept_special_characters = ".-" # list of special characters to accept in the entity (if special_characters is true)
alphanumeric = false             # if true, only strictly alphanumeric entities will be used
case_sensitive = false           # if true, case sensitive search will be used
max_length = 20                  # maximum length of the entity
min_length = 0                   # minimum length of the entity
numbers = false                  # if true, entities with numbers will not be used
punctuation = false              # if true, entities with punctuation will not be used
special_characters = true        # if true, entities with special characters will not be used

[entities.excludes]
# path = "excludes.csv" # path to entities to exclude from the search

Features Roadmap and TODO

  • Add support for spaCy format
  • Add support for brat format
  • Add support for conll format
  • Add support for jsonl format
  • Add support for loading annotations from a json spaCy file
  • Add support for loading annotations from a jsonl file
  • Find documents with a specific entity/entities and return the documents
  • Add support for loading annotations from a brat file
  • Substring search for entities in the text (case sensitive and insensitive)
  • Partial match for entities, e.g. "Rust" will match "Rustlang"
  • Pattern/regex based entites, e.g. "Rustlang" will match "Rustlang 1.0"
  • Fuzzy match for entities with levenstein distance, e.g. "Rustlang" will match "Rust"
  • Add support for jupyter notebook

License

MOZILLA PUBLIC LICENSE Version 2.0

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

Authors

  • [Omar MHAIMDAT]

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

quickner-0.0.1a20.tar.gz (28.6 MB view details)

Uploaded Source

Built Distributions

quickner-0.0.1a20-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-cp312-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12 Windows x86-64

quickner-0.0.1a20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

quickner-0.0.1a20-cp311-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

quickner-0.0.1a20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

quickner-0.0.1a20-cp310-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

quickner-0.0.1a20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

quickner-0.0.1a20-cp39-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

quickner-0.0.1a20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.9 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

quickner-0.0.1a20-cp38-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

quickner-0.0.1a20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.8 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

quickner-0.0.1a20-cp37-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.7 Windows x86-64

quickner-0.0.1a20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

quickner-0.0.1a20-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.7m macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

File details

Details for the file quickner-0.0.1a20.tar.gz.

File metadata

  • Download URL: quickner-0.0.1a20.tar.gz
  • Upload date:
  • Size: 28.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for quickner-0.0.1a20.tar.gz
Algorithm Hash digest
SHA256 f5e5e40f0f4e7f2f3d746a909ce1f17036f5f70de2764fd1f6e437cee9c0f6fc
MD5 dece7042dbd201c7916c75b9c08b2a89
BLAKE2b-256 6e4559f57cec3356b7542a86bddfa3e5177814fcf14c55619ef386208d30fb41

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54a6e83cfbc2ea6f96a538f6a0839546667fd2d3a39bc7bd1980568bee56a105
MD5 7b3df43b66e551973d448ac32329d82c
BLAKE2b-256 fbd7740100e1a88290edb02f1286cfaf9a9806d7184f41792f57f60ed30c5728

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d81263ba85ee8f38888a189a567523178de7cc7bb002fde77ca34b581377c4c7
MD5 2a2211b199b17f835475696f49eb67e3
BLAKE2b-256 d7d1ed281d8009f7f188a9709a5a90d38bfe9aa7032272f7ac648480eda92569

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c574d010f4768ccfc599e0dd1a314d0e7b5a620c8ae701469e349021b283884
MD5 b268d6db2d6c1daf7cfa3707fe1c6d28
BLAKE2b-256 064fc66cc23467156a4568b3b8009d932b5a77aa954da9dc53b7497cd9c4d11f

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7dfd5e05c5b68e7a6c766f5969ee10c55f4d85171f9ef6597e4ca71729819db2
MD5 ab3002081bc0c186f6e5640387688044
BLAKE2b-256 daf2854b225115ead8d4b9772fe70587ffc9e8b7c57b2f142325952a7f19c525

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 224030a348658e115cc18781e8f99c86323a6b3cbd7d4bb128b22084ae69e30d
MD5 42823961b4c7bba168e603f50861b45d
BLAKE2b-256 aa57d9a7c15c1d590e4b7ab01c72c57035ac70ba0963c86410ea066acde82dd3

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29248d085ca1adae1257657445da93b46567ce45e630cdcfde77771fbe20bd71
MD5 f4fa8e8da0e8ad601b4e40130eb8530b
BLAKE2b-256 3917e223aa50a3050c39cabca81661a4e373a9ded3cc7bce0ec3146cb29cf76e

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 d262a07555015b4eec175d4af7c535787b20527ccf99ee9fa3ec5c75b8ee38e5
MD5 d4c2bd42632b0435f80bceeab0b9c048
BLAKE2b-256 7dbf3d4d09485b975d87e5151be183497e7412a6610c2ed4d0bda8709f33fd80

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 fc00e70f6e7c9ca3b4780ecc34c0ee65f7d9e2663e276858e1b41721736cadc7
MD5 e05b89ae4015e9fab0b1cf271694ec33
BLAKE2b-256 0028a473f580177445382ae9cc21246163a12a4eab69be6f13ab63d14fc2c021

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b2866db9bcaaade104bd417bd7cad8abe45f29c351b77e992dd12a9c9c8d90e5
MD5 c23966f5a4b1425f327b0ff172962eaf
BLAKE2b-256 3c6871486b9ed9e6c33ae31d3f0107f6f2711207cd25a0ed0318fd71b2825c45

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 5ec7d8ca5e180d5b6e358d4d79c48b6ffef01183cbe48b7fa620ce1da052f35b
MD5 04a9639e7b24d34b18071b252ea38567
BLAKE2b-256 a56eeb6d7eee7e99e728951ee36dec86be207f7c7050fc8b0dc4e4d293ff111f

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 c16f1567e655632ad774f197981f62954cfab6c8593cb367b89bd7a831628b88
MD5 94b232e49009fd86abb8a188c1e89009
BLAKE2b-256 9dc92a708f38fb61e3fbff56419d6960b87a547af50f3a8e79702a95a6d641fc

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8cf49983cad1c002dbbd643fe4de53fa64cc04fd2a9939488dcd4293d529903c
MD5 263de554fd5542b8277f366e002d9960
BLAKE2b-256 c9b3e7f5de34b17000e776500f76c298514df1afb6db4da64ea9908215d1bb01

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 0ed718b49825b6b1fc50f2124a4258bd757a26d9a28a42bb4a9f6d52280479ae
MD5 8612c797cc1370e0a7a8ddc2a0ee97b8
BLAKE2b-256 838255ac33f01d452e829d99494e71aaea5ca1c6a41e5f884135a553ae2bef26

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 ab18fa4e84fff7f1ad495cd8e825ed4797f2cfc3fee9ac752dcfbfa5a0680af1
MD5 f58a6f6045b43420b0ff4aa3b894505a
BLAKE2b-256 2ced322e8fb4a2fd099ded9d0e9b08f6e252a3682076b46c54d7aa7a89a5bf99

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be2e26c9be0cad20142d6416acf35d55b82fc39bbeb3f27b428a28c311087ac3
MD5 ffcd89d95f48856a1ca6ea42ab9e2a96
BLAKE2b-256 126b6719eb5584d757b6ac02b9a1dcad334bfa4613134dd6d5d7d224bb01b6c4

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 a5dc0f35d74404954a31544a0da07004f37f035a0465e55e4f57583705a4dcfb
MD5 cca1cff755d74a2808bfa2f49a5c4f27
BLAKE2b-256 6b99909af64412330d58e620da7ed5bc9fc4c11e059b409f93c1693fdb19fe9d

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 811cf91a7b0f347187192565608450b6bef17b5c235ba113788806c500173a9f
MD5 9449e6badc1162781ae35f01ad1d9583
BLAKE2b-256 4d3568872384fac6f87b631e33622ee4134c9915a3b3921b730d8883e9163162

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1aa78d489fd7ab051ec25957af931bee34f976cd15ced4386fe42dd28a1619fa
MD5 f9e58fa1fb4b6bd0a2834f6930762d04
BLAKE2b-256 7096a11d93b69524773b262ad2b3d8aa83ebf218a55249a1fb6dc1a8351d0c59

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 0b68d21d4c17332f260d40788da06b39bc0e7444a7a32493c6a55d5fbc1fd0b7
MD5 be7ad6a6df3da1a6995d848ec9567ca5
BLAKE2b-256 850ca91b32c1e0fb6038fcb49211fa4dc09c6fb027bceb41d41e3585f035b466

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp37-none-win_amd64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 024e0ef4480537c94a79710352fe5791b3daa56efb3d5917d273c220c8ff2a51
MD5 1b24d6bff4061b428a68b7229a894c2e
BLAKE2b-256 a199a213d89ba3beec1af7372b5d9c4778b976c274070a50f57aed0d73aaa961

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2efd1af1bd23d3fc18f46de362107342c1c04cab62cbbb2d473ee46492a24f91
MD5 c1c5685c85abf3c8552c8154fa45a472
BLAKE2b-256 1dd08beb0bc06ac8256edb4baf0ef24ff01310263af9ea20bee1abe142f9d612

See more details on using hashes here.

File details

Details for the file quickner-0.0.1a20-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for quickner-0.0.1a20-cp37-cp37m-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 4a1c16a134b871a19aa731ad70960de2ba5694f46b0758bea8d2bf978a8a32be
MD5 b839da6d15aaf67229d151350539599f
BLAKE2b-256 bf0e8d7024b1d61026fd1d662060d700f063b9c812a14281691c4f37b94e4989

See more details on using hashes here.

Supported by

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