yaapp-core


Nameyaapp-core JSON
Version 0.0.40 PyPI version JSON
download
home_pageNone
Summaryyaapp-core - Minimal core functionality for yaapp framework
upload_time2025-08-03 16:07:07
maintainerNone
docs_urlNone
authoryaapp Team
requires_python>=3.8
licenseNone
keywords cli framework plugin core
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # yaapp-core

**Minimal core functionality for yaapp framework**

## What's included:

### ✅ Core Framework
- `app.py` - Main Yaapp class
- `core.py` - YaappCore functionality  
- `expose.py` - @expose decorator
- `result.py` - Result type (Ok/Err)
- `async_compat.py` - Async compatibility
- `execution_strategy.py` - Execution strategies
- `context_tree.py` - Context management
- `exposers/` - Complete exposer system
- `reflection.py` - CLI reflection system
- `config.py` - Configuration management
- `discovery.py` - Plugin discovery
- `run.py` - Main run function

### ✅ Example Runner
- `runners/click/` - Click CLI runner

### ✅ Example Plugin  
- `plugins/calculator/` - Simple calculator plugin

## Usage:

### Basic Example:
```python
from yaapp import run
run()  # Auto-discovers plugins and runs CLI
```

### Manual Example:
```python
from yaapp.app import Yaapp

app = Yaapp(auto_discover=False)

# Load calculator plugin manually
import yaapp.plugins.calculator.plugin
from yaapp.expose import apply_pending_registrations
apply_pending_registrations(app)

# Use programmatically
result = app._execute_from_registry("calculator")
calc = result.unwrap()
print(calc.add(2, 3))  # 5
```

### CLI Usage:
```bash
python cli_example.py calculator add --x 5 --y 3
python cli_example.py calculator get-history --limit 5
```

## Dependencies:
- `click` (for CLI runner)
- `pyyaml` (for config)

## What's NOT included:
- Other runners (prompt, rich, server, etc.)
- Other plugins (storage, docker, etc.)
- CLI builders and complex discovery
- Non-essential utilities

This is the **minimal working core** that demonstrates:
1. ✅ Plugin system working
2. ✅ Runner system working  
3. ✅ Exposer system working
4. ✅ CLI generation working

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "yaapp-core",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "cli, framework, plugin, core",
    "author": "yaapp Team",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/fe/c5/fd217461a65b1e0a604f2146198bec480f98a61ae0208e458d5df54a1fde/yaapp_core-0.0.40.tar.gz",
    "platform": null,
    "description": "# yaapp-core\n\n**Minimal core functionality for yaapp framework**\n\n## What's included:\n\n### \u2705 Core Framework\n- `app.py` - Main Yaapp class\n- `core.py` - YaappCore functionality  \n- `expose.py` - @expose decorator\n- `result.py` - Result type (Ok/Err)\n- `async_compat.py` - Async compatibility\n- `execution_strategy.py` - Execution strategies\n- `context_tree.py` - Context management\n- `exposers/` - Complete exposer system\n- `reflection.py` - CLI reflection system\n- `config.py` - Configuration management\n- `discovery.py` - Plugin discovery\n- `run.py` - Main run function\n\n### \u2705 Example Runner\n- `runners/click/` - Click CLI runner\n\n### \u2705 Example Plugin  \n- `plugins/calculator/` - Simple calculator plugin\n\n## Usage:\n\n### Basic Example:\n```python\nfrom yaapp import run\nrun()  # Auto-discovers plugins and runs CLI\n```\n\n### Manual Example:\n```python\nfrom yaapp.app import Yaapp\n\napp = Yaapp(auto_discover=False)\n\n# Load calculator plugin manually\nimport yaapp.plugins.calculator.plugin\nfrom yaapp.expose import apply_pending_registrations\napply_pending_registrations(app)\n\n# Use programmatically\nresult = app._execute_from_registry(\"calculator\")\ncalc = result.unwrap()\nprint(calc.add(2, 3))  # 5\n```\n\n### CLI Usage:\n```bash\npython cli_example.py calculator add --x 5 --y 3\npython cli_example.py calculator get-history --limit 5\n```\n\n## Dependencies:\n- `click` (for CLI runner)\n- `pyyaml` (for config)\n\n## What's NOT included:\n- Other runners (prompt, rich, server, etc.)\n- Other plugins (storage, docker, etc.)\n- CLI builders and complex discovery\n- Non-essential utilities\n\nThis is the **minimal working core** that demonstrates:\n1. \u2705 Plugin system working\n2. \u2705 Runner system working  \n3. \u2705 Exposer system working\n4. \u2705 CLI generation working\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "yaapp-core - Minimal core functionality for yaapp framework",
    "version": "0.0.40",
    "project_urls": {
        "Homepage": "https://github.com/yaapp-team/yaapp-core",
        "Issues": "https://github.com/yaapp-team/yaapp-core/issues",
        "Repository": "https://github.com/yaapp-team/yaapp-core"
    },
    "split_keywords": [
        "cli",
        " framework",
        " plugin",
        " core"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fe45815abe618801b41500a01b02cf29bc9aa1fb0e361fb0b5bd2b993e4eb9c7",
                "md5": "593b8d9e684d0f73653b5cb851a03334",
                "sha256": "4fc114e15c6b67465fdddf6c183a07d950a4b74a09b72845b21853d470491482"
            },
            "downloads": -1,
            "filename": "yaapp_core-0.0.40-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "593b8d9e684d0f73653b5cb851a03334",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 44928,
            "upload_time": "2025-08-03T16:07:05",
            "upload_time_iso_8601": "2025-08-03T16:07:05.678777Z",
            "url": "https://files.pythonhosted.org/packages/fe/45/815abe618801b41500a01b02cf29bc9aa1fb0e361fb0b5bd2b993e4eb9c7/yaapp_core-0.0.40-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fec5fd217461a65b1e0a604f2146198bec480f98a61ae0208e458d5df54a1fde",
                "md5": "266e1b33f9e6d2edb7cc0fa36686c86b",
                "sha256": "483675f38544d08fc2d29d296b055e8c44c1e1e97eb361fa10f4a67663125717"
            },
            "downloads": -1,
            "filename": "yaapp_core-0.0.40.tar.gz",
            "has_sig": false,
            "md5_digest": "266e1b33f9e6d2edb7cc0fa36686c86b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 36865,
            "upload_time": "2025-08-03T16:07:07",
            "upload_time_iso_8601": "2025-08-03T16:07:07.845201Z",
            "url": "https://files.pythonhosted.org/packages/fe/c5/fd217461a65b1e0a604f2146198bec480f98a61ae0208e458d5df54a1fde/yaapp_core-0.0.40.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-03 16:07:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yaapp-team",
    "github_project": "yaapp-core",
    "github_not_found": true,
    "lcname": "yaapp-core"
}
        
Elapsed time: 2.60648s