semvec/pypi-packages huggingface dataset:
yhttp 7.2.1
A very micro http framework.
License: MIT

# yhttp

[![PyPI](http://img.shields.io/pypi/v/yhttp.svg)](https://pypi.python.org/pypi/yhttp)
[![Build](https://github.com/yhttp/yhttp/actions/workflows/build.yml/badge.svg)](https://github.com/yhttp/yhttp/actions/workflows/build.yml)
[![Coverage Status](https://coveralls.io/repos/github/yhttp/yhttp/badge.svg?branch=master)](https://coveralls.io/github/yhttp/yhttp?branch=master)
[![Documentation](https://img.shields.io/badge/Documentation-almost%20done!-blue)](https://yhttp.github.io/yhttp)
[![Python](https://img.shields.io/badge/Python-%3E%3D3.10-blue)](https://python.org)

[Documentation](https://yhttp.github.io/yhttp)

## Contribution

### python-makelib
Install [python-makelib](https://github.com/pylover/python-makelib).

### Clone 
```bash
git clone git@github.com:yhttp/yhttp.git
```

### Virtualenv

Create virtual environment:
```bash
make venv
```

Delete virtual environment:
```bash
make venv-delete
```

Activate the virtual environment:
```bash
source ./activate.sh
```


### Install (editable mode)
Install this project as editable mode and all other development dependencies:
```bash
make env
```


### Tests
Execute all tests:
```bash
make test
```

Execute specific test(s) using wildcard:
```bash
make test F=tests/test_db*
make test F=tests/test_form.py::test_querystringform
```

*refer to* [pytest documentation](https://docs.pytest.org/en/7.1.x/how-to/usage.html#how-to-invoke-pytest)
*for more info about invoking tests.*

Execute tests and report coverage result:
```bash
make cover
make cover F=tests/test_static.py
make cover-html
```


# Lint
```bash
make lint
```


### Distribution
Execute these commands to create `Python`'s standard distribution packages
at `dist` directory:
```bash
make sdist
make wheel
```

Or 
```bash
make dist
```
to create both `sdidst` and `wheel` packages.


### Clean build directory
Execute: 
```bash
make clean
```
to clean-up previous `dist/*` and `build/*` directories.


### PyPI

> **_WARNING:_** Do not do this if you'r not responsible as author and 
> or maintainer of this project.

Execute
```bash
make clean
make pypi
```
to upload `sdists` and `wheel` packages on [PyPI](https://pypi.org).


## Documentation

```bash
make doc
make livedoc
make doctest
```

Or 

```bash
cd sphinx
make doctest
make html
make livehtml
```
framework-m-core 0.6.0
Core protocols and dependency injection for Framework M
License: MIT
Requires Python: >=3.12

# Framework M Core

[![PyPI version](https://badge.fury.io/py/framework-m-core.svg)](https://badge.fury.io/py/framework-m-core)
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![GitLab Pipeline Status](https://gitlab.com/castlecraft/framework-m/badges/main/pipeline.svg)](https://gitlab.com/castlecraft/framework-m/-/pipelines)

Core protocols and dependency injection container for Framework M.

## Installation

```bash
pip install framework-m-core
```

Or with `uv`:

```bash
uv add framework-m-core
```

## What's Included

### Protocol Interfaces (Ports)

Framework M Core defines the protocol interfaces that adapters must implement:

| Protocol | Purpose |
|----------|---------|
| `RepositoryProtocol` | CRUD operations for documents |
| `EventBusProtocol` | Publish/subscribe events |
| `PermissionProtocol` | Authorization with RLS |
| `StorageProtocol` | File storage abstraction |
| `JobQueueProtocol` | Background job processing |
| `CacheProtocol` | Caching layer |
| `NotificationProtocol` | Email/SMS notifications |
| `SearchProtocol` | Full-text search |
| `PrintProtocol` | PDF generation |
| `I18nProtocol` | Internationalization |

### Domain Base Classes

- `BaseDocType` - Base class for all document types
- `BaseController` - Lifecycle hooks (validate, before_save, after_save, etc.)
- `SubmittableMixin` - For documents with submit/cancel workflow

### Dependency Injection

Built on `dependency-injector` for clean, testable code:

```python
from framework_m_core.container import Container

container = Container()
container.wire(modules=["my_app.services"])
```

### CLI Framework

Built on `cyclopts` for powerful command-line interfaces:

```python
from framework_m_core.cli import app

@app.command
def my_command():
    """My custom command."""
    pass
```

## Usage

This package is typically used as a dependency of `framework-m` or `framework-m-standard`. 
For most applications, install the full `framework-m` package instead.

## License

MIT License - see [LICENSE](https://gitlab.com/castlecraft/framework-m/blob/main/LICENSE) for details.