Metadata-Version: 2.2
Name: rcrab
Version: 0.1.0
Summary: Simpe python project template
Author-email: WeiNyn <nguyenhuy17798@gmail.com>
Project-URL: Homepage, https://github.com/WeiNyn/crab/tree/master
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: isort>=6.0.0
Requires-Dist: jinja2>=3.1.5
Requires-Dist: mypy>=1.14.1
Requires-Dist: pydantic>=2.10.6
Requires-Dist: pytest>=8.3.4
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: ruff>=0.9.4
Requires-Dist: toml>=0.10.2
Requires-Dist: tomli>=2.2.1
Requires-Dist: typer>=0.15.1
Requires-Dist: uv>=0.5.26

# 🦀 Crab - Modern Python Project Manager

Crab is a batteries-included CLI tool that streamlines Python project setup and management by automating boilerplate configuration and integrating modern development tools.

## Features

- 🚀 **Quick Project Setup**: Create new Python projects with best practices using `crab init`
- 🛠 **Modern Tooling**: Pre-configured integration with:
  - [`uv`](https://github.com/astral-sh/uv) for fast package management
  - [`ruff`](https://github.com/astral-sh/ruff) for linting and formatting
  - [`mypy`](https://github.com/python/mypy) for type checking
  - [`pytest`](https://github.com/pytest-dev/pytest) for testing
  - [`pre-commit`](https://github.com/pre-commit/pre-commit) for git hooks
- ⚙️ **PEP-Compliant**: Uses `pyproject.toml` for configuration
- 🔄 **Git Integration**: Automatic git repository initialization
- 📦 **Dependency Management**: Simple commands to add, remove, and update packages

## Installation

```bash
pip install crab-cli
```

## Quick Start

1. Create a new project

```bash
crab init my_project
cd my_project
```

2. Add dependencies:

```bash
uv add pandas numpy
```

3. Run code quality tools:

```bash
make lint
make fix
```

4. Run test

```bash
make test
```

### Configuration

Crab uses pyproject.toml for project configuration. Default settings are automatically created during project initialization.

Example configuration:

```toml
[tool.crab]
template = "basic"
venv-directory = ".venv"

[tool.crab.paths]
source = "src"
tests = "tests"
docs = "docs"

[tool.crab.lint]
enabled-tools = ["ruff", "mypy"]
```
