Name | hstrat JSON |
Version |
1.17.2
JSON |
| download |
home_page | https://github.com/mmore500/hstrat |
Summary | hstrat enables phylogenetic inference on distributed digital evolution populations |
upload_time | 2025-01-05 03:57:19 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | MIT license |
keywords |
hstrat
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
![hstrat wordmark](docs/assets/hstrat-wordmark.png)
[
![PyPi](https://img.shields.io/pypi/v/hstrat.svg)
](https://pypi.python.org/pypi/hstrat)
[
![codecov](https://codecov.io/gh/mmore500/hstrat/branch/master/graph/badge.svg?token=JwMfFOpBBD)
](https://codecov.io/gh/mmore500/hstrat)
[
![Codacy Badge](https://app.codacy.com/project/badge/Grade/9ab14d415aa9458d97b4cf760b95f874)
](https://www.codacy.com/gh/mmore500/hstrat/dashboard)
[
![CI](https://github.com/mmore500/hstrat/actions/workflows/ci.yaml/badge.svg)
](https://github.com/mmore500/hstrat/actions)
[
![Read The Docs](https://readthedocs.org/projects/hstrat/badge/?version=latest)
](https://hstrat.readthedocs.io/en/latest/?badge=latest)
[
![GitHub stars](https://img.shields.io/github/stars/mmore500/hstrat.svg?style=round-square&logo=github&label=Stars&logoColor=white)](https://github.com/mmore500/hstrat)
[
![Zenodo](https://zenodo.org/badge/464531144.svg)
](https://zenodo.org/badge/latestdoi/464531144)
[![JOSS](https://joss.theoj.org/papers/10.21105/joss.04866/status.svg)](https://doi.org/10.21105/joss.04866)
_hstrat_ enables phylogenetic inference on distributed digital evolution populations
- Free software: MIT license
- Documentation: <https://hstrat.readthedocs.io>
- Repository: <https://github.com/mmore500/hstrat>
## Install
`python3 -m pip install hstrat`
## Features
_hstrat_ serves to enable **robust, efficient extraction of evolutionary history** from evolutionary simulations where centralized, direct phylogenetic tracking is not feasible.
Namely, in large-scale, **decentralized parallel/distributed evolutionary simulations**, where agents' evolutionary lineages migrate among many cooperating processors over the course of simulation.
_hstrat_ can
- accurately estimate **time since MRCA** among two or several digital agents, even for uneven branch lengths
- **reconstruct phylogenetic trees** for entire populations of evolving digital agents
- **serialize genome annotations** to/from text and binary formats
- provide **low-footprint** genome annotations (e.g., reasonably as low as **64 bits** each)
- be directly configured to satisfy **memory use limits** and/or **inference accuracy requirements**
_hstrat operates just as well in single-processor simulation, but direct phylogenetic tracking using a tool like [phylotrackpy](https://github.com/emilydolson/phylotrackpy/) should usually be preferred in such cases due to its capability for perfect record-keeping given centralized global simulation observability._
## Example Usage
This code briefly demonstrates,
1. initialization of a population of `HereditaryStratigraphicColumn` of objects,
2. generation-to-generation transmission of `HereditaryStratigraphicColumn` objects with simple synchronous turnover, and then
3. reconstruction of phylogenetic history from the final population of `HereditaryStratigraphicColumn` objects.
```python3
from random import choice as rchoice
import alifedata_phyloinformatics_convert as apc
from hstrat import hstrat; print(f"{hstrat.__version__=}") # when last ran?
from hstrat._auxiliary_lib import seed_random; seed_random(1) # reproducibility
# initialize a small population of hstrat instrumentation
# (in full simulations, each column would be attached to an individual genome)
population = [hstrat.HereditaryStratigraphicColumn() for __ in range(5)]
# evolve population for 40 generations under drift
for _generation in range(40):
population = [rchoice(population).CloneDescendant() for __ in population]
# reconstruct estimate of phylogenetic history
alifestd_df = hstrat.build_tree(population, version_pin=hstrat.__version__)
tree_ascii = apc.RosettaTree(alifestd_df).as_dendropy.as_ascii_plot(width=20)
print(tree_ascii)
```
```
hstrat.__version__='1.8.8'
/--- 1
/---+
/--+ \--- 3
| |
/---+ \------- 2
| |
+--+ \---------- 0
|
\-------------- 4
```
In [actual usage](https://hstrat.readthedocs.io/en/latest/demo-ping.html), each _hstrat_ column would be bundled with underlying genetic material of interest in the simulation --- entire genomes or, in systems with sexual recombination, individual genes.
The _hstrat_ columns are designed to operate as a neutral genetic annotation, enhancing observability of the simulation but not affecting its outcome.
## How it Works
In order to enable phylogenetic inference over fully-distributed evolutionary simulation, hereditary stratigraphy adopts a paradigm akin to phylogenetic work in natural history/biology.
In these fields, phylogenetic history is inferred through comparisons among genetic material of extant organisms, with --- in broad terms --- phylogenetic relatedness established through the extent of genetic similarity between organisms.
Phylogenetic tracking through _hstrat_, similarly, is achieved through analysis of similarity/dissimilarity among genetic material sampled over populations of interest.
Rather than random mutation as with natural genetic material, however, genetic material used by _hstrat_ is structured through _hereditary stratigraphy_.
This methodology, described fully in our documentation, provides strong guarantees on phylogenetic inferential power, minimizes memory footprint, and allows efficient reconstruction procedures.
See [here](https://hstrat.readthedocs.io/en/latest/mechanism.html) for more detail on underlying hereditary stratigraphy methodology.
## Getting Started
Refer to our documentation for a [quickstart guide](https://hstrat.readthedocs.io/en/latest/quickstart.html) and an [annotated end-to-end usage example](https://hstrat.readthedocs.io/en/latest/demo-ping.html).
The `examples/` folder provides extensive usage examples, including
- incorporation of hstrat annotations into a custom genome class,
- automatic stratum retention policy parameterization,
- pairwise and population-level phylogenetic inference, and
- phylogenetic tree reconstruction.
Interested users can find an explanation of how hereditary stratigraphy methodology implemented by _hstrat_ works "under the hood," information on project-specific _hstrat_ configuration, and full API listing for the _hstrat_ package in [the documentation](https://hstrat.readthedocs.io/).
## Citing
If _hstrat_ software or hereditary stratigraphy methodology contributes to a scholarly work, please cite it according to references provided [here](https://hstrat.readthedocs.io/en/latest/citing.html).
We would love to list your project using _hstrat_ in our documentation, see more [here](https://hstrat.readthedocs.io/en/latest/projects.html).
## Credits
This package was created with Cookiecutter and the `audreyr/cookiecutter-pypackage` project template.
## hcat
![hcat](docs/assets/hcat-banner.png)
Raw data
{
"_id": null,
"home_page": "https://github.com/mmore500/hstrat",
"name": "hstrat",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "hstrat",
"author": null,
"author_email": "Matthew Andres Moreno <m.more500@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/7e/31/78b1ae8d985c44ec4d971631a7c393d9fd28c00ec885fae68bdcc284ed9d/hstrat-1.17.2.tar.gz",
"platform": null,
"description": "![hstrat wordmark](docs/assets/hstrat-wordmark.png)\n\n[\n![PyPi](https://img.shields.io/pypi/v/hstrat.svg)\n](https://pypi.python.org/pypi/hstrat)\n[\n![codecov](https://codecov.io/gh/mmore500/hstrat/branch/master/graph/badge.svg?token=JwMfFOpBBD)\n](https://codecov.io/gh/mmore500/hstrat)\n[\n![Codacy Badge](https://app.codacy.com/project/badge/Grade/9ab14d415aa9458d97b4cf760b95f874)\n](https://www.codacy.com/gh/mmore500/hstrat/dashboard)\n[\n![CI](https://github.com/mmore500/hstrat/actions/workflows/ci.yaml/badge.svg)\n](https://github.com/mmore500/hstrat/actions)\n[\n![Read The Docs](https://readthedocs.org/projects/hstrat/badge/?version=latest)\n](https://hstrat.readthedocs.io/en/latest/?badge=latest)\n[\n![GitHub stars](https://img.shields.io/github/stars/mmore500/hstrat.svg?style=round-square&logo=github&label=Stars&logoColor=white)](https://github.com/mmore500/hstrat)\n[\n![Zenodo](https://zenodo.org/badge/464531144.svg)\n](https://zenodo.org/badge/latestdoi/464531144)\n[![JOSS](https://joss.theoj.org/papers/10.21105/joss.04866/status.svg)](https://doi.org/10.21105/joss.04866)\n\n_hstrat_ enables phylogenetic inference on distributed digital evolution populations\n\n- Free software: MIT license\n- Documentation: <https://hstrat.readthedocs.io>\n- Repository: <https://github.com/mmore500/hstrat>\n\n## Install\n\n`python3 -m pip install hstrat`\n\n## Features\n\n_hstrat_ serves to enable **robust, efficient extraction of evolutionary history** from evolutionary simulations where centralized, direct phylogenetic tracking is not feasible.\nNamely, in large-scale, **decentralized parallel/distributed evolutionary simulations**, where agents' evolutionary lineages migrate among many cooperating processors over the course of simulation.\n\n_hstrat_ can\n\n- accurately estimate **time since MRCA** among two or several digital agents, even for uneven branch lengths\n- **reconstruct phylogenetic trees** for entire populations of evolving digital agents\n- **serialize genome annotations** to/from text and binary formats\n- provide **low-footprint** genome annotations (e.g., reasonably as low as **64 bits** each)\n- be directly configured to satisfy **memory use limits** and/or **inference accuracy requirements**\n\n_hstrat operates just as well in single-processor simulation, but direct phylogenetic tracking using a tool like [phylotrackpy](https://github.com/emilydolson/phylotrackpy/) should usually be preferred in such cases due to its capability for perfect record-keeping given centralized global simulation observability._\n\n## Example Usage\n\nThis code briefly demonstrates,\n\n1. initialization of a population of `HereditaryStratigraphicColumn` of objects,\n2. generation-to-generation transmission of `HereditaryStratigraphicColumn` objects with simple synchronous turnover, and then\n3. reconstruction of phylogenetic history from the final population of `HereditaryStratigraphicColumn` objects.\n\n```python3\nfrom random import choice as rchoice\nimport alifedata_phyloinformatics_convert as apc\nfrom hstrat import hstrat; print(f\"{hstrat.__version__=}\") # when last ran?\nfrom hstrat._auxiliary_lib import seed_random; seed_random(1) # reproducibility\n\n# initialize a small population of hstrat instrumentation\n# (in full simulations, each column would be attached to an individual genome)\npopulation = [hstrat.HereditaryStratigraphicColumn() for __ in range(5)]\n\n# evolve population for 40 generations under drift\nfor _generation in range(40):\n population = [rchoice(population).CloneDescendant() for __ in population]\n\n# reconstruct estimate of phylogenetic history\nalifestd_df = hstrat.build_tree(population, version_pin=hstrat.__version__)\ntree_ascii = apc.RosettaTree(alifestd_df).as_dendropy.as_ascii_plot(width=20)\nprint(tree_ascii)\n```\n\n```\nhstrat.__version__='1.8.8'\n /--- 1\n /---+\n /--+ \\--- 3\n | |\n /---+ \\------- 2\n | |\n+--+ \\---------- 0\n |\n \\-------------- 4\n```\n\nIn [actual usage](https://hstrat.readthedocs.io/en/latest/demo-ping.html), each _hstrat_ column would be bundled with underlying genetic material of interest in the simulation --- entire genomes or, in systems with sexual recombination, individual genes.\nThe _hstrat_ columns are designed to operate as a neutral genetic annotation, enhancing observability of the simulation but not affecting its outcome.\n\n## How it Works\n\nIn order to enable phylogenetic inference over fully-distributed evolutionary simulation, hereditary stratigraphy adopts a paradigm akin to phylogenetic work in natural history/biology.\nIn these fields, phylogenetic history is inferred through comparisons among genetic material of extant organisms, with --- in broad terms --- phylogenetic relatedness established through the extent of genetic similarity between organisms.\nPhylogenetic tracking through _hstrat_, similarly, is achieved through analysis of similarity/dissimilarity among genetic material sampled over populations of interest.\n\nRather than random mutation as with natural genetic material, however, genetic material used by _hstrat_ is structured through _hereditary stratigraphy_.\nThis methodology, described fully in our documentation, provides strong guarantees on phylogenetic inferential power, minimizes memory footprint, and allows efficient reconstruction procedures.\n\nSee [here](https://hstrat.readthedocs.io/en/latest/mechanism.html) for more detail on underlying hereditary stratigraphy methodology.\n\n## Getting Started\n\nRefer to our documentation for a [quickstart guide](https://hstrat.readthedocs.io/en/latest/quickstart.html) and an [annotated end-to-end usage example](https://hstrat.readthedocs.io/en/latest/demo-ping.html).\n\nThe `examples/` folder provides extensive usage examples, including\n\n- incorporation of hstrat annotations into a custom genome class,\n- automatic stratum retention policy parameterization,\n- pairwise and population-level phylogenetic inference, and\n- phylogenetic tree reconstruction.\n\nInterested users can find an explanation of how hereditary stratigraphy methodology implemented by _hstrat_ works \"under the hood,\" information on project-specific _hstrat_ configuration, and full API listing for the _hstrat_ package in [the documentation](https://hstrat.readthedocs.io/).\n\n## Citing\n\nIf _hstrat_ software or hereditary stratigraphy methodology contributes to a scholarly work, please cite it according to references provided [here](https://hstrat.readthedocs.io/en/latest/citing.html).\nWe would love to list your project using _hstrat_ in our documentation, see more [here](https://hstrat.readthedocs.io/en/latest/projects.html).\n\n## Credits\n\nThis package was created with Cookiecutter and the `audreyr/cookiecutter-pypackage` project template.\n\n## hcat\n\n![hcat](docs/assets/hcat-banner.png)\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "hstrat enables phylogenetic inference on distributed digital evolution populations",
"version": "1.17.2",
"project_urls": {
"Documentation": "https://hstrat.readthedocs.io",
"Homepage": "https://github.com/mmore500/hstrat",
"Repository": "https://github.com/mmore500/hstrat"
},
"split_keywords": [
"hstrat"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4d1bcc0800b2ed9a1b12fd98e14703c08a64191df9311019039052c8097fae9e",
"md5": "7bed70e82a130a8ffad5df254a54bbad",
"sha256": "1d777ac3983fdd705d211f774e3eb6f96d10254a9175c8124d3723f2ea5c080f"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7bed70e82a130a8ffad5df254a54bbad",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 752513,
"upload_time": "2025-01-05T03:56:10",
"upload_time_iso_8601": "2025-01-05T03:56:10.866897Z",
"url": "https://files.pythonhosted.org/packages/4d/1b/cc0800b2ed9a1b12fd98e14703c08a64191df9311019039052c8097fae9e/hstrat-1.17.2-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "03b0ede3755dcd348401a4cf49ab1b115d7aad9a4945ba779f2ed748ca3fd2e9",
"md5": "8d02b06c6c8be22614dbf4f4b887146c",
"sha256": "73200092324b631b3ea60c0a1a9c91dfc09892a123264a805c26c5e6aaaf288e"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "8d02b06c6c8be22614dbf4f4b887146c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 795774,
"upload_time": "2025-01-05T03:56:13",
"upload_time_iso_8601": "2025-01-05T03:56:13.848286Z",
"url": "https://files.pythonhosted.org/packages/03/b0/ede3755dcd348401a4cf49ab1b115d7aad9a4945ba779f2ed748ca3fd2e9/hstrat-1.17.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cc27f7c84757784cc4ddd2342aa99823a2aabed056690af4e145885a6106c31b",
"md5": "9f688f167f3acb6fa389bea8473788ad",
"sha256": "cfa0f30e0d2357070d5256165488393e596a1e8ab8456f29fc3fec744c22960c"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9f688f167f3acb6fa389bea8473788ad",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 785330,
"upload_time": "2025-01-05T03:56:15",
"upload_time_iso_8601": "2025-01-05T03:56:15.802602Z",
"url": "https://files.pythonhosted.org/packages/cc/27/f7c84757784cc4ddd2342aa99823a2aabed056690af4e145885a6106c31b/hstrat-1.17.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aaf0177ee9442cab4d3d44cf4cc5fc76c6f554a51de07fd3fc9dadb9cabe8a21",
"md5": "e4e62aeb26ca629e6eebe5e1e323d98d",
"sha256": "a234cc32b5f69118aea269df1c7bd3c3212d3a0d9d4820e7e1a642c07e99a760"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "e4e62aeb26ca629e6eebe5e1e323d98d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1857612,
"upload_time": "2025-01-05T03:56:18",
"upload_time_iso_8601": "2025-01-05T03:56:18.555679Z",
"url": "https://files.pythonhosted.org/packages/aa/f0/177ee9442cab4d3d44cf4cc5fc76c6f554a51de07fd3fc9dadb9cabe8a21/hstrat-1.17.2-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7cc429bba5cecfeb8e4c17f1280a5dd3243c8ab4896f2709df23c0733e77dbfc",
"md5": "7643f135feb959ad173e82a7cc067f7d",
"sha256": "bbdd97a145d07c2539f17f48c90cd37b3b0ddbc87d93cba71ead224a3f92707d"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "7643f135feb959ad173e82a7cc067f7d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1758024,
"upload_time": "2025-01-05T03:56:21",
"upload_time_iso_8601": "2025-01-05T03:56:21.173439Z",
"url": "https://files.pythonhosted.org/packages/7c/c4/29bba5cecfeb8e4c17f1280a5dd3243c8ab4896f2709df23c0733e77dbfc/hstrat-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6246e2a45b166221cc9cd8d12f8209bb70f9987a887a99bf20e2d75b3a06f671",
"md5": "271d9e3c44937af6fe2d7b7acb9b4642",
"sha256": "0a2b23b96db3dba7330e70c5cb76ca0a8a37e08a7236db632647b9cfb9e37989"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "271d9e3c44937af6fe2d7b7acb9b4642",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 738136,
"upload_time": "2025-01-05T03:56:24",
"upload_time_iso_8601": "2025-01-05T03:56:24.357346Z",
"url": "https://files.pythonhosted.org/packages/62/46/e2a45b166221cc9cd8d12f8209bb70f9987a887a99bf20e2d75b3a06f671/hstrat-1.17.2-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "04099b6ba98828cee499aeb1063de4fa7d4aa86a2a7001d3834f9c42cbeb73aa",
"md5": "2ca6ec9b4d235b8d852cacbe2b689a1f",
"sha256": "f4069335389be1dca27d7f2729e41ae889f37c5cbba8cd9eade28082148be54f"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "2ca6ec9b4d235b8d852cacbe2b689a1f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 753927,
"upload_time": "2025-01-05T03:56:26",
"upload_time_iso_8601": "2025-01-05T03:56:26.947565Z",
"url": "https://files.pythonhosted.org/packages/04/09/9b6ba98828cee499aeb1063de4fa7d4aa86a2a7001d3834f9c42cbeb73aa/hstrat-1.17.2-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "91b76106d5711fa440a2317f12f758514a359e85f618f8841ddb48bcac82909c",
"md5": "65631b05027f46e9e2177911ed064587",
"sha256": "25501275b8ac35df0bfc0194a4fc6f47f893f66207eeffa81ba8a2c450f971a5"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "65631b05027f46e9e2177911ed064587",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 796457,
"upload_time": "2025-01-05T03:56:28",
"upload_time_iso_8601": "2025-01-05T03:56:28.732345Z",
"url": "https://files.pythonhosted.org/packages/91/b7/6106d5711fa440a2317f12f758514a359e85f618f8841ddb48bcac82909c/hstrat-1.17.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cf5da3b9ae54a24e0248e088d5103a741a9595af9df4cb5ed53c607b912caa51",
"md5": "2e566bfb6004ffb715da02c64fdfdbb1",
"sha256": "c0d52ee000f460fadd88d15e99ddef9d323a2147c9b15ad665117096e1674046"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "2e566bfb6004ffb715da02c64fdfdbb1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 786191,
"upload_time": "2025-01-05T03:56:32",
"upload_time_iso_8601": "2025-01-05T03:56:32.757686Z",
"url": "https://files.pythonhosted.org/packages/cf/5d/a3b9ae54a24e0248e088d5103a741a9595af9df4cb5ed53c607b912caa51/hstrat-1.17.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ffa134233ffb51ace4ed9c672e7ca816fdc7bcc968a8b2420378d74334913b9",
"md5": "b2b41520003e3bbd953056038342ed9f",
"sha256": "cb774c37116aad9091b10303cdbc01b6c572e0017188287b7fae055e1d60c330"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "b2b41520003e3bbd953056038342ed9f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 1858261,
"upload_time": "2025-01-05T03:56:34",
"upload_time_iso_8601": "2025-01-05T03:56:34.153269Z",
"url": "https://files.pythonhosted.org/packages/8f/fa/134233ffb51ace4ed9c672e7ca816fdc7bcc968a8b2420378d74334913b9/hstrat-1.17.2-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ef8a98c7332e6bb81f2b0481a1efd2a6a4ea0295cbc813b5d49e81b4d57531d6",
"md5": "4f8aec6024c170b5404f6026293b7358",
"sha256": "b7d5eb158f5b0dbaa6076bed6cf13007aa15aaa0571f98392f4aeff921688860"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4f8aec6024c170b5404f6026293b7358",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 1759227,
"upload_time": "2025-01-05T03:56:37",
"upload_time_iso_8601": "2025-01-05T03:56:37.645631Z",
"url": "https://files.pythonhosted.org/packages/ef/8a/98c7332e6bb81f2b0481a1efd2a6a4ea0295cbc813b5d49e81b4d57531d6/hstrat-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "71068b7f85483f749620d563997cc384b30f59f38aa5c672e5e38907de2958c0",
"md5": "cfe4abe706a9a4b186f005285a8443d9",
"sha256": "dc4883ce8154ec41ff4541f21997cfcb0e8877bc6c36aada30a8a5c473a49dae"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "cfe4abe706a9a4b186f005285a8443d9",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 739196,
"upload_time": "2025-01-05T03:56:40",
"upload_time_iso_8601": "2025-01-05T03:56:40.487899Z",
"url": "https://files.pythonhosted.org/packages/71/06/8b7f85483f749620d563997cc384b30f59f38aa5c672e5e38907de2958c0/hstrat-1.17.2-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "198bb8e7a637e260960564798e6bd812780e99873ca44f38ad8fb9f4aa44997d",
"md5": "f398efd0bc39e8941bb3e0d30dc1278e",
"sha256": "ac6f4388eb2e7c50164d8617325cddd78c39241666359d476d72bb51b29ddbc9"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f398efd0bc39e8941bb3e0d30dc1278e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 753932,
"upload_time": "2025-01-05T03:56:42",
"upload_time_iso_8601": "2025-01-05T03:56:42.252466Z",
"url": "https://files.pythonhosted.org/packages/19/8b/b8e7a637e260960564798e6bd812780e99873ca44f38ad8fb9f4aa44997d/hstrat-1.17.2-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e439c4cf35f72aa97fac53c670d60475328819a93edee15ade645090a429bcfd",
"md5": "5b0b07af14b498809ba04b2f1d5ed2a9",
"sha256": "624f71e572a32d8b60ffd4f4c89a1ca1b1bb7d241beff1419b7eb7fb8ce5a307"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "5b0b07af14b498809ba04b2f1d5ed2a9",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 796373,
"upload_time": "2025-01-05T03:56:46",
"upload_time_iso_8601": "2025-01-05T03:56:46.234767Z",
"url": "https://files.pythonhosted.org/packages/e4/39/c4cf35f72aa97fac53c670d60475328819a93edee15ade645090a429bcfd/hstrat-1.17.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fad2b95aab5c40cc505512a7727d5eb0ec4eff7604645b6ad33ad87e7c67b42a",
"md5": "34c026e85fa3574da0595d10b500c0f5",
"sha256": "71d341aa1fe42ddb48aa16c4ef60b0960d54a45700eee8999127e73f0c51ccb9"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "34c026e85fa3574da0595d10b500c0f5",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 785443,
"upload_time": "2025-01-05T03:56:49",
"upload_time_iso_8601": "2025-01-05T03:56:49.219890Z",
"url": "https://files.pythonhosted.org/packages/fa/d2/b95aab5c40cc505512a7727d5eb0ec4eff7604645b6ad33ad87e7c67b42a/hstrat-1.17.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "75dbac724a57f333fdb55027f2ab9d218c2cef84aba5219dd8c6a96266e62534",
"md5": "87c87dd8eac2c7ee35bef5e11b868e98",
"sha256": "456c7b2d01ef640a0e785134b5b8631c9c8c4343b2ba77983fc07b9fa5085445"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "87c87dd8eac2c7ee35bef5e11b868e98",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1857131,
"upload_time": "2025-01-05T03:56:50",
"upload_time_iso_8601": "2025-01-05T03:56:50.728964Z",
"url": "https://files.pythonhosted.org/packages/75/db/ac724a57f333fdb55027f2ab9d218c2cef84aba5219dd8c6a96266e62534/hstrat-1.17.2-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7772f66d94060bf396548d79a60709209c14a59abbcb8254fae8dfd8fc0098c0",
"md5": "c8d6d781b46df61870674d04a78268e0",
"sha256": "67c76fa152b471d9f7e0b85d81b2e5dc8603376aced48c77e6ece1dcb78eeddf"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c8d6d781b46df61870674d04a78268e0",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1758337,
"upload_time": "2025-01-05T03:56:52",
"upload_time_iso_8601": "2025-01-05T03:56:52.422699Z",
"url": "https://files.pythonhosted.org/packages/77/72/f66d94060bf396548d79a60709209c14a59abbcb8254fae8dfd8fc0098c0/hstrat-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "377f6ae029931744d74ff9041d5cc10bd23bc934eecd0b9125b02427c4f762f8",
"md5": "369870be0f983265abbcb9a5406137d4",
"sha256": "cfc4341c52d39fcda41d381b9a43b9585ba97e3577f9c5872577449c1a851edc"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "369870be0f983265abbcb9a5406137d4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 739411,
"upload_time": "2025-01-05T03:56:55",
"upload_time_iso_8601": "2025-01-05T03:56:55.130844Z",
"url": "https://files.pythonhosted.org/packages/37/7f/6ae029931744d74ff9041d5cc10bd23bc934eecd0b9125b02427c4f762f8/hstrat-1.17.2-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2896eefbf3076849f5794b71651a5bb787108efda6cbf40aec15d3e9e5691c4b",
"md5": "f6c8671e85a3e0063ddf258b5f262f92",
"sha256": "31dbf5f1cb51d278743ab862bab492feccbab7da165faa90ef5190680a164aaa"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f6c8671e85a3e0063ddf258b5f262f92",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 754073,
"upload_time": "2025-01-05T03:56:57",
"upload_time_iso_8601": "2025-01-05T03:56:57.861186Z",
"url": "https://files.pythonhosted.org/packages/28/96/eefbf3076849f5794b71651a5bb787108efda6cbf40aec15d3e9e5691c4b/hstrat-1.17.2-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a5ce4baee9e7c72df6ee4fe25c6626813847e318164fc01a8f413f1352557632",
"md5": "58286bac389f9d9eeb523d4333b7c882",
"sha256": "79be7cca81395d66f172283a5273488a1f5ee7acc2aaf491561ad1d4f36f0493"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "58286bac389f9d9eeb523d4333b7c882",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 796342,
"upload_time": "2025-01-05T03:56:59",
"upload_time_iso_8601": "2025-01-05T03:56:59.276567Z",
"url": "https://files.pythonhosted.org/packages/a5/ce/4baee9e7c72df6ee4fe25c6626813847e318164fc01a8f413f1352557632/hstrat-1.17.2-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "37c07c1f498ef32c8f6deb2a72c34a9003db1942b0226c040952ec156db63d5c",
"md5": "f46a3d4ecdd8d60e9e3c652285d78f65",
"sha256": "24b757806dd7cb2898bc1aeac8dfe472f349cd099e119b4a9d4e1ea622cf5a90"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f46a3d4ecdd8d60e9e3c652285d78f65",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 786201,
"upload_time": "2025-01-05T03:57:00",
"upload_time_iso_8601": "2025-01-05T03:57:00.651926Z",
"url": "https://files.pythonhosted.org/packages/37/c0/7c1f498ef32c8f6deb2a72c34a9003db1942b0226c040952ec156db63d5c/hstrat-1.17.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4058083d21ce2a40507bb8522e2074411b19191e95a4128735bab65b3e8c7aab",
"md5": "a8f511d09885d2ba5fc809dc2b757241",
"sha256": "0b8b0690bb782c8151b28028c7412abec0c39e8342ea5f6f0c32d2456f508bf8"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp313-cp313-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "a8f511d09885d2ba5fc809dc2b757241",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 1857577,
"upload_time": "2025-01-05T03:57:03",
"upload_time_iso_8601": "2025-01-05T03:57:03.363412Z",
"url": "https://files.pythonhosted.org/packages/40/58/083d21ce2a40507bb8522e2074411b19191e95a4128735bab65b3e8c7aab/hstrat-1.17.2-cp313-cp313-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cc5e62d4d61382913206c3ea33c6a339854b124fe22aa5710d239427d53fee58",
"md5": "fd0e13d68a5f8ffc781774aa8c917144",
"sha256": "122ae47d4be1bae6b29460ba16b18087deaeaa6e5dd94067d51b6cb683275b03"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "fd0e13d68a5f8ffc781774aa8c917144",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 1758343,
"upload_time": "2025-01-05T03:57:06",
"upload_time_iso_8601": "2025-01-05T03:57:06.297437Z",
"url": "https://files.pythonhosted.org/packages/cc/5e/62d4d61382913206c3ea33c6a339854b124fe22aa5710d239427d53fee58/hstrat-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ad4de80064542e2b8e84ecccd4bfefb7b4825e34d0f6fcbaeeb7f4d0656ee384",
"md5": "1efffe32270831f01990aa29919c0ca5",
"sha256": "791ecffd6bd85f75679d487b9e18ca18feffa8f87bac93e2ff2f180538076599"
},
"downloads": -1,
"filename": "hstrat-1.17.2-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "1efffe32270831f01990aa29919c0ca5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 739450,
"upload_time": "2025-01-05T03:57:09",
"upload_time_iso_8601": "2025-01-05T03:57:09.051162Z",
"url": "https://files.pythonhosted.org/packages/ad/4d/e80064542e2b8e84ecccd4bfefb7b4825e34d0f6fcbaeeb7f4d0656ee384/hstrat-1.17.2-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c613bf661cf0c386e2c371cea7c83e4bbc0ea9577e203c8fcdbb7dac8723aa0",
"md5": "c4d246e216a73f63f511b4976e0d3070",
"sha256": "fa88a7d94c191559ccc681e9e08fd30e1ace32d6fc46c3ce07af74b21aa96e1a"
},
"downloads": -1,
"filename": "hstrat-1.17.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c4d246e216a73f63f511b4976e0d3070",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 751318,
"upload_time": "2025-01-05T03:57:10",
"upload_time_iso_8601": "2025-01-05T03:57:10.399110Z",
"url": "https://files.pythonhosted.org/packages/7c/61/3bf661cf0c386e2c371cea7c83e4bbc0ea9577e203c8fcdbb7dac8723aa0/hstrat-1.17.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c860cad5c41da6be1bb07689ed99df6ee426bb04a760d56cf194b732c7006c17",
"md5": "0446950c270f133a9b4ca488249da079",
"sha256": "e2d1e39f9ed4fef70c237694ef89e201ace76d808a2bbedb2899b9061bd15cc1"
},
"downloads": -1,
"filename": "hstrat-1.17.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "0446950c270f133a9b4ca488249da079",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 794817,
"upload_time": "2025-01-05T03:57:11",
"upload_time_iso_8601": "2025-01-05T03:57:11.766450Z",
"url": "https://files.pythonhosted.org/packages/c8/60/cad5c41da6be1bb07689ed99df6ee426bb04a760d56cf194b732c7006c17/hstrat-1.17.2-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f2e7600a512905278a950c7601c95b34a230d37d89b9f7b91434859b9dbfc22a",
"md5": "c9ac0cf83f8f3b26028dcacef270f89b",
"sha256": "b73f241db078c216234e10b2c02eaf0286101c16ca4c6db310f7b33cb8aba8c4"
},
"downloads": -1,
"filename": "hstrat-1.17.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c9ac0cf83f8f3b26028dcacef270f89b",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 785692,
"upload_time": "2025-01-05T03:57:13",
"upload_time_iso_8601": "2025-01-05T03:57:13.575206Z",
"url": "https://files.pythonhosted.org/packages/f2/e7/600a512905278a950c7601c95b34a230d37d89b9f7b91434859b9dbfc22a/hstrat-1.17.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a70c2de66f978900bbd4aaec3601f4340f6cf84a21241b01b9a7043a855706bf",
"md5": "f9a90a29651b817a608f7b1be8d42f29",
"sha256": "548ccf5d3623f0c0ee0585980ee1c1385e1c11fc9e0a28942e80403669b779c1"
},
"downloads": -1,
"filename": "hstrat-1.17.2-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "f9a90a29651b817a608f7b1be8d42f29",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 738107,
"upload_time": "2025-01-05T03:57:17",
"upload_time_iso_8601": "2025-01-05T03:57:17.182875Z",
"url": "https://files.pythonhosted.org/packages/a7/0c/2de66f978900bbd4aaec3601f4340f6cf84a21241b01b9a7043a855706bf/hstrat-1.17.2-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e3178b1ae8d985c44ec4d971631a7c393d9fd28c00ec885fae68bdcc284ed9d",
"md5": "5bfbaa13b74f64ce8f9bf38277cbdcd5",
"sha256": "0b38d2202e0c68c8dbd6eeb425ad5f1dd50ee29643efdc571d262b91f6f62bba"
},
"downloads": -1,
"filename": "hstrat-1.17.2.tar.gz",
"has_sig": false,
"md5_digest": "5bfbaa13b74f64ce8f9bf38277cbdcd5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 871373,
"upload_time": "2025-01-05T03:57:19",
"upload_time_iso_8601": "2025-01-05T03:57:19.712760Z",
"url": "https://files.pythonhosted.org/packages/7e/31/78b1ae8d985c44ec4d971631a7c393d9fd28c00ec885fae68bdcc284ed9d/hstrat-1.17.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-05 03:57:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mmore500",
"github_project": "hstrat",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "hstrat"
}