actorch


Nameactorch JSON
Version 0.0.5 PyPI version JSON
download
home_pagehttps://github.com/lucadellalib/actorch
SummaryDeep reinforcement learning framework for fast prototyping based on PyTorch
upload_time2023-03-12 19:54:29
maintainer
docs_urlNone
authorLuca Della Libera
requires_python>=3.6
licenseApache License 2.0
keywords deep reinforcement learning pytorch
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![logo](docs/_static/images/actorch-logo.png)

[![Python version: 3.6 | 3.7 | 3.8 | 3.9 | 3.10](https://img.shields.io/badge/python-3.6%20|%203.7%20|%203.8%20|%203.9%20|%203.10-blue)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/lucadellalib/bayestorch/blob/main/LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://github.com/PyCQA/isort)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
![PyPI version](https://img.shields.io/pypi/v/actorch)
[![](https://pepy.tech/badge/actorch)](https://pypi.org/project/actorch/)

Welcome to `actorch`, a deep reinforcement learning framework for fast prototyping based on
[PyTorch](https://pytorch.org). The following algorithms have been implemented so far:

- [REINFORCE](https://people.cs.umass.edu/~barto/courses/cs687/williams92simple.pdf)
- [Advantage Actor-Critic (A2C)](https://arxiv.org/abs/1602.01783)
- [Actor-Critic Kronecker-Factored Trust Region (ACKTR)](https://arxiv.org/abs/1708.05144)
- [Trust Region Policy Optimization (TRPO)](https://arxiv.org/abs/1502.05477)
- [Proximal Policy Optimization (PPO)](https://arxiv.org/abs/1707.06347)
- [Advantage-Weighted Regression (AWR)](https://arxiv.org/abs/1910.00177)
- [Deep Deterministic Policy Gradient (DDPG)](https://arxiv.org/abs/1509.02971)
- [Distributional Deep Deterministic Policy Gradient (D3PG)](https://arxiv.org/abs/1804.08617)
- [Twin Delayed Deep Deterministic Policy Gradient (TD3)](https://arxiv.org/abs/1802.09477)
- [Soft Actor-Critic (SAC)](https://arxiv.org/abs/1801.01290)

---------------------------------------------------------------------------------------------------------

## 💡 Key features

- Support for [OpenAI Gymnasium](https://gymnasium.farama.org/) environments
- Support for **custom observation/action spaces**
- Support for **custom multimodal input multimodal output models**
- Support for **recurrent models** (e.g. RNNs, LSTMs, GRUs, etc.)
- Support for **custom policy/value distributions**
- Support for **custom preprocessing/postprocessing pipelines**
- Support for **custom exploration strategies**
- Support for [normalizing flows](https://arxiv.org/abs/1906.02771)
- Batched environments (both for training and evaluation)
- Batched **trajectory replay**
- Batched and **distributional value estimation** (e.g. batched and distributional [Retrace](https://arxiv.org/abs/1606.02647) and [V-trace](https://arxiv.org/abs/1802.01561))
- Data parallel and distributed data parallel **multi-GPU training and evaluation**
- Automatic **mixed precision training**
- Integration with [Ray Tune](https://docs.ray.io/en/releases-1.13.0/tune/index.html) for experiment execution and **hyperparameter tuning** at any scale
- Effortless experiment definition through **Python-based configuration files**
- Built-in **visualization tool** to plot performance metrics
- Modular **object-oriented** design
- Detailed **API documentation**

---------------------------------------------------------------------------------------------------------

## 🛠️️ Installation

For Windows, make sure the latest [Visual C++ runtime](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)
is installed.

### Using Pip

First of all, install [Python 3.6 or later](https://www.python.org). Open a terminal and run:

```bash
pip install actorch
```

### Using Conda virtual environment

Clone or download and extract the repository, navigate to `<path-to-repository>/bin` and run
the installation script (`install.sh` for Linux/macOS, `install.bat` for Windows).
`actorch` and its dependencies (pinned to a specific version) will be installed in
a [Conda](https://www.anaconda.com/) virtual environment named `actorch-env`.

**NOTE**: you can directly use `actorch-env` and the `actorch` package in the local project
directory for development (see [For development](#for-development)).

### Using Docker (Linux/macOS only)

First of all, install [Docker](https://www.docker.com) and [NVIDIA Container Runtime](https://developer.nvidia.com/nvidia-container-runtime).
Clone or download and extract the repository, navigate to `<path-to-repository>`, open a
terminal and run:

```bash
docker build -t <desired-image-name> .                  # Build image
docker run -it --runtime=nvidia <desired-image-name>    # Run container from image
```

`actorch` and its dependencies (pinned to a specific version) will be installed in the
specified Docker image.

**NOTE**: you can directly use the `actorch` package in the local project directory inside
a Docker container run from the specified Docker image for development (see [For development](#for-development)).

### From source

First of all, install [Python 3.6 or later](https://www.python.org).
Clone or download and extract the repository, navigate to `<path-to-repository>`, open a
terminal and run:

```bash
pip install .
```

### For development

First of all, install [Python 3.6 or later](https://www.python.org) and [Git](https://git-scm.com/).
Clone or download and extract the repository, navigate to `<path-to-repository>`, open a
terminal and run:

```bash
pip install -e .[all]
pre-commit install -f
```

This will install the package in editable mode (any change to the package in the local
project directory will automatically reflect on the environment-wide package installed
in the `site-packages` directory of your environment) along with its development, test
and optional dependencies.
Additionally, it installs a [git commit hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks).
Each time you commit, unit tests, static type checkers, code formatters and linters are
run automatically. Run `pre-commit run --all-files` to check that the hook was successfully
installed. For more details, see [`pre-commit`'s documentation](https://pre-commit.com).

---------------------------------------------------------------------------------------------------------

## ▶️ Quickstart

In this example we will solve the [OpenAI Gymnasium](https://gymnasium.farama.org/) environment
`CartPole-v1` using [REINFORCE](https://people.cs.umass.edu/~barto/courses/cs687/williams92simple.pdf).
Copy the following configuration in a file named `REINFORCE_CartPole-v1.py` (**with the
same indentation**):

```python
import gymnasium as gym
from torch.optim import Adam

from actorch import *


experiment_params = ExperimentParams(
    run_or_experiment=REINFORCE,
    stop={"training_iteration": 50},
    resources_per_trial={"cpu": 1, "gpu": 0},
    checkpoint_freq=10,
    checkpoint_at_end=True,
    log_to_file=True,
    export_formats=["checkpoint", "model"],
    config=REINFORCE.Config(
        train_env_builder=lambda **config: ParallelBatchedEnv(
            lambda **kwargs: gym.make("CartPole-v1", **kwargs),
            config,
            num_workers=2,
        ),
        train_num_episodes_per_iter=5,
        eval_freq=10,
        eval_env_config={"render_mode": None},
        eval_num_episodes_per_iter=10,
        policy_network_model_builder=FCNet,
        policy_network_model_config={
            "torso_fc_configs": [{"out_features": 64, "bias": True}],
        },
        policy_network_optimizer_builder=Adam,
        policy_network_optimizer_config={"lr": 1e-1},
        discount=0.99,
        entropy_coeff=0.001,
        max_grad_l2_norm=0.5,
        seed=0,
        enable_amp=False,
        enable_reproducibility=True,
        log_sys_usage=True,
        suppress_warnings=True,
    ),
)
```

Open a terminal in the directory where you saved the configuration file and run
(if you installed `actorch` in a virtual environment, you first need to activate
it, e.g. `conda activate actorch-env` if you installed `actorch` using [Conda](https://www.anaconda.com/)):

```bash
pip install gymnasium[classic_control]  # Install dependencies for CartPole-v1
actorch run REINFORCE_CartPole-v1.py    # Run experiment
```

**NOTE**: training artifacts (e.g. checkpoints, metrics, etc.) are saved in nested subdirectories.
This might cause issues on Windows, since the maximum path length is 260 characters. In that case,
move the configuration file (or set `local_dir`) to an upper level directory (e.g. `Desktop`),
shorten the configuration file name, and/or shorten the algorithm name
(e.g. `DistributedDataParallelREINFORCE.rename("DDPR")`).

Wait for a few minutes until the training ends. The mean cumulative reward over
the last 100 episodes should exceed 475, which means that the environment was
successfully solved. You can now plot the performance metrics saved in the auto-generated
[TensorBoard](https://www.tensorflow.org/tensorboard) (or CSV) log files using [Plotly](https://plotly.com/)
(or [Matplotlib](https://matplotlib.org/)):

```bash
pip install actorch[vistool]  # Install dependencies for VisTool
cd experiments/REINFORCE_CartPole-v1/<auto-generated-experiment-name>
actorch vistool plotly tensorboard
```

You can find the generated plots in `plots`.

Congratulations, you ran your first experiment!

See `examples` for additional configuration file examples.

**HINT**: since a configuration file is a regular Python script, you can use all the
features of the language (e.g. inheritance).

---------------------------------------------------------------------------------------------------------

## 🔗 Useful links

- [Introduction to deep reinforcement learning](https://spinningup.openai.com/en/latest/)

- [Hyperparameter tuning with Ray Tune](https://docs.ray.io/en/releases-1.13.0/tune/tutorials/tune-lifecycle.html)
  and [Optuna integration](https://docs.ray.io/en/releases-1.13.0/tune/examples/optuna_example.html)

- [Logging with Ray Tune](https://docs.ray.io/en/releases-1.13.0/tune/api_docs/logging.html)

- [Monitoring jobs with Ray Dashboard](https://docs.ray.io/en/releases-1.13.0/ray-core/ray-dashboard.html)

- [Setting up a cluster with Ray Cluster](https://docs.ray.io/en/releases-1.13.0/cluster/index.html)

---------------------------------------------------------------------------------------------------------

## @ Citation

```
@misc{DellaLibera2022ACTorch,
  author = {Luca Della Libera},
  title = {{ACTorch}: a Deep Reinforcement Learning Framework for Fast Prototyping},
  year = {2022},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/lucadellalib/actorch}},
}
```

---------------------------------------------------------------------------------------------------------

## 📧 Contact

[luca.dellalib@gmail.com](mailto:luca.dellalib@gmail.com)

---------------------------------------------------------------------------------------------------------



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/lucadellalib/actorch",
    "name": "actorch",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "Deep reinforcement learning,PyTorch",
    "author": "Luca Della Libera",
    "author_email": "luca.dellalib@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/b0/57/9be1293447d8be048f8fcf1ae793093ffd40f696558ad7c698ac7f899484/actorch-0.0.5.tar.gz",
    "platform": "OS Independent",
    "description": "![logo](docs/_static/images/actorch-logo.png)\n\n[![Python version: 3.6 | 3.7 | 3.8 | 3.9 | 3.10](https://img.shields.io/badge/python-3.6%20|%203.7%20|%203.8%20|%203.9%20|%203.10-blue)](https://www.python.org/downloads/)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/lucadellalib/bayestorch/blob/main/LICENSE)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://github.com/PyCQA/isort)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n![PyPI version](https://img.shields.io/pypi/v/actorch)\n[![](https://pepy.tech/badge/actorch)](https://pypi.org/project/actorch/)\n\nWelcome to `actorch`, a deep reinforcement learning framework for fast prototyping based on\n[PyTorch](https://pytorch.org). The following algorithms have been implemented so far:\n\n- [REINFORCE](https://people.cs.umass.edu/~barto/courses/cs687/williams92simple.pdf)\n- [Advantage Actor-Critic (A2C)](https://arxiv.org/abs/1602.01783)\n- [Actor-Critic Kronecker-Factored Trust Region (ACKTR)](https://arxiv.org/abs/1708.05144)\n- [Trust Region Policy Optimization (TRPO)](https://arxiv.org/abs/1502.05477)\n- [Proximal Policy Optimization (PPO)](https://arxiv.org/abs/1707.06347)\n- [Advantage-Weighted Regression (AWR)](https://arxiv.org/abs/1910.00177)\n- [Deep Deterministic Policy Gradient (DDPG)](https://arxiv.org/abs/1509.02971)\n- [Distributional Deep Deterministic Policy Gradient (D3PG)](https://arxiv.org/abs/1804.08617)\n- [Twin Delayed Deep Deterministic Policy Gradient (TD3)](https://arxiv.org/abs/1802.09477)\n- [Soft Actor-Critic (SAC)](https://arxiv.org/abs/1801.01290)\n\n---------------------------------------------------------------------------------------------------------\n\n## \ud83d\udca1 Key features\n\n- Support for [OpenAI Gymnasium](https://gymnasium.farama.org/) environments\n- Support for **custom observation/action spaces**\n- Support for **custom multimodal input multimodal output models**\n- Support for **recurrent models** (e.g. RNNs, LSTMs, GRUs, etc.)\n- Support for **custom policy/value distributions**\n- Support for **custom preprocessing/postprocessing pipelines**\n- Support for **custom exploration strategies**\n- Support for [normalizing flows](https://arxiv.org/abs/1906.02771)\n- Batched environments (both for training and evaluation)\n- Batched **trajectory replay**\n- Batched and **distributional value estimation** (e.g. batched and distributional [Retrace](https://arxiv.org/abs/1606.02647) and [V-trace](https://arxiv.org/abs/1802.01561))\n- Data parallel and distributed data parallel **multi-GPU training and evaluation**\n- Automatic **mixed precision training**\n- Integration with [Ray Tune](https://docs.ray.io/en/releases-1.13.0/tune/index.html) for experiment execution and **hyperparameter tuning** at any scale\n- Effortless experiment definition through **Python-based configuration files**\n- Built-in **visualization tool** to plot performance metrics\n- Modular **object-oriented** design\n- Detailed **API documentation**\n\n---------------------------------------------------------------------------------------------------------\n\n## \ud83d\udee0\ufe0f\ufe0f Installation\n\nFor Windows, make sure the latest [Visual C++ runtime](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)\nis installed.\n\n### Using Pip\n\nFirst of all, install [Python 3.6 or later](https://www.python.org). Open a terminal and run:\n\n```bash\npip install actorch\n```\n\n### Using Conda virtual environment\n\nClone or download and extract the repository, navigate to `<path-to-repository>/bin` and run\nthe installation script (`install.sh` for Linux/macOS, `install.bat` for Windows).\n`actorch` and its dependencies (pinned to a specific version) will be installed in\na [Conda](https://www.anaconda.com/) virtual environment named `actorch-env`.\n\n**NOTE**: you can directly use `actorch-env` and the `actorch` package in the local project\ndirectory for development (see [For development](#for-development)).\n\n### Using Docker (Linux/macOS only)\n\nFirst of all, install [Docker](https://www.docker.com) and [NVIDIA Container Runtime](https://developer.nvidia.com/nvidia-container-runtime).\nClone or download and extract the repository, navigate to `<path-to-repository>`, open a\nterminal and run:\n\n```bash\ndocker build -t <desired-image-name> .                  # Build image\ndocker run -it --runtime=nvidia <desired-image-name>    # Run container from image\n```\n\n`actorch` and its dependencies (pinned to a specific version) will be installed in the\nspecified Docker image.\n\n**NOTE**: you can directly use the `actorch` package in the local project directory inside\na Docker container run from the specified Docker image for development (see [For development](#for-development)).\n\n### From source\n\nFirst of all, install [Python 3.6 or later](https://www.python.org).\nClone or download and extract the repository, navigate to `<path-to-repository>`, open a\nterminal and run:\n\n```bash\npip install .\n```\n\n### For development\n\nFirst of all, install [Python 3.6 or later](https://www.python.org) and [Git](https://git-scm.com/).\nClone or download and extract the repository, navigate to `<path-to-repository>`, open a\nterminal and run:\n\n```bash\npip install -e .[all]\npre-commit install -f\n```\n\nThis will install the package in editable mode (any change to the package in the local\nproject directory will automatically reflect on the environment-wide package installed\nin the `site-packages` directory of your environment) along with its development, test\nand optional dependencies.\nAdditionally, it installs a [git commit hook](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks).\nEach time you commit, unit tests, static type checkers, code formatters and linters are\nrun automatically. Run `pre-commit run --all-files` to check that the hook was successfully\ninstalled. For more details, see [`pre-commit`'s documentation](https://pre-commit.com).\n\n---------------------------------------------------------------------------------------------------------\n\n## \u25b6\ufe0f Quickstart\n\nIn this example we will solve the [OpenAI Gymnasium](https://gymnasium.farama.org/) environment\n`CartPole-v1` using [REINFORCE](https://people.cs.umass.edu/~barto/courses/cs687/williams92simple.pdf).\nCopy the following configuration in a file named `REINFORCE_CartPole-v1.py` (**with the\nsame indentation**):\n\n```python\nimport gymnasium as gym\nfrom torch.optim import Adam\n\nfrom actorch import *\n\n\nexperiment_params = ExperimentParams(\n    run_or_experiment=REINFORCE,\n    stop={\"training_iteration\": 50},\n    resources_per_trial={\"cpu\": 1, \"gpu\": 0},\n    checkpoint_freq=10,\n    checkpoint_at_end=True,\n    log_to_file=True,\n    export_formats=[\"checkpoint\", \"model\"],\n    config=REINFORCE.Config(\n        train_env_builder=lambda **config: ParallelBatchedEnv(\n            lambda **kwargs: gym.make(\"CartPole-v1\", **kwargs),\n            config,\n            num_workers=2,\n        ),\n        train_num_episodes_per_iter=5,\n        eval_freq=10,\n        eval_env_config={\"render_mode\": None},\n        eval_num_episodes_per_iter=10,\n        policy_network_model_builder=FCNet,\n        policy_network_model_config={\n            \"torso_fc_configs\": [{\"out_features\": 64, \"bias\": True}],\n        },\n        policy_network_optimizer_builder=Adam,\n        policy_network_optimizer_config={\"lr\": 1e-1},\n        discount=0.99,\n        entropy_coeff=0.001,\n        max_grad_l2_norm=0.5,\n        seed=0,\n        enable_amp=False,\n        enable_reproducibility=True,\n        log_sys_usage=True,\n        suppress_warnings=True,\n    ),\n)\n```\n\nOpen a terminal in the directory where you saved the configuration file and run\n(if you installed `actorch` in a virtual environment, you first need to activate\nit, e.g. `conda activate actorch-env` if you installed `actorch` using [Conda](https://www.anaconda.com/)):\n\n```bash\npip install gymnasium[classic_control]  # Install dependencies for CartPole-v1\nactorch run REINFORCE_CartPole-v1.py    # Run experiment\n```\n\n**NOTE**: training artifacts (e.g. checkpoints, metrics, etc.) are saved in nested subdirectories.\nThis might cause issues on Windows, since the maximum path length is 260 characters. In that case,\nmove the configuration file (or set `local_dir`) to an upper level directory (e.g. `Desktop`),\nshorten the configuration file name, and/or shorten the algorithm name\n(e.g. `DistributedDataParallelREINFORCE.rename(\"DDPR\")`).\n\nWait for a few minutes until the training ends. The mean cumulative reward over\nthe last 100 episodes should exceed 475, which means that the environment was\nsuccessfully solved. You can now plot the performance metrics saved in the auto-generated\n[TensorBoard](https://www.tensorflow.org/tensorboard) (or CSV) log files using [Plotly](https://plotly.com/)\n(or [Matplotlib](https://matplotlib.org/)):\n\n```bash\npip install actorch[vistool]  # Install dependencies for VisTool\ncd experiments/REINFORCE_CartPole-v1/<auto-generated-experiment-name>\nactorch vistool plotly tensorboard\n```\n\nYou can find the generated plots in `plots`.\n\nCongratulations, you ran your first experiment!\n\nSee `examples` for additional configuration file examples.\n\n**HINT**: since a configuration file is a regular Python script, you can use all the\nfeatures of the language (e.g. inheritance).\n\n---------------------------------------------------------------------------------------------------------\n\n## \ud83d\udd17 Useful links\n\n- [Introduction to deep reinforcement learning](https://spinningup.openai.com/en/latest/)\n\n- [Hyperparameter tuning with Ray Tune](https://docs.ray.io/en/releases-1.13.0/tune/tutorials/tune-lifecycle.html)\n  and [Optuna integration](https://docs.ray.io/en/releases-1.13.0/tune/examples/optuna_example.html)\n\n- [Logging with Ray Tune](https://docs.ray.io/en/releases-1.13.0/tune/api_docs/logging.html)\n\n- [Monitoring jobs with Ray Dashboard](https://docs.ray.io/en/releases-1.13.0/ray-core/ray-dashboard.html)\n\n- [Setting up a cluster with Ray Cluster](https://docs.ray.io/en/releases-1.13.0/cluster/index.html)\n\n---------------------------------------------------------------------------------------------------------\n\n## @ Citation\n\n```\n@misc{DellaLibera2022ACTorch,\n  author = {Luca Della Libera},\n  title = {{ACTorch}: a Deep Reinforcement Learning Framework for Fast Prototyping},\n  year = {2022},\n  publisher = {GitHub},\n  journal = {GitHub repository},\n  howpublished = {\\url{https://github.com/lucadellalib/actorch}},\n}\n```\n\n---------------------------------------------------------------------------------------------------------\n\n## \ud83d\udce7 Contact\n\n[luca.dellalib@gmail.com](mailto:luca.dellalib@gmail.com)\n\n---------------------------------------------------------------------------------------------------------\n\n\n",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "Deep reinforcement learning framework for fast prototyping based on PyTorch",
    "version": "0.0.5",
    "split_keywords": [
        "deep reinforcement learning",
        "pytorch"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "58d78c3b1c193a9480161e74cd41c2c4d18446274236f037a536795eec566ad4",
                "md5": "e92cd0c442cdf366cac65bac572e7603",
                "sha256": "01895519c3f23bc620a9e2092c841f88f1e39dc3be888d330938099ac8f704d2"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "e92cd0c442cdf366cac65bac572e7603",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 290975,
            "upload_time": "2023-03-12T19:53:56",
            "upload_time_iso_8601": "2023-03-12T19:53:56.798811Z",
            "url": "https://files.pythonhosted.org/packages/58/d7/8c3b1c193a9480161e74cd41c2c4d18446274236f037a536795eec566ad4/actorch-0.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "441ea21150e403878cf27811623a6b939812db04829eee022974933d50067c2f",
                "md5": "2f479c9217a33d0ef9bdcdcd85658650",
                "sha256": "0f32128cba63ae8952d71edd1fa8123f0e02fd19d170c2ddb0287893b28fb6c1"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2f479c9217a33d0ef9bdcdcd85658650",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 291351,
            "upload_time": "2023-03-12T19:53:59",
            "upload_time_iso_8601": "2023-03-12T19:53:59.027823Z",
            "url": "https://files.pythonhosted.org/packages/44/1e/a21150e403878cf27811623a6b939812db04829eee022974933d50067c2f/actorch-0.0.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f6784a293e596ee25c908f2a4209536b68103043e0b38aff0c86289f98365463",
                "md5": "90924dde5a6ff1768064e29b29072408",
                "sha256": "3866fda7bd5583eb1fa840501ca1db522bbfe066b94b775835aadcd11e113ff0"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "90924dde5a6ff1768064e29b29072408",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 290489,
            "upload_time": "2023-03-12T19:54:01",
            "upload_time_iso_8601": "2023-03-12T19:54:01.452738Z",
            "url": "https://files.pythonhosted.org/packages/f6/78/4a293e596ee25c908f2a4209536b68103043e0b38aff0c86289f98365463/actorch-0.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "63fa3015f2724052ca76b5d32b41f5177ddafba73d9a76deb1ac4c4d1c032356",
                "md5": "feeec3ee0090c1ecae9d04d6584f2d89",
                "sha256": "85c2cc1cd02809d2ebd59207b173b68fbf84a155a08db0129c722d539d0d3d95"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "feeec3ee0090c1ecae9d04d6584f2d89",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 290859,
            "upload_time": "2023-03-12T19:54:03",
            "upload_time_iso_8601": "2023-03-12T19:54:03.319266Z",
            "url": "https://files.pythonhosted.org/packages/63/fa/3015f2724052ca76b5d32b41f5177ddafba73d9a76deb1ac4c4d1c032356/actorch-0.0.5-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "195302dabbe830bcc041fc41665aa43212ff3a27dea8676d041d060eb20498fe",
                "md5": "3dad7e80492e75db2e995473ce898047",
                "sha256": "b9decbeadaf4b27cece09f7d85c99449614755156f8189c96e9727c90ba6bfa9"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "3dad7e80492e75db2e995473ce898047",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 290505,
            "upload_time": "2023-03-12T19:54:06",
            "upload_time_iso_8601": "2023-03-12T19:54:06.060064Z",
            "url": "https://files.pythonhosted.org/packages/19/53/02dabbe830bcc041fc41665aa43212ff3a27dea8676d041d060eb20498fe/actorch-0.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c00cc533c1ae1d84a70cdfb86515aad41e0df0cd82b324db2ac33dc598b27dcd",
                "md5": "a854c06c606a81cc6cc009e2fbdbdb51",
                "sha256": "42e31f0eeefd78b89c8646f7c16915b2c3d2733b832b63199af04a00c23e5703"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a854c06c606a81cc6cc009e2fbdbdb51",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 290883,
            "upload_time": "2023-03-12T19:54:07",
            "upload_time_iso_8601": "2023-03-12T19:54:07.907016Z",
            "url": "https://files.pythonhosted.org/packages/c0/0c/c533c1ae1d84a70cdfb86515aad41e0df0cd82b324db2ac33dc598b27dcd/actorch-0.0.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "09154b3978167afb3490efd9db7653b306ba25ba4cc5ea1160ad3013d2f6438d",
                "md5": "ffa83b9d1b1df2f3c17fae3e12ac5c6e",
                "sha256": "bea764860f690623f55770a8cef0af4be3a9a4201934304aa5938db50135d40b"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "ffa83b9d1b1df2f3c17fae3e12ac5c6e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 290910,
            "upload_time": "2023-03-12T19:54:10",
            "upload_time_iso_8601": "2023-03-12T19:54:10.387019Z",
            "url": "https://files.pythonhosted.org/packages/09/15/4b3978167afb3490efd9db7653b306ba25ba4cc5ea1160ad3013d2f6438d/actorch-0.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03652e18731abea305bdd430466303a19f2d0a7e809faf567feb7b9214baf33a",
                "md5": "47ce0aab7169fef12fe019bea047baa8",
                "sha256": "28e2472d8c2dabd39a0fb1745d894cdabc0dd07719c9f4f6199672ec38260f25"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "47ce0aab7169fef12fe019bea047baa8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 296052,
            "upload_time": "2023-03-12T19:54:12",
            "upload_time_iso_8601": "2023-03-12T19:54:12.858664Z",
            "url": "https://files.pythonhosted.org/packages/03/65/2e18731abea305bdd430466303a19f2d0a7e809faf567feb7b9214baf33a/actorch-0.0.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a4338b8397eedc9fa7f11eae81d33ecb2a0f3fb21ecfa9605052c26dc213709b",
                "md5": "1cbf502f1b2c464473b6c0b084d12684",
                "sha256": "dc19d7f598ef8faaa3bb20a58861aca04384cfc9cdd05f1eaf6bef299341256d"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "1cbf502f1b2c464473b6c0b084d12684",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 290865,
            "upload_time": "2023-03-12T19:54:15",
            "upload_time_iso_8601": "2023-03-12T19:54:15.134700Z",
            "url": "https://files.pythonhosted.org/packages/a4/33/8b8397eedc9fa7f11eae81d33ecb2a0f3fb21ecfa9605052c26dc213709b/actorch-0.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a2770dc692c92f0368949ce56dc387aaa525d6a04873972410d52ee8a926ae54",
                "md5": "37be03748c9b2d767ae327afa65f9b54",
                "sha256": "6c38bd4fccf5a8a5e646fcd8eb87ff088634e71c4ec4c9817e6c52ff641b0bd5"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "37be03748c9b2d767ae327afa65f9b54",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 291228,
            "upload_time": "2023-03-12T19:54:17",
            "upload_time_iso_8601": "2023-03-12T19:54:17.514393Z",
            "url": "https://files.pythonhosted.org/packages/a2/77/0dc692c92f0368949ce56dc387aaa525d6a04873972410d52ee8a926ae54/actorch-0.0.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1354dced970c044ddad8de8ea681de4e7e5bbb7793c3497203048f533b7b5bb3",
                "md5": "a44b6e010da5d9c9b667d8d4be417ba5",
                "sha256": "3c2f6d017f04453bb9588d63d4f11956b51662230cb79bd8f5a4bc2ad2308a0a"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "a44b6e010da5d9c9b667d8d4be417ba5",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.6",
            "size": 295069,
            "upload_time": "2023-03-12T19:54:19",
            "upload_time_iso_8601": "2023-03-12T19:54:19.190597Z",
            "url": "https://files.pythonhosted.org/packages/13/54/dced970c044ddad8de8ea681de4e7e5bbb7793c3497203048f533b7b5bb3/actorch-0.0.5-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8f752638632318f6037e9a0aef3e822980e1c5e3f97bf6e308d43df0c91dd1e",
                "md5": "9229f1287204c5c6b20442c5630f0422",
                "sha256": "357ec660434fe955006983af89f463e6d5fbdac162c9cfa869f3967887ff53b6"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9229f1287204c5c6b20442c5630f0422",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.6",
            "size": 295345,
            "upload_time": "2023-03-12T19:54:22",
            "upload_time_iso_8601": "2023-03-12T19:54:22.155190Z",
            "url": "https://files.pythonhosted.org/packages/e8/f7/52638632318f6037e9a0aef3e822980e1c5e3f97bf6e308d43df0c91dd1e/actorch-0.0.5-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ec96a9323396e6ada0eab550ec124d1e14f8412f55c288b1498b263c813780d9",
                "md5": "5a0355095a90f341cf8c2fbe23fc5feb",
                "sha256": "ac02b1b220a343d79dc4d62cd5472e490ba4b2b2821987e1a249f6895e129cd3"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "5a0355095a90f341cf8c2fbe23fc5feb",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.6",
            "size": 295609,
            "upload_time": "2023-03-12T19:54:25",
            "upload_time_iso_8601": "2023-03-12T19:54:25.046660Z",
            "url": "https://files.pythonhosted.org/packages/ec/96/a9323396e6ada0eab550ec124d1e14f8412f55c288b1498b263c813780d9/actorch-0.0.5-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e33c5d1bc14dd3aeaef5ede5faa2da43cc81164a15a2dafee138e74f55a9af4",
                "md5": "42b435e94eb0c9b742043f3ebf59b7ab",
                "sha256": "63cdb69cf8ba3ae16bf924c871b65bb342b4759e36fe653cda18ab8ffdc295b0"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "42b435e94eb0c9b742043f3ebf59b7ab",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.6",
            "size": 300645,
            "upload_time": "2023-03-12T19:54:27",
            "upload_time_iso_8601": "2023-03-12T19:54:27.475077Z",
            "url": "https://files.pythonhosted.org/packages/2e/33/c5d1bc14dd3aeaef5ede5faa2da43cc81164a15a2dafee138e74f55a9af4/actorch-0.0.5-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b0579be1293447d8be048f8fcf1ae793093ffd40f696558ad7c698ac7f899484",
                "md5": "4c632de8e743cf52b95e7b93fa5fa985",
                "sha256": "81159e35af9c37737a2d179045c833e41bb3bde013c38806f9d7ab54de331834"
            },
            "downloads": -1,
            "filename": "actorch-0.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "4c632de8e743cf52b95e7b93fa5fa985",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 148370,
            "upload_time": "2023-03-12T19:54:29",
            "upload_time_iso_8601": "2023-03-12T19:54:29.829961Z",
            "url": "https://files.pythonhosted.org/packages/b0/57/9be1293447d8be048f8fcf1ae793093ffd40f696558ad7c698ac7f899484/actorch-0.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-12 19:54:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "lucadellalib",
    "github_project": "actorch",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "actorch"
}
        
Elapsed time: 0.04300s