Metadata-Version: 2.4
Name: ai4one
Version: 0.1.3
Summary: A small machine learning package
Author-email: bestenevoy <bestenevoy@outlook.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/bestenevoy/ai4one
Project-URL: Issues, https://github.com/bestenevoy/ai4one/issues
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dataclasses-json<=0.5.7
Requires-Dist: numpy
Requires-Dist: openai>=0.8.0
Requires-Dist: simple-parsing>=0.1.5
Requires-Dist: typer
Provides-Extra: toml
Requires-Dist: toml; extra == "toml"
Provides-Extra: yaml
Requires-Dist: PyYAML; extra == "yaml"
Provides-Extra: all
Requires-Dist: ai4one[toml]; extra == "all"
Requires-Dist: ai4one[yaml]; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ai4one[all]; extra == "dev"
Dynamic: license-file


# AI4One 🤖

A small, modular package for machine learning.

---

## Installation


```bash
pip install ai4one
````

This package requires **Python 3.8** or newer.

-----

## Usage

### ai4one.config
The primary feature of this package is a powerful configuration system. For a comprehensive guide and examples, please see the **[Configuration System Guide](docs/config.md)**.

```python
from ai4one.config import BaseConfig, field
from typing import List

class TrainConfig(BaseConfig):
    learning_rate: float = 0.001
    epochs: int = 10
    optimizer: str = "Adam"
    layers: List[int] = field(default_factory=list)

if __name__ == "__main__":
    config = TrainConfig.argument_parser()
    print(f"Using optimizer: {config.optimizer}")
```

You can also run the self-contained example to see it in action:

```bash
examples/example_config.py
```

-----

## Development

Interested in contributing? Set up your local development environment with `uv`.

1.  **Clone the repository:**

    ```bash
    git clone https://github.com/bestenevoy/ai4one.git
    cd ai4one
    ```

2.  **Create a virtual environment and install dependencies:**
    This command installs all core, optional, and development dependencies.

    ```bash
    uv pip install -e ".[dev]"
    ```

    To keep your environment in sync with the lock file, you can run `uv sync`.

3.  **Run tests:**

    ```bash
    uv run pytest
    ```

-----

## Build and Publish

These commands are for package maintainers.

**Build the package:**

```bash
uv build
```

**Publish to PyPI:**

```bash
uv run twine upload dist/*
```
