Name | invocate JSON |
Version |
0.2.1
JSON |
| download |
home_page | None |
Summary | Enhanced Invoke task management with simplified namespacing support |
upload_time | 2025-08-10 02:29:40 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
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"
}