Metadata-Version: 2.4
Name: trainwave-cli
Version: 0.4.1
Summary: Trainwave CLI - A command-line interface for managing Trainwave resources
Project-URL: Homepage, https://trainwave.ai
Project-URL: Documentation, https://trainwave.ai/docs
Author-email: Johan Backman <johan@trainwave.ai>
Maintainer-email: Johan Backman <johan@trainwave.ai>
License: MIT
Keywords: ai,cli,machine-learning,trainwave
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Requires-Dist: aiofiles<25,>=24.1.0
Requires-Dist: aiohttp<4,>=3.10
Requires-Dist: beaupy<4,>=3.9.2
Requires-Dist: boto3>=1.30
Requires-Dist: dacite<2,>=1.9.2
Requires-Dist: httpx==0.28.1
Requires-Dist: human-readable<2,>=1.3.4
Requires-Dist: loguru<1,>=0.7.2
Requires-Dist: pathspec<1,>=0.12.1
Requires-Dist: pytimeparse<2,>=1.1.8
Requires-Dist: tabulate<1,>=0.9.0
Requires-Dist: toml<1,>=0.10.2
Requires-Dist: tqdm<5,>=4.66.4
Requires-Dist: typer-config[all]<2,>=1.4.0
Requires-Dist: typer<1,>=0.12.5
Requires-Dist: websockets<13,>=12.0
Description-Content-Type: text/markdown

# Trainwave CLI

A command-line interface for interacting with Trainwave's machine learning platform. This CLI tool provides functionality for managing training jobs, handling authentication, managing secrets, and configuring your Trainwave environment.

## Features

- Job Management: Create, monitor, and manage training jobs
- Authentication: Secure authentication with Trainwave's platform
- Secrets Management: Handle sensitive information for your jobs
- Configuration: Set up and manage your Trainwave environment

## Installation

### Using pip

```bash
pip install trainwave-cli
```

### From Source

1. Clone the repository
2. Install using uv:

```bash
uv sync
```

## Usage

The CLI provides several main commands:

```bash
wave jobs     # Manage training jobs
wave auth     # Authenticate with Trainwave
wave config   # Configure your Trainwave environment
wave secrets  # Manage job secrets
```

For detailed help on any command:

```bash
wave --help
wave <command> --help
```

## Development

This project uses uv for dependency management and packaging. Here's how to set up your development environment:

### Prerequisites

- Python 3.10 or higher
- [uv](https://docs.astral.sh/uv/getting-started/installation/)
- Make (for development commands)

### Setting Up Development Environment

1. Clone the repository
2. Install development dependencies:

```bash
make install-dev
```

### Development Commands

The project includes several Make targets to help with development:

- `make install`: Install production dependencies
- `make install-dev`: Install development dependencies
- `make clean`: Remove temporary files and build artifacts
- `make ruff`: Run Ruff linter
- `make format`: Format code using Black and Ruff
- `make check`: Run all code quality checks
- `make test`: Run the test suite
- `make help`: Show available make commands

### Code Style

The project uses:

- Ruff for linting
- Black for code formatting
- Type hints are required for all functions

### Running Tests

```bash
make test
```

Or directly with pytest:

```bash
pytest tests/
```

## Project Structure

```
trainwave-cli/
├── trainwave_cli/     # Main package directory
├── tests/            # Test files
├── example/          # Example configurations and usage
├── pyproject.toml    # Project metadata and dependencies
└── Makefile         # Development automation
```

## Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting: `make check`
5. Submit a pull request

## License

[License information here]
