Metadata-Version: 2.1
Name: wexample-app
Version: 19.5.0
Summary: Provides an AbstractKernel base class, command resolvers, typed response objects, and a service-container mixin for building structured Python CLI applications
Author-Email: weeger <contact@wexample.com>
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Project-URL: homepage, https://github.com/wexample/python-app
Requires-Python: >=3.10
Requires-Dist: attrs>=23.1.0
Requires-Dist: cattrs>=23.1.0
Requires-Dist: dotenv
Requires-Dist: python-dotenv
Requires-Dist: requests>=2.31.0
Requires-Dist: wexample-filestate>=17.6.0
Requires-Dist: wexample-helpers-yaml>=7.0.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Description-Content-Type: text/markdown

# app

Version: 19.5.0

Provides an AbstractKernel base class, command resolvers, typed response objects, and a service-container mixin for building structured Python CLI applications

## Table of Contents

- [Basic Usage](#basic-usage)
- [Examples](#examples)
- [Installation](#installation)
- [Introduction](#introduction)
- [Quickstart](#quickstart)
- [Install](#install)
- [Tests](#tests)
- [Roadmap](#roadmap)
- [Status Compatibility](#status-compatibility)
- [Useful Links](#useful-links)

## Basic Usage

```python
from wexample_helpers.decorator.base_class import base_class

from wexample_app.common.abstract_kernel import AbstractKernel
from wexample_app.common.mixins.command_line_kernel import CommandLineKernel
from wexample_app.common.mixins.command_runner_kernel import CommandRunnerKernel

@base_class
class MyApp(CommandRunnerKernel, CommandLineKernel, AbstractKernel):
    pass

my_app = MyApp()
```

## Additional Examples

### Advanced Usage

```python
from app import AdvancedFeature

# Advanced example
feature = AdvancedFeature(config={'option': 'value'})
result = feature.execute()
```

More examples can be found in the `examples/` directory of the repository.

## Installation

```bash
pip install app
```

## Introduction

app provides essential base classes that facilitate quick development of simple, well-structured CLI programs.

## Quickstart

Get started with **app** in seconds:

```python
# Your first example with app
from app import YourClass

# Initialize and use
instance = YourClass()
instance.run()
```

This package requires Python >=3.10.

## Installation

```bash
pip install wexample-app
```

Requires Python >=3.10.

## Tests

This project uses `pytest` for testing and `pytest-cov` for code coverage analysis.

### Installation

First, install the required testing dependencies:
```bash
.venv/bin/python -m pip install pytest pytest-cov
```

### Basic Usage

Run all tests with coverage:
```bash
.venv/bin/python -m pytest --cov --cov-report=html
```

### Common Commands
```bash
# Run tests with coverage for a specific module
.venv/bin/python -m pytest --cov=your_module

# Show which lines are not covered
.venv/bin/python -m pytest --cov=your_module --cov-report=term-missing

# Generate an HTML coverage report
.venv/bin/python -m pytest --cov=your_module --cov-report=html

# Combine terminal and HTML reports
.venv/bin/python -m pytest --cov=your_module --cov-report=term-missing --cov-report=html

# Run specific test file with coverage
.venv/bin/python -m pytest tests/test_file.py --cov=your_module --cov-report=term-missing
```

### Viewing HTML Reports

After generating an HTML report, open `htmlcov/index.html` in your browser to view detailed line-by-line coverage information.

### Coverage Threshold

To enforce a minimum coverage percentage:
```bash
.venv/bin/python -m pytest --cov=your_module --cov-fail-under=80
```

This will cause the test suite to fail if coverage drops below 80%.

## Known Limitations & Roadmap

Current limitations and planned features are tracked in the GitHub issues.

See the [project roadmap](https://github.com/wexample/python-app/issues) for upcoming features and improvements.

## Status & Compatibility

**Maturity**: Production-ready

**Python Support**: >=3.10

**OS Support**: Linux, macOS, Windows

**Status**: Actively maintained

## Useful Links

- **Homepage**: https://github.com/wexample/python-app
- **Issue Tracker**: https://github.com/wexample/python-app/issues
- **Discussions**: https://github.com/wexample/python-app/discussions
- **PyPI**: [pypi.org/project/wexample-app](https://pypi.org/project/wexample-app/)
