Metadata-Version: 2.3
Name: cerebrium
Version: 1.48.2
Summary: 
License: AGPL-3.0-only
Author: Elijah Roussos
Author-email: elijah@cerebrium.ai
Requires-Python: >=3.10,<3.14
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: atom (>=0.11.0,<0.12)
Requires-Dist: bugsnag (>=4.7.1,<5)
Requires-Dist: humanize (>=4.11.0,<5)
Requires-Dist: packaging (>=24.2,<25)
Requires-Dist: poetry (>=2.0.0,<3.0.0)
Requires-Dist: pyflakes (>=3.2.0,<4)
Requires-Dist: pyjwt (>=2.10.1,<3)
Requires-Dist: pytz (>=2024.2)
Requires-Dist: pyyaml (>=6.0.2,<7.0)
Requires-Dist: requests (>=2.32.3,<3.0)
Requires-Dist: rich (>=13.9.4,<14)
Requires-Dist: tenacity (>=9.0,<10.0)
Requires-Dist: termcolor (>=2.3.0,<3)
Requires-Dist: toml (>=0.10.2,<0.11)
Requires-Dist: tqdm (>=4.67.1,<5.0)
Requires-Dist: typer (>=0.16.0,<0.17)
Requires-Dist: tzlocal (>=5.2,<6)
Requires-Dist: yaspin (>=3.1,<4)
Project-URL: Documentation, https://docs.cerebrium.ai/
Project-URL: Homepage, https://www.cerebrium.ai
Description-Content-Type: text/markdown

# Cerebrium CLI

Cerebrium is the Python package built for use with the [Cerebrium](https://www.cerebrium.ai/) platform. 
It allows you to deploy machine learning apps as a REST API with a single line of code.

For usage consult the [documentation](https://docs.cerebrium.ai/). The repo for the documentation can be found [here](https://github.com/CerebriumAI/docs).

This repo uses [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). Tl;dr when merging commits into master they need to be prefixed with either "feat:" or "fix:". We prefix with "feat:" when the commit adds new functionality or features and "fix:" when the commit fixes a bug. This is followed by a one-line description and then the next paragraph has more detail about the change.

## Releases

The CLI follows semver. Commits should be tagged accordingly:

allowed_types = [
    "build", "chore", "ci", "docs", "feat", "fix",
    "perf", "style", "refactor", "test"
]
minor_types = ["feat"]
patch_types = ["fix", "perf"]

# Testing:

Testing in this repository is performed using pytest.

All tests for the cli-package are located in tests/ in the root directory of this repository.

To run tests, run the following command in the root directory:

1. export PYTHONPATH="${PYTHONPATH}:${pwd}"
2. poetry run pytest tests/unit

This will run all tests in the tests/ directory.

## Notes:

- If you want to run a specific test, you can do so by providing the path to the test file as an argument to pytest. For
  example, to run the test in tests/unit/test_cli.py, you can run the following command:

```bash
poetry run pytest tests/unit/test_cli.py
```

- If you would like to see all printed output from the tests, you can add the -s flag to the pytest command. For
  example:

```bash
poetry run pytest -s tests/unit/test_cli.py
```

- When writing tests:
  - Ensure there are at least one positive and one negative test.
  - Please ensure that the test is isolated from the rest of the system. This means that the test should not rely on any external resources or the state of the system.
  - All CLI tests should be run-able in a temporary directory and there should be no side effects.

## How to run locally

```bash
poetry install
poetry env activate
##run the command that looks like this: source /Users/michael/Cerebrium/cerebrium-cli/.venv/bin/activate
export CEREBRIUM_ENV=dev
which cerebrium
```

this should point to cerebrium-cli/.venv/bin/cerebrium


## How to run PyRight Linter

```bash
poetry run pyright
```

