inex-launcher


Nameinex-launcher JSON
Version 3.1.1 PyPI version JSON
download
home_pagehttps://github.com/speechpro/inex-launcher
SummaryInEx is a lightweight highly configurable Python launcher based on microkernel architecture
upload_time2025-08-31 21:14:25
maintainerNone
docs_urlNone
authorYuri Khokhlov
requires_python>=3.8
licenseMIT
keywords speechpro inex launcher inex-launcher command-line configuration yaml
VCS
bugtrack_url
requirements omegaconf networkx
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
![GitHub License](https://img.shields.io/github/license/speechpro/inex-launcher)
![PyPI - Version](https://img.shields.io/pypi/v/inex-launcher)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/inex-launcher.svg)

<a href="https://github.com/speechpro/inex-launcher/stargazers"><img src="https://img.shields.io/github/stars/speechpro/inex-launcher" alt="Stars Badge"/></a>
<a href="https://github.com/speechpro/inex-launcher/network/members"><img src="https://img.shields.io/github/forks/speechpro/inex-launcher" alt="Forks Badge"/></a>
<a href="https://github.com/speechpro/inex-launcher/pulls"><img src="https://img.shields.io/github/issues-pr/speechpro/inex-launcher" alt="Pull Requests Badge"/></a>
<a href="https://github.com/speechpro/inex-launcher/issues"><img src="https://img.shields.io/github/issues/speechpro/inex-launcher" alt="Issues Badge"/></a>
<a href="https://github.com/speechpro/inex-launcher/graphs/contributors"><img alt="GitHub contributors" src="https://img.shields.io/github/contributors/speechpro/inex-launcher?color=2b9348"></a>

# InEx Launcher

## Lightweight highly configurable Python launcher based on microkernel architecture

### Installation

```bash
pip install -U inex-launcher
```

### Single-file configuration

`inex-launcher` lets you describe an entire experiment in a single YAML file. The `plugins` list defines the initialization order of handlers. For each handler you only need to provide the module path and its options. The `execute` section describes the final method that will be called.

```yaml
plugins:
  - loader
  - model
  - trainer

loader:
  module: myproject.data/Loader
  options:
    path: data/train.csv

model:
  module: myproject.nn/Model
  options:
    hidden: 128

trainer:
  module: myproject.training/Trainer
  imports:
    model: plugins.model
    data: plugins.loader
  options:
    epochs: 10

execute:
  method: myproject.training/run
  imports:
    trainer: plugins.trainer
```

Run this configuration with:

```bash
inex config.yaml
```

You can fine-tune the experiment by merging it with another file using `--merge` and overriding specific values with `--update`:

```bash
inex config.yaml -m experiment.yaml -u trainer.epochs=20 model.hidden=64
```

This approach lets you modify parameters or even replace handlers with just a few lines of YAML—no need to edit high‑level Python files.

Key benefits of this approach:

- **High modularity** – modules can be swapped directly in the configuration thanks to the plugin-based structure.
- **Clean structure** – a clear sequence of `plugins` followed by a single `execute` block keeps the file readable.
- **Flexibility** – YAML allows complex nested structures, so even advanced scenarios fit in one file.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/speechpro/inex-launcher",
    "name": "inex-launcher",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "speechpro inex launcher inex-launcher command-line configuration yaml",
    "author": "Yuri Khokhlov",
    "author_email": "khokhlov@speechpro.com",
    "download_url": "https://files.pythonhosted.org/packages/6b/21/a3dd7aec63357174d33a0054adfcd62e1c705f4180545a1ecde71e608200/inex-launcher-3.1.1.tar.gz",
    "platform": null,
    "description": "\n![GitHub License](https://img.shields.io/github/license/speechpro/inex-launcher)\n![PyPI - Version](https://img.shields.io/pypi/v/inex-launcher)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/inex-launcher.svg)\n\n<a href=\"https://github.com/speechpro/inex-launcher/stargazers\"><img src=\"https://img.shields.io/github/stars/speechpro/inex-launcher\" alt=\"Stars Badge\"/></a>\n<a href=\"https://github.com/speechpro/inex-launcher/network/members\"><img src=\"https://img.shields.io/github/forks/speechpro/inex-launcher\" alt=\"Forks Badge\"/></a>\n<a href=\"https://github.com/speechpro/inex-launcher/pulls\"><img src=\"https://img.shields.io/github/issues-pr/speechpro/inex-launcher\" alt=\"Pull Requests Badge\"/></a>\n<a href=\"https://github.com/speechpro/inex-launcher/issues\"><img src=\"https://img.shields.io/github/issues/speechpro/inex-launcher\" alt=\"Issues Badge\"/></a>\n<a href=\"https://github.com/speechpro/inex-launcher/graphs/contributors\"><img alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/speechpro/inex-launcher?color=2b9348\"></a>\n\n# InEx Launcher\n\n## Lightweight highly configurable Python launcher based on microkernel architecture\n\n### Installation\n\n```bash\npip install -U inex-launcher\n```\n\n### Single-file configuration\n\n`inex-launcher` lets you describe an entire experiment in a single YAML file. The `plugins` list defines the initialization order of handlers. For each handler you only need to provide the module path and its options. The `execute` section describes the final method that will be called.\n\n```yaml\nplugins:\n  - loader\n  - model\n  - trainer\n\nloader:\n  module: myproject.data/Loader\n  options:\n    path: data/train.csv\n\nmodel:\n  module: myproject.nn/Model\n  options:\n    hidden: 128\n\ntrainer:\n  module: myproject.training/Trainer\n  imports:\n    model: plugins.model\n    data: plugins.loader\n  options:\n    epochs: 10\n\nexecute:\n  method: myproject.training/run\n  imports:\n    trainer: plugins.trainer\n```\n\nRun this configuration with:\n\n```bash\ninex config.yaml\n```\n\nYou can fine-tune the experiment by merging it with another file using `--merge` and overriding specific values with `--update`:\n\n```bash\ninex config.yaml -m experiment.yaml -u trainer.epochs=20 model.hidden=64\n```\n\nThis approach lets you modify parameters or even replace handlers with just a few lines of YAML\u2014no need to edit high\u2011level Python files.\n\nKey benefits of this approach:\n\n- **High modularity** \u2013 modules can be swapped directly in the configuration thanks to the plugin-based structure.\n- **Clean structure** \u2013 a clear sequence of `plugins` followed by a single `execute` block keeps the file readable.\n- **Flexibility** \u2013 YAML allows complex nested structures, so even advanced scenarios fit in one file.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "InEx is a lightweight highly configurable Python launcher based on microkernel architecture",
    "version": "3.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/speechpro/inex-launcher/issues",
        "Homepage": "https://github.com/speechpro/inex-launcher"
    },
    "split_keywords": [
        "speechpro",
        "inex",
        "launcher",
        "inex-launcher",
        "command-line",
        "configuration",
        "yaml"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "25397a00c6e97f39a434ec43197364c3a8cedf8f7265538dc1185bc037224a84",
                "md5": "a514ab38e7d2b2e90c09e238b1bd6728",
                "sha256": "f1858e6381dc83da3e2313dfb5da45e68e1e6bde6a5952df21b25b7af3f73a5e"
            },
            "downloads": -1,
            "filename": "inex_launcher-3.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a514ab38e7d2b2e90c09e238b1bd6728",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 13800,
            "upload_time": "2025-08-31T21:14:24",
            "upload_time_iso_8601": "2025-08-31T21:14:24.207988Z",
            "url": "https://files.pythonhosted.org/packages/25/39/7a00c6e97f39a434ec43197364c3a8cedf8f7265538dc1185bc037224a84/inex_launcher-3.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6b21a3dd7aec63357174d33a0054adfcd62e1c705f4180545a1ecde71e608200",
                "md5": "581a09ba5d0fc6f125ab036e789ec50b",
                "sha256": "722a263b8c7c9f8f949948025103a4ed00771d56d82548e26071d9d0744c3b8d"
            },
            "downloads": -1,
            "filename": "inex-launcher-3.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "581a09ba5d0fc6f125ab036e789ec50b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13576,
            "upload_time": "2025-08-31T21:14:25",
            "upload_time_iso_8601": "2025-08-31T21:14:25.293453Z",
            "url": "https://files.pythonhosted.org/packages/6b/21/a3dd7aec63357174d33a0054adfcd62e1c705f4180545a1ecde71e608200/inex-launcher-3.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-31 21:14:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "speechpro",
    "github_project": "inex-launcher",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "omegaconf",
            "specs": []
        },
        {
            "name": "networkx",
            "specs": []
        }
    ],
    "lcname": "inex-launcher"
}
        
Elapsed time: 4.48802s