Name | invocate JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Enhanced Invoke task management with simplified namespacing support |
upload_time | 2025-08-07 04:18:52 |
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, task_namespace
# 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")
# Export the namespace for invoke
ns = task_namespace()
```
Save this as tasks.py and run:
```bash
inv -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/21/d6/a5c6c1180d78d2a446b83e5956b6d8945542328b0a5f017b6afcd76f5fce/invocate-0.1.0.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, task_namespace\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# Export the namespace for invoke\nns = task_namespace()\n\n```\n\nSave this as tasks.py and run:\n\n```bash\ninv -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.1.0",
"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": "a98c0904bee45d4cb1fbad20039d25aedeb2b45d233ecff5b6b1d491cc5a1dde",
"md5": "764f2e86fd688371e338e6f07a7c7bff",
"sha256": "9d006856eda1b02d6ccd2fd20608dacddfa1143c04a41e330ceb5bc73ebb5667"
},
"downloads": -1,
"filename": "invocate-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "764f2e86fd688371e338e6f07a7c7bff",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 5518,
"upload_time": "2025-08-07T04:18:51",
"upload_time_iso_8601": "2025-08-07T04:18:51.086077Z",
"url": "https://files.pythonhosted.org/packages/a9/8c/0904bee45d4cb1fbad20039d25aedeb2b45d233ecff5b6b1d491cc5a1dde/invocate-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "21d6a5c6c1180d78d2a446b83e5956b6d8945542328b0a5f017b6afcd76f5fce",
"md5": "b57a1884fb4fa6d27d15fe0a21db0d8b",
"sha256": "ec4ba20645b86dbc9e7f24eda2598d2496a969878b41f66ff6bbf26410580772"
},
"downloads": -1,
"filename": "invocate-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "b57a1884fb4fa6d27d15fe0a21db0d8b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 6085,
"upload_time": "2025-08-07T04:18:52",
"upload_time_iso_8601": "2025-08-07T04:18:52.436491Z",
"url": "https://files.pythonhosted.org/packages/21/d6/a5c6c1180d78d2a446b83e5956b6d8945542328b0a5f017b6afcd76f5fce/invocate-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 04:18:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "FredworkLemmas",
"github_project": "invocate",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "invocate"
}