astroemperor


Nameastroemperor JSON
Version 0.9.7.3 PyPI version JSON
download
home_pageNone
SummaryFlexible python exoplanet fitter
upload_time2025-08-20 01:00:43
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseMIT License Copyright (c) [year] [fullname] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords python mcmc sampler adaptive parallel tempering
VCS
bugtrack_url
requirements anyio argon2-cffi argon2-cffi-bindings arrow asttokens async-lru attrs babel beautifulsoup4 bleach certifi cffi charset-normalizer comm contourpy corner cycler debugpy decorator defusedxml emcee executing fast-kepler fastjsonschema fonttools fqdn h11 httpcore httpx idna ipykernel ipython isoduration jedi jinja2 json5 jsonpointer jsonschema jsonschema-specifications jupyter-client jupyter-core jupyter-events jupyter-lsp jupyter-server jupyter-server-terminals jupyterlab jupyterlab-pygments jupyterlab-server jupyterthemes kepler-py kiwisolver lesscpy markupsafe matplotlib matplotlib-inline mistune nbclient nbconvert nbformat nest-asyncio notebook notebook-shim numpy overrides packaging pandocfilters parso pexpect pillow platformdirs ply prometheus-client prompt-toolkit psutil ptyprocess pure-eval pycparser pygments pyparsing python-dateutil python-json-logger pyyaml pyzmq reddcolors reddemcee referencing requests rfc3339-validator rfc3986-validator rpds-py send2trash six sniffio soupsieve stack-data tabulate termcolor terminado tinycss2 tornado tqdm traitlets types-python-dateutil typing-extensions uri-template urllib3 wcwidth webcolors webencodings websocket-client
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # EMPEROR
Exoplanet Mcmc Parallel tEmpering for Rv Orbit Retrieval

# Overview
`EMPEROR` (Exoplanet Mcmc Parallel tEmpering for Rv Orbit Retrieval), is a Python-based algorithm that automatically searches for signals in Radial Velocity timeseries, employing Markov chains and parallel tempering methods, convergence tests and Bayesian statistics, along with various noise models. A number of posterior sampling routines are available, focused on efficiently searching for signals in highly multi-modal posteriors. The code allows the analysis of multi-instrument and multi-planet data sets and performs model comparisons automatically to return the optimum model that best describes the data.

Make sure to check the [documentation!](https://astroemperor.readthedocs.io/en/latest/)

## Why `EMPEROR`?

  - It's really simple to use
  - It has a series of configuration commands that will amaze you
  - Advanced Noise Model
  - Quite Flexible!


# Dependencies
This code makes use of:

  - [Numpy](https://numpy.org)
  - [Scipy](https://scipy.org)
  - [pandas](https://pandas.pydata.org)
  - [matplotlib>=3.5.1](https://matplotlib.org)

  - [kepler](https://github.com/dfm/kepler.py)
  - [reddemcee](https://github.com/ReddTea/reddemcee/)
  - [reddcolors](https://github.com/ReddTea/reddcolors/)
  - [tabulate](https://pypi.org/project/tabulate/)
  - [termcolor](https://pypi.python.org/pypi/termcolor)
  - [tqdm](https://pypi.python.org/pypi/tqdm)

All of them can be easily installed with pip.

For additional capabilities, you can install:

  - [arviz](https://arviz-devs.github.io/arviz/)
  - [celerite2](https://celerite2.readthedocs.io/en/latest/)
  - [corner](https://pypi.python.org/pypi/corner)
  - [dynesty](https://dynesty.readthedocs.io/en/stable/)
  - [emcee](http://dan.iel.fm/emcee/current/)
  - [scikit-learn](https://scikit-learn.org/stable/)



# Installation

## Pip
In the console type
```sh
pip3 install astroEMPEROR
```

## From Source
In the console type
```sh
git clone https://github.com/ReddTea/astroEMPEROR.git
```


## Installation Verification
Download the [tests folder](https://github.com/ReddTea/astroemperor/tree/main/tests) and run `test_basic.py` to make sure everything works!

In terminal:

```sh
python test_basic.py
```


# Quick Usage
We need to set up our working directory with two subfolders, `datafiles` and `datalogs`, the former for data input, the later for output.

```
๐Ÿ“‚working_directory
 โ”ฃ ๐Ÿ“œmini_test.py
 โ”ฃ ๐Ÿ“‚datafiles
 โ”ƒ โ”ฃ ๐Ÿ“‚51Peg
 โ”ƒ โ”ƒ โ”— ๐Ÿ“‚RV
 โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œ51peg.vels
 โ”ฃ ๐Ÿ“‚datalogs
 โ”ƒ โ”ฃ ๐Ÿ“‚51Peg
 โ”ƒ โ”ƒ โ”— ๐Ÿ“‚run_1
```

Running the code is as simple as:

```python
import astroemperor

sim = astroemperor.Simulation()

sim.set_engine('reddemcee')
sim.engine_config['setup'] = [2, 100, 500, 1]
sim.load_data('51Peg')  # read from ./datafiles/

sim.plot_trace['plot'] = False  # deactivate arviz plots
sim.autorun(1, 1)  # (from=1, to=1): just 1 keplerian

```

# Outputs
All results can be found in the `datalogs` folder. You will see chain plots, posterior plots, histograms, phasefolded curves, the chain sample and more!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "astroemperor",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "python, MCMC, sampler, adaptive, parallel tempering",
    "author": null,
    "author_email": "ReddTea <redd@tea.com>",
    "download_url": "https://files.pythonhosted.org/packages/3f/68/296f8cdcb670dc73857bece4a6bcae3d4f3dc1fef6456cd256d7083a5ae5/astroemperor-0.9.7.3.tar.gz",
    "platform": null,
    "description": "# EMPEROR\nExoplanet Mcmc Parallel tEmpering for Rv Orbit Retrieval\n\n# Overview\n`EMPEROR` (Exoplanet Mcmc Parallel tEmpering for Rv Orbit Retrieval), is a Python-based algorithm that automatically searches for signals in Radial Velocity timeseries, employing Markov chains and parallel tempering methods, convergence tests and Bayesian statistics, along with various noise models. A number of posterior sampling routines are available, focused on efficiently searching for signals in highly multi-modal posteriors. The code allows the analysis of multi-instrument and multi-planet data sets and performs model comparisons automatically to return the optimum model that best describes the data.\n\nMake sure to check the [documentation!](https://astroemperor.readthedocs.io/en/latest/)\n\n## Why `EMPEROR`?\n\n  - It's really simple to use\n  - It has a series of configuration commands that will amaze you\n  - Advanced Noise Model\n  - Quite Flexible!\n\n\n# Dependencies\nThis code makes use of:\n\n  - [Numpy](https://numpy.org)\n  - [Scipy](https://scipy.org)\n  - [pandas](https://pandas.pydata.org)\n  - [matplotlib>=3.5.1](https://matplotlib.org)\n\n  - [kepler](https://github.com/dfm/kepler.py)\n  - [reddemcee](https://github.com/ReddTea/reddemcee/)\n  - [reddcolors](https://github.com/ReddTea/reddcolors/)\n  - [tabulate](https://pypi.org/project/tabulate/)\n  - [termcolor](https://pypi.python.org/pypi/termcolor)\n  - [tqdm](https://pypi.python.org/pypi/tqdm)\n\nAll of them can be easily installed with pip.\n\nFor additional capabilities, you can install:\n\n  - [arviz](https://arviz-devs.github.io/arviz/)\n  - [celerite2](https://celerite2.readthedocs.io/en/latest/)\n  - [corner](https://pypi.python.org/pypi/corner)\n  - [dynesty](https://dynesty.readthedocs.io/en/stable/)\n  - [emcee](http://dan.iel.fm/emcee/current/)\n  - [scikit-learn](https://scikit-learn.org/stable/)\n\n\n\n# Installation\n\n## Pip\nIn the console type\n```sh\npip3 install astroEMPEROR\n```\n\n## From Source\nIn the console type\n```sh\ngit clone https://github.com/ReddTea/astroEMPEROR.git\n```\n\n\n## Installation Verification\nDownload the [tests folder](https://github.com/ReddTea/astroemperor/tree/main/tests) and run `test_basic.py` to make sure everything works!\n\nIn terminal:\n\n```sh\npython test_basic.py\n```\n\n\n# Quick Usage\nWe need to set up our working directory with two subfolders, `datafiles` and `datalogs`, the former for data input, the later for output.\n\n```\n\ud83d\udcc2working_directory\n \u2523 \ud83d\udcdcmini_test.py\n \u2523 \ud83d\udcc2datafiles\n \u2503 \u2523 \ud83d\udcc251Peg\n \u2503 \u2503 \u2517 \ud83d\udcc2RV\n \u2503 \u2503 \u2503 \u2517 \ud83d\udcdc51peg.vels\n \u2523 \ud83d\udcc2datalogs\n \u2503 \u2523 \ud83d\udcc251Peg\n \u2503 \u2503 \u2517 \ud83d\udcc2run_1\n```\n\nRunning the code is as simple as:\n\n```python\nimport astroemperor\n\nsim = astroemperor.Simulation()\n\nsim.set_engine('reddemcee')\nsim.engine_config['setup'] = [2, 100, 500, 1]\nsim.load_data('51Peg')  # read from ./datafiles/\n\nsim.plot_trace['plot'] = False  # deactivate arviz plots\nsim.autorun(1, 1)  # (from=1, to=1): just 1 keplerian\n\n```\n\n# Outputs\nAll results can be found in the `datalogs` folder. You will see chain plots, posterior plots, histograms, phasefolded curves, the chain sample and more!\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) [year] [fullname]\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.\n        ",
    "summary": "Flexible python exoplanet fitter",
    "version": "0.9.7.3",
    "project_urls": {
        "Documentation": "https://astroemperor.readthedocs.io/",
        "Homepage": "https://astroemperor.readthedocs.io/",
        "Issues": "https://github.com/ReddTea/astroemperor/issues",
        "Repository": "https://github.com/ReddTea/astroemperor/"
    },
    "split_keywords": [
        "python",
        " mcmc",
        " sampler",
        " adaptive",
        " parallel tempering"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ada2c46c1b69e9bb19643ac4cdc695cea5cd8e1f8bfa99fc28c77edd87479bff",
                "md5": "cfb7ae9be1dcf5988371e75ba3e11bcb",
                "sha256": "4b272a13beadf4f63dadf8d546fcd2ba343656d9c5e2a18d854f54a518857444"
            },
            "downloads": -1,
            "filename": "astroemperor-0.9.7.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cfb7ae9be1dcf5988371e75ba3e11bcb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 100450,
            "upload_time": "2025-08-20T01:00:42",
            "upload_time_iso_8601": "2025-08-20T01:00:42.552780Z",
            "url": "https://files.pythonhosted.org/packages/ad/a2/c46c1b69e9bb19643ac4cdc695cea5cd8e1f8bfa99fc28c77edd87479bff/astroemperor-0.9.7.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3f68296f8cdcb670dc73857bece4a6bcae3d4f3dc1fef6456cd256d7083a5ae5",
                "md5": "f4dab9acddbc4e6e5450fbaf794fdcb3",
                "sha256": "6b9fa12f6d1e4cb104f977a7e94ae523b35b2e2e71557099b1c6a79d11c55eb0"
            },
            "downloads": -1,
            "filename": "astroemperor-0.9.7.3.tar.gz",
            "has_sig": false,
            "md5_digest": "f4dab9acddbc4e6e5450fbaf794fdcb3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 83221,
            "upload_time": "2025-08-20T01:00:43",
            "upload_time_iso_8601": "2025-08-20T01:00:43.744520Z",
            "url": "https://files.pythonhosted.org/packages/3f/68/296f8cdcb670dc73857bece4a6bcae3d4f3dc1fef6456cd256d7083a5ae5/astroemperor-0.9.7.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-20 01:00:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ReddTea",
    "github_project": "astroemperor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "anyio",
            "specs": [
                [
                    "==",
                    "4.8.0"
                ]
            ]
        },
        {
            "name": "argon2-cffi",
            "specs": [
                [
                    "==",
                    "23.1.0"
                ]
            ]
        },
        {
            "name": "argon2-cffi-bindings",
            "specs": [
                [
                    "==",
                    "21.2.0"
                ]
            ]
        },
        {
            "name": "arrow",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "asttokens",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "async-lru",
            "specs": [
                [
                    "==",
                    "2.0.4"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "25.1.0"
                ]
            ]
        },
        {
            "name": "babel",
            "specs": [
                [
                    "==",
                    "2.17.0"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "==",
                    "4.13.3"
                ]
            ]
        },
        {
            "name": "bleach",
            "specs": [
                [
                    "==",
                    "6.2.0"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2025.1.31"
                ]
            ]
        },
        {
            "name": "cffi",
            "specs": [
                [
                    "==",
                    "1.17.1"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.4.1"
                ]
            ]
        },
        {
            "name": "comm",
            "specs": [
                [
                    "==",
                    "0.2.2"
                ]
            ]
        },
        {
            "name": "contourpy",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "corner",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        },
        {
            "name": "cycler",
            "specs": [
                [
                    "==",
                    "0.12.1"
                ]
            ]
        },
        {
            "name": "debugpy",
            "specs": [
                [
                    "==",
                    "1.8.12"
                ]
            ]
        },
        {
            "name": "decorator",
            "specs": [
                [
                    "==",
                    "5.2.1"
                ]
            ]
        },
        {
            "name": "defusedxml",
            "specs": [
                [
                    "==",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "emcee",
            "specs": [
                [
                    "==",
                    "3.1.6"
                ]
            ]
        },
        {
            "name": "executing",
            "specs": [
                [
                    "==",
                    "2.2.0"
                ]
            ]
        },
        {
            "name": "fast-kepler",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "fastjsonschema",
            "specs": [
                [
                    "==",
                    "2.21.1"
                ]
            ]
        },
        {
            "name": "fonttools",
            "specs": [
                [
                    "==",
                    "4.56.0"
                ]
            ]
        },
        {
            "name": "fqdn",
            "specs": [
                [
                    "==",
                    "1.5.1"
                ]
            ]
        },
        {
            "name": "h11",
            "specs": [
                [
                    "==",
                    "0.14.0"
                ]
            ]
        },
        {
            "name": "httpcore",
            "specs": [
                [
                    "==",
                    "1.0.7"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    "==",
                    "0.28.1"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "ipykernel",
            "specs": [
                [
                    "==",
                    "6.29.5"
                ]
            ]
        },
        {
            "name": "ipython",
            "specs": [
                [
                    "==",
                    "8.32.0"
                ]
            ]
        },
        {
            "name": "isoduration",
            "specs": [
                [
                    "==",
                    "20.11.0"
                ]
            ]
        },
        {
            "name": "jedi",
            "specs": [
                [
                    "==",
                    "0.19.2"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    "==",
                    "3.1.5"
                ]
            ]
        },
        {
            "name": "json5",
            "specs": [
                [
                    "==",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "jsonpointer",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "jsonschema",
            "specs": [
                [
                    "==",
                    "4.23.0"
                ]
            ]
        },
        {
            "name": "jsonschema-specifications",
            "specs": [
                [
                    "==",
                    "2024.10.1"
                ]
            ]
        },
        {
            "name": "jupyter-client",
            "specs": [
                [
                    "==",
                    "8.6.3"
                ]
            ]
        },
        {
            "name": "jupyter-core",
            "specs": [
                [
                    "==",
                    "5.7.2"
                ]
            ]
        },
        {
            "name": "jupyter-events",
            "specs": [
                [
                    "==",
                    "0.12.0"
                ]
            ]
        },
        {
            "name": "jupyter-lsp",
            "specs": [
                [
                    "==",
                    "2.2.5"
                ]
            ]
        },
        {
            "name": "jupyter-server",
            "specs": [
                [
                    "==",
                    "2.15.0"
                ]
            ]
        },
        {
            "name": "jupyter-server-terminals",
            "specs": [
                [
                    "==",
                    "0.5.3"
                ]
            ]
        },
        {
            "name": "jupyterlab",
            "specs": [
                [
                    "==",
                    "4.3.5"
                ]
            ]
        },
        {
            "name": "jupyterlab-pygments",
            "specs": [
                [
                    "==",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "jupyterlab-server",
            "specs": [
                [
                    "==",
                    "2.27.3"
                ]
            ]
        },
        {
            "name": "jupyterthemes",
            "specs": [
                [
                    "==",
                    "0.20.0"
                ]
            ]
        },
        {
            "name": "kepler-py",
            "specs": [
                [
                    "==",
                    "0.0.7"
                ]
            ]
        },
        {
            "name": "kiwisolver",
            "specs": [
                [
                    "==",
                    "1.4.8"
                ]
            ]
        },
        {
            "name": "lesscpy",
            "specs": [
                [
                    "==",
                    "0.15.1"
                ]
            ]
        },
        {
            "name": "markupsafe",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.10.1"
                ]
            ]
        },
        {
            "name": "matplotlib-inline",
            "specs": [
                [
                    "==",
                    "0.1.7"
                ]
            ]
        },
        {
            "name": "mistune",
            "specs": [
                [
                    "==",
                    "3.1.2"
                ]
            ]
        },
        {
            "name": "nbclient",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "nbconvert",
            "specs": [
                [
                    "==",
                    "7.16.6"
                ]
            ]
        },
        {
            "name": "nbformat",
            "specs": [
                [
                    "==",
                    "5.10.4"
                ]
            ]
        },
        {
            "name": "nest-asyncio",
            "specs": [
                [
                    "==",
                    "1.6.0"
                ]
            ]
        },
        {
            "name": "notebook",
            "specs": [
                [
                    "==",
                    "7.3.2"
                ]
            ]
        },
        {
            "name": "notebook-shim",
            "specs": [
                [
                    "==",
                    "0.2.4"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        },
        {
            "name": "overrides",
            "specs": [
                [
                    "==",
                    "7.7.0"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "24.2"
                ]
            ]
        },
        {
            "name": "pandocfilters",
            "specs": [
                [
                    "==",
                    "1.5.1"
                ]
            ]
        },
        {
            "name": "parso",
            "specs": [
                [
                    "==",
                    "0.8.4"
                ]
            ]
        },
        {
            "name": "pexpect",
            "specs": [
                [
                    "==",
                    "4.9.0"
                ]
            ]
        },
        {
            "name": "pillow",
            "specs": [
                [
                    "==",
                    "11.1.0"
                ]
            ]
        },
        {
            "name": "platformdirs",
            "specs": [
                [
                    "==",
                    "4.3.6"
                ]
            ]
        },
        {
            "name": "ply",
            "specs": [
                [
                    "==",
                    "3.11"
                ]
            ]
        },
        {
            "name": "prometheus-client",
            "specs": [
                [
                    "==",
                    "0.21.1"
                ]
            ]
        },
        {
            "name": "prompt-toolkit",
            "specs": [
                [
                    "==",
                    "3.0.50"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "ptyprocess",
            "specs": [
                [
                    "==",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "pure-eval",
            "specs": [
                [
                    "==",
                    "0.2.3"
                ]
            ]
        },
        {
            "name": "pycparser",
            "specs": [
                [
                    "==",
                    "2.22"
                ]
            ]
        },
        {
            "name": "pygments",
            "specs": [
                [
                    "==",
                    "2.19.1"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "3.2.1"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.post0"
                ]
            ]
        },
        {
            "name": "python-json-logger",
            "specs": [
                [
                    "==",
                    "3.2.1"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    "==",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "pyzmq",
            "specs": [
                [
                    "==",
                    "26.2.1"
                ]
            ]
        },
        {
            "name": "reddcolors",
            "specs": [
                [
                    "==",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "reddemcee",
            "specs": [
                [
                    "==",
                    "0.8.5"
                ]
            ]
        },
        {
            "name": "referencing",
            "specs": [
                [
                    "==",
                    "0.36.2"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "rfc3339-validator",
            "specs": [
                [
                    "==",
                    "0.1.4"
                ]
            ]
        },
        {
            "name": "rfc3986-validator",
            "specs": [
                [
                    "==",
                    "0.1.1"
                ]
            ]
        },
        {
            "name": "rpds-py",
            "specs": [
                [
                    "==",
                    "0.23.1"
                ]
            ]
        },
        {
            "name": "send2trash",
            "specs": [
                [
                    "==",
                    "1.8.3"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.17.0"
                ]
            ]
        },
        {
            "name": "sniffio",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "soupsieve",
            "specs": [
                [
                    "==",
                    "2.6"
                ]
            ]
        },
        {
            "name": "stack-data",
            "specs": [
                [
                    "==",
                    "0.6.3"
                ]
            ]
        },
        {
            "name": "tabulate",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "termcolor",
            "specs": [
                [
                    "==",
                    "2.5.0"
                ]
            ]
        },
        {
            "name": "terminado",
            "specs": [
                [
                    "==",
                    "0.18.1"
                ]
            ]
        },
        {
            "name": "tinycss2",
            "specs": [
                [
                    "==",
                    "1.4.0"
                ]
            ]
        },
        {
            "name": "tornado",
            "specs": [
                [
                    "==",
                    "6.4.2"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "==",
                    "4.67.1"
                ]
            ]
        },
        {
            "name": "traitlets",
            "specs": [
                [
                    "==",
                    "5.14.3"
                ]
            ]
        },
        {
            "name": "types-python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.20241206"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    "==",
                    "4.12.2"
                ]
            ]
        },
        {
            "name": "uri-template",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "wcwidth",
            "specs": [
                [
                    "==",
                    "0.2.13"
                ]
            ]
        },
        {
            "name": "webcolors",
            "specs": [
                [
                    "==",
                    "24.11.1"
                ]
            ]
        },
        {
            "name": "webencodings",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "websocket-client",
            "specs": [
                [
                    "==",
                    "1.8.0"
                ]
            ]
        }
    ],
    "lcname": "astroemperor"
}
        
Elapsed time: 0.58305s