Name | hstrat JSON |
Version |
1.18.0
JSON |
| download |
home_page | https://github.com/mmore500/hstrat |
Summary | hstrat enables phylogenetic inference on distributed digital evolution populations |
upload_time | 2025-02-02 03:36:55 |
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.
|

[

](https://pypi.python.org/pypi/hstrat)
[

](https://codecov.io/gh/mmore500/hstrat)
[

](https://www.codacy.com/gh/mmore500/hstrat/dashboard)
[

](https://github.com/mmore500/hstrat/actions)
[

](https://hstrat.readthedocs.io/en/latest/?badge=latest)
[
](https://github.com/mmore500/hstrat)
[

](https://zenodo.org/badge/latestdoi/464531144)
[](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`
A containerized release of `hstrat` is available via <ghcr.io>
```bash
singularity exec docker://ghcr.io/mmore500/hstrat:v1.18.0 python3 -m hstrat --help
```
## 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

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/61/7b/234b8b7fa31506247b17cbbde7aada1d8520abccd55f47b0b0a0e3268e95/hstrat-1.18.0.tar.gz",
"platform": null,
"description": "\n\n[\n\n](https://pypi.python.org/pypi/hstrat)\n[\n\n](https://codecov.io/gh/mmore500/hstrat)\n[\n\n](https://www.codacy.com/gh/mmore500/hstrat/dashboard)\n[\n\n](https://github.com/mmore500/hstrat/actions)\n[\n\n](https://hstrat.readthedocs.io/en/latest/?badge=latest)\n[\n](https://github.com/mmore500/hstrat)\n[\n\n](https://zenodo.org/badge/latestdoi/464531144)\n[](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\nA containerized release of `hstrat` is available via <ghcr.io>\n\n```bash\nsingularity exec docker://ghcr.io/mmore500/hstrat:v1.18.0 python3 -m hstrat --help\n```\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\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "hstrat enables phylogenetic inference on distributed digital evolution populations",
"version": "1.18.0",
"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": null,
"digests": {
"blake2b_256": "d27c5be874c548518b0694b3d3a8390445fbe769ce487bdcba86d66b5664bd89",
"md5": "2991159afdd88769e79ac2783b1572a9",
"sha256": "94cbb424683292cb4509b49b122269d61cec425e726e7db6bec5a711c647405e"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "2991159afdd88769e79ac2783b1572a9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 766582,
"upload_time": "2025-02-02T03:35:52",
"upload_time_iso_8601": "2025-02-02T03:35:52.643269Z",
"url": "https://files.pythonhosted.org/packages/d2/7c/5be874c548518b0694b3d3a8390445fbe769ce487bdcba86d66b5664bd89/hstrat-1.18.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "73681caed92bba405fad965c1a97cd26999def70fc80a56c7b20fe22a82f5142",
"md5": "16cd2f6ca4cdb4d7bd5f3f1675fede2d",
"sha256": "3dff7e10c368a8e25fab24e8a8a2a497f154224ec606702f6ba41b597e4a252f"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "16cd2f6ca4cdb4d7bd5f3f1675fede2d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 810866,
"upload_time": "2025-02-02T03:35:55",
"upload_time_iso_8601": "2025-02-02T03:35:55.764987Z",
"url": "https://files.pythonhosted.org/packages/73/68/1caed92bba405fad965c1a97cd26999def70fc80a56c7b20fe22a82f5142/hstrat-1.18.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b2e08ef56a5ce79c1e08f94582e4c80437a6c9458928dc5b878c78787366e54f",
"md5": "83a4474153ed1aa274595d5e2f51f3a8",
"sha256": "06a60fc6d9b06a130cc89d48348b574354e58a2b730858c428c1dd9879c776bf"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "83a4474153ed1aa274595d5e2f51f3a8",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 800023,
"upload_time": "2025-02-02T03:35:58",
"upload_time_iso_8601": "2025-02-02T03:35:58.117002Z",
"url": "https://files.pythonhosted.org/packages/b2/e0/8ef56a5ce79c1e08f94582e4c80437a6c9458928dc5b878c78787366e54f/hstrat-1.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "411abc060d017429e6d8eb9be8fb70077fa32b9580c13b78e472b4e02b8cb81e",
"md5": "69963c9eba58943c162aa929f20414ee",
"sha256": "3ae5f80682f8337a27ea75b19eeecb80303c9bed70b6c5b96f2d4bfb4ad40e8b"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "69963c9eba58943c162aa929f20414ee",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1872836,
"upload_time": "2025-02-02T03:36:00",
"upload_time_iso_8601": "2025-02-02T03:36:00.534528Z",
"url": "https://files.pythonhosted.org/packages/41/1a/bc060d017429e6d8eb9be8fb70077fa32b9580c13b78e472b4e02b8cb81e/hstrat-1.18.0-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "75822b3b0aa030e60256ab9e76af4d4e85656e352125887d596b1f3da3dc1ac2",
"md5": "ec7c37e6ed5f3b4a393513e1c3383b41",
"sha256": "c42dd71b3d18af0ee7940cccfa09bc8740bf01ff7b82e51fccd80ef179a4e93e"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "ec7c37e6ed5f3b4a393513e1c3383b41",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 1773122,
"upload_time": "2025-02-02T03:36:03",
"upload_time_iso_8601": "2025-02-02T03:36:03.042177Z",
"url": "https://files.pythonhosted.org/packages/75/82/2b3b0aa030e60256ab9e76af4d4e85656e352125887d596b1f3da3dc1ac2/hstrat-1.18.0-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c292e9289fa822943b59b8b76fb8a9d4ff2bf2b4cc76403fefa698de3f1beea7",
"md5": "e6bcb0b5eed43c76f02c0fba02b2d413",
"sha256": "5f483cdedff996ab5b9416a157ebd420305816b48dbf72a6ca2be2971d8982e5"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "e6bcb0b5eed43c76f02c0fba02b2d413",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 751612,
"upload_time": "2025-02-02T03:36:05",
"upload_time_iso_8601": "2025-02-02T03:36:05.456073Z",
"url": "https://files.pythonhosted.org/packages/c2/92/e9289fa822943b59b8b76fb8a9d4ff2bf2b4cc76403fefa698de3f1beea7/hstrat-1.18.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9063feaea620f559ab1a9b9321ba410d31ea19ac9273ca8b12528e7630e6d577",
"md5": "98311e540e31240444a03353a5c66566",
"sha256": "25d213da96bea241fbc5742b83dc1574faee8b2887d4e340b8d1523a1dc9d7b7"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "98311e540e31240444a03353a5c66566",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 768048,
"upload_time": "2025-02-02T03:36:07",
"upload_time_iso_8601": "2025-02-02T03:36:07.734817Z",
"url": "https://files.pythonhosted.org/packages/90/63/feaea620f559ab1a9b9321ba410d31ea19ac9273ca8b12528e7630e6d577/hstrat-1.18.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "47fc17902c5d793e47e08dadc60fa0ccd73eeecf5b71dd21996200f86a9fe895",
"md5": "814fad89b9d2f15bd9a5301631c59dbf",
"sha256": "e5540b91564ec0feb969f658e373634a07e63e9e68521fe39cc0e9fcb3b52c88"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "814fad89b9d2f15bd9a5301631c59dbf",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 811494,
"upload_time": "2025-02-02T03:36:09",
"upload_time_iso_8601": "2025-02-02T03:36:09.901063Z",
"url": "https://files.pythonhosted.org/packages/47/fc/17902c5d793e47e08dadc60fa0ccd73eeecf5b71dd21996200f86a9fe895/hstrat-1.18.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ed9b9e079bcc9ce52779c191631a1dd082335c091fb19acaecae8dce3b262f5f",
"md5": "507eec5abc9a6c98158486eb3bbcc4d3",
"sha256": "6abc467e66770fe6e299f9f8d9480f4f9dc4f1a855ae3f84bbeafd33b97d0d6d"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "507eec5abc9a6c98158486eb3bbcc4d3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 801116,
"upload_time": "2025-02-02T03:36:12",
"upload_time_iso_8601": "2025-02-02T03:36:12.424211Z",
"url": "https://files.pythonhosted.org/packages/ed/9b/9e079bcc9ce52779c191631a1dd082335c091fb19acaecae8dce3b262f5f/hstrat-1.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7a7382033296850fd61f7ccc22bae1c25c1913d7e5713d5b34e2056574fc7d74",
"md5": "b05f84012b4d1e4f769d283ebb5c8c81",
"sha256": "103dcd594f7409fada28cab8649c95a0a5dbf1777c6b7b99a0c6c25533964a66"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "b05f84012b4d1e4f769d283ebb5c8c81",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 1873455,
"upload_time": "2025-02-02T03:36:13",
"upload_time_iso_8601": "2025-02-02T03:36:13.850680Z",
"url": "https://files.pythonhosted.org/packages/7a/73/82033296850fd61f7ccc22bae1c25c1913d7e5713d5b34e2056574fc7d74/hstrat-1.18.0-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4cc9e3eb0f5d2a82cc20004a0af58fa069ad490379cabddb8c2d78dc7a7d10cc",
"md5": "0dcb5d3f52d83aed9516d93bde73a795",
"sha256": "9534dfb2a0c9e8ffbb31cbf8ad3e2b7f9d19ed9aca441f87351df0d24ce43943"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "0dcb5d3f52d83aed9516d93bde73a795",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 1774288,
"upload_time": "2025-02-02T03:36:16",
"upload_time_iso_8601": "2025-02-02T03:36:16.429218Z",
"url": "https://files.pythonhosted.org/packages/4c/c9/e3eb0f5d2a82cc20004a0af58fa069ad490379cabddb8c2d78dc7a7d10cc/hstrat-1.18.0-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fa88e57fef6150ca6d3ffa3823ecf844d72e8d9a83117998dae2b52790838fc2",
"md5": "ef4fdbaab08021b5d00b4692016f6549",
"sha256": "c9e7c18b4829f8c4cfe95fde3576291926b92e72010a3960d892dc38ba9411c8"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "ef4fdbaab08021b5d00b4692016f6549",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 752693,
"upload_time": "2025-02-02T03:36:19",
"upload_time_iso_8601": "2025-02-02T03:36:19.264582Z",
"url": "https://files.pythonhosted.org/packages/fa/88/e57fef6150ca6d3ffa3823ecf844d72e8d9a83117998dae2b52790838fc2/hstrat-1.18.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7669b171644fa81f0a2838bf39b6424fb4c50db9a422d43c17b810fb55fb7e1e",
"md5": "a18d3acaa65f7c09190bad623b0695ed",
"sha256": "4da5a57d36c0a228c3d5df311c3a81969143958a8f19aedfee47e7465d7ac851"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a18d3acaa65f7c09190bad623b0695ed",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 767990,
"upload_time": "2025-02-02T03:36:20",
"upload_time_iso_8601": "2025-02-02T03:36:20.722678Z",
"url": "https://files.pythonhosted.org/packages/76/69/b171644fa81f0a2838bf39b6424fb4c50db9a422d43c17b810fb55fb7e1e/hstrat-1.18.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "81729449bad56c793f2b9fca00cd4941b551b13946e9d1b3b60278cc679d1f8a",
"md5": "eac3938d31916ea0284261a804db292c",
"sha256": "a64867e1fb84160883f8606bbf9009c7ed9b404977f5bd1e45d0e6273a3fffab"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "eac3938d31916ea0284261a804db292c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 811273,
"upload_time": "2025-02-02T03:36:22",
"upload_time_iso_8601": "2025-02-02T03:36:22.920519Z",
"url": "https://files.pythonhosted.org/packages/81/72/9449bad56c793f2b9fca00cd4941b551b13946e9d1b3b60278cc679d1f8a/hstrat-1.18.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bd8009b938b38c113527d759c21c71e524941184c4c75904132189a845c800cf",
"md5": "3b2e9b0e17dd6b45441d17b0ed0d98ee",
"sha256": "c91b187affe0339b33d3c740c03aef8c2a75c02f0a35cc3e352fba647e59bac0"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3b2e9b0e17dd6b45441d17b0ed0d98ee",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 799939,
"upload_time": "2025-02-02T03:36:24",
"upload_time_iso_8601": "2025-02-02T03:36:24.325933Z",
"url": "https://files.pythonhosted.org/packages/bd/80/09b938b38c113527d759c21c71e524941184c4c75904132189a845c800cf/hstrat-1.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "acb3a1285167a70560d3b7eed2f962880328cda5d4c751054dfad0fb2712f65a",
"md5": "31b1be45ede6a8a43c201bf6fca1f1cd",
"sha256": "d2a8dec4f29f7f3e3df9216490c30826d840ffb24d3e6c8174974e25404dd368"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "31b1be45ede6a8a43c201bf6fca1f1cd",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1872160,
"upload_time": "2025-02-02T03:36:27",
"upload_time_iso_8601": "2025-02-02T03:36:27.085477Z",
"url": "https://files.pythonhosted.org/packages/ac/b3/a1285167a70560d3b7eed2f962880328cda5d4c751054dfad0fb2712f65a/hstrat-1.18.0-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "be0d282bede2160f9283c6ad4a49faad3332d7d30e7847fce39c2b426391fca5",
"md5": "875d1c7d94f00960ac3c8977202f1748",
"sha256": "8a87899ee6a894c76ec945810d838a3426bdb553f1bcc1c193682e2b5d8634ec"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "875d1c7d94f00960ac3c8977202f1748",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 1773093,
"upload_time": "2025-02-02T03:36:32",
"upload_time_iso_8601": "2025-02-02T03:36:32.120614Z",
"url": "https://files.pythonhosted.org/packages/be/0d/282bede2160f9283c6ad4a49faad3332d7d30e7847fce39c2b426391fca5/hstrat-1.18.0-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3a83c9cd61285db3bc32dbd9536a3b47e21b8954969f7b4d9a4fe2621441bb95",
"md5": "a6a1bb217bfd98f0431899c89f93c1c5",
"sha256": "b029ea9b55772fbbb40dd8b582aa056b863d8c1fc12c8e1cd6b65ebd46e14f7b"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "a6a1bb217bfd98f0431899c89f93c1c5",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 752872,
"upload_time": "2025-02-02T03:36:34",
"upload_time_iso_8601": "2025-02-02T03:36:34.524816Z",
"url": "https://files.pythonhosted.org/packages/3a/83/c9cd61285db3bc32dbd9536a3b47e21b8954969f7b4d9a4fe2621441bb95/hstrat-1.18.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2ccf3116a41b6d6181181af5b5dca0bb17ff6747dc55d793ecf7fa760c2e450a",
"md5": "0eb0577b2cf584512100d0236ac113ea",
"sha256": "a103fb465ce4beb01331898769228ac30960e3db8e631e029ae336af28e3bb2d"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "0eb0577b2cf584512100d0236ac113ea",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 768094,
"upload_time": "2025-02-02T03:36:36",
"upload_time_iso_8601": "2025-02-02T03:36:36.785285Z",
"url": "https://files.pythonhosted.org/packages/2c/cf/3116a41b6d6181181af5b5dca0bb17ff6747dc55d793ecf7fa760c2e450a/hstrat-1.18.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "74ba49c4b02c50907320a50deb764f9198aab186ad908e6e03347b835b632d02",
"md5": "22a5d8084950e9a644c9f5b32673e69a",
"sha256": "68e2790c51839cccf6667323d09dea37a902b454d79a72387005176ec66c546a"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "22a5d8084950e9a644c9f5b32673e69a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 811226,
"upload_time": "2025-02-02T03:36:38",
"upload_time_iso_8601": "2025-02-02T03:36:38.303316Z",
"url": "https://files.pythonhosted.org/packages/74/ba/49c4b02c50907320a50deb764f9198aab186ad908e6e03347b835b632d02/hstrat-1.18.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6d57b18103afbcc4563adab7483a85b04b3882b31ab784b70d6b663f3f7e960e",
"md5": "1db58f8c7bd3c59fdbdbfaff07b1cea4",
"sha256": "c4a5b2f6364871850d464763ff33a9dfbdbb2eaabb3d6c4bfd014a814f91b151"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1db58f8c7bd3c59fdbdbfaff07b1cea4",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 799915,
"upload_time": "2025-02-02T03:36:40",
"upload_time_iso_8601": "2025-02-02T03:36:40.537273Z",
"url": "https://files.pythonhosted.org/packages/6d/57/b18103afbcc4563adab7483a85b04b3882b31ab784b70d6b663f3f7e960e/hstrat-1.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2b486ae5088d1405c16eb9925521bdb8ef6658c6732791ded18e12e7782fa40b",
"md5": "1f220d53a5137f7fb20fb281c0685ddd",
"sha256": "d295decd1202a0a9f5985720ae20d3c3337d955b5c0abcf8f88c742ce1ba2234"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp313-cp313-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "1f220d53a5137f7fb20fb281c0685ddd",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 1872729,
"upload_time": "2025-02-02T03:36:41",
"upload_time_iso_8601": "2025-02-02T03:36:41.974935Z",
"url": "https://files.pythonhosted.org/packages/2b/48/6ae5088d1405c16eb9925521bdb8ef6658c6732791ded18e12e7782fa40b/hstrat-1.18.0-cp313-cp313-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "54796b98fc5a9cf446e90c39b52a6801befd82a7e181cd6ed0e67625f1637ba5",
"md5": "b502828999d5b77e8ef54314452c6974",
"sha256": "37ddf6e56f2da98420a15d8598ea2f6fdc55a145c5171fa8e45572b1e4631b7d"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "b502828999d5b77e8ef54314452c6974",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 1773216,
"upload_time": "2025-02-02T03:36:43",
"upload_time_iso_8601": "2025-02-02T03:36:43.435532Z",
"url": "https://files.pythonhosted.org/packages/54/79/6b98fc5a9cf446e90c39b52a6801befd82a7e181cd6ed0e67625f1637ba5/hstrat-1.18.0-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c8ef67ee83df077a99fde59ffe47b2981477acb69299f30ba53f50c580e082af",
"md5": "e260f379e737bdaa6fbeba0cbbfea83c",
"sha256": "ddad7a4e0e6d5f32c8edecac64fbab72969c6e3349232bf86d9423f36e328426"
},
"downloads": -1,
"filename": "hstrat-1.18.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "e260f379e737bdaa6fbeba0cbbfea83c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 752911,
"upload_time": "2025-02-02T03:36:46",
"upload_time_iso_8601": "2025-02-02T03:36:46.607317Z",
"url": "https://files.pythonhosted.org/packages/c8/ef/67ee83df077a99fde59ffe47b2981477acb69299f30ba53f50c580e082af/hstrat-1.18.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "574b465eecc68010d07c62d6001e19e2bf0782e407343e386ce239e1dddb4a70",
"md5": "cd18685179527d03c21222dd6747ee17",
"sha256": "04db15900ff42492217e29907995c77ee8ba392ebfa8e5332948ba101adf0a21"
},
"downloads": -1,
"filename": "hstrat-1.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "cd18685179527d03c21222dd6747ee17",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 765534,
"upload_time": "2025-02-02T03:36:48",
"upload_time_iso_8601": "2025-02-02T03:36:48.832350Z",
"url": "https://files.pythonhosted.org/packages/57/4b/465eecc68010d07c62d6001e19e2bf0782e407343e386ce239e1dddb4a70/hstrat-1.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "837df0bb2e5856ffe1ed1eea89bc5b865ee8ad1a98233806e4b53089a9012d4a",
"md5": "3efbba4ba68e7300e7c871ffd7443d02",
"sha256": "281c87e7c52530e28bb6047570f62bd0091e05dbe39912f186aa47c0c4b0bb4b"
},
"downloads": -1,
"filename": "hstrat-1.18.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "3efbba4ba68e7300e7c871ffd7443d02",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 810127,
"upload_time": "2025-02-02T03:36:51",
"upload_time_iso_8601": "2025-02-02T03:36:51.199147Z",
"url": "https://files.pythonhosted.org/packages/83/7d/f0bb2e5856ffe1ed1eea89bc5b865ee8ad1a98233806e4b53089a9012d4a/hstrat-1.18.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "958a210ce63ff713ffe14de8dfdd76e946d9c266f27b95825417b66a94c79f2b",
"md5": "a8f5afe6bf4e54988f72553629bc5c0f",
"sha256": "c833d7ff7f2d082d811285265738194b174677d7594b6fead534d9dc1278f0c0"
},
"downloads": -1,
"filename": "hstrat-1.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a8f5afe6bf4e54988f72553629bc5c0f",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 800392,
"upload_time": "2025-02-02T03:36:52",
"upload_time_iso_8601": "2025-02-02T03:36:52.871365Z",
"url": "https://files.pythonhosted.org/packages/95/8a/210ce63ff713ffe14de8dfdd76e946d9c266f27b95825417b66a94c79f2b/hstrat-1.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "22efc3c6082a784915bf5b10827e11a799809735d66433a52abab3f48dee5cfa",
"md5": "d783f75c68abfe74cdec34df6cf31231",
"sha256": "c12a2d9266b4ac4c3e5fafe97dcde057b04847c4caa63d829f9f89829e3bb86e"
},
"downloads": -1,
"filename": "hstrat-1.18.0-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "d783f75c68abfe74cdec34df6cf31231",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.10",
"size": 751650,
"upload_time": "2025-02-02T03:36:54",
"upload_time_iso_8601": "2025-02-02T03:36:54.423438Z",
"url": "https://files.pythonhosted.org/packages/22/ef/c3c6082a784915bf5b10827e11a799809735d66433a52abab3f48dee5cfa/hstrat-1.18.0-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "617b234b8b7fa31506247b17cbbde7aada1d8520abccd55f47b0b0a0e3268e95",
"md5": "9c347036c16e1deb8602ea2a03354ab3",
"sha256": "d0942d13217b9a5e7f1ffd5b666963d96726b08c1cc65b8a852b336b242a2e46"
},
"downloads": -1,
"filename": "hstrat-1.18.0.tar.gz",
"has_sig": false,
"md5_digest": "9c347036c16e1deb8602ea2a03354ab3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 904755,
"upload_time": "2025-02-02T03:36:55",
"upload_time_iso_8601": "2025-02-02T03:36:55.874178Z",
"url": "https://files.pythonhosted.org/packages/61/7b/234b8b7fa31506247b17cbbde7aada1d8520abccd55f47b0b0a0e3268e95/hstrat-1.18.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-02 03:36:55",
"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"
}