<p align="center">
<img
width="100"
src="./doc/LOGO_EGOBOX_v4_100x100.png"
alt="Efficient Global Optimization toolbox in Rust"
/>
</p>
# EGObox - Efficient Global Optimization toolbox
[![tests](https://github.com/relf/egobox/workflows/tests/badge.svg)](https://github.com/relf/egobox/actions?query=workflow%3Atests)
[![pytests](https://github.com/relf/egobox/workflows/pytest/badge.svg)](https://github.com/relf/egobox/actions?query=workflow%3Apytest)
[![linting](https://github.com/relf/egobox/workflows/lint/badge.svg)](https://github.com/relf/egobox/actions?query=workflow%3Alint)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.04737/status.svg)](https://doi.org/10.21105/joss.04737)
Rust toolbox for Efficient Global Optimization inspired by [the EGO implementation](https://smt.readthedocs.io/en/stable/_src_docs/applications/ego.html)
in the [SMT](https://github.com/SMTorg/smt) Python library.
The `egobox` package is twofold:
1. for end-users: [a Python module](#the-python-module), the Python binding of the optimizer named `Egor` and the surrogate model `Gpx`, mixture of Gaussian processes, written in Rust.
2. for developers: [a set of Rust libraries](#the-rust-libraries) useful to implement bayesian optimization (EGO-like) algorithms,
## The Python module
### Installation
```bash
pip install egobox
```
### Egor optimizer
```python
import numpy as np
import egobox as egx
# Objective function
def f_obj(x: np.ndarray) -> np.ndarray:
return (x - 3.5) * np.sin((x - 3.5) / (np.pi))
# Minimize f_opt in [0, 25]
res = egx.Egor(egx.to_specs([[0.0, 25.0]]), seed=42).minimize(f_obj, max_iters=20)
print(f"Optimization f={res.y_opt} at {res.x_opt}") # Optimization f=[-15.12510323] at [18.93525454]
```
### Gpx surrogate model
```python
import numpy as np
import egobox as egx
# Training
xtrain = np.array([0.0, 1.0, 2.0, 3.0, 4.0])
ytrain = np.array([0.0, 1.0, 1.5, 0.9, 1.0])
gpx = egx.Gpx.builder().fit(xtrain, ytrain)
# Prediction
xtest = np.linspace(0, 4, 20).reshape((-1, 1))
ytest = gpx.predict(xtest)
```
See the [tutorial notebooks](https://github.com/relf/egobox/tree/master/doc/README.md) and [examples folder](https://github.com/relf/egobox/tree/d9db0248199558f23d966796737d7ffa8f5de589/python/egobox/examples) for more information on the usage of the optimizer and mixture of Gaussian processes surrogate model.
## The Rust libraries
`egobox` Rust libraries consists of the following sub-packages.
| Name | Version | Documentation | Description |
| :---------------------------------------------------- | :---------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |
| [doe](https://github.com/relf/egobox/tree/master/doe) | [![crates.io](https://img.shields.io/crates/v/egobox-doe)](https://crates.io/crates/egobox-doe) | [![docs](https://docs.rs/egobox-doe/badge.svg)](https://docs.rs/egobox-doe) | sampling methods; contains LHS, FullFactorial, Random methods |
| [gp](https://github.com/relf/egobox/tree/master/gp) | [![crates.io](https://img.shields.io/crates/v/egobox-gp)](https://crates.io/crates/egobox-gp) | [![docs](https://docs.rs/egobox-gp/badge.svg)](https://docs.rs/egobox-gp) | gaussian process regression; contains Kriging, PLS dimension reduction and sparse methods |
| [moe](https://github.com/relf/egobox/tree/master/moe) | [![crates.io](https://img.shields.io/crates/v/egobox-moe)](https://crates.io/crates/egobox-moe) | [![docs](https://docs.rs/egobox-moe/badge.svg)](https://docs.rs/egobox-moe) | mixture of experts using GP models |
| [ego](https://github.com/relf/egobox/tree/master/ego) | [![crates.io](https://img.shields.io/crates/v/egobox-ego)](https://crates.io/crates/egobox-ego) | [![docs](https://docs.rs/egobox-ego/badge.svg)](https://docs.rs/egobox-ego) | efficient global optimization with constraints and mixed integer handling |
### Usage
Depending on the sub-packages you want to use, you have to add following declarations to your `Cargo.toml`
```text
[dependencies]
egobox-doe = { version = "0.25" }
egobox-gp = { version = "0.25" }
egobox-moe = { version = "0.25" }
egobox-ego = { version = "0.25" }
```
### Features
The table below presents the various features available depending on the subcrate
| Name | doe | gp | moe | ego |
| :----------- | :--- | :--- | :--- | :--- |
| serializable | ✔️ | ✔️ | ✔️ | |
| persistent | | | ✔️ | ✔️(*) |
| blas | | ✔️ | ✔️ | ✔️ |
| nlopt | | ✔️ | | ✔️ |
(*) required for mixed-variable gaussian process
#### serializable
When selected, the serialization with [serde crate](https://serde.rs/) is enabled.
#### persistent
When selected, the save and load as a json file with [serde_json crate](https://serde.rs/) is enabled.
#### blas
When selected, the usage of BLAS/LAPACK backend is possible, see [below](#blaslapack-backend-optional) for more information.
#### nlopt
When selected, the [nlopt crate](https://github.com/adwhit/rust-nlopt) is used to provide optimizer implementations (ie Cobyla, Slsqp)
### Examples
Examples (in `examples/` sub-packages folder) are run as follows:
```bash
cd doe && cargo run --example samplings --release
```
``` bash
cd gp && cargo run --example kriging --release
```
``` bash
cd moe && cargo run --example clustering --release
```
``` bash
cd ego && cargo run --example ackley --release
```
### BLAS/LAPACK backend (optional)
`egobox` relies on [linfa](https://github.com/rust-ml/linfa) project for methods like clustering and dimension reduction, but also try to adopt as far as possible the same [coding structures](https://github.com/rust-ml/linfa/blob/master/CONTRIBUTE.md).
As for `linfa`, the linear algebra routines used in `gp`, `moe` ad `ego` are provided by the pure-Rust [linfa-linalg](https://github.com/rust-ml/linfa-linalg) crate, the default linear algebra provider.
Otherwise, you can choose an external BLAS/LAPACK backend available through the [ndarray-linalg](https://github.com/rust-ndarray/ndarray-linalg) crate. In this case, you have to specify the `blas` feature and a `linfa` [BLAS/LAPACK backend feature](https://github.com/rust-ml/linfa#blaslapack-backend) (more information in [linfa features](https://github.com/rust-ml/linfa#blaslapack-backend)).
Thus, for instance, to use `gp` with the Intel MKL BLAS/LAPACK backend, you could specify in your `Cargo.toml` the following features:
```text
[dependencies]
egobox-gp = { version = "0.25", features = ["blas", "linfa/intel-mkl-static"] }
```
or you could run the `gp` example as follows:
``` bash
cd gp && cargo run --example kriging --release --features blas,linfa/intel-mkl-static
```
## Citation
[![DOI](https://joss.theoj.org/papers/10.21105/joss.04737/status.svg)](https://doi.org/10.21105/joss.04737)
If you find this project useful for your research, you may cite it as follows:
```text
@article{
Lafage2022,
author = {Rémi Lafage},
title = {egobox, a Rust toolbox for efficient global optimization},
journal = {Journal of Open Source Software}
year = {2022},
doi = {10.21105/joss.04737},
url = {https://doi.org/10.21105/joss.04737},
publisher = {The Open Journal},
volume = {7},
number = {78},
pages = {4737},
}
```
Additionally, you may consider adding a star to the repository. This positive feedback improves the visibility of the project.
## References
Bartoli, N., Lefebvre, T., Dubreuil, S., Olivanti, R., Priem, R., Bons, N., Martins, J. R. R. A.,
& Morlier, J. (2019). Adaptive modeling strategy for constrained global optimization with
application to aerodynamic wing design. Aerospace Science and Technology, 90, 85–102.
<https://doi.org/10.1016/j.ast.2019.03.041>
Bouhlel, M. A., Bartoli, N., Otsmane, A., & Morlier, J. (2016). Improving kriging surrogates
of high-dimensional design models by partial least squares dimension reduction.
Structural and Multidisciplinary Optimization, 53(5), 935–952. <https://doi.org/10.1007/s00158-015-1395-9>
Bouhlel, M. A., Hwang, J. T., Bartoli, N., Lafage, R., Morlier, J., & Martins, J. R. R. A.
(2019). A python surrogate modeling framework with derivatives. Advances in Engineering
Software, 102662. <https://doi.org/10.1016/j.advengsoft.2019.03.005>
Dubreuil, S., Bartoli, N., Gogu, C., & Lefebvre, T. (2020). Towards an efficient global multi-
disciplinary design optimization algorithm. Structural and Multidisciplinary Optimization,
62(4), 1739–1765. <https://doi.org/10.1007/s00158-020-02514-6>
Jones, D. R., Schonlau, M., & Welch, W. J. (1998). Efficient global optimization of expensive
black-box functions. Journal of Global Optimization, 13(4), 455–492. <https://www.researchgate.net/publication/235709802_Efficient_Global_Optimization_of_Expensive_Black-Box_Functions>
Diouane, Youssef, et al. "TREGO: a trust-region framework for efficient global optimization."
Journal of Global Optimization 86.1 (2023): 1-23. <https://arxiv.org/pdf/2101.06808>
smtorg. (2018). Surrogate modeling toolbox. In GitHub repository. GitHub. <https://github.com/SMTOrg/smt>
## License
Licensed under the Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0>
Raw data
{
"_id": null,
"home_page": null,
"name": "egobox",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "machine-learning, doe, gaussian-process, mixture-of-experts, optimization",
"author": "R\u00e9mi Lafage <remi.lafage@onera.fr>",
"author_email": "R\u00e9mi Lafage <remi.lafage@onera.fr>",
"download_url": "https://files.pythonhosted.org/packages/52/b4/4a8bc770f980e373f324266c13af47fba0911cf1d5691ba56640eba8336a/egobox-0.25.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img\n width=\"100\"\n src=\"./doc/LOGO_EGOBOX_v4_100x100.png\"\n alt=\"Efficient Global Optimization toolbox in Rust\"\n />\n</p>\n\n# EGObox - Efficient Global Optimization toolbox\n\n[![tests](https://github.com/relf/egobox/workflows/tests/badge.svg)](https://github.com/relf/egobox/actions?query=workflow%3Atests)\n[![pytests](https://github.com/relf/egobox/workflows/pytest/badge.svg)](https://github.com/relf/egobox/actions?query=workflow%3Apytest)\n[![linting](https://github.com/relf/egobox/workflows/lint/badge.svg)](https://github.com/relf/egobox/actions?query=workflow%3Alint)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.04737/status.svg)](https://doi.org/10.21105/joss.04737)\n\nRust toolbox for Efficient Global Optimization inspired by [the EGO implementation](https://smt.readthedocs.io/en/stable/_src_docs/applications/ego.html)\nin the [SMT](https://github.com/SMTorg/smt) Python library.\n\nThe `egobox` package is twofold:\n\n1. for end-users: [a Python module](#the-python-module), the Python binding of the optimizer named `Egor` and the surrogate model `Gpx`, mixture of Gaussian processes, written in Rust.\n2. for developers: [a set of Rust libraries](#the-rust-libraries) useful to implement bayesian optimization (EGO-like) algorithms,\n\n## The Python module\n\n### Installation\n\n```bash\npip install egobox\n```\n\n### Egor optimizer\n\n```python\nimport numpy as np\nimport egobox as egx\n\n# Objective function\ndef f_obj(x: np.ndarray) -> np.ndarray:\n return (x - 3.5) * np.sin((x - 3.5) / (np.pi))\n\n# Minimize f_opt in [0, 25]\nres = egx.Egor(egx.to_specs([[0.0, 25.0]]), seed=42).minimize(f_obj, max_iters=20)\nprint(f\"Optimization f={res.y_opt} at {res.x_opt}\") # Optimization f=[-15.12510323] at [18.93525454]\n```\n\n### Gpx surrogate model\n\n```python\nimport numpy as np\nimport egobox as egx\n\n# Training\nxtrain = np.array([0.0, 1.0, 2.0, 3.0, 4.0])\nytrain = np.array([0.0, 1.0, 1.5, 0.9, 1.0])\ngpx = egx.Gpx.builder().fit(xtrain, ytrain)\n\n# Prediction\nxtest = np.linspace(0, 4, 20).reshape((-1, 1))\nytest = gpx.predict(xtest)\n```\n\nSee the [tutorial notebooks](https://github.com/relf/egobox/tree/master/doc/README.md) and [examples folder](https://github.com/relf/egobox/tree/d9db0248199558f23d966796737d7ffa8f5de589/python/egobox/examples) for more information on the usage of the optimizer and mixture of Gaussian processes surrogate model.\n\n## The Rust libraries\n\n`egobox` Rust libraries consists of the following sub-packages.\n\n| Name | Version | Documentation | Description |\n| :---------------------------------------------------- | :---------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------- |\n| [doe](https://github.com/relf/egobox/tree/master/doe) | [![crates.io](https://img.shields.io/crates/v/egobox-doe)](https://crates.io/crates/egobox-doe) | [![docs](https://docs.rs/egobox-doe/badge.svg)](https://docs.rs/egobox-doe) | sampling methods; contains LHS, FullFactorial, Random methods |\n| [gp](https://github.com/relf/egobox/tree/master/gp) | [![crates.io](https://img.shields.io/crates/v/egobox-gp)](https://crates.io/crates/egobox-gp) | [![docs](https://docs.rs/egobox-gp/badge.svg)](https://docs.rs/egobox-gp) | gaussian process regression; contains Kriging, PLS dimension reduction and sparse methods |\n| [moe](https://github.com/relf/egobox/tree/master/moe) | [![crates.io](https://img.shields.io/crates/v/egobox-moe)](https://crates.io/crates/egobox-moe) | [![docs](https://docs.rs/egobox-moe/badge.svg)](https://docs.rs/egobox-moe) | mixture of experts using GP models |\n| [ego](https://github.com/relf/egobox/tree/master/ego) | [![crates.io](https://img.shields.io/crates/v/egobox-ego)](https://crates.io/crates/egobox-ego) | [![docs](https://docs.rs/egobox-ego/badge.svg)](https://docs.rs/egobox-ego) | efficient global optimization with constraints and mixed integer handling |\n\n### Usage\n\nDepending on the sub-packages you want to use, you have to add following declarations to your `Cargo.toml`\n\n```text\n[dependencies]\negobox-doe = { version = \"0.25\" }\negobox-gp = { version = \"0.25\" }\negobox-moe = { version = \"0.25\" }\negobox-ego = { version = \"0.25\" }\n```\n\n### Features\n\nThe table below presents the various features available depending on the subcrate\n\n| Name | doe | gp | moe | ego |\n| :----------- | :--- | :--- | :--- | :--- |\n| serializable | \u2714\ufe0f | \u2714\ufe0f | \u2714\ufe0f | |\n| persistent | | | \u2714\ufe0f | \u2714\ufe0f(*) |\n| blas | | \u2714\ufe0f | \u2714\ufe0f | \u2714\ufe0f |\n| nlopt | | \u2714\ufe0f | | \u2714\ufe0f |\n\n(*) required for mixed-variable gaussian process\n\n#### serializable\n\nWhen selected, the serialization with [serde crate](https://serde.rs/) is enabled.\n\n#### persistent\n\nWhen selected, the save and load as a json file with [serde_json crate](https://serde.rs/) is enabled.\n\n#### blas\n\nWhen selected, the usage of BLAS/LAPACK backend is possible, see [below](#blaslapack-backend-optional) for more information.\n\n#### nlopt\n\nWhen selected, the [nlopt crate](https://github.com/adwhit/rust-nlopt) is used to provide optimizer implementations (ie Cobyla, Slsqp)\n\n### Examples\n\nExamples (in `examples/` sub-packages folder) are run as follows:\n\n```bash\ncd doe && cargo run --example samplings --release\n```\n\n``` bash\ncd gp && cargo run --example kriging --release\n```\n\n``` bash\ncd moe && cargo run --example clustering --release\n```\n\n``` bash\ncd ego && cargo run --example ackley --release\n```\n\n### BLAS/LAPACK backend (optional)\n\n`egobox` relies on [linfa](https://github.com/rust-ml/linfa) project for methods like clustering and dimension reduction, but also try to adopt as far as possible the same [coding structures](https://github.com/rust-ml/linfa/blob/master/CONTRIBUTE.md).\n\nAs for `linfa`, the linear algebra routines used in `gp`, `moe` ad `ego` are provided by the pure-Rust [linfa-linalg](https://github.com/rust-ml/linfa-linalg) crate, the default linear algebra provider.\n\nOtherwise, you can choose an external BLAS/LAPACK backend available through the [ndarray-linalg](https://github.com/rust-ndarray/ndarray-linalg) crate. In this case, you have to specify the `blas` feature and a `linfa` [BLAS/LAPACK backend feature](https://github.com/rust-ml/linfa#blaslapack-backend) (more information in [linfa features](https://github.com/rust-ml/linfa#blaslapack-backend)).\n\nThus, for instance, to use `gp` with the Intel MKL BLAS/LAPACK backend, you could specify in your `Cargo.toml` the following features:\n\n```text\n[dependencies]\negobox-gp = { version = \"0.25\", features = [\"blas\", \"linfa/intel-mkl-static\"] }\n```\n\nor you could run the `gp` example as follows:\n\n``` bash\ncd gp && cargo run --example kriging --release --features blas,linfa/intel-mkl-static\n```\n\n## Citation\n\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.04737/status.svg)](https://doi.org/10.21105/joss.04737)\n\nIf you find this project useful for your research, you may cite it as follows:\n\n```text\n@article{\n Lafage2022, \n author = {R\u00e9mi Lafage}, \n title = {egobox, a Rust toolbox for efficient global optimization}, \n journal = {Journal of Open Source Software} \n year = {2022}, \n doi = {10.21105/joss.04737}, \n url = {https://doi.org/10.21105/joss.04737}, \n publisher = {The Open Journal}, \n volume = {7}, \n number = {78}, \n pages = {4737}, \n} \n```\n\nAdditionally, you may consider adding a star to the repository. This positive feedback improves the visibility of the project.\n\n## References\n\nBartoli, N., Lefebvre, T., Dubreuil, S., Olivanti, R., Priem, R., Bons, N., Martins, J. R. R. A.,\n& Morlier, J. (2019). Adaptive modeling strategy for constrained global optimization with\napplication to aerodynamic wing design. Aerospace Science and Technology, 90, 85\u2013102.\n<https://doi.org/10.1016/j.ast.2019.03.041>\n\nBouhlel, M. A., Bartoli, N., Otsmane, A., & Morlier, J. (2016). Improving kriging surrogates\nof high-dimensional design models by partial least squares dimension reduction.\nStructural and Multidisciplinary Optimization, 53(5), 935\u2013952. <https://doi.org/10.1007/s00158-015-1395-9>\n\nBouhlel, M. A., Hwang, J. T., Bartoli, N., Lafage, R., Morlier, J., & Martins, J. R. R. A.\n(2019). A python surrogate modeling framework with derivatives. Advances in Engineering\nSoftware, 102662. <https://doi.org/10.1016/j.advengsoft.2019.03.005>\n\nDubreuil, S., Bartoli, N., Gogu, C., & Lefebvre, T. (2020). Towards an efficient global multi-\ndisciplinary design optimization algorithm. Structural and Multidisciplinary Optimization,\n62(4), 1739\u20131765. <https://doi.org/10.1007/s00158-020-02514-6>\n\nJones, D. R., Schonlau, M., & Welch, W. J. (1998). Efficient global optimization of expensive\nblack-box functions. Journal of Global Optimization, 13(4), 455\u2013492. <https://www.researchgate.net/publication/235709802_Efficient_Global_Optimization_of_Expensive_Black-Box_Functions>\n\nDiouane, Youssef, et al. \"TREGO: a trust-region framework for efficient global optimization.\"\nJournal of Global Optimization 86.1 (2023): 1-23. <https://arxiv.org/pdf/2101.06808>\n\nsmtorg. (2018). Surrogate modeling toolbox. In GitHub repository. GitHub. <https://github.com/SMTOrg/smt>\n\n## License\n\nLicensed under the Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0>\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A toolbox for efficient global optimization",
"version": "0.25.0",
"project_urls": {
"Source Code": "https://github.com/relf/egobox"
},
"split_keywords": [
"machine-learning",
" doe",
" gaussian-process",
" mixture-of-experts",
" optimization"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "548506efa5a4911f1f7b0e980ffaa6492ce74a526f899a97543f6a2b195015f3",
"md5": "0f48f318c0dad91736aac3b5ac8fad61",
"sha256": "70adfc09ba1407f14b41ae3e1f5c982feabc5c9e27abca79ea64c48733d4a6a2"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "0f48f318c0dad91736aac3b5ac8fad61",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 4816068,
"upload_time": "2024-12-19T11:07:09",
"upload_time_iso_8601": "2024-12-19T11:07:09.030761Z",
"url": "https://files.pythonhosted.org/packages/54/85/06efa5a4911f1f7b0e980ffaa6492ce74a526f899a97543f6a2b195015f3/egobox-0.25.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4a6073df03ccebed07814653f4590febac074d9c3d95e8dd0c5e78f7ee68eac9",
"md5": "7ccd78f5459c60db6ca4009084c58c94",
"sha256": "733066b9296c08a29c982b4baeb843bcd0cb0e323eb8ec20f69fd0b5f005363b"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7ccd78f5459c60db6ca4009084c58c94",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 4753591,
"upload_time": "2024-12-19T11:07:12",
"upload_time_iso_8601": "2024-12-19T11:07:12.986470Z",
"url": "https://files.pythonhosted.org/packages/4a/60/73df03ccebed07814653f4590febac074d9c3d95e8dd0c5e78f7ee68eac9/egobox-0.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6b53e0752f38f63eca03a20290dc306c839f6a8dd3b8996aee11e41cfea78b16",
"md5": "6f8b29bc21b9d478a59aad2c13fe4d2a",
"sha256": "e2d8ebb86e211895e5f04cd67e1263c0f3435a025c3d3adebf0da58960bfa933"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp310-cp310-manylinux_2_35_x86_64.whl",
"has_sig": false,
"md5_digest": "6f8b29bc21b9d478a59aad2c13fe4d2a",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 4750051,
"upload_time": "2024-12-19T11:07:16",
"upload_time_iso_8601": "2024-12-19T11:07:16.262319Z",
"url": "https://files.pythonhosted.org/packages/6b/53/e0752f38f63eca03a20290dc306c839f6a8dd3b8996aee11e41cfea78b16/egobox-0.25.0-cp310-cp310-manylinux_2_35_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7b697ec5d1be5007ee87937cc45936e5b2b2ddc9623341dc5e7a2a67eb8a9478",
"md5": "3b96bcddf1defde2b128b854089d35f9",
"sha256": "f76c15fa8a339bdd321f557cccdf48b1bb3274089e23094639447ffd7376bb40"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "3b96bcddf1defde2b128b854089d35f9",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 3150414,
"upload_time": "2024-12-19T11:07:20",
"upload_time_iso_8601": "2024-12-19T11:07:20.256572Z",
"url": "https://files.pythonhosted.org/packages/7b/69/7ec5d1be5007ee87937cc45936e5b2b2ddc9623341dc5e7a2a67eb8a9478/egobox-0.25.0-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "21d8efa589bcd3924875e3a21e09e3c108bb45ef9a60f60b8d21138bd7efa394",
"md5": "68d060433dd4886204ecef5218b389c4",
"sha256": "e6cc7fdb8a72458479e3cf1de314de1454af94ff164f059cd6cf2e9e0a272df5"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "68d060433dd4886204ecef5218b389c4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 3654172,
"upload_time": "2024-12-19T11:07:22",
"upload_time_iso_8601": "2024-12-19T11:07:22.723032Z",
"url": "https://files.pythonhosted.org/packages/21/d8/efa589bcd3924875e3a21e09e3c108bb45ef9a60f60b8d21138bd7efa394/egobox-0.25.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fde30b00f1a093f9601fa861534a3c7c615a3e63a2272df6e359399d744f791f",
"md5": "d1f6ca49f4d378b99fd3dd28d4a4de76",
"sha256": "66924bd64b472213c61a4cc1986f35dae753411d503f53fd338b164c368cc872"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp311-cp311-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "d1f6ca49f4d378b99fd3dd28d4a4de76",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 4166359,
"upload_time": "2024-12-19T11:07:25",
"upload_time_iso_8601": "2024-12-19T11:07:25.987699Z",
"url": "https://files.pythonhosted.org/packages/fd/e3/0b00f1a093f9601fa861534a3c7c615a3e63a2272df6e359399d744f791f/egobox-0.25.0-cp311-cp311-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a48f922b002a5d0497cc5fb250b4e53465195b82a410817568a2c4b2144921b5",
"md5": "7bc84663086c9597968f5e96c70582a6",
"sha256": "86d1331cb1aac94e461394b543d2bdbe639b886ec7f705508493ff0efb75983f"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7bc84663086c9597968f5e96c70582a6",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 3864978,
"upload_time": "2024-12-19T11:07:28",
"upload_time_iso_8601": "2024-12-19T11:07:28.381692Z",
"url": "https://files.pythonhosted.org/packages/a4/8f/922b002a5d0497cc5fb250b4e53465195b82a410817568a2c4b2144921b5/egobox-0.25.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0c4001ed1f38ebec854b64a9bfd691e7fe7c4940a8605d74dd16eabf3af507aa",
"md5": "2b4c07648eb4bc2bff10c4ba1b1dd83d",
"sha256": "1b8c5c747faeb811493747df50f24ccc61fde090ddebed049a5b0968781c1b51"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "2b4c07648eb4bc2bff10c4ba1b1dd83d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 4816380,
"upload_time": "2024-12-19T11:07:31",
"upload_time_iso_8601": "2024-12-19T11:07:31.331681Z",
"url": "https://files.pythonhosted.org/packages/0c/40/01ed1f38ebec854b64a9bfd691e7fe7c4940a8605d74dd16eabf3af507aa/egobox-0.25.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6b8136db37041be50b9873cb10cbf5f0df30018c51ce29a49e874f55283e21f7",
"md5": "e91251c760e9a35e3fae3111afac6670",
"sha256": "77c7f97e8589daf152af4404caab0cda8efcd3bceeb9227fbd64d70815b3e6b7"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e91251c760e9a35e3fae3111afac6670",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 4753442,
"upload_time": "2024-12-19T11:07:35",
"upload_time_iso_8601": "2024-12-19T11:07:35.334380Z",
"url": "https://files.pythonhosted.org/packages/6b/81/36db37041be50b9873cb10cbf5f0df30018c51ce29a49e874f55283e21f7/egobox-0.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "693fc2673ed28fb0c21f498a91ed3b33a35cf32072242604c769942bb47321df",
"md5": "e968973e21e5af6ee0378c8ae4e26b3c",
"sha256": "9dcbbf967638bdd0e6d9aae83cf8886daab88a9e591ba6cd8c6210fbdcfcdba0"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "e968973e21e5af6ee0378c8ae4e26b3c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 3150448,
"upload_time": "2024-12-19T11:07:37",
"upload_time_iso_8601": "2024-12-19T11:07:37.539987Z",
"url": "https://files.pythonhosted.org/packages/69/3f/c2673ed28fb0c21f498a91ed3b33a35cf32072242604c769942bb47321df/egobox-0.25.0-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5021fc7c62d103157022d98e594978cd7b9bfaa97aaedd0dd3328f537580e447",
"md5": "b58d572335deab8dd7e715ceb980eb6b",
"sha256": "0bd4da770c145ed958e317125ce2a4ed1e0a544eeaf610f22c14e31161669901"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "b58d572335deab8dd7e715ceb980eb6b",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 3654445,
"upload_time": "2024-12-19T11:07:39",
"upload_time_iso_8601": "2024-12-19T11:07:39.724549Z",
"url": "https://files.pythonhosted.org/packages/50/21/fc7c62d103157022d98e594978cd7b9bfaa97aaedd0dd3328f537580e447/egobox-0.25.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "805f34c14e6c39cc52e9a4e5ef203d909768c49d19092deab390405a72c3b03e",
"md5": "a37176172f93f927dafc304f9de7f92b",
"sha256": "8afdefd815c2fe394ab94c91ab4cc7afa443f9a1cc1e3ef316ebc1b8f96d0f60"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp312-cp312-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "a37176172f93f927dafc304f9de7f92b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 4161603,
"upload_time": "2024-12-19T11:07:41",
"upload_time_iso_8601": "2024-12-19T11:07:41.985552Z",
"url": "https://files.pythonhosted.org/packages/80/5f/34c14e6c39cc52e9a4e5ef203d909768c49d19092deab390405a72c3b03e/egobox-0.25.0-cp312-cp312-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f253b0709552fb5121477403b9ff7618729166f3dbc27b8f497228376b79b685",
"md5": "a5357f61792dd71c04402d17b0701a25",
"sha256": "347c4c993efb27d5ee83db773f91e23598488e96f7b23fa715ecee0414f141e7"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a5357f61792dd71c04402d17b0701a25",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 3860521,
"upload_time": "2024-12-19T11:07:45",
"upload_time_iso_8601": "2024-12-19T11:07:45.227622Z",
"url": "https://files.pythonhosted.org/packages/f2/53/b0709552fb5121477403b9ff7618729166f3dbc27b8f497228376b79b685/egobox-0.25.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8193fb9d584fc48a0d50cad04f0020191ed365b9b4b2027839ba698e01f9c081",
"md5": "14382cd10a1677d3bf9694b0d5c83c39",
"sha256": "7a59b8bba8092f6f60b20526d38db0a638189ae4db86f5dd1a7c2463f6be52b9"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "14382cd10a1677d3bf9694b0d5c83c39",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 4814828,
"upload_time": "2024-12-19T11:07:48",
"upload_time_iso_8601": "2024-12-19T11:07:48.594430Z",
"url": "https://files.pythonhosted.org/packages/81/93/fb9d584fc48a0d50cad04f0020191ed365b9b4b2027839ba698e01f9c081/egobox-0.25.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6c39c1e7ea95ba5abeda33667e5c2f1cdfc291cf1c1084a74665f1982751d5df",
"md5": "a1b59e0f87405495f977dc43dea2a9e3",
"sha256": "f602d76cd94058adc5a82b40c8193bab0c981235d292dbb05b447d101be633f6"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a1b59e0f87405495f977dc43dea2a9e3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 4747896,
"upload_time": "2024-12-19T11:07:50",
"upload_time_iso_8601": "2024-12-19T11:07:50.884654Z",
"url": "https://files.pythonhosted.org/packages/6c/39/c1e7ea95ba5abeda33667e5c2f1cdfc291cf1c1084a74665f1982751d5df/egobox-0.25.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7cd66ee740da66585d09454e7d70a96f5f9aa1bb28ecd01532c75bd2f90f6f47",
"md5": "bf4f2e9e8ed32047313a9670d36974ee",
"sha256": "bf0dc9c94da686e6ca765dd32681dbc49dc5cba1fbee96f1239077e621d9a8b8"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "bf4f2e9e8ed32047313a9670d36974ee",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 3147389,
"upload_time": "2024-12-19T11:07:52",
"upload_time_iso_8601": "2024-12-19T11:07:52.979104Z",
"url": "https://files.pythonhosted.org/packages/7c/d6/6ee740da66585d09454e7d70a96f5f9aa1bb28ecd01532c75bd2f90f6f47/egobox-0.25.0-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b9bdfe4ddd0cd617aa7227fae05fd8f8b253dc4acbe6b0c6bf210f4feb5e7ecb",
"md5": "f38c4440be876c5c3356c36e06dd3ad6",
"sha256": "8a80fa1ea5a9935625734ad8518adacd81b341bd2f5f382c56ecef63c359f5f8"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "f38c4440be876c5c3356c36e06dd3ad6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 3657573,
"upload_time": "2024-12-19T11:07:57",
"upload_time_iso_8601": "2024-12-19T11:07:57.321800Z",
"url": "https://files.pythonhosted.org/packages/b9/bd/fe4ddd0cd617aa7227fae05fd8f8b253dc4acbe6b0c6bf210f4feb5e7ecb/egobox-0.25.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "49c3a54d1b0c9542e5a54148ca4d028f8b9d63f9503c9d4d30396ca463d48e75",
"md5": "f41e1b860ec0da971a587d65cac176f7",
"sha256": "f0d2b7cede90431a7dfaa5de2b0320d09086fdc2a1c9573a69f9a2123e98a13c"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp313-cp313-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "f41e1b860ec0da971a587d65cac176f7",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 4160745,
"upload_time": "2024-12-19T11:07:59",
"upload_time_iso_8601": "2024-12-19T11:07:59.529315Z",
"url": "https://files.pythonhosted.org/packages/49/c3/a54d1b0c9542e5a54148ca4d028f8b9d63f9503c9d4d30396ca463d48e75/egobox-0.25.0-cp313-cp313-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "15ff8f6b11b03de0eef4ab8f57aac4ecfad3714b64de4d17aa7b19e8ca428cef",
"md5": "b0e61702119e421d62e6384562439977",
"sha256": "1094bb7617edb0a5260d40d3094954ce54a80c34046016420937052aa1db1225"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "b0e61702119e421d62e6384562439977",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 3860375,
"upload_time": "2024-12-19T11:08:01",
"upload_time_iso_8601": "2024-12-19T11:08:01.520172Z",
"url": "https://files.pythonhosted.org/packages/15/ff/8f6b11b03de0eef4ab8f57aac4ecfad3714b64de4d17aa7b19e8ca428cef/egobox-0.25.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "82b4076b325d57b3116a44aac8ab621d7a89be7919997b0add35bda69d674fea",
"md5": "54ce1483b77edd750de713ebe22abf72",
"sha256": "27f02b976e68f7451f7a39f447585fbf1763cef14d93b3401fb6834764087c6f"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "54ce1483b77edd750de713ebe22abf72",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 4814097,
"upload_time": "2024-12-19T11:08:03",
"upload_time_iso_8601": "2024-12-19T11:08:03.721889Z",
"url": "https://files.pythonhosted.org/packages/82/b4/076b325d57b3116a44aac8ab621d7a89be7919997b0add35bda69d674fea/egobox-0.25.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "40f183cec6e899d9ee00951fcc9d1e456386ccda2d83a73752f54ab604a84f4b",
"md5": "e2f654fe11f37dfe33b75c26b469293a",
"sha256": "33b9d532c3ee1172c055a531dd07141cdcd124b1de2c043526c6f7fd2d05f004"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e2f654fe11f37dfe33b75c26b469293a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 4747007,
"upload_time": "2024-12-19T11:08:07",
"upload_time_iso_8601": "2024-12-19T11:08:07.588225Z",
"url": "https://files.pythonhosted.org/packages/40/f1/83cec6e899d9ee00951fcc9d1e456386ccda2d83a73752f54ab604a84f4b/egobox-0.25.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "da6366618ef029e02da9a2531d25c45ed3d106bfdce8bf10643300875e9640b7",
"md5": "1afe7bbb61f1e2be5a3f1ef2c87b356a",
"sha256": "8411903a8ed882106156326cf18ec279935825149eff8faf686ff29348928075"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "1afe7bbb61f1e2be5a3f1ef2c87b356a",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 4816766,
"upload_time": "2024-12-19T11:08:10",
"upload_time_iso_8601": "2024-12-19T11:08:10.071766Z",
"url": "https://files.pythonhosted.org/packages/da/63/66618ef029e02da9a2531d25c45ed3d106bfdce8bf10643300875e9640b7/egobox-0.25.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4f69f04fb4bfc4ef7ec1997648a4dbd68dedcb6a04a930fb765f86e78c60a85a",
"md5": "7063cde9228483ffb984e9b53536146b",
"sha256": "023ecd17fa7050db845cf9ec19046886b068ad621bbd934adc6d9e24864fb069"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7063cde9228483ffb984e9b53536146b",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 4756784,
"upload_time": "2024-12-19T11:08:12",
"upload_time_iso_8601": "2024-12-19T11:08:12.489307Z",
"url": "https://files.pythonhosted.org/packages/4f/69/f04fb4bfc4ef7ec1997648a4dbd68dedcb6a04a930fb765f86e78c60a85a/egobox-0.25.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0d67a0cbb22213acbc13101206fe0eade892288aa13f380d4a2f9527cc56041d",
"md5": "d4ede6d709441c5c656531010ffb996f",
"sha256": "36580a5fa84b006fc48499a3c4010eef6a04b620159b492a9dcf26065b726029"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp37-cp37m-win32.whl",
"has_sig": false,
"md5_digest": "d4ede6d709441c5c656531010ffb996f",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 3148327,
"upload_time": "2024-12-19T11:08:14",
"upload_time_iso_8601": "2024-12-19T11:08:14.456889Z",
"url": "https://files.pythonhosted.org/packages/0d/67/a0cbb22213acbc13101206fe0eade892288aa13f380d4a2f9527cc56041d/egobox-0.25.0-cp37-cp37m-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "200965b27dd6a500bd46b011476604185304eaabd74ca6eabe50dfab51aa21d5",
"md5": "4e110ffe18f6652786090f4909a03ae3",
"sha256": "d354a94bb9a4a7b4d7c8c36bf965979e2739cbd1204af045b90cb4a8bfdad044"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp37-cp37m-win_amd64.whl",
"has_sig": false,
"md5_digest": "4e110ffe18f6652786090f4909a03ae3",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 3654169,
"upload_time": "2024-12-19T11:08:16",
"upload_time_iso_8601": "2024-12-19T11:08:16.669456Z",
"url": "https://files.pythonhosted.org/packages/20/09/65b27dd6a500bd46b011476604185304eaabd74ca6eabe50dfab51aa21d5/egobox-0.25.0-cp37-cp37m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3b7f9bfc8f40d6b713ccdfdc94bd006302dbb441a75bf4d8ce674069e1262ee5",
"md5": "f68e97c1675f80aef4bd474af3f159fd",
"sha256": "66a8736fad8f436a1281e83fc32611e2a78a48f3a9c4bec8b9c908e49d26d6c2"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "f68e97c1675f80aef4bd474af3f159fd",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 4816622,
"upload_time": "2024-12-19T11:08:20",
"upload_time_iso_8601": "2024-12-19T11:08:20.131371Z",
"url": "https://files.pythonhosted.org/packages/3b/7f/9bfc8f40d6b713ccdfdc94bd006302dbb441a75bf4d8ce674069e1262ee5/egobox-0.25.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f4add7ab802ce86a9d51659d14c6d9cf63468619e53ff12a6e39cdc2fd4f48e9",
"md5": "cc6bd60e77fc06db38f5e80134884149",
"sha256": "6045276f171fe8cc3a6e4421a3424aca59028e5a25f1e279d1a316d9abe2a45b"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "cc6bd60e77fc06db38f5e80134884149",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 4755854,
"upload_time": "2024-12-19T11:08:22",
"upload_time_iso_8601": "2024-12-19T11:08:22.698955Z",
"url": "https://files.pythonhosted.org/packages/f4/ad/d7ab802ce86a9d51659d14c6d9cf63468619e53ff12a6e39cdc2fd4f48e9/egobox-0.25.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "23923b137b14bd91ed11f8d5beb51b6ed7b327fb02bb1c4adc01a098b3cb25ba",
"md5": "5fef44756450682935a55ff8830bf408",
"sha256": "e618cb9dd201673f555f107088f200422e8e9c1789c73a194fbc7004432580b6"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp38-cp38-win32.whl",
"has_sig": false,
"md5_digest": "5fef44756450682935a55ff8830bf408",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 3148340,
"upload_time": "2024-12-19T11:08:25",
"upload_time_iso_8601": "2024-12-19T11:08:25.955483Z",
"url": "https://files.pythonhosted.org/packages/23/92/3b137b14bd91ed11f8d5beb51b6ed7b327fb02bb1c4adc01a098b3cb25ba/egobox-0.25.0-cp38-cp38-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ef791bb6af8eea3d24a397153e16483a9debda207b5b64955f37c2bf12499238",
"md5": "aee49ed7e8498372037e854408182e7a",
"sha256": "a7e785af09571b501e1532d06534a2df55a383e13496ac2003e0b00a1caebccf"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "aee49ed7e8498372037e854408182e7a",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 3654234,
"upload_time": "2024-12-19T11:08:28",
"upload_time_iso_8601": "2024-12-19T11:08:28.222372Z",
"url": "https://files.pythonhosted.org/packages/ef/79/1bb6af8eea3d24a397153e16483a9debda207b5b64955f37c2bf12499238/egobox-0.25.0-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3edc77059b3893c03afa346a81b38b9409ddbb5433117051d7b23d422d4ff6ff",
"md5": "6a3424a20e149a25fc20e4b9ee9ec6c4",
"sha256": "860d4712964d3f016d6b7b790b281564635b767514d41d94c1849e2ce83d5d57"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "6a3424a20e149a25fc20e4b9ee9ec6c4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 4816328,
"upload_time": "2024-12-19T11:08:30",
"upload_time_iso_8601": "2024-12-19T11:08:30.830232Z",
"url": "https://files.pythonhosted.org/packages/3e/dc/77059b3893c03afa346a81b38b9409ddbb5433117051d7b23d422d4ff6ff/egobox-0.25.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b2d7c6090c9268ed26d9935b7303f52f642bba9ab733ee1aa77ba064048f1a28",
"md5": "6b3f2dde21681a560ab87150695da964",
"sha256": "bd776ffa84b46913603c9bb377ebd3adfc4b6dcaf503f4b32466c88cd7ac5d72"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6b3f2dde21681a560ab87150695da964",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 4755149,
"upload_time": "2024-12-19T11:08:33",
"upload_time_iso_8601": "2024-12-19T11:08:33.782839Z",
"url": "https://files.pythonhosted.org/packages/b2/d7/c6090c9268ed26d9935b7303f52f642bba9ab733ee1aa77ba064048f1a28/egobox-0.25.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1b56f63d48df73cff748bc318bfd73625568a544520d2aacd80279dba7f8185f",
"md5": "538cbd6066fea1a313ce6cd5923a6f95",
"sha256": "a67dd6c3355304e8249a0299fcda66e76f9e809a05c6281e48ac8aa4e81edd70"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "538cbd6066fea1a313ce6cd5923a6f95",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 3150455,
"upload_time": "2024-12-19T11:08:35",
"upload_time_iso_8601": "2024-12-19T11:08:35.984489Z",
"url": "https://files.pythonhosted.org/packages/1b/56/f63d48df73cff748bc318bfd73625568a544520d2aacd80279dba7f8185f/egobox-0.25.0-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0c047a4dcaa1d0b35536f4baa7225a6c8a69267e6f849ee6137bbdc98fea3c8b",
"md5": "233ae016455ef38cd91b63881a9f0461",
"sha256": "33a26b8a8d7c18b47aa90fe785a6d82cfeb533e033106b97c1d2d9e8ef0da40d"
},
"downloads": -1,
"filename": "egobox-0.25.0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "233ae016455ef38cd91b63881a9f0461",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 3654248,
"upload_time": "2024-12-19T11:08:42",
"upload_time_iso_8601": "2024-12-19T11:08:42.096164Z",
"url": "https://files.pythonhosted.org/packages/0c/04/7a4dcaa1d0b35536f4baa7225a6c8a69267e6f849ee6137bbdc98fea3c8b/egobox-0.25.0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "99154464ed21629a62649c8145f8b6587a6e0acf2e0bd263981cd4843d9b55db",
"md5": "2dd84dc863490e9ea3b4e25c622ceecb",
"sha256": "d1f726869b710b0c8dcb3279415f043205582ab820e7de5f85d74658662db555"
},
"downloads": -1,
"filename": "egobox-0.25.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "2dd84dc863490e9ea3b4e25c622ceecb",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": null,
"size": 4815018,
"upload_time": "2024-12-19T11:08:45",
"upload_time_iso_8601": "2024-12-19T11:08:45.747615Z",
"url": "https://files.pythonhosted.org/packages/99/15/4464ed21629a62649c8145f8b6587a6e0acf2e0bd263981cd4843d9b55db/egobox-0.25.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bdbde2a066722e7422b122eefd0b4e229ead047e0a82ba8e437c6fca51781b63",
"md5": "a543b0e1bcae71d4eefb24fa3ae7b8e2",
"sha256": "d6c50d6f6df9a6494563bfdbaa8141f25adf4d52c5638d175b01341ca4c1d60f"
},
"downloads": -1,
"filename": "egobox-0.25.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a543b0e1bcae71d4eefb24fa3ae7b8e2",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": null,
"size": 4756360,
"upload_time": "2024-12-19T11:08:49",
"upload_time_iso_8601": "2024-12-19T11:08:49.887817Z",
"url": "https://files.pythonhosted.org/packages/bd/bd/e2a066722e7422b122eefd0b4e229ead047e0a82ba8e437c6fca51781b63/egobox-0.25.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "52b44a8bc770f980e373f324266c13af47fba0911cf1d5691ba56640eba8336a",
"md5": "c20f551a744c4fc814b91d967cc3416d",
"sha256": "239c0993c0d036259e391023899faac64bbe3846048c1cdb5da432aa85bced40"
},
"downloads": -1,
"filename": "egobox-0.25.0.tar.gz",
"has_sig": false,
"md5_digest": "c20f551a744c4fc814b91d967cc3416d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1522605,
"upload_time": "2024-12-19T11:08:53",
"upload_time_iso_8601": "2024-12-19T11:08:53.625243Z",
"url": "https://files.pythonhosted.org/packages/52/b4/4a8bc770f980e373f324266c13af47fba0911cf1d5691ba56640eba8336a/egobox-0.25.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-19 11:08:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "relf",
"github_project": "egobox",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "egobox"
}