egobox


Nameegobox JSON
Version 0.24.0 PyPI version JSON
download
home_pageNone
SummaryA toolbox for efficient global optimization
upload_time2024-11-12 18:04:02
maintainerNone
docs_urlNone
authorRémi Lafage <remi.lafage@onera.fr>
requires_pythonNone
licenseApache-2.0
keywords machine-learning doe gaussian-process mixture-of-experts optimization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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]]).T
ytrain = np.array([[0.0, 1.0, 1.5, 0.9, 1.0]]).T
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.24" }
egobox-gp  = { version = "0.24" }
egobox-moe = { version = "0.24" }
egobox-ego = { version = "0.24" }
```

### 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.24", 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/4a/8f/4c9a6bb9c57be42b7b1eff74b260074e8445ef787be15ae781fe4da13168/egobox-0.24.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]]).T\nytrain = np.array([[0.0, 1.0, 1.5, 0.9, 1.0]]).T\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.24\" }\negobox-gp  = { version = \"0.24\" }\negobox-moe = { version = \"0.24\" }\negobox-ego = { version = \"0.24\" }\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.24\", 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.24.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": "f13118805213eed5b3df35260dd1ec35e62cb81d48b967ab2c633f289bd6f4e3",
                "md5": "1226ff8ab01a91bf41d3f7ce29e51ee3",
                "sha256": "5084bd1c2512ceef5a23bf99f1b25ba911011b3a86b2c92c38ed489eaae61f6b"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1226ff8ab01a91bf41d3f7ce29e51ee3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 4146109,
            "upload_time": "2024-11-12T18:02:35",
            "upload_time_iso_8601": "2024-11-12T18:02:35.608671Z",
            "url": "https://files.pythonhosted.org/packages/f1/31/18805213eed5b3df35260dd1ec35e62cb81d48b967ab2c633f289bd6f4e3/egobox-0.24.0-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "900d150b2e5fe61a3809cf5e64ecca49b67318113e9df1ba1b77062ea999ab7d",
                "md5": "1cc45b59d29da7b98b3f4778e1072beb",
                "sha256": "c8b7827f73f5dcfb64765df3261b673c50423d670eba7f78da3a33ffacf93796"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1cc45b59d29da7b98b3f4778e1072beb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 3844921,
            "upload_time": "2024-11-12T18:02:38",
            "upload_time_iso_8601": "2024-11-12T18:02:38.181132Z",
            "url": "https://files.pythonhosted.org/packages/90/0d/150b2e5fe61a3809cf5e64ecca49b67318113e9df1ba1b77062ea999ab7d/egobox-0.24.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "87e3c0d17c9a02616255ec4ba6bc73af7bb3d00c7bb428519eb37dbd013c357a",
                "md5": "d4b3c88a9b43ffff3815e3e1b8c213e9",
                "sha256": "1b5c26262d93d8f56075b647cfba1d3f4d25781889b2917b8fd38b347b83b45f"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d4b3c88a9b43ffff3815e3e1b8c213e9",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 4785835,
            "upload_time": "2024-11-12T18:02:41",
            "upload_time_iso_8601": "2024-11-12T18:02:41.258540Z",
            "url": "https://files.pythonhosted.org/packages/87/e3/c0d17c9a02616255ec4ba6bc73af7bb3d00c7bb428519eb37dbd013c357a/egobox-0.24.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2c6dcd2146d14552d3adcb2dae8d0cb3b1a73e18d01128462328806246bc8c0d",
                "md5": "a42e3178f319a7f463d90532e374321b",
                "sha256": "2b1e45c1235f866bbc46f0ef928c50990ede785e3412eb105d3fbbd2f4ce28db"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a42e3178f319a7f463d90532e374321b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 4729189,
            "upload_time": "2024-11-12T18:02:43",
            "upload_time_iso_8601": "2024-11-12T18:02:43.544988Z",
            "url": "https://files.pythonhosted.org/packages/2c/6d/cd2146d14552d3adcb2dae8d0cb3b1a73e18d01128462328806246bc8c0d/egobox-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cad95ee12b38ba11ac9dc4d2be18c01d68cbfa63cade722b6c2ed56b73fbdadd",
                "md5": "a5d5a5255b6056c9493dfe340120d630",
                "sha256": "55e8c521118cfa3b89fa87314c7703c260bd6b58e506f41d2493ae9ffe4fcfc7"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp310-cp310-manylinux_2_35_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a5d5a5255b6056c9493dfe340120d630",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 4726557,
            "upload_time": "2024-11-12T18:02:46",
            "upload_time_iso_8601": "2024-11-12T18:02:46.350072Z",
            "url": "https://files.pythonhosted.org/packages/ca/d9/5ee12b38ba11ac9dc4d2be18c01d68cbfa63cade722b6c2ed56b73fbdadd/egobox-0.24.0-cp310-cp310-manylinux_2_35_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8502469ec696650a000af9d543731003ddea84e951233ff394608e2d5619d99f",
                "md5": "2023f6d72614252d7cfe7eef6ce7afde",
                "sha256": "dbe1fde1e1bb59fc6009520adacb1c7b265087b1a5af4220fd00474fe86bff9d"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp310-none-win32.whl",
            "has_sig": false,
            "md5_digest": "2023f6d72614252d7cfe7eef6ce7afde",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 3122872,
            "upload_time": "2024-11-12T18:02:49",
            "upload_time_iso_8601": "2024-11-12T18:02:49.517050Z",
            "url": "https://files.pythonhosted.org/packages/85/02/469ec696650a000af9d543731003ddea84e951233ff394608e2d5619d99f/egobox-0.24.0-cp310-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bc6a72006651f74b1a2ec3091beb9853ddd4d0d3924466d076743f83f0c27427",
                "md5": "5888171e9205bb12ea347bfa7af40216",
                "sha256": "304d348ed07e0b2f74f0472a5efd99f6950d33ec031b6440f165c557cd7a4cf8"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp310-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5888171e9205bb12ea347bfa7af40216",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 3617997,
            "upload_time": "2024-11-12T18:02:52",
            "upload_time_iso_8601": "2024-11-12T18:02:52.191653Z",
            "url": "https://files.pythonhosted.org/packages/bc/6a/72006651f74b1a2ec3091beb9853ddd4d0d3924466d076743f83f0c27427/egobox-0.24.0-cp310-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d665c4d643f76b03644b2cd8338556284aa5b48fa6123a007e97f8f4b9ea460",
                "md5": "866752688a399220094d3cab2c99af6b",
                "sha256": "204c059bc9bb2cf25373ad97a17cc15e875a18abbd2fbcd9765b52dd286eba25"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "866752688a399220094d3cab2c99af6b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 4146652,
            "upload_time": "2024-11-12T18:02:54",
            "upload_time_iso_8601": "2024-11-12T18:02:54.998590Z",
            "url": "https://files.pythonhosted.org/packages/5d/66/5c4d643f76b03644b2cd8338556284aa5b48fa6123a007e97f8f4b9ea460/egobox-0.24.0-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f1a77cbc72fe12604cacd02932c7c27a169641087f8b06760af2dfa45d8fe649",
                "md5": "6d02ba33950fa01a19e27d419b2544e6",
                "sha256": "84a9361b1f0d3888f9a7c7bfa720d5304d890b0a25a889297a45c8bd175c846a"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "6d02ba33950fa01a19e27d419b2544e6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 3844440,
            "upload_time": "2024-11-12T18:02:57",
            "upload_time_iso_8601": "2024-11-12T18:02:57.817030Z",
            "url": "https://files.pythonhosted.org/packages/f1/a7/7cbc72fe12604cacd02932c7c27a169641087f8b06760af2dfa45d8fe649/egobox-0.24.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "be4350ac2c6e931b5abd2865b66a2efd951116d52e2a61f15564b0bfc855ade7",
                "md5": "ff40549ac1f991b10aee8d5c53912474",
                "sha256": "4cf3a25185d4323800f06f328b1b12d43bf04039daf6a95910beb2fad1c4848c"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "ff40549ac1f991b10aee8d5c53912474",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 4785308,
            "upload_time": "2024-11-12T18:03:00",
            "upload_time_iso_8601": "2024-11-12T18:03:00.472477Z",
            "url": "https://files.pythonhosted.org/packages/be/43/50ac2c6e931b5abd2865b66a2efd951116d52e2a61f15564b0bfc855ade7/egobox-0.24.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e590751604f583cc0376c00b1cbc26b770a31a787d1272e7166e6dc47dd5ebde",
                "md5": "611a04d6d1fa96e903fb0fc09a0ceb3e",
                "sha256": "1badae8dad84586c9e0dfa7609478a793fddc2db4cf397d10b10ffea3200da0e"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "611a04d6d1fa96e903fb0fc09a0ceb3e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 4727853,
            "upload_time": "2024-11-12T18:03:02",
            "upload_time_iso_8601": "2024-11-12T18:03:02.521823Z",
            "url": "https://files.pythonhosted.org/packages/e5/90/751604f583cc0376c00b1cbc26b770a31a787d1272e7166e6dc47dd5ebde/egobox-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "06e9c8b268c6d0527df0f502f44da78d1e1131478eab4189939ea9a167fad980",
                "md5": "2791f49f0daa3232ccb9d378046582ce",
                "sha256": "9a9dc522a84b8707e495bad438ea191dc4bd8cbed581c5d3d68fecce83f59a2c"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp311-none-win32.whl",
            "has_sig": false,
            "md5_digest": "2791f49f0daa3232ccb9d378046582ce",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 3123786,
            "upload_time": "2024-11-12T18:03:05",
            "upload_time_iso_8601": "2024-11-12T18:03:05.256329Z",
            "url": "https://files.pythonhosted.org/packages/06/e9/c8b268c6d0527df0f502f44da78d1e1131478eab4189939ea9a167fad980/egobox-0.24.0-cp311-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d88044d2ee9896af73521e02eedabe8f3ab402fcc5259925b644121f2c32eb8c",
                "md5": "92395727d52c21929c31ea6dc26c1d89",
                "sha256": "0d32bd5ac378a153b5015e54be00d10990f5f0b77713dc0fc1388165a196ccc5"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp311-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "92395727d52c21929c31ea6dc26c1d89",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 3619232,
            "upload_time": "2024-11-12T18:03:07",
            "upload_time_iso_8601": "2024-11-12T18:03:07.319253Z",
            "url": "https://files.pythonhosted.org/packages/d8/80/44d2ee9896af73521e02eedabe8f3ab402fcc5259925b644121f2c32eb8c/egobox-0.24.0-cp311-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f47c260204ae629373d0b5eca735fef68d14d145529d885cf589fbe5726fab1b",
                "md5": "ab28eef38a512347450a13854722ce12",
                "sha256": "9980a63b8202eacba29f358eb8fab8286d09d9466e678dc1e508b23352090761"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ab28eef38a512347450a13854722ce12",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 4142185,
            "upload_time": "2024-11-12T18:03:10",
            "upload_time_iso_8601": "2024-11-12T18:03:10.931248Z",
            "url": "https://files.pythonhosted.org/packages/f4/7c/260204ae629373d0b5eca735fef68d14d145529d885cf589fbe5726fab1b/egobox-0.24.0-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f2a81696ca2fc0ef43f7fd6208b4421f9acc04e3bdebe89b9b1bd96ff950635f",
                "md5": "8f42c1a86bb2a5dbe5f7e5f61e9ceb5d",
                "sha256": "7c21b30e7b37e2358fa03093c03d580f5a0f14b3224e0243ec91a228ba911625"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8f42c1a86bb2a5dbe5f7e5f61e9ceb5d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 3839766,
            "upload_time": "2024-11-12T18:03:13",
            "upload_time_iso_8601": "2024-11-12T18:03:13.649886Z",
            "url": "https://files.pythonhosted.org/packages/f2/a8/1696ca2fc0ef43f7fd6208b4421f9acc04e3bdebe89b9b1bd96ff950635f/egobox-0.24.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "de38170a7f8eea4afc8bfbfa0b237bc11d98ac9dddba7be9237c9bfc10a24695",
                "md5": "0d0023b92e419ff9be8cb57a430d8d62",
                "sha256": "d7cd7679c0b7c7f469d9e5cee4ef9aa1026836e392672e5966aa955c773da922"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "0d0023b92e419ff9be8cb57a430d8d62",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 4793748,
            "upload_time": "2024-11-12T18:03:17",
            "upload_time_iso_8601": "2024-11-12T18:03:17.325378Z",
            "url": "https://files.pythonhosted.org/packages/de/38/170a7f8eea4afc8bfbfa0b237bc11d98ac9dddba7be9237c9bfc10a24695/egobox-0.24.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "41d8cd3feb0340469d40327c39a8813b90d0eb508c6b71e42c2776167b308087",
                "md5": "e21e8b2f1e28f6a427a218c603cfcc26",
                "sha256": "7f14309cabf0e0c76514b8699a56a6f661b170f2f9211efa43cc2e2003d3160a"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e21e8b2f1e28f6a427a218c603cfcc26",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 4730448,
            "upload_time": "2024-11-12T18:03:19",
            "upload_time_iso_8601": "2024-11-12T18:03:19.600679Z",
            "url": "https://files.pythonhosted.org/packages/41/d8/cd3feb0340469d40327c39a8813b90d0eb508c6b71e42c2776167b308087/egobox-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "77b864b9a7d1a140d44417d0e525df2fd6d821d4ce03de888e4ff32ba390a25c",
                "md5": "62699a8fd297fe30e70ea40d33c8fff8",
                "sha256": "25884c66732f4a58e1889cfb509e9cbe5cf6b4a2c5a1408c4fb55eb08212ab9a"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp312-none-win32.whl",
            "has_sig": false,
            "md5_digest": "62699a8fd297fe30e70ea40d33c8fff8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 3136738,
            "upload_time": "2024-11-12T18:03:21",
            "upload_time_iso_8601": "2024-11-12T18:03:21.794107Z",
            "url": "https://files.pythonhosted.org/packages/77/b8/64b9a7d1a140d44417d0e525df2fd6d821d4ce03de888e4ff32ba390a25c/egobox-0.24.0-cp312-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "82befc133b5a8e50ffe417466d979764cf2fb81c2178ccf3eec0d29e6eb0af4b",
                "md5": "a6d13406c54df3141abe717d4f868dfe",
                "sha256": "03152f73553591a1e0d37fd91a5e55c70a43cd9401b5451b44668154bd58048f"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp312-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a6d13406c54df3141abe717d4f868dfe",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 3621233,
            "upload_time": "2024-11-12T18:03:23",
            "upload_time_iso_8601": "2024-11-12T18:03:23.930621Z",
            "url": "https://files.pythonhosted.org/packages/82/be/fc133b5a8e50ffe417466d979764cf2fb81c2178ccf3eec0d29e6eb0af4b/egobox-0.24.0-cp312-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "391d4962524e3f7db55dd7a4156aa7127f146f7adec474035a3185c1815023d3",
                "md5": "0f10e438e201ef0187b2fdfbb2ed731d",
                "sha256": "0b2723b802776b7d9ebee404b0ce262edc426b2d35a4748c873e83b368195798"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "0f10e438e201ef0187b2fdfbb2ed731d",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 4787324,
            "upload_time": "2024-11-12T18:03:26",
            "upload_time_iso_8601": "2024-11-12T18:03:26.010427Z",
            "url": "https://files.pythonhosted.org/packages/39/1d/4962524e3f7db55dd7a4156aa7127f146f7adec474035a3185c1815023d3/egobox-0.24.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0bc315fa56cdbe26ffdf0d28f56af10cc0a081c5078cb0950e5af62461eebca4",
                "md5": "81a759529b7126de7032815a713f0260",
                "sha256": "2abfff272fc6b0cdd3723df69fc04d855b17e620b15a24930ed9aba70a3b1a80"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "81a759529b7126de7032815a713f0260",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 4729852,
            "upload_time": "2024-11-12T18:03:28",
            "upload_time_iso_8601": "2024-11-12T18:03:28.636569Z",
            "url": "https://files.pythonhosted.org/packages/0b/c3/15fa56cdbe26ffdf0d28f56af10cc0a081c5078cb0950e5af62461eebca4/egobox-0.24.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "61586d9551e714043df7dcad05998947c9b0679b1408902588fc7e03f3b02e13",
                "md5": "67071d3ce1982d9204f906901a89e4bc",
                "sha256": "c71668415c9c3d7a2e6ae6d076b389a01120d45e81cf28514b0f7d6175442b97"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp37-none-win32.whl",
            "has_sig": false,
            "md5_digest": "67071d3ce1982d9204f906901a89e4bc",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 3123821,
            "upload_time": "2024-11-12T18:03:30",
            "upload_time_iso_8601": "2024-11-12T18:03:30.785044Z",
            "url": "https://files.pythonhosted.org/packages/61/58/6d9551e714043df7dcad05998947c9b0679b1408902588fc7e03f3b02e13/egobox-0.24.0-cp37-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ad6caa8f2b4eea660d4d8dfc40f56d2e9e03601d90dac33d0549f69251bb613d",
                "md5": "3b701fe3577c08ecf6820a05049a4d2a",
                "sha256": "7bc3015764be25d084b4ad1030ad661a0452f0cb9321d0faa562b66ae8089f94"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp37-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3b701fe3577c08ecf6820a05049a4d2a",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 3618418,
            "upload_time": "2024-11-12T18:03:33",
            "upload_time_iso_8601": "2024-11-12T18:03:33.155808Z",
            "url": "https://files.pythonhosted.org/packages/ad/6c/aa8f2b4eea660d4d8dfc40f56d2e9e03601d90dac33d0549f69251bb613d/egobox-0.24.0-cp37-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0b8d908c8c03679686d0aba50184db5743d4273bdcdcec7154bd0f87ce6f3f75",
                "md5": "383c21089c3937dc5236858a1bdda492",
                "sha256": "36dde45565cc1bb2cf1b914dc843f13bad0c4360090cad85c8568342f2961f57"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "383c21089c3937dc5236858a1bdda492",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 4788652,
            "upload_time": "2024-11-12T18:03:35",
            "upload_time_iso_8601": "2024-11-12T18:03:35.488176Z",
            "url": "https://files.pythonhosted.org/packages/0b/8d/908c8c03679686d0aba50184db5743d4273bdcdcec7154bd0f87ce6f3f75/egobox-0.24.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "57bc8328f2feaa3407178a74c762c2b32436cb4848b720c7736edae2e88a8652",
                "md5": "607ae1a207bfbc8657cae64416c9bde7",
                "sha256": "84f801e251166c9df23cca4288d878c7468b8f49d1b160ed1cb4cbafe0072ffe"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "607ae1a207bfbc8657cae64416c9bde7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 4730252,
            "upload_time": "2024-11-12T18:03:38",
            "upload_time_iso_8601": "2024-11-12T18:03:38.034183Z",
            "url": "https://files.pythonhosted.org/packages/57/bc/8328f2feaa3407178a74c762c2b32436cb4848b720c7736edae2e88a8652/egobox-0.24.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "240e9edd6ace5f9d36efb4b563cf4c30a9a2f6038e0582553cee7e9e80b37460",
                "md5": "92e79fe8e1aa3f252bf5df2325f9bc8b",
                "sha256": "997686daa77f74101b18da54abf61083afc7322a276b3fdd97bffc41773f3fbd"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp38-none-win32.whl",
            "has_sig": false,
            "md5_digest": "92e79fe8e1aa3f252bf5df2325f9bc8b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 3122734,
            "upload_time": "2024-11-12T18:03:40",
            "upload_time_iso_8601": "2024-11-12T18:03:40.198262Z",
            "url": "https://files.pythonhosted.org/packages/24/0e/9edd6ace5f9d36efb4b563cf4c30a9a2f6038e0582553cee7e9e80b37460/egobox-0.24.0-cp38-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "062b9c4cb9ce436c17da19c13d425845b544e0a096b8a7ca38942346738b96cd",
                "md5": "6c967f7089099ccffdfd9138e0714c13",
                "sha256": "bd9604b871c718323ee3e752631fbdd5d7048d80eaf982e17829cb74a0687a77"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp38-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6c967f7089099ccffdfd9138e0714c13",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 3617139,
            "upload_time": "2024-11-12T18:03:42",
            "upload_time_iso_8601": "2024-11-12T18:03:42.447325Z",
            "url": "https://files.pythonhosted.org/packages/06/2b/9c4cb9ce436c17da19c13d425845b544e0a096b8a7ca38942346738b96cd/egobox-0.24.0-cp38-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ecbdaf218668e56b051b2cc0c0a88ecccc451187a2a49c88e4fa753c02170b97",
                "md5": "74efd7d8d75e758dd1358360a7213602",
                "sha256": "eaa8d542bdcb4dad95672a3641d7a5ab18c10b9cd61ac4eafba33859d75a37ce"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "74efd7d8d75e758dd1358360a7213602",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 4147012,
            "upload_time": "2024-11-12T18:03:44",
            "upload_time_iso_8601": "2024-11-12T18:03:44.533137Z",
            "url": "https://files.pythonhosted.org/packages/ec/bd/af218668e56b051b2cc0c0a88ecccc451187a2a49c88e4fa753c02170b97/egobox-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "02a19be61407887274fb5f160d00133fb2b952c92ecb7e535a7390f3d704278f",
                "md5": "fe53362fca9a740dc0ac52c4ac719e23",
                "sha256": "81bc968de593c67d26a0ccbc1fdc40748e7d16b229a3d32efe4d68108a84f14e"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fe53362fca9a740dc0ac52c4ac719e23",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 3845371,
            "upload_time": "2024-11-12T18:03:46",
            "upload_time_iso_8601": "2024-11-12T18:03:46.661007Z",
            "url": "https://files.pythonhosted.org/packages/02/a1/9be61407887274fb5f160d00133fb2b952c92ecb7e535a7390f3d704278f/egobox-0.24.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4591d5c6d0b79b2df4062b4d4f66268d594e3cfd93ad8ee449291826632530fc",
                "md5": "4788f6d76d28f6e32e13a59f64504d38",
                "sha256": "35bf6a66f7a7b4bc46aa0e2a1b40cd3916d34a2eeebd953a86f5b72e9d13a25e"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "4788f6d76d28f6e32e13a59f64504d38",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 4787188,
            "upload_time": "2024-11-12T18:03:48",
            "upload_time_iso_8601": "2024-11-12T18:03:48.789907Z",
            "url": "https://files.pythonhosted.org/packages/45/91/d5c6d0b79b2df4062b4d4f66268d594e3cfd93ad8ee449291826632530fc/egobox-0.24.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0c1a97962fe2a00e43e5e6d2561d6b8f70dfcee519a96c7edc2df1fecbe1527a",
                "md5": "d30e5593dc47c654ad25a654218d0641",
                "sha256": "84907739a13ce01eea7e735e0146b4c9c2e31108304c780b36e99a8ac210c67a"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d30e5593dc47c654ad25a654218d0641",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 4729724,
            "upload_time": "2024-11-12T18:03:51",
            "upload_time_iso_8601": "2024-11-12T18:03:51.047757Z",
            "url": "https://files.pythonhosted.org/packages/0c/1a/97962fe2a00e43e5e6d2561d6b8f70dfcee519a96c7edc2df1fecbe1527a/egobox-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bea3845ca8886c2cf9329eb9c5c8ba5f09ffa5d656f64f937399489042b69bb9",
                "md5": "ad44fbc1134d40771df1a84b92bc1fe7",
                "sha256": "065656f3482b278b8f76ea2df049417174bcce81d2e061f3bb9042e5881038e1"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp39-none-win32.whl",
            "has_sig": false,
            "md5_digest": "ad44fbc1134d40771df1a84b92bc1fe7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 3123004,
            "upload_time": "2024-11-12T18:03:53",
            "upload_time_iso_8601": "2024-11-12T18:03:53.836392Z",
            "url": "https://files.pythonhosted.org/packages/be/a3/845ca8886c2cf9329eb9c5c8ba5f09ffa5d656f64f937399489042b69bb9/egobox-0.24.0-cp39-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bb86148a5330ed097bb47df2d87ddcebedc15585ececa1c2e6da793ab673f927",
                "md5": "d494c6f7ba324f81aefd51d742201ec8",
                "sha256": "258025ce91351a7fdb267eb634cd63fcd6ac457be59b3c761de9d1eee4b9d1d5"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-cp39-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d494c6f7ba324f81aefd51d742201ec8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 3618425,
            "upload_time": "2024-11-12T18:03:56",
            "upload_time_iso_8601": "2024-11-12T18:03:56.070775Z",
            "url": "https://files.pythonhosted.org/packages/bb/86/148a5330ed097bb47df2d87ddcebedc15585ececa1c2e6da793ab673f927/egobox-0.24.0-cp39-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "21752c267461dacbd1f2626f9af495f993d61c3dd137c9c7b416721e16d5a2be",
                "md5": "84b8782278fdab0a40e0e6c6dc0540ee",
                "sha256": "33820bee621aa34135ef160d55e5364789e42d43a4e902fea7c73d685909928d"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "84b8782278fdab0a40e0e6c6dc0540ee",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": null,
            "size": 4789841,
            "upload_time": "2024-11-12T18:03:58",
            "upload_time_iso_8601": "2024-11-12T18:03:58.207593Z",
            "url": "https://files.pythonhosted.org/packages/21/75/2c267461dacbd1f2626f9af495f993d61c3dd137c9c7b416721e16d5a2be/egobox-0.24.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4c6324d1a9b08ff9e7ba106c3341848013797af946ceeedc979a9ff7985c85a2",
                "md5": "08294455731a636c2b528f96f2a15f53",
                "sha256": "538c63f6eee3918567fbf32b0912f0b4e4f1d2985d23c34f7c6fe3570a10a6c6"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "08294455731a636c2b528f96f2a15f53",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": null,
            "size": 4734210,
            "upload_time": "2024-11-12T18:04:00",
            "upload_time_iso_8601": "2024-11-12T18:04:00.377705Z",
            "url": "https://files.pythonhosted.org/packages/4c/63/24d1a9b08ff9e7ba106c3341848013797af946ceeedc979a9ff7985c85a2/egobox-0.24.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4a8f4c9a6bb9c57be42b7b1eff74b260074e8445ef787be15ae781fe4da13168",
                "md5": "77e7e93fbcb3658c73caea0b506c2415",
                "sha256": "4b2215beb4361dad538a3937bb90cff050049a32ab5654b6da98daf9df16ef56"
            },
            "downloads": -1,
            "filename": "egobox-0.24.0.tar.gz",
            "has_sig": false,
            "md5_digest": "77e7e93fbcb3658c73caea0b506c2415",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1486561,
            "upload_time": "2024-11-12T18:04:02",
            "upload_time_iso_8601": "2024-11-12T18:04:02.462435Z",
            "url": "https://files.pythonhosted.org/packages/4a/8f/4c9a6bb9c57be42b7b1eff74b260074e8445ef787be15ae781fe4da13168/egobox-0.24.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-12 18:04:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "relf",
    "github_project": "egobox",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "egobox"
}
        
Elapsed time: 0.46786s