Metadata-Version: 2.4
Name: my-manus-project
Version: 0.5.0
Summary: A minimal starter project created with Manus.
Author: YALLAH-BID
Project-URL: Documentation, https://yallah-bid.github.io/my-manus-project/
Project-URL: Repository, https://github.com/YALLAH-BID/my-manus-project
Project-URL: Changelog, https://github.com/YALLAH-BID/my-manus-project/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/YALLAH-BID/my-manus-project/issues
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Provides-Extra: test
Requires-Dist: coverage==7.16.1; extra == "test"
Provides-Extra: docs
Requires-Dist: mkdocs==1.6.1; extra == "docs"
Provides-Extra: security
Requires-Dist: bandit==1.9.4; extra == "security"
Requires-Dist: pip-audit==2.10.1; extra == "security"

# my-manus-project
[![Coverage](.github/badges/coverage.svg)](https://github.com/YALLAH-BID/my-manus-project/actions/workflows/ci-cd.yml)
[![codecov](https://codecov.io/github/YALLAH-BID/my-manus-project/graph/badge.svg?token=4U79ITXPPP)](https://codecov.io/github/YALLAH-BID/my-manus-project)
[![PyPI version](https://img.shields.io/pypi/v/my-manus-project.svg?label=PyPI)](https://pypi.org/project/my-manus-project/)
[![PyPI downloads](https://img.shields.io/pypi/dm/my-manus-project.svg?label=downloads)](https://pypi.org/project/my-manus-project/)
[![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue.svg)](https://yallah-bid.github.io/my-manus-project/)

A minimal Python starter project created with Manus.

## Project structure

```text
my-manus-project/
├── src/
│   └── my_manus_project/
│       ├── __init__.py
│       └── main.py
├── tests/
│   └── test_main.py
├── scripts/
│   └── generate_coverage_badge.py
├── docs/
│   ├── index.md
│   ├── installation.md
│   ├── releases.md
│   ├── security.md
│   └── usage.md
├── release-templates/
│   ├── .components/
│   ├── .release_notes.md.j2
│   └── CHANGELOG.md.j2
├── .github/
│   ├── badges/
│   │   └── coverage.svg
│   ├── dependabot.yml
│   └── workflows/
│       ├── ci-cd.yml
│       ├── publish-docs.yml
│       ├── publish-to-pypi.yml
│       ├── semantic-release.yml
│       └── sonarqube.yml
├── .gitignore
├── CHANGELOG.md
├── codecov.yml
├── mkdocs.yml
├── pyproject.toml
├── sonar-project.properties
└── README.md
```

## Requirements

- Python 3.11 or newer

## Run the starter script

Run directly from the repository root:

```bash
PYTHONPATH=src python -m my_manus_project.main --name Manus
```

Expected output:

```text
Hello, Manus! Your Manus project is ready.
```

You can also install the project locally and use its console command:

```bash
python -m pip install -e .
my-manus-project --name Manus
```

## Price a car

Estimate the resale price of a used car from its make, model, year,
mileage, and condition:

```bash
PYTHONPATH=src python -m my_manus_project.pricing \
  --make Toyota --model Camry --year 2020 --mileage 45000 --condition good
```

Expected output:

```text
Estimated price for 2020 Toyota Camry: $9,504.17
```

The estimate starts from a base new-car price, applies depreciation for
age and excess mileage, and adjusts for condition (`excellent`, `good`,
`fair`, or `poor`). Base prices are read from
`src/my_manus_project/data/base_prices.csv` — add a `make,model,base_price`
row there to price another car, no code changes needed. Once installed,
the same tool is available as `my-manus-project-price`.

## Run the tests

```bash
PYTHONPATH=src python -m unittest discover -s tests -v
```

## Check code coverage

```bash
python -m pip install -e ".[test]"
coverage run -m unittest discover -s tests
coverage report
```

The CI/CD workflow tests Python 3.11, 3.12, 3.13, and 3.14 before allowing a
release. It also uploads HTML and XML coverage reports and automatically
refreshes the badge on successful pushes to `main`.

Codecov OIDC uploads can be enabled after installing the Codecov GitHub App.
Bandit SAST and pip-audit dependency checks run as a blocking `Security checks`
job on every pull request and push. SonarQube Cloud analysis is enabled for
deeper code-quality and security analysis, imports the Python coverage report,
and waits for the remote quality gate. See the
[security guide](https://yallah-bid.github.io/my-manus-project/security/) for
configuration, local commands, and branch policy details.

## Automated releases

Python Semantic Release evaluates Conventional Commits pushed to `main`, bumps
both package version declarations, updates `CHANGELOG.md`, and creates the
matching tag and GitHub Release. A release then triggers tokenless publication
to PyPI and deployment of the versioned documentation to GitHub Pages.

Use these commit forms to control the next version:

| Commit form | Version bump |
|---|---|
| `fix: correct an error` | Patch |
| `feat: add a capability` | Minor |
| `feat!: change the public interface` | Major |

Commits such as `docs:`, `test:`, `ci:`, and `chore:` do not normally trigger
a release. See the [release documentation](https://yallah-bid.github.io/my-manus-project/releases/)
for the full workflow.

Release notes and `CHANGELOG.md` are rendered from the Jinja templates in
`release-templates/`. Dependabot checks Python packages and pinned GitHub
Actions weekly and opens grouped pull requests with `chore(deps)` titles.

## Documentation

The documentation is built with MkDocs and deployed to
[GitHub Pages](https://yallah-bid.github.io/my-manus-project/) whenever a release
is published. Build it locally with:

```bash
python -m pip install -e ".[docs]"
mkdocs serve
```
