pyskani


Namepyskani JSON
Version 0.1.2 PyPI version JSON
download
home_pagehttps://github.com/althonos/pyskani
SummaryPyO3 bindings and Python interface to skani, a method for fast fast genomic identity calculation using sparse chaining.
upload_time2024-06-13 21:49:42
maintainerNone
docs_urlNone
authorMartin Larralde
requires_python>=3.7
licenseMIT
keywords bioinformatics genomics average nucleotide identity
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # πŸβ›“οΈπŸ§¬ Pyskani [![Stars](https://img.shields.io/github/stars/althonos/pyskani.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/pyskani/stargazers)

*[PyO3](https://pyo3.rs/) bindings and Python interface to [skani](https://github.com/bluenote-1577/skani), a method for fast fast genomic identity calculation using sparse chaining.*

[![Actions](https://img.shields.io/github/actions/workflow/status/althonos/pyskani/test.yml?branch=main&logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/pyskani/actions)
[![Coverage](https://img.shields.io/codecov/c/gh/althonos/pyskani/branch/main.svg?style=flat-square&maxAge=3600)](https://codecov.io/gh/althonos/pyskani/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square&maxAge=2678400)](https://choosealicense.com/licenses/mit/)
[![PyPI](https://img.shields.io/pypi/v/pyskani.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/pyskani)
[![Bioconda](https://img.shields.io/conda/vn/bioconda/pyskani?style=flat-square&maxAge=3600&logo=anaconda)](https://anaconda.org/bioconda/pyskani)
[![AUR](https://img.shields.io/aur/version/python-pyskani?logo=archlinux&style=flat-square&maxAge=3600)](https://aur.archlinux.org/packages/python-pyskani)
[![Wheel](https://img.shields.io/pypi/wheel/pyskani.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/pyskani/#files)
[![Python Versions](https://img.shields.io/pypi/pyversions/pyskani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/pyskani/#files)
[![Python Implementations](https://img.shields.io/pypi/implementation/pyskani.svg?style=flat-square&maxAge=600&label=impl)](https://pypi.org/project/pyskani/#files)
[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pyskani/)
[![Mirror](https://img.shields.io/badge/mirror-EMBL-009f4d?style=flat-square&maxAge=2678400)](https://git.embl.de/larralde/pyskani/)
[![Issues](https://img.shields.io/github/issues/althonos/pyskani.svg?style=flat-square&maxAge=600)](https://github.com/althonos/pyskani/issues)
[![Docs](https://img.shields.io/readthedocs/pyskani/latest?style=flat-square&maxAge=600)](https://pyskani.readthedocs.io)
[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pyskani/blob/master/CHANGELOG.md)
[![Downloads](https://img.shields.io/pypi/dm/pyskani?style=flat-square&color=303f9f&maxAge=86400&label=downloads)](https://pepy.tech/project/pyskani)


## πŸ—ΊοΈ Overview

`skani` is a method developed by [Jim Shaw](https://jim-shaw-bluenote.github.io/)
and [Yun William Yu](https://github.com/yunwilliamyu) for fast and robust
metagenomic sequence comparison through sparse chaining. It improves on
FastANI by being more accurate and much faster, while requiring less memory.

`pyskani` is a Python module, implemented using the [PyO3](https://pyo3.rs/)
framework, that provides bindings to `skani`. It directly links to the
``skani`` code, which has the following advantages over CLI wrappers:

- **pre-built wheels**: `pyskani` is distributed on PyPI and features
  pre-built wheels for common platforms, including x86-64 and Arm64 UNIX.
- **single dependency**: If your software or your analysis pipeline is
  distributed as a Python package, you can add `pyskani` as a dependency to
  your project, and stop worrying about the `skani` binary being present on
  the end-user machine.
- **sans I/O**: Everything happens in memory, in Python objects you control,
  making it easier to pass your sequences to `skani` without having to write
  them to a temporary file.

*This library is still a work-in-progress, and in an experimental stage,
but it should already pack enough features to be used in a standard pipeline.*


## πŸ”§ Installing

Pyskani can be installed directly from [PyPI](https://pypi.org/project/pyskani/),
which hosts some pre-built CPython wheels for x86-64 Unix platforms, as well
as the code required to compile from source with Rust:
```console
$ pip install pyskani
```
<!-- Otherwise, pyskani is also available as a [Bioconda](https://anaconda.org/bioconda/pyskani)
package:
```console
$ conda install -c bioconda pyskani
``` -->

In the event you have to compile the package from source, all the required
Rust libraries are vendored in the source distribution, and a Rust compiler
will be setup automatically if there is none on the host machine.


## πŸ’‘ Examples

### πŸ“ Creating a database

A database can be created either in memory or using a folder on the machine
filesystem to store the sketches. Independently of the storage, a database
can be used immediately for querying, or saved to a different location.

Here is how to create a database into memory,
using [Biopython](https://github.com/biopython/biopython)
to load the record:
```python
database = pyskani.Database()
record = Bio.SeqIO.read("vendor/skani/test_files/e.coli-EC590.fasta", "fasta")
database.sketch("E. coli EC590", bytes(record.seq))
```

For draft genomes, simply pass more arguments to the `sketch` method, for
which you can use the splat operator:
```python
database = pyskani.Database()
records = Bio.SeqIO.parse("vendor/skani/test_files/e.coli-o157.fasta", "fasta")
sequences = (bytes(record.seq) for record in records)
database.sketch("E. coli O157", *sequences)
```

### πŸ—’οΈ Loading a database

To load a database, either created from `skani` or `pyskani`, you can either
load all sketches into memory, for fast querying:
```python
database = pyskani.Database.load("path/to/sketches")
```

Or load the files lazily to save memory, at the cost of slower querying:
```python
database = pyskani.Database.open("path/to/sketches")
```

### πŸ”Ž Querying a database

Once a database has been created or loaded, use the `Database.query` method
to compute ANI for some query genomes:
```python
record = Bio.SeqIO.read("vendor/skani/test_files/e.coli-K12.fasta", "fasta")
hits = database.query("E. coli K12", bytes(record.seq))
```

## πŸ”Ž See Also

Computing ANI for closed genomes? You may also be interested in
[`pyfastani`, a Python package for computing ANI](https://github.com/althonos/pyfastani)
using the [FastANI method](https://www.nature.com/articles/s41467-018-07641-9)
developed by [Chirag Jain](https://github.com/cjain7) *et al.*

## πŸ’­ Feedback

### ⚠️ Issue Tracker

Found a bug ? Have an enhancement request ? Head over to the
[GitHub issue tracker](https://github.com/althonos/pyskani/issues) if you need
to report or ask something. If you are filing in on a bug, please include as
much information as you can about the issue, and try to recreate the same bug
in a simple, easily reproducible situation.

### πŸ—οΈ Contributing

Contributions are more than welcome! See
[`CONTRIBUTING.md`](https://github.com/althonos/pyskani/blob/master/CONTRIBUTING.md)
for more details.


## βš–οΈ License

This library is provided under the [MIT License](https://choosealicense.com/licenses/mit/).

The `skani` code was written by [Jim Shaw](https://jim-shaw-bluenote.github.io/)
and is distributed under the terms of the [MIT License](https://choosealicense.com/licenses/mit/)
as well. See `vendor/skani/LICENSE` for more information. Source distributions
of `pyskani` vendors additional sources under their own terms using
the [`cargo vendor`](https://doc.rust-lang.org/cargo/commands/cargo-vendor.html)
command.

*This project is in no way not affiliated, sponsored, or otherwise endorsed
by the [original `skani` authors](https://jim-shaw-bluenote.github.io/).
It was developed by [Martin Larralde](https://github.com/althonos/) during his
PhD project at the [European Molecular Biology Laboratory](https://www.embl.de/)
in the [Zeller team](https://github.com/zellerlab).*

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/althonos/pyskani",
    "name": "pyskani",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "bioinformatics, genomics, average, nucleotide, identity",
    "author": "Martin Larralde",
    "author_email": "martin.larralde@embl.de",
    "download_url": "https://files.pythonhosted.org/packages/43/f6/0d017193e0c7d935d3cc88ea6e0348ece012d2b645bbc5e8037808e069b4/pyskani-0.1.2.tar.gz",
    "platform": "any",
    "description": "# \ud83d\udc0d\u26d3\ufe0f\ud83e\uddec Pyskani [![Stars](https://img.shields.io/github/stars/althonos/pyskani.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/pyskani/stargazers)\n\n*[PyO3](https://pyo3.rs/) bindings and Python interface to [skani](https://github.com/bluenote-1577/skani), a method for fast fast genomic identity calculation using sparse chaining.*\n\n[![Actions](https://img.shields.io/github/actions/workflow/status/althonos/pyskani/test.yml?branch=main&logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/pyskani/actions)\n[![Coverage](https://img.shields.io/codecov/c/gh/althonos/pyskani/branch/main.svg?style=flat-square&maxAge=3600)](https://codecov.io/gh/althonos/pyskani/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square&maxAge=2678400)](https://choosealicense.com/licenses/mit/)\n[![PyPI](https://img.shields.io/pypi/v/pyskani.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/pyskani)\n[![Bioconda](https://img.shields.io/conda/vn/bioconda/pyskani?style=flat-square&maxAge=3600&logo=anaconda)](https://anaconda.org/bioconda/pyskani)\n[![AUR](https://img.shields.io/aur/version/python-pyskani?logo=archlinux&style=flat-square&maxAge=3600)](https://aur.archlinux.org/packages/python-pyskani)\n[![Wheel](https://img.shields.io/pypi/wheel/pyskani.svg?style=flat-square&maxAge=3600)](https://pypi.org/project/pyskani/#files)\n[![Python Versions](https://img.shields.io/pypi/pyversions/pyskani.svg?style=flat-square&maxAge=600)](https://pypi.org/project/pyskani/#files)\n[![Python Implementations](https://img.shields.io/pypi/implementation/pyskani.svg?style=flat-square&maxAge=600&label=impl)](https://pypi.org/project/pyskani/#files)\n[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pyskani/)\n[![Mirror](https://img.shields.io/badge/mirror-EMBL-009f4d?style=flat-square&maxAge=2678400)](https://git.embl.de/larralde/pyskani/)\n[![Issues](https://img.shields.io/github/issues/althonos/pyskani.svg?style=flat-square&maxAge=600)](https://github.com/althonos/pyskani/issues)\n[![Docs](https://img.shields.io/readthedocs/pyskani/latest?style=flat-square&maxAge=600)](https://pyskani.readthedocs.io)\n[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/pyskani/blob/master/CHANGELOG.md)\n[![Downloads](https://img.shields.io/pypi/dm/pyskani?style=flat-square&color=303f9f&maxAge=86400&label=downloads)](https://pepy.tech/project/pyskani)\n\n\n## \ud83d\uddfa\ufe0f Overview\n\n`skani` is a method developed by [Jim Shaw](https://jim-shaw-bluenote.github.io/)\nand [Yun William Yu](https://github.com/yunwilliamyu) for fast and robust\nmetagenomic sequence comparison through sparse chaining. It improves on\nFastANI by being more accurate and much faster, while requiring less memory.\n\n`pyskani` is a Python module, implemented using the [PyO3](https://pyo3.rs/)\nframework, that provides bindings to `skani`. It directly links to the\n``skani`` code, which has the following advantages over CLI wrappers:\n\n- **pre-built wheels**: `pyskani` is distributed on PyPI and features\n  pre-built wheels for common platforms, including x86-64 and Arm64 UNIX.\n- **single dependency**: If your software or your analysis pipeline is\n  distributed as a Python package, you can add `pyskani` as a dependency to\n  your project, and stop worrying about the `skani` binary being present on\n  the end-user machine.\n- **sans I/O**: Everything happens in memory, in Python objects you control,\n  making it easier to pass your sequences to `skani` without having to write\n  them to a temporary file.\n\n*This library is still a work-in-progress, and in an experimental stage,\nbut it should already pack enough features to be used in a standard pipeline.*\n\n\n## \ud83d\udd27 Installing\n\nPyskani can be installed directly from [PyPI](https://pypi.org/project/pyskani/),\nwhich hosts some pre-built CPython wheels for x86-64 Unix platforms, as well\nas the code required to compile from source with Rust:\n```console\n$ pip install pyskani\n```\n<!-- Otherwise, pyskani is also available as a [Bioconda](https://anaconda.org/bioconda/pyskani)\npackage:\n```console\n$ conda install -c bioconda pyskani\n``` -->\n\nIn the event you have to compile the package from source, all the required\nRust libraries are vendored in the source distribution, and a Rust compiler\nwill be setup automatically if there is none on the host machine.\n\n\n## \ud83d\udca1 Examples\n\n### \ud83d\udcdd Creating a database\n\nA database can be created either in memory or using a folder on the machine\nfilesystem to store the sketches. Independently of the storage, a database\ncan be used immediately for querying, or saved to a different location.\n\nHere is how to create a database into memory,\nusing [Biopython](https://github.com/biopython/biopython)\nto load the record:\n```python\ndatabase = pyskani.Database()\nrecord = Bio.SeqIO.read(\"vendor/skani/test_files/e.coli-EC590.fasta\", \"fasta\")\ndatabase.sketch(\"E. coli EC590\", bytes(record.seq))\n```\n\nFor draft genomes, simply pass more arguments to the `sketch` method, for\nwhich you can use the splat operator:\n```python\ndatabase = pyskani.Database()\nrecords = Bio.SeqIO.parse(\"vendor/skani/test_files/e.coli-o157.fasta\", \"fasta\")\nsequences = (bytes(record.seq) for record in records)\ndatabase.sketch(\"E. coli O157\", *sequences)\n```\n\n### \ud83d\uddd2\ufe0f Loading a database\n\nTo load a database, either created from `skani` or `pyskani`, you can either\nload all sketches into memory, for fast querying:\n```python\ndatabase = pyskani.Database.load(\"path/to/sketches\")\n```\n\nOr load the files lazily to save memory, at the cost of slower querying:\n```python\ndatabase = pyskani.Database.open(\"path/to/sketches\")\n```\n\n### \ud83d\udd0e Querying a database\n\nOnce a database has been created or loaded, use the `Database.query` method\nto compute ANI for some query genomes:\n```python\nrecord = Bio.SeqIO.read(\"vendor/skani/test_files/e.coli-K12.fasta\", \"fasta\")\nhits = database.query(\"E. coli K12\", bytes(record.seq))\n```\n\n## \ud83d\udd0e See Also\n\nComputing ANI for closed genomes? You may also be interested in\n[`pyfastani`, a Python package for computing ANI](https://github.com/althonos/pyfastani)\nusing the [FastANI method](https://www.nature.com/articles/s41467-018-07641-9)\ndeveloped by [Chirag Jain](https://github.com/cjain7) *et al.*\n\n## \ud83d\udcad Feedback\n\n### \u26a0\ufe0f Issue Tracker\n\nFound a bug ? Have an enhancement request ? Head over to the\n[GitHub issue tracker](https://github.com/althonos/pyskani/issues) if you need\nto report or ask something. If you are filing in on a bug, please include as\nmuch information as you can about the issue, and try to recreate the same bug\nin a simple, easily reproducible situation.\n\n### \ud83c\udfd7\ufe0f Contributing\n\nContributions are more than welcome! See\n[`CONTRIBUTING.md`](https://github.com/althonos/pyskani/blob/master/CONTRIBUTING.md)\nfor more details.\n\n\n## \u2696\ufe0f License\n\nThis library is provided under the [MIT License](https://choosealicense.com/licenses/mit/).\n\nThe `skani` code was written by [Jim Shaw](https://jim-shaw-bluenote.github.io/)\nand is distributed under the terms of the [MIT License](https://choosealicense.com/licenses/mit/)\nas well. See `vendor/skani/LICENSE` for more information. Source distributions\nof `pyskani` vendors additional sources under their own terms using\nthe [`cargo vendor`](https://doc.rust-lang.org/cargo/commands/cargo-vendor.html)\ncommand.\n\n*This project is in no way not affiliated, sponsored, or otherwise endorsed\nby the [original `skani` authors](https://jim-shaw-bluenote.github.io/).\nIt was developed by [Martin Larralde](https://github.com/althonos/) during his\nPhD project at the [European Molecular Biology Laboratory](https://www.embl.de/)\nin the [Zeller team](https://github.com/zellerlab).*\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "PyO3 bindings and Python interface to skani, a method for fast fast genomic identity calculation using sparse chaining.",
    "version": "0.1.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/althonos/pyskani/issues",
        "Builds": "https://github.com/althonos/pyskani/actions/",
        "Changelog": "https://github.com/althonos/pyskani/blob/master/CHANGELOG.md",
        "Coverage": "https://codecov.io/gh/althonos/pyskani/",
        "Homepage": "https://github.com/althonos/pyskani",
        "PyPI": "https://pypi.org/project/pyskani"
    },
    "split_keywords": [
        "bioinformatics",
        " genomics",
        " average",
        " nucleotide",
        " identity"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1eae786a14e53d5a1f80babd07e3fce24ba75784eb25f1101f53fbe826ea1a4f",
                "md5": "8644c110ef3b3fef10158ee311391942",
                "sha256": "8abf682784251c4a9908d31160871e3fdb38cf4da292885526283d3e77279ada"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp310-cp310-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8644c110ef3b3fef10158ee311391942",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3335233,
            "upload_time": "2024-06-13T21:48:13",
            "upload_time_iso_8601": "2024-06-13T21:48:13.954889Z",
            "url": "https://files.pythonhosted.org/packages/1e/ae/786a14e53d5a1f80babd07e3fce24ba75784eb25f1101f53fbe826ea1a4f/pyskani-0.1.2-cp310-cp310-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6adaeab335af5e9e7f79e2a0d91bb71251a1504314d357d76843cbf4d59b0859",
                "md5": "99e58b3dc3d3fab2570bac649f91d59e",
                "sha256": "2d13f5cb106555c3bee67a14f8667edf56d23daa0b0299a097e057e90b8408c6"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp310-cp310-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "99e58b3dc3d3fab2570bac649f91d59e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3441658,
            "upload_time": "2024-06-13T21:48:15",
            "upload_time_iso_8601": "2024-06-13T21:48:15.768396Z",
            "url": "https://files.pythonhosted.org/packages/6a/da/eab335af5e9e7f79e2a0d91bb71251a1504314d357d76843cbf4d59b0859/pyskani-0.1.2-cp310-cp310-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0fadd1b1734b092816e761a4dcf3bb2383d9986cc88aa764e0a8db12ca98f8e8",
                "md5": "09ba519881974b11da08692ecc632da2",
                "sha256": "1a02ec57e23e38238036e550ca02d89f081d3de0886db3bfeadc3c9a308c28c1"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "09ba519881974b11da08692ecc632da2",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3398288,
            "upload_time": "2024-06-13T21:48:17",
            "upload_time_iso_8601": "2024-06-13T21:48:17.443840Z",
            "url": "https://files.pythonhosted.org/packages/0f/ad/d1b1734b092816e761a4dcf3bb2383d9986cc88aa764e0a8db12ca98f8e8/pyskani-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e08599d02242aa5850e76d586df3d481c2c3db51e99be94ca474e8c494c7d553",
                "md5": "8f32aac2b17a87e8c8fe556e986162c3",
                "sha256": "f207957787037b0a8ad372bee611b635a0ba4d31781567a3fd6c6830f35d3003"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8f32aac2b17a87e8c8fe556e986162c3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3393676,
            "upload_time": "2024-06-13T21:48:19",
            "upload_time_iso_8601": "2024-06-13T21:48:19.500503Z",
            "url": "https://files.pythonhosted.org/packages/e0/85/99d02242aa5850e76d586df3d481c2c3db51e99be94ca474e8c494c7d553/pyskani-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "204a67ad45eb505f456fc9d32bc996ef5ae685771e97f1a1569ba9c54ea007e5",
                "md5": "f6609cf2fd7984e334e6056c7b85c54e",
                "sha256": "17283e0f9c1cc6043ca1dcd7d4f9896b7c66848f6923eedab3916567b332065e"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f6609cf2fd7984e334e6056c7b85c54e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3287927,
            "upload_time": "2024-06-13T21:48:21",
            "upload_time_iso_8601": "2024-06-13T21:48:21.425293Z",
            "url": "https://files.pythonhosted.org/packages/20/4a/67ad45eb505f456fc9d32bc996ef5ae685771e97f1a1569ba9c54ea007e5/pyskani-0.1.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da85e499615ee0ccae7f580e46bdc72aa04db9097d425e63ff4500cea9127d8c",
                "md5": "c3e149ac3d418672a3e7ea84ac2420a7",
                "sha256": "594405b856a2a4f5d8aefeec25e09615eea90cd784ecd8d12cabace7eff6f482"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp311-cp311-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c3e149ac3d418672a3e7ea84ac2420a7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3334938,
            "upload_time": "2024-06-13T21:48:23",
            "upload_time_iso_8601": "2024-06-13T21:48:23.285835Z",
            "url": "https://files.pythonhosted.org/packages/da/85/e499615ee0ccae7f580e46bdc72aa04db9097d425e63ff4500cea9127d8c/pyskani-0.1.2-cp311-cp311-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2f62a27d49597b40debeb9780d29bbd27a543448a1f2dd7a2b3ceaf14466bc67",
                "md5": "c4c9b641369c42a34e2423dc5332dff9",
                "sha256": "b38c877c86455536a782990a4cf2b3c9418d67392489fb795db34facf5fd3a28"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp311-cp311-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c4c9b641369c42a34e2423dc5332dff9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3441838,
            "upload_time": "2024-06-13T21:48:25",
            "upload_time_iso_8601": "2024-06-13T21:48:25.225191Z",
            "url": "https://files.pythonhosted.org/packages/2f/62/a27d49597b40debeb9780d29bbd27a543448a1f2dd7a2b3ceaf14466bc67/pyskani-0.1.2-cp311-cp311-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a79d2d6653a5f3367b758c93d7c47eca582e5640e64de6f43c78dd9bb1893af9",
                "md5": "aaedff51c4b3f8cb90ccdf1179cb5614",
                "sha256": "f99bdaca28f0df000eb80eb59f89e0ccdb7606c2480d5797b737c623df933d96"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "aaedff51c4b3f8cb90ccdf1179cb5614",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3398604,
            "upload_time": "2024-06-13T21:48:27",
            "upload_time_iso_8601": "2024-06-13T21:48:27.334886Z",
            "url": "https://files.pythonhosted.org/packages/a7/9d/2d6653a5f3367b758c93d7c47eca582e5640e64de6f43c78dd9bb1893af9/pyskani-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c09e1c7f9d06528160100aabd8e5a8fb54acb8ec9c32ec5f8ff2ddec48df9a0d",
                "md5": "4a421e1f4d643e6585eebecf2d57a290",
                "sha256": "ad996762766c09c5537671f7e5898d534a720966bc4d2dd5d7ce17c36eb7562c"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4a421e1f4d643e6585eebecf2d57a290",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3394302,
            "upload_time": "2024-06-13T21:48:29",
            "upload_time_iso_8601": "2024-06-13T21:48:29.358099Z",
            "url": "https://files.pythonhosted.org/packages/c0/9e/1c7f9d06528160100aabd8e5a8fb54acb8ec9c32ec5f8ff2ddec48df9a0d/pyskani-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0dcc873b21c3fb8ed613bd2b3e6dc63c6f10b787c22d422934a0eead7af2eb96",
                "md5": "20185e043b6c968923aecbf84235bb5e",
                "sha256": "e76afce1be76f72b62830206b4fd72d3f818d2ae5bfe650762c464a0dc21d1b3"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "20185e043b6c968923aecbf84235bb5e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3287791,
            "upload_time": "2024-06-13T21:48:31",
            "upload_time_iso_8601": "2024-06-13T21:48:31.480898Z",
            "url": "https://files.pythonhosted.org/packages/0d/cc/873b21c3fb8ed613bd2b3e6dc63c6f10b787c22d422934a0eead7af2eb96/pyskani-0.1.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6fa7eab1554c64175e5415d28bcd75496c6232a097454f58db67b1c5bd50b595",
                "md5": "0cc683d5bd74eded09654b053345a0c9",
                "sha256": "caadd3f36d81c95f43161dc64422698de744c71593ddeb27fb054cd0342f86df"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp312-cp312-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "0cc683d5bd74eded09654b053345a0c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3335876,
            "upload_time": "2024-06-13T21:48:33",
            "upload_time_iso_8601": "2024-06-13T21:48:33.567473Z",
            "url": "https://files.pythonhosted.org/packages/6f/a7/eab1554c64175e5415d28bcd75496c6232a097454f58db67b1c5bd50b595/pyskani-0.1.2-cp312-cp312-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b9e6ec811522dafb7b8872592b7bb0c81110fee0196862b30808dcdff93ff0a5",
                "md5": "8150d7a1c2b457471fa805c7a2762b91",
                "sha256": "9f592b763367747fe2850fa4d6a462552d730fa6ee89ce1b6f9bf7d101e10565"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp312-cp312-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8150d7a1c2b457471fa805c7a2762b91",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3444889,
            "upload_time": "2024-06-13T21:48:35",
            "upload_time_iso_8601": "2024-06-13T21:48:35.469178Z",
            "url": "https://files.pythonhosted.org/packages/b9/e6/ec811522dafb7b8872592b7bb0c81110fee0196862b30808dcdff93ff0a5/pyskani-0.1.2-cp312-cp312-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2bfcdf90081586ecfd6af578b27b6040a1204ae11a54f6e60d09419da57e64e3",
                "md5": "502715772a1be97497e04851f6246609",
                "sha256": "2ea41872f415bd54d21b5d2cbb75c012ba9ec4233d94e593baa68d09e42c6166"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "502715772a1be97497e04851f6246609",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3399143,
            "upload_time": "2024-06-13T21:48:37",
            "upload_time_iso_8601": "2024-06-13T21:48:37.305077Z",
            "url": "https://files.pythonhosted.org/packages/2b/fc/df90081586ecfd6af578b27b6040a1204ae11a54f6e60d09419da57e64e3/pyskani-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8ce6a42472ff9a05b435ac71693687e9e3697fcc4a16c386988e253e3902b8bb",
                "md5": "14707a8d470bb7d0b716eb9780fe0a42",
                "sha256": "8e3fb530fbe64339cf875a0e8081f2b51c9c455f55f3773a285554fdbaed7ef0"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "14707a8d470bb7d0b716eb9780fe0a42",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3395217,
            "upload_time": "2024-06-13T21:48:39",
            "upload_time_iso_8601": "2024-06-13T21:48:39.131403Z",
            "url": "https://files.pythonhosted.org/packages/8c/e6/a42472ff9a05b435ac71693687e9e3697fcc4a16c386988e253e3902b8bb/pyskani-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d62ee41c40242cf820e16435764e97b8129c1848dacfb03855d7ca3123a9b92",
                "md5": "890cdb97e9a2a41c7bb3aae1de30caa6",
                "sha256": "bad28ee438c6ddd015e95434c5e403f16eafc40a39ed9914b40a34c5c987105a"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "890cdb97e9a2a41c7bb3aae1de30caa6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3287382,
            "upload_time": "2024-06-13T21:48:41",
            "upload_time_iso_8601": "2024-06-13T21:48:41.202818Z",
            "url": "https://files.pythonhosted.org/packages/8d/62/ee41c40242cf820e16435764e97b8129c1848dacfb03855d7ca3123a9b92/pyskani-0.1.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b3e6ae92d6559d7e449f8236d0c9a85a717f868911904e58623c1cf66afaae04",
                "md5": "d3bc10aec282463e756bc122c21d2782",
                "sha256": "898c3f699c4ce3b4ed471c6b43aa106fbd2f8768b78b27a2569aee2d5a79a2c0"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp37-cp37m-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d3bc10aec282463e756bc122c21d2782",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3441832,
            "upload_time": "2024-06-13T21:48:43",
            "upload_time_iso_8601": "2024-06-13T21:48:43.262191Z",
            "url": "https://files.pythonhosted.org/packages/b3/e6/ae92d6559d7e449f8236d0c9a85a717f868911904e58623c1cf66afaae04/pyskani-0.1.2-cp37-cp37m-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "750914edc848169a1e9a0ee731639ac55a5a693019f61d20cdd9f55861cd5da0",
                "md5": "4b1915aaccf7a43b58ec5649ca21c53d",
                "sha256": "50023741d4ab74d2d6e2dd99467af661262d85d590974c49cb76900b4db16153"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4b1915aaccf7a43b58ec5649ca21c53d",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3398589,
            "upload_time": "2024-06-13T21:48:45",
            "upload_time_iso_8601": "2024-06-13T21:48:45.351414Z",
            "url": "https://files.pythonhosted.org/packages/75/09/14edc848169a1e9a0ee731639ac55a5a693019f61d20cdd9f55861cd5da0/pyskani-0.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "69379cfa0bd7a023ee19a25bec3cb7a660da7f41f7fd3cf4d63068f8c6140315",
                "md5": "ad769dbd4fc32813871d65aecaeb484c",
                "sha256": "e2df9c51f337cb29ed451cc20ff23115af133ce3bfcb5c8f06544979e188d3ea"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ad769dbd4fc32813871d65aecaeb484c",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3395059,
            "upload_time": "2024-06-13T21:48:47",
            "upload_time_iso_8601": "2024-06-13T21:48:47.246908Z",
            "url": "https://files.pythonhosted.org/packages/69/37/9cfa0bd7a023ee19a25bec3cb7a660da7f41f7fd3cf4d63068f8c6140315/pyskani-0.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1b880efa661c472a4e832a6a9a39acb2ff8e04aa0a03339d0e60d31a545e0a6",
                "md5": "9ff16f92a0a54d3e1e65adcc8b427b37",
                "sha256": "caee28ad44cffd0d7ba271438efd7e132265fabf428599eb1e4e7a5273a78776"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9ff16f92a0a54d3e1e65adcc8b427b37",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.7",
            "size": 3287404,
            "upload_time": "2024-06-13T21:48:49",
            "upload_time_iso_8601": "2024-06-13T21:48:49.203641Z",
            "url": "https://files.pythonhosted.org/packages/d1/b8/80efa661c472a4e832a6a9a39acb2ff8e04aa0a03339d0e60d31a545e0a6/pyskani-0.1.2-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fb26db2575d8bc6c28d9ec944c875a0e36cf0cb3fc75f4acf55a06dde8dfdd52",
                "md5": "99b1218dc8cc69be155938c45453953d",
                "sha256": "7e58fbfa25032c63c7f41c962aa21698b6b8e07714ea95fa2d9fd2498ebdf886"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp38-cp38-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "99b1218dc8cc69be155938c45453953d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3335639,
            "upload_time": "2024-06-13T21:48:51",
            "upload_time_iso_8601": "2024-06-13T21:48:51.343055Z",
            "url": "https://files.pythonhosted.org/packages/fb/26/db2575d8bc6c28d9ec944c875a0e36cf0cb3fc75f4acf55a06dde8dfdd52/pyskani-0.1.2-cp38-cp38-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e75697e0b349c993dab48188143a283511c82456ded0fb70bbffeae6d598f10d",
                "md5": "b092af33b8660898af8d9b050fc90ecf",
                "sha256": "b8918f7b47e0999032d363c817eee000ba90541aed12f1ad2fd5af0b6f5ac5ab"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp38-cp38-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b092af33b8660898af8d9b050fc90ecf",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3442941,
            "upload_time": "2024-06-13T21:48:53",
            "upload_time_iso_8601": "2024-06-13T21:48:53.577542Z",
            "url": "https://files.pythonhosted.org/packages/e7/56/97e0b349c993dab48188143a283511c82456ded0fb70bbffeae6d598f10d/pyskani-0.1.2-cp38-cp38-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f01fbbbdd37b5fdc5ff52d15c6680ab30085b9436b75858f14cc32e4eb462f75",
                "md5": "84f8604ce72034f427d51c4c34979047",
                "sha256": "d6ba2a7c79ff72fe2060bde9097090b95345a11c4239accb7893ce1d095764c6"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "84f8604ce72034f427d51c4c34979047",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3398718,
            "upload_time": "2024-06-13T21:48:55",
            "upload_time_iso_8601": "2024-06-13T21:48:55.745081Z",
            "url": "https://files.pythonhosted.org/packages/f0/1f/bbbdd37b5fdc5ff52d15c6680ab30085b9436b75858f14cc32e4eb462f75/pyskani-0.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4f452840c9b03e1ca4495af6d65331759a32b76ffef404a3af9a810c9287d5d9",
                "md5": "e6574c426002e4e8a3225c3fa445a80a",
                "sha256": "5d40fc6d6c035b96d3a51f01cffe468cec75064c29c6aab5be7b40c9625f6aa6"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e6574c426002e4e8a3225c3fa445a80a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3395266,
            "upload_time": "2024-06-13T21:48:57",
            "upload_time_iso_8601": "2024-06-13T21:48:57.333084Z",
            "url": "https://files.pythonhosted.org/packages/4f/45/2840c9b03e1ca4495af6d65331759a32b76ffef404a3af9a810c9287d5d9/pyskani-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "de11db56578a8abfefee567e939c60ba0f1c537d606442039e5523e4d005ecf8",
                "md5": "0dfd8457e77fb21442eac395e3437031",
                "sha256": "eafcee245dc808b4bdfaca517a01ae0cdd634161319fc84eff28b498ca2eac51"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0dfd8457e77fb21442eac395e3437031",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3287246,
            "upload_time": "2024-06-13T21:48:58",
            "upload_time_iso_8601": "2024-06-13T21:48:58.865087Z",
            "url": "https://files.pythonhosted.org/packages/de/11/db56578a8abfefee567e939c60ba0f1c537d606442039e5523e4d005ecf8/pyskani-0.1.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5f8ba389dcd3b72a0aeb21cc8623735ff3e522516e55083b33fa6e5786dcbece",
                "md5": "567460791626b30888cf31f402ed1f6e",
                "sha256": "c0f468b5104ac036b85c22ac49eb4f67e8ede6c503cd3313e7a4c0e9b4b8a62a"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp39-cp39-macosx_12_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "567460791626b30888cf31f402ed1f6e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3334572,
            "upload_time": "2024-06-13T21:49:00",
            "upload_time_iso_8601": "2024-06-13T21:49:00.477178Z",
            "url": "https://files.pythonhosted.org/packages/5f/8b/a389dcd3b72a0aeb21cc8623735ff3e522516e55083b33fa6e5786dcbece/pyskani-0.1.2-cp39-cp39-macosx_12_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "454efeda4bca44f536ffb315dfc4a7bd7a52d82f4a0c29eaa2dc7364c17584e4",
                "md5": "13ce862419a30cd11c2ede813a27d57c",
                "sha256": "875e238f01cd7a14b542ca8e6fd03b18fbe621bb3d6f4c8fd0cfa5dac7a342e4"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp39-cp39-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "13ce862419a30cd11c2ede813a27d57c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3442071,
            "upload_time": "2024-06-13T21:49:02",
            "upload_time_iso_8601": "2024-06-13T21:49:02.683326Z",
            "url": "https://files.pythonhosted.org/packages/45/4e/feda4bca44f536ffb315dfc4a7bd7a52d82f4a0c29eaa2dc7364c17584e4/pyskani-0.1.2-cp39-cp39-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "76bc7cd865db0453cdde35781ea29419782618b1d39797c887795f74c035eac1",
                "md5": "04b4cac3f57725cee02b034140c8c71b",
                "sha256": "1c6239d00c605d1d64a41d0681433db2e2a193d98c2836a6397cd7788f171d5f"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "04b4cac3f57725cee02b034140c8c71b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3398563,
            "upload_time": "2024-06-13T21:49:04",
            "upload_time_iso_8601": "2024-06-13T21:49:04.713884Z",
            "url": "https://files.pythonhosted.org/packages/76/bc/7cd865db0453cdde35781ea29419782618b1d39797c887795f74c035eac1/pyskani-0.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c9dd4e5150159f314e2c5ee23abafb9d115008734e074a0da20240c95d7da55",
                "md5": "69fcb4a953a03b902177cd66aeb2d314",
                "sha256": "68e79877c5fa8d843073b6f196eb7c8112ac1cfd8ea65313baca0b203c52f13a"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "69fcb4a953a03b902177cd66aeb2d314",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3394491,
            "upload_time": "2024-06-13T21:49:06",
            "upload_time_iso_8601": "2024-06-13T21:49:06.646958Z",
            "url": "https://files.pythonhosted.org/packages/9c/9d/d4e5150159f314e2c5ee23abafb9d115008734e074a0da20240c95d7da55/pyskani-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8aa44513a6ab67802b6a6c8bae053e8f2e7bf48c9bb06df69d54e7925858f8b",
                "md5": "d6788e3c2923b7423360d1d51a1a56a0",
                "sha256": "a93ed2c75975049075061a680edeca1f464c8533c2ef4c83b3d76eca7c979bab"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d6788e3c2923b7423360d1d51a1a56a0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3287763,
            "upload_time": "2024-06-13T21:49:08",
            "upload_time_iso_8601": "2024-06-13T21:49:08.885079Z",
            "url": "https://files.pythonhosted.org/packages/e8/aa/44513a6ab67802b6a6c8bae053e8f2e7bf48c9bb06df69d54e7925858f8b/pyskani-0.1.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1af82f3e79f953924a955af711344c656bd395aab00fad56ebbdbb4e393423e6",
                "md5": "95d88c0575ed211726d9940ee02d5885",
                "sha256": "63528f124020daa436420df9db2738b7a38592d2460c87adb92b58f1ab398d47"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp310-pypy310_pp73-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "95d88c0575ed211726d9940ee02d5885",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 3443820,
            "upload_time": "2024-06-13T21:49:11",
            "upload_time_iso_8601": "2024-06-13T21:49:11.113191Z",
            "url": "https://files.pythonhosted.org/packages/1a/f8/2f3e79f953924a955af711344c656bd395aab00fad56ebbdbb4e393423e6/pyskani-0.1.2-pp310-pypy310_pp73-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f472874dcadd23d055492fdd867e010cf2638c58a6fb3909442df570a3b2b6ec",
                "md5": "9b211290f55de2aff0de7682281299a3",
                "sha256": "ab5dbba23b61deaaf2fcfa660ca09736273b7bbc82758365ca13c7421c8a8e8d"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9b211290f55de2aff0de7682281299a3",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 3400355,
            "upload_time": "2024-06-13T21:49:12",
            "upload_time_iso_8601": "2024-06-13T21:49:12.914201Z",
            "url": "https://files.pythonhosted.org/packages/f4/72/874dcadd23d055492fdd867e010cf2638c58a6fb3909442df570a3b2b6ec/pyskani-0.1.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "93e60c3a84f36133596e332105755474e93d624c732bfe0cd8afb802ffa28d76",
                "md5": "dd45578502ac6960df580da5ada20f7a",
                "sha256": "650f85731fbd567a6bb2a7dd10ebe160f3437614896ddc2d1066699bde4b3fbc"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "dd45578502ac6960df580da5ada20f7a",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 3395420,
            "upload_time": "2024-06-13T21:49:15",
            "upload_time_iso_8601": "2024-06-13T21:49:15.666154Z",
            "url": "https://files.pythonhosted.org/packages/93/e6/0c3a84f36133596e332105755474e93d624c732bfe0cd8afb802ffa28d76/pyskani-0.1.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "18471dd8a6ce82382ca6e02d2a8e3730e9cdd7e4613f38dc203e0f3c62d3e84c",
                "md5": "fd3a38496ab584e32cb71c43cb95706e",
                "sha256": "a94f191fa8bec7aa524a269bf67fe982242bb33c62499a8c40e5e57ad6a5d13f"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp310-pypy310_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fd3a38496ab584e32cb71c43cb95706e",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 3288631,
            "upload_time": "2024-06-13T21:49:17",
            "upload_time_iso_8601": "2024-06-13T21:49:17.776078Z",
            "url": "https://files.pythonhosted.org/packages/18/47/1dd8a6ce82382ca6e02d2a8e3730e9cdd7e4613f38dc203e0f3c62d3e84c/pyskani-0.1.2-pp310-pypy310_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8b1f2d62c2ce1d15c2ece34d1bcdb0b1041518d4051a3fb8adc4fe10348d520c",
                "md5": "775e8e0b4ddd326550ad410df77a2736",
                "sha256": "c490dc30ec77bcbb9a03b9efcd67506e6b7ee0ba4b30c918a41ee0e3e1a03331"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp37-pypy37_pp73-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "775e8e0b4ddd326550ad410df77a2736",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 3446987,
            "upload_time": "2024-06-13T21:49:19",
            "upload_time_iso_8601": "2024-06-13T21:49:19.563500Z",
            "url": "https://files.pythonhosted.org/packages/8b/1f/2d62c2ce1d15c2ece34d1bcdb0b1041518d4051a3fb8adc4fe10348d520c/pyskani-0.1.2-pp37-pypy37_pp73-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "26f9a0544590f82f7b466649d12b42624cbc1777e13c691025055b6ed21996fc",
                "md5": "e697f523fea9b717c09585f758623bf1",
                "sha256": "4684d427e6234ba64fedc8a7100f119b3905780fc1d9908d29b453b1275da822"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e697f523fea9b717c09585f758623bf1",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 3403013,
            "upload_time": "2024-06-13T21:49:21",
            "upload_time_iso_8601": "2024-06-13T21:49:21.393076Z",
            "url": "https://files.pythonhosted.org/packages/26/f9/a0544590f82f7b466649d12b42624cbc1777e13c691025055b6ed21996fc/pyskani-0.1.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1ed30d52dd8ff966f11d7a9b11810c26c30183023ea7e97c6bc065bb3a5171ba",
                "md5": "599fe2900adb2d8a811bb1d344bf6487",
                "sha256": "b940d259de2241edb0372f93b4a4c52024ea3c6575882c971bdc43b3460e0eba"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "599fe2900adb2d8a811bb1d344bf6487",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 3399134,
            "upload_time": "2024-06-13T21:49:23",
            "upload_time_iso_8601": "2024-06-13T21:49:23.402642Z",
            "url": "https://files.pythonhosted.org/packages/1e/d3/0d52dd8ff966f11d7a9b11810c26c30183023ea7e97c6bc065bb3a5171ba/pyskani-0.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "117fc839cc27b56fbdecee4c0f2f6d41ef6e4ddf02623d47d0aa994144978add",
                "md5": "b541ff2bddeb92369315b80a063c4d5a",
                "sha256": "f9068ae29e222397604f40b61f684ed0015fa1cc21ccf0c800329128f3872b9a"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp37-pypy37_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b541ff2bddeb92369315b80a063c4d5a",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.7",
            "size": 3290762,
            "upload_time": "2024-06-13T21:49:25",
            "upload_time_iso_8601": "2024-06-13T21:49:25.167660Z",
            "url": "https://files.pythonhosted.org/packages/11/7f/c839cc27b56fbdecee4c0f2f6d41ef6e4ddf02623d47d0aa994144978add/pyskani-0.1.2-pp37-pypy37_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "19233470079426a2e755b327ea3a4ad0490fadc5f6e54f60d25afd32e2c81a53",
                "md5": "7522428b22db62a12ca35703b1e123ca",
                "sha256": "a9c40677957689aab0758ee0da9a1d7a01416a5e1e5239bd16fcaf066c9d029f"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp38-pypy38_pp73-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7522428b22db62a12ca35703b1e123ca",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 3444357,
            "upload_time": "2024-06-13T21:49:27",
            "upload_time_iso_8601": "2024-06-13T21:49:27.396907Z",
            "url": "https://files.pythonhosted.org/packages/19/23/3470079426a2e755b327ea3a4ad0490fadc5f6e54f60d25afd32e2c81a53/pyskani-0.1.2-pp38-pypy38_pp73-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6f3fb73a0cc5c7fd11fd5bf9a022fb2c2b968f9d12301dd72d39b8cf0ebc8418",
                "md5": "e89132f593a61bfe7a3f0249e4625e77",
                "sha256": "d079790ab279eac627593983dbbf51444a4f3febfd7fe086277d7216bb7a8d7a"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e89132f593a61bfe7a3f0249e4625e77",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 3401393,
            "upload_time": "2024-06-13T21:49:29",
            "upload_time_iso_8601": "2024-06-13T21:49:29.516298Z",
            "url": "https://files.pythonhosted.org/packages/6f/3f/b73a0cc5c7fd11fd5bf9a022fb2c2b968f9d12301dd72d39b8cf0ebc8418/pyskani-0.1.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02b78e39ac888a2083a2295cb16c1a7195b6156bb5ad50df7963b31d4dad5d20",
                "md5": "977fb5e58f65167162ab07cae06976fd",
                "sha256": "a599389b7d0102a1744b3f3871133d3a79cd9a5623d2b1d8ec1e312b96c003e7"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "977fb5e58f65167162ab07cae06976fd",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 3396121,
            "upload_time": "2024-06-13T21:49:31",
            "upload_time_iso_8601": "2024-06-13T21:49:31.113457Z",
            "url": "https://files.pythonhosted.org/packages/02/b7/8e39ac888a2083a2295cb16c1a7195b6156bb5ad50df7963b31d4dad5d20/pyskani-0.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b59ce64df4354fe2da44461d59e9c014b335bf4caca59b3fd033a5cb68515a9a",
                "md5": "efe9c165fc09421695e30aca5e4269bb",
                "sha256": "c96087aad2ac4a479b8a3462ed9cfd1ad22ae9cd803eb5abf36e4b919c2419d3"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp38-pypy38_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "efe9c165fc09421695e30aca5e4269bb",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.7",
            "size": 3288938,
            "upload_time": "2024-06-13T21:49:33",
            "upload_time_iso_8601": "2024-06-13T21:49:33.479044Z",
            "url": "https://files.pythonhosted.org/packages/b5/9c/e64df4354fe2da44461d59e9c014b335bf4caca59b3fd033a5cb68515a9a/pyskani-0.1.2-pp38-pypy38_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f8cf7ca462b745ff98f29a5117a04b64c7db1269d0fe700c6ac5905b41729a0b",
                "md5": "fa5a2a7c131fde4ed9ff23f8bd464210",
                "sha256": "1fb526588583e5ca6a613969970fd5e55de3693af2aba37ff41e6d07ce8e3b59"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp39-pypy39_pp73-macosx_12_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fa5a2a7c131fde4ed9ff23f8bd464210",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 3444737,
            "upload_time": "2024-06-13T21:49:35",
            "upload_time_iso_8601": "2024-06-13T21:49:35.194446Z",
            "url": "https://files.pythonhosted.org/packages/f8/cf/7ca462b745ff98f29a5117a04b64c7db1269d0fe700c6ac5905b41729a0b/pyskani-0.1.2-pp39-pypy39_pp73-macosx_12_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cc78e8aa670e1f50e0ee768955427862d89cb0f3b9f70dba423e24efa0b247d1",
                "md5": "2587586115332dcd294d82859b270be4",
                "sha256": "11d75a4bfde6c6800130a5c77c2d94a003fc5cf5281ef084d1814af6b6ecc93e"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2587586115332dcd294d82859b270be4",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 3400743,
            "upload_time": "2024-06-13T21:49:36",
            "upload_time_iso_8601": "2024-06-13T21:49:36.888965Z",
            "url": "https://files.pythonhosted.org/packages/cc/78/e8aa670e1f50e0ee768955427862d89cb0f3b9f70dba423e24efa0b247d1/pyskani-0.1.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa2fc383f4dc15174d2fd2e891259e893dccc92336f6c04ffcb7a50084b14d98",
                "md5": "3da907166e98b1545293576b00d597c1",
                "sha256": "d90a3b9cadb409604020cb4a10e3cc6a842366d3008f355bc81f33c6855328a2"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3da907166e98b1545293576b00d597c1",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 3396323,
            "upload_time": "2024-06-13T21:49:39",
            "upload_time_iso_8601": "2024-06-13T21:49:39.013126Z",
            "url": "https://files.pythonhosted.org/packages/aa/2f/c383f4dc15174d2fd2e891259e893dccc92336f6c04ffcb7a50084b14d98/pyskani-0.1.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "043e183322af5df468dcdaa7309d53519a13f43424625f24a4350ba11873b2e5",
                "md5": "f53d471f090d17dac599bca5d22fba66",
                "sha256": "435234c982b2f344200637acb7fbed71dc57e85837914601048adfc32ba20182"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2-pp39-pypy39_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f53d471f090d17dac599bca5d22fba66",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 3289143,
            "upload_time": "2024-06-13T21:49:40",
            "upload_time_iso_8601": "2024-06-13T21:49:40.633102Z",
            "url": "https://files.pythonhosted.org/packages/04/3e/183322af5df468dcdaa7309d53519a13f43424625f24a4350ba11873b2e5/pyskani-0.1.2-pp39-pypy39_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43f60d017193e0c7d935d3cc88ea6e0348ece012d2b645bbc5e8037808e069b4",
                "md5": "1f63549a823556563fb2e4e983d9156b",
                "sha256": "f40880a32583699d80657182807fdae74d6a6b2881912148c1e6da0f41ccc38b"
            },
            "downloads": -1,
            "filename": "pyskani-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "1f63549a823556563fb2e4e983d9156b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 2877370,
            "upload_time": "2024-06-13T21:49:42",
            "upload_time_iso_8601": "2024-06-13T21:49:42.660397Z",
            "url": "https://files.pythonhosted.org/packages/43/f6/0d017193e0c7d935d3cc88ea6e0348ece012d2b645bbc5e8037808e069b4/pyskani-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-13 21:49:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "althonos",
    "github_project": "pyskani",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyskani"
}
        
Elapsed time: 0.29455s