# Using uv (recommended)
uv python pin 3.12
uv venv
source .venv/bin/activate
uv pip install -e '.[dev]'
# Or using pip
python3.12 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'# Run all tests
pytest
# Run a specific test
pytest tests/test_config.py::test_function_name
# Lint and format
ruff check .
ruff check --fix .
ruff format .
# CLI usage
entropy-data --version
entropy-data --help
entropy-data connection add prod
entropy-data teams listCLI for Entropy Data.
cli.py— Typer app, global options, command group registrationconfig.py— Connection config management (~/.entropy-data/config.toml)client.py— HTTP client wrapping requests (generic CRUD + actions)output.py— Output formatting (Rich tables, JSON)
Each file creates a typer.Typer() instance registered in cli.py.
Resources: dataproducts, datacontracts, access, teams, sourcesystems, definitions, certifications, example-data, test-results, events, search, connection.
- CLI options (
--api-key,--host) - Environment variables /
.envfile (ENTROPY_DATA_API_KEY,ENTROPY_DATA_HOST) - Named connection from
~/.entropy-data/config.toml
- Python 3.12+
- Typer for CLI, Rich for output, Pydantic for models, requests for HTTP
- Ruff for linting/formatting (line-length 120)
- Tests use pytest + responses (mocked HTTP)