Metadata-Version: 2.1
Name: computex-cli
Version: 0.2.0
Summary: ComputeX CLI tool
Author: Abate De Mey
Author-email: abate@computex.ai
Requires-Python: >=3.8.1,<4.0.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: click (>=8.1.3,<9.0.0)
Requires-Dist: cryptography (>=41.0.1,<42.0.0)
Requires-Dist: docker (>=6.1.3,<7.0.0)
Requires-Dist: keyring (>=24.2.0,<25.0.0)
Requires-Dist: pydantic (>=1.10.9,<2.0.0)
Requires-Dist: pyjwt (>=2.7.0,<3.0.0)
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: toml (>=0.10.2,<0.11.0)
Description-Content-Type: text/markdown

# cx
The ComputeX Python CLI lets you interact with ComputeX REST APIs and push images for your models to the ComputeX container registry.

## Installation

### Requirements
- Python >= 3.8

Run `pip install cx`.

## Command Line Interface
At any time, you can utilize the `--help` flag with any command or subcommand:

```shell
$ cx --help
Usage: cx [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  login
  ...
```

### Logging In
```shell
$ cx login --username {username} --password {password}
```

### Building an Image
WIP

### Pushing an Image
WIP

## Development
To test locally, run the following:
```shell
$ source setup_env.sh
$ python -m cxcli.cli
```

### Publishing to PyPI
The process for publishing to PyPI works as follows:

- Pull down the `main` branch.
- Tag it with the current version as specified in `pyproject.toml`.
- Push that tag to the repo, which...
- Triggers a GitHub Action workflow (`pypi.yml`) that pushes it to PyPI.

This can all be done simply by running the following `make` command:

```shell
make pypi-publish 
```

Assuming you have the ability to push a tag to the repo, you'll be able to publish to PyPI.

**WARNING:** if you do not specify a new version in `pyproject.toml`, the GHA workflow will fail due to an existing package being on PyPI.

