pyskani


Namepyskani JSON
Version 0.2.0 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_time2025-08-20 23:17:48
maintainerNone
docs_urlNone
authorMartin Larralde <martin.larralde@embl.de>
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/badge/dynamic/regex?url=https%3A%2F%2Fpepy.tech%2Fprojects%2Fpyskani&search=%5B0-9%5D%2B.%5B0-9%5D%2B(k%7CM)&style=flat-square&label=downloads&color=303f9f&cacheSeconds=86400)](https://pepy.tech/project/pyskani)
[![Paper](https://img.shields.io/badge/paper-nargab%2Flqaf095-darkblue?style=flat-square&maxAge=2678400)](https://academic.oup.com/nargab/article/7/3/lqaf095/8196481)

## πŸ—ΊοΈ Overview

`skani`[\[1\]](#ref1) 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.

## πŸ”– Citation

If you found Pyskani useful, please cite [our paper](https://academic.oup.com/nargab/article/7/3/lqaf095/8196481), as well as the original [skani paper](https://www.nature.com/articles/s41592-023-02018-3).

To cite Pyskani:

> Martin Larralde, Georg Zeller, Laura M. Carroll. 2025. PyOrthoANI, PyFastANI, and Pyskani: a suite of Python libraries for computation of average nucleotide identity. *NAR Genomics and Bioinformatics* 7(3):lqaf095. doi:10.1093/nargab/lqaf095.

To cite skani:

> Jim Shaw, Yun William Yu. 2023. Fast and robust metagenomic sequence comparison through sparse chaining with skani. *Nature Methods* 20(11):1661-1665. doi:10.1038/s41592-023-02018-3.

## πŸ’‘ 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).*

## πŸ“š References

- <a id="ref1">\[1\]</a> Jim Shaw and Yun William Yu. 'Fast and robust metagenomic sequence comparison through sparse chaining with skani' (2023). Nature Methods. [doi:10.1038/s41592-023-02018-3](https://doi.org/10.1038/s41592-023-02018-3). [PMID:37735570](https://pubmed.ncbi.nlm.nih.gov/37735570/).


            

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 <martin.larralde@embl.de>",
    "author_email": "Martin Larralde <martin.larralde@embl.de>",
    "download_url": "https://files.pythonhosted.org/packages/f9/5e/9ee2df677224af9f9c55eda6524c98c7f10c1b5fd96ad033ba47d5e09435/pyskani-0.2.0.tar.gz",
    "platform": null,
    "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/badge/dynamic/regex?url=https%3A%2F%2Fpepy.tech%2Fprojects%2Fpyskani&search=%5B0-9%5D%2B.%5B0-9%5D%2B(k%7CM)&style=flat-square&label=downloads&color=303f9f&cacheSeconds=86400)](https://pepy.tech/project/pyskani)\n[![Paper](https://img.shields.io/badge/paper-nargab%2Flqaf095-darkblue?style=flat-square&maxAge=2678400)](https://academic.oup.com/nargab/article/7/3/lqaf095/8196481)\n\n## \ud83d\uddfa\ufe0f Overview\n\n`skani`[\\[1\\]](#ref1) 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## \ud83d\udd16 Citation\n\nIf you found Pyskani useful, please cite [our paper](https://academic.oup.com/nargab/article/7/3/lqaf095/8196481), as well as the original [skani paper](https://www.nature.com/articles/s41592-023-02018-3).\n\nTo cite Pyskani:\n\n> Martin Larralde, Georg Zeller, Laura M. Carroll. 2025. PyOrthoANI, PyFastANI, and Pyskani: a suite of Python libraries for computation of average nucleotide identity. *NAR Genomics and Bioinformatics* 7(3):lqaf095. doi:10.1093/nargab/lqaf095.\n\nTo cite skani:\n\n> Jim Shaw, Yun William Yu. 2023. Fast and robust metagenomic sequence comparison through sparse chaining with skani. *Nature Methods* 20(11):1661-1665. doi:10.1038/s41592-023-02018-3.\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\n## \ud83d\udcda References\n\n- <a id=\"ref1\">\\[1\\]</a> Jim Shaw and Yun William Yu. 'Fast and robust metagenomic sequence comparison through sparse chaining with skani' (2023). Nature Methods. [doi:10.1038/s41592-023-02018-3](https://doi.org/10.1038/s41592-023-02018-3). [PMID:37735570](https://pubmed.ncbi.nlm.nih.gov/37735570/).\n\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.2.0",
    "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",
        "Documentation": "https://pyskani.readthedocs.io",
        "Homepage": "https://github.com/althonos/pyskani/",
        "PyPI": "https://pypi.org/project/pyskani"
    },
    "split_keywords": [
        "bioinformatics",
        " genomics",
        " average",
        " nucleotide",
        " identity"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d6df9e8cee4072d3df21d6f3402a6f38e9957de18b9f7acc5f3f4139e993c8ca",
                "md5": "991e7a62b54076b65cbdb18a8cf869da",
                "sha256": "d0efc0d143a37dc13bf367b62b3bcce46e49525fe595d3ec07c3284c24a15458"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "991e7a62b54076b65cbdb18a8cf869da",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3457314,
            "upload_time": "2025-08-20T23:17:02",
            "upload_time_iso_8601": "2025-08-20T23:17:02.401682Z",
            "url": "https://files.pythonhosted.org/packages/d6/df/9e8cee4072d3df21d6f3402a6f38e9957de18b9f7acc5f3f4139e993c8ca/pyskani-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "789fbcf49c05b72144cfdf27f2a5455f97f3272a4926ad6b602355aaf46b59d9",
                "md5": "3dfa9481a287fe4117f9492226474adb",
                "sha256": "48d2252b1804c848d2e64d98a418648f5fdb27f35769d8cba29aefd973727d04"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3dfa9481a287fe4117f9492226474adb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3463044,
            "upload_time": "2025-08-20T23:17:04",
            "upload_time_iso_8601": "2025-08-20T23:17:04.113876Z",
            "url": "https://files.pythonhosted.org/packages/78/9f/bcf49c05b72144cfdf27f2a5455f97f3272a4926ad6b602355aaf46b59d9/pyskani-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d022996df37b34affe0eeab3ed6168a9775448d751b0269ee158bf81fced61c7",
                "md5": "a9a6061a8767a5ab4bbb6510e12b17dd",
                "sha256": "0245137eb769a204b503fa24af35e763c8dc749d8d1e5a97ba63f9054c4fc589"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a9a6061a8767a5ab4bbb6510e12b17dd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3334973,
            "upload_time": "2025-08-20T23:17:05",
            "upload_time_iso_8601": "2025-08-20T23:17:05.649598Z",
            "url": "https://files.pythonhosted.org/packages/d0/22/996df37b34affe0eeab3ed6168a9775448d751b0269ee158bf81fced61c7/pyskani-0.2.0-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dfbd7b595688667352a9fc790b88e040ad0128d00ffa8af281ef25a3a457ec94",
                "md5": "a463caf11c66ea2445371e9cbd68511f",
                "sha256": "64f643b881bd9369c25e85286c0c0b0d955cc61688cb09b417d0c14a7dc3a8ac"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a463caf11c66ea2445371e9cbd68511f",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3416589,
            "upload_time": "2025-08-20T23:17:07",
            "upload_time_iso_8601": "2025-08-20T23:17:07.378149Z",
            "url": "https://files.pythonhosted.org/packages/df/bd/7b595688667352a9fc790b88e040ad0128d00ffa8af281ef25a3a457ec94/pyskani-0.2.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "093f59558acea4f77e5865f3505a6e276ad5906436171488204e24b3623bc28d",
                "md5": "449a7412dd14ffe94c4b911d0df31bbe",
                "sha256": "193eee68dae81a421194eb9a4edfd5e584584864164bd637d4550030c0214a20"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "449a7412dd14ffe94c4b911d0df31bbe",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3408996,
            "upload_time": "2025-08-20T23:17:09",
            "upload_time_iso_8601": "2025-08-20T23:17:09.366418Z",
            "url": "https://files.pythonhosted.org/packages/09/3f/59558acea4f77e5865f3505a6e276ad5906436171488204e24b3623bc28d/pyskani-0.2.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1eb3f0e8e775c712b4bc624c9f7bc8078dee698cc398ac870c845c03ab201dd1",
                "md5": "499306c9317b59fde0b2ca3f73b35dbb",
                "sha256": "2767ef02d002385344a89581154c857ef7e0636898ca9e658e2c06151829e2cd"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "499306c9317b59fde0b2ca3f73b35dbb",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3456881,
            "upload_time": "2025-08-20T23:17:16",
            "upload_time_iso_8601": "2025-08-20T23:17:16.416034Z",
            "url": "https://files.pythonhosted.org/packages/1e/b3/f0e8e775c712b4bc624c9f7bc8078dee698cc398ac870c845c03ab201dd1/pyskani-0.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8bbcd43f351623edf9107ae06bb74da37217f63af145ed3440a9319d40faaddd",
                "md5": "c40a875228342b336816c7da601b075a",
                "sha256": "aa2f1148b8fe0aad173ce63cae191e43b762094d7b389388aa6948a0463bbcb5"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c40a875228342b336816c7da601b075a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3463167,
            "upload_time": "2025-08-20T23:17:18",
            "upload_time_iso_8601": "2025-08-20T23:17:18.433356Z",
            "url": "https://files.pythonhosted.org/packages/8b/bc/d43f351623edf9107ae06bb74da37217f63af145ed3440a9319d40faaddd/pyskani-0.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bec93214b74085395a6d123fd44a898a5d057b3d92bf31b4ea974c47427a24f7",
                "md5": "46f1c6d0225e24877ca1143b024b8ac9",
                "sha256": "53a9eba239086ecac4d4664bbaa6483474404a531d9c7a4cb6de3c6921ca7d39"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "46f1c6d0225e24877ca1143b024b8ac9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3334902,
            "upload_time": "2025-08-20T23:17:21",
            "upload_time_iso_8601": "2025-08-20T23:17:21.834096Z",
            "url": "https://files.pythonhosted.org/packages/be/c9/3214b74085395a6d123fd44a898a5d057b3d92bf31b4ea974c47427a24f7/pyskani-0.2.0-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a2d4792b0e3e25ccb6d84f1f62da5a43fb70452fe00555add0bc7141599bc35",
                "md5": "d0481c6d2954da6840014b527b5e9626",
                "sha256": "904d7a85a8eed35ea1adbb477c84024790016e46f659ab19a2cba6e3875beea6"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d0481c6d2954da6840014b527b5e9626",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3413453,
            "upload_time": "2025-08-20T23:17:23",
            "upload_time_iso_8601": "2025-08-20T23:17:23.403749Z",
            "url": "https://files.pythonhosted.org/packages/4a/2d/4792b0e3e25ccb6d84f1f62da5a43fb70452fe00555add0bc7141599bc35/pyskani-0.2.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6948a583a88c8997b90a87e5de8373136190f4725533119ad2b6bbda3015ea9c",
                "md5": "b3c40185b67b8534e31a36ae2cff20fd",
                "sha256": "33f700999736003f75a1fb62ad28fd2aa6cd87e119c223b02bede758bd41aa79"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b3c40185b67b8534e31a36ae2cff20fd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3405057,
            "upload_time": "2025-08-20T23:17:25",
            "upload_time_iso_8601": "2025-08-20T23:17:25.319903Z",
            "url": "https://files.pythonhosted.org/packages/69/48/a583a88c8997b90a87e5de8373136190f4725533119ad2b6bbda3015ea9c/pyskani-0.2.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8b6f5dfd6cc42984f9b36bbc6d0ab38bb014cdcda5d9c05acc6856eb3ce300bc",
                "md5": "af43932c21d2f7beb2081b27a0179bac",
                "sha256": "ce2c8a703ca978a187c017b3ca66524d016596525b4fb05b4f916ddb6321066c"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "af43932c21d2f7beb2081b27a0179bac",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3456971,
            "upload_time": "2025-08-20T23:17:27",
            "upload_time_iso_8601": "2025-08-20T23:17:27.130805Z",
            "url": "https://files.pythonhosted.org/packages/8b/6f/5dfd6cc42984f9b36bbc6d0ab38bb014cdcda5d9c05acc6856eb3ce300bc/pyskani-0.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8c5a11901f78397a0227f9b10d4289281c3417258c334b132d6688a5cdedeb7f",
                "md5": "9f1ea43ce8f6824318fe138891812cf5",
                "sha256": "966ccdbcd3acff9047036c6b1b5009f8a02442e263a30aaed3e33b00255640e7"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9f1ea43ce8f6824318fe138891812cf5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3462247,
            "upload_time": "2025-08-20T23:17:28",
            "upload_time_iso_8601": "2025-08-20T23:17:28.562524Z",
            "url": "https://files.pythonhosted.org/packages/8c/5a/11901f78397a0227f9b10d4289281c3417258c334b132d6688a5cdedeb7f/pyskani-0.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "588531e4469a7b86cf67077f2e3b7de8f5871ff4544712ac3e3f18a992cfca54",
                "md5": "7ed95fcd6cef8a7596076332851d4e68",
                "sha256": "29b4449fe76ec40f4b41490796c6136715d9d3efbe6f60ec99fd3d0619ca609b"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7ed95fcd6cef8a7596076332851d4e68",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3335479,
            "upload_time": "2025-08-20T23:17:30",
            "upload_time_iso_8601": "2025-08-20T23:17:30.431841Z",
            "url": "https://files.pythonhosted.org/packages/58/85/31e4469a7b86cf67077f2e3b7de8f5871ff4544712ac3e3f18a992cfca54/pyskani-0.2.0-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "89b48a3d61a63d8a67de2645b29a2778fb17922b58a62c48d71c8bb305be467a",
                "md5": "e46ceccbc6236962372f453cad6011e2",
                "sha256": "929b66e08fa13193179be21034e1a8dcb648556faacef813e4f5ed4493e0eae1"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e46ceccbc6236962372f453cad6011e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 3456788,
            "upload_time": "2025-08-20T23:17:32",
            "upload_time_iso_8601": "2025-08-20T23:17:32.313051Z",
            "url": "https://files.pythonhosted.org/packages/89/b4/8a3d61a63d8a67de2645b29a2778fb17922b58a62c48d71c8bb305be467a/pyskani-0.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a6fcde3d30470256c543094e2354f7b92cb692d0b7a6e682e3ad3c6637e30a1c",
                "md5": "1b75b786de550e0d82ee509c673c78b6",
                "sha256": "7571af33f8262206199fa7b4cd37024c35b4a4f1e8a5581ce4b4db092a400cef"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp313-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1b75b786de550e0d82ee509c673c78b6",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 3335111,
            "upload_time": "2025-08-20T23:17:33",
            "upload_time_iso_8601": "2025-08-20T23:17:33.752952Z",
            "url": "https://files.pythonhosted.org/packages/a6/fc/de3d30470256c543094e2354f7b92cb692d0b7a6e682e3ad3c6637e30a1c/pyskani-0.2.0-cp313-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e47bd5e3aa83277ddc95c045871d4db9152c0629b908b59fb577852d0cce0d10",
                "md5": "ac581fda738de63cbb40981f127ce574",
                "sha256": "ab7773e77d893857e7807219ca0392fe6d07c126ed66c714c28d50ec808d4340"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ac581fda738de63cbb40981f127ce574",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3456707,
            "upload_time": "2025-08-20T23:17:35",
            "upload_time_iso_8601": "2025-08-20T23:17:35.361320Z",
            "url": "https://files.pythonhosted.org/packages/e4/7b/d5e3aa83277ddc95c045871d4db9152c0629b908b59fb577852d0cce0d10/pyskani-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "131c06ea1fcb88a5def8025fae2684f9f8f4aacc7a2e356e5a8987589bab1def",
                "md5": "2bbd9b025c5c9153f9573c2fab539acf",
                "sha256": "1092ffde3434d79ee87a753d65961f0602eff57b6b2c8e2b454e029499b73838"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2bbd9b025c5c9153f9573c2fab539acf",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7",
            "size": 3462897,
            "upload_time": "2025-08-20T23:17:36",
            "upload_time_iso_8601": "2025-08-20T23:17:36.924208Z",
            "url": "https://files.pythonhosted.org/packages/13/1c/06ea1fcb88a5def8025fae2684f9f8f4aacc7a2e356e5a8987589bab1def/pyskani-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "babbb498df8ad869f81b35f7c1c9e00ee791795c1087c1beec0b6895944f7468",
                "md5": "15831d90482544e29ed8483ac125aeb5",
                "sha256": "0abdd724d19b3e1559f5013f9d1f4aa2bf454339206c69b13f1937b49a2c4497"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "15831d90482544e29ed8483ac125aeb5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3457827,
            "upload_time": "2025-08-20T23:17:38",
            "upload_time_iso_8601": "2025-08-20T23:17:38.407068Z",
            "url": "https://files.pythonhosted.org/packages/ba/bb/b498df8ad869f81b35f7c1c9e00ee791795c1087c1beec0b6895944f7468/pyskani-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c631f3f498cbd6d125d925315e5804a217dee56e72e821cd70252d440f250f74",
                "md5": "c6924b110afe5c3f3eb2fab8e6fdea39",
                "sha256": "cc2d39b04d81f0d7da6c9398cfcf8a89b131171f6fa9641e4e25b82b199b8cb7"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c6924b110afe5c3f3eb2fab8e6fdea39",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3463492,
            "upload_time": "2025-08-20T23:17:40",
            "upload_time_iso_8601": "2025-08-20T23:17:40.063831Z",
            "url": "https://files.pythonhosted.org/packages/c6/31/f3f498cbd6d125d925315e5804a217dee56e72e821cd70252d440f250f74/pyskani-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f7a084d02c6dd6fc97e1870f44eba11d64ac71865df11e16353c80f94b507093",
                "md5": "4992242dbd9f98cec5d07d4b0a178ffa",
                "sha256": "9b5c77843280f312b8ce99570441bdeb8a90d488d346db7fc5d873405afad4e4"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "4992242dbd9f98cec5d07d4b0a178ffa",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3335430,
            "upload_time": "2025-08-20T23:17:41",
            "upload_time_iso_8601": "2025-08-20T23:17:41.532042Z",
            "url": "https://files.pythonhosted.org/packages/f7/a0/84d02c6dd6fc97e1870f44eba11d64ac71865df11e16353c80f94b507093/pyskani-0.2.0-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f707256c6f3f34463dab04bfb8eb07eb3847ea67332c2ea100775222163bb4d9",
                "md5": "5fe11507d9c636381ef62daab3d67afa",
                "sha256": "7c047a85a2d6fb9684faae3a270eaf38f4875f46b2934d7f225d439fc8a960c0"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5fe11507d9c636381ef62daab3d67afa",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 3458325,
            "upload_time": "2025-08-20T23:17:43",
            "upload_time_iso_8601": "2025-08-20T23:17:43.179284Z",
            "url": "https://files.pythonhosted.org/packages/f7/07/256c6f3f34463dab04bfb8eb07eb3847ea67332c2ea100775222163bb4d9/pyskani-0.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aebfafea93a151fe584291f3f1815803db727c24c3e80a8bcfbe808b78d84366",
                "md5": "512d62c33e46061c3138455ef86a70c0",
                "sha256": "995cb04b1132ae10ca2442a7706f79a9425c7250894ebed18c8662682866fca3"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "512d62c33e46061c3138455ef86a70c0",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.7",
            "size": 3464956,
            "upload_time": "2025-08-20T23:17:44",
            "upload_time_iso_8601": "2025-08-20T23:17:44.703765Z",
            "url": "https://files.pythonhosted.org/packages/ae/bf/afea93a151fe584291f3f1815803db727c24c3e80a8bcfbe808b78d84366/pyskani-0.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f7963f4dce09ee7909ff24c62f4668e213b69270a78f78f01b369a499f307340",
                "md5": "0a1e2178560f4c0c62bb043022d3338c",
                "sha256": "4a8cbf8ef64f999e4853398144bfbbd11c19e235ce02e1fc51f837e34398c0f3"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0a1e2178560f4c0c62bb043022d3338c",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.7",
            "size": 3458099,
            "upload_time": "2025-08-20T23:17:46",
            "upload_time_iso_8601": "2025-08-20T23:17:46.886798Z",
            "url": "https://files.pythonhosted.org/packages/f7/96/3f4dce09ee7909ff24c62f4668e213b69270a78f78f01b369a499f307340/pyskani-0.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f95e9ee2df677224af9f9c55eda6524c98c7f10c1b5fd96ad033ba47d5e09435",
                "md5": "abb58540d15bba333d52533d7de95882",
                "sha256": "270bbc09fb1115208348f2456b859149f91b9d9867c1526c4d379aef232c9bc9"
            },
            "downloads": -1,
            "filename": "pyskani-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "abb58540d15bba333d52533d7de95882",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 2895673,
            "upload_time": "2025-08-20T23:17:48",
            "upload_time_iso_8601": "2025-08-20T23:17:48.903353Z",
            "url": "https://files.pythonhosted.org/packages/f9/5e/9ee2df677224af9f9c55eda6524c98c7f10c1b5fd96ad033ba47d5e09435/pyskani-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-20 23:17:48",
    "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: 1.11792s