invocate


Nameinvocate JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryEnhanced Invoke task management with simplified namespacing support
upload_time2025-08-10 02:29:40
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords invoke tasks automation cli namespace
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Invocate
Enhanced Invoke task management with simplified namespacing support.

## Purpose
I love [Invoke](https://www.pyinvoke.org/) and I use it all the time, but I
find the namespace feature to be a bit cumbersome to maintain so I've written
Invocate as a wrapper on top of Invoke.

Invocate overrides the task decorator to accept additional namespace-related
parameters and defines a task_namespace() function that makes namespacing
task a lot easier to work with.

## Features

- **Namespaced Tasks**: Organize tasks into hierarchical namespaces
- **Enhanced Decorator**: Drop-in replacement for `@task` with additional features

## Installation

```bash
pip install invocate
```

## Quick Start

```python
from invocate import task


# Simple task (no namespace)
@task
def hello(c):
    """Say hello"""
    print("Hello, World!")


# Namespaced task
@task(namespace=('build', 'frontend'))
def build_js(c):
    """Build JavaScript assets"""
    c.run("npm run build")


# Another namespaced task
@task(namespace='build.backend')
def build_python(c):
    """Build Python package"""
    c.run("python -m build")

```

Save this as tasks.py and run:

```bash
invocate -l
```

You'll see:

```
Available tasks:

  hello
  build.frontend.build-js
  build.backend.build-python
```

## Advanced Usage
### Customer Task Names
```python
@task(name='custom-name', namespace=('utils',))
def some_function(c):
    pass
```

## API Reference
### `task(*args, **kwargs)`
Enhanced task decorator with namespace support.
**Parameters:**
- (tuple): Namespace hierarchy as tuple of strings `namespace`
- Standard invoke task parameters (name, help, etc.)

### `task_namespace()`
Returns the complete task collection for use with Invoke.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "invocate",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "invoke, tasks, automation, cli, namespace",
    "author": null,
    "author_email": "Fred McDavid <fred@frameworklabs.us>",
    "download_url": "https://files.pythonhosted.org/packages/b8/9f/46f6d800838a005fe5957f80fedc8dda022f99a62200037c1fc9bb1a9b79/invocate-0.2.1.tar.gz",
    "platform": null,
    "description": "# Invocate\nEnhanced Invoke task management with simplified namespacing support.\n\n## Purpose\nI love [Invoke](https://www.pyinvoke.org/) and I use it all the time, but I\nfind the namespace feature to be a bit cumbersome to maintain so I've written\nInvocate as a wrapper on top of Invoke.\n\nInvocate overrides the task decorator to accept additional namespace-related\nparameters and defines a task_namespace() function that makes namespacing\ntask a lot easier to work with.\n\n## Features\n\n- **Namespaced Tasks**: Organize tasks into hierarchical namespaces\n- **Enhanced Decorator**: Drop-in replacement for `@task` with additional features\n\n## Installation\n\n```bash\npip install invocate\n```\n\n## Quick Start\n\n```python\nfrom invocate import task\n\n\n# Simple task (no namespace)\n@task\ndef hello(c):\n    \"\"\"Say hello\"\"\"\n    print(\"Hello, World!\")\n\n\n# Namespaced task\n@task(namespace=('build', 'frontend'))\ndef build_js(c):\n    \"\"\"Build JavaScript assets\"\"\"\n    c.run(\"npm run build\")\n\n\n# Another namespaced task\n@task(namespace='build.backend')\ndef build_python(c):\n    \"\"\"Build Python package\"\"\"\n    c.run(\"python -m build\")\n\n```\n\nSave this as tasks.py and run:\n\n```bash\ninvocate -l\n```\n\nYou'll see:\n\n```\nAvailable tasks:\n\n  hello\n  build.frontend.build-js\n  build.backend.build-python\n```\n\n## Advanced Usage\n### Customer Task Names\n```python\n@task(name='custom-name', namespace=('utils',))\ndef some_function(c):\n    pass\n```\n\n## API Reference\n### `task(*args, **kwargs)`\nEnhanced task decorator with namespace support.\n**Parameters:**\n- (tuple): Namespace hierarchy as tuple of strings `namespace`\n- Standard invoke task parameters (name, help, etc.)\n\n### `task_namespace()`\nReturns the complete task collection for use with Invoke.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Enhanced Invoke task management with simplified namespacing support",
    "version": "0.2.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/FredworkLemmas/invocate.git/issues",
        "Homepage": "https://github.com/FredworkLemmas/invocate.git",
        "Repository": "https://github.com/FredworkLemmas/invocate.git"
    },
    "split_keywords": [
        "invoke",
        " tasks",
        " automation",
        " cli",
        " namespace"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "97449db7e48e1cc02280ff01a2d7beb65f2ebc29d766e6e9e428edf641a89026",
                "md5": "56e88a80591069d5e4f61c34b79bc66b",
                "sha256": "c880afdd57336fd949cfc70675cadeb66c4fb2bc10bba6b82140a4db1cd8a53b"
            },
            "downloads": -1,
            "filename": "invocate-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "56e88a80591069d5e4f61c34b79bc66b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 7761,
            "upload_time": "2025-08-10T02:29:39",
            "upload_time_iso_8601": "2025-08-10T02:29:39.622530Z",
            "url": "https://files.pythonhosted.org/packages/97/44/9db7e48e1cc02280ff01a2d7beb65f2ebc29d766e6e9e428edf641a89026/invocate-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b89f46f6d800838a005fe5957f80fedc8dda022f99a62200037c1fc9bb1a9b79",
                "md5": "69ef6a71c7c2b9693ae58cd9c5a8bcec",
                "sha256": "631f3a2262a7290164f9b24156f9436151c81593ce4872bb86e3784f3585c2c0"
            },
            "downloads": -1,
            "filename": "invocate-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "69ef6a71c7c2b9693ae58cd9c5a8bcec",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 8919,
            "upload_time": "2025-08-10T02:29:40",
            "upload_time_iso_8601": "2025-08-10T02:29:40.765518Z",
            "url": "https://files.pythonhosted.org/packages/b8/9f/46f6d800838a005fe5957f80fedc8dda022f99a62200037c1fc9bb1a9b79/invocate-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-10 02:29:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "FredworkLemmas",
    "github_project": "invocate",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "invocate"
}
        
Elapsed time: 2.00776s