Metadata-Version: 2.5
Name: climb-cli
Version: 0.0.2
Summary: Utilities for working with CLIMB environments.
Project-URL: Homepage, https://github.com/quadram-institute-bioscience/clm
Project-URL: Repository, https://github.com/quadram-institute-bioscience/clm
Project-URL: Issues, https://github.com/quadram-institute-bioscience/clm/issues
Author: CLIMB Team
License-Expression: MIT
Keywords: bioinformatics,climb,hpc,jupyter
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.10
Requires-Dist: rich>=13
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: build>=1.0; extra == 'dev'
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Requires-Dist: twine>=5.0; extra == 'dev'
Description-Content-Type: text/markdown

# clm

Utilities for working with CLIMB environments.

## Installation

```bash
pip install .
```

For development:

```bash
pip install -e ".[dev]"
```

## Usage

### Show version

```bash
clm version
# or
clm --version
```

### Show environment information

Display CLIMB notebook environment details in a table:

```bash
clm info
```

Output as JSON for scripting:

```bash
clm info --json
```

Example output:

```
CLIMB Notebook Information
┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Property               ┃ Value                                           ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ CLIMB Notebook         │ ✓ Yes                                           │
│                        │                                                 │
│ User                   │ telatin.qit-team-001                            │
│ Team                   │ qit-team-001                                    │
│ Hostname               │ jupyter-telatin-2eqit-2dteam-2d001              │
│ CPU Limit              │ 8.0                                             │
│ CPU Guarantee          │ 8.0                                             │
│ Memory Limit           │ 64.0 GiB                                        │
│ Memory Guarantee       │ 64.0 GiB                                        │
│ Nextflow Home          │ /shared/team/nxf_work/telatin.qit-team-001      │
│ Nextflow Work          │ /shared/team/nxf_work/telatin.qit-team-001/work │
│ JupyterHub Service URL │ http://0.0.0.0:8888/user/telatin.qit-team-001/  │
│ Jupyter Image          │ climbbigdata/jupyterhub-base:0.0.65             │
│ AWS Endpoint           │ https://s3.climb.ac.uk                          │
└────────────────────────┴─────────────────────────────────────────────────┘
```

## Development

Run tests with:

```bash
pytest
```

## Architecture

The package follows this structure:

```
clm/
├── pyproject.toml
├── src/clm/
│   ├── __init__.py         # Package version
│   ├── __main__.py         # python -m clm support
│   ├── cli.py              # Typer app entry point
│   ├── console.py          # Shared Rich console instances
│   ├── utils.py            # is_climb_notebook() helper
│   └── commands/
│       ├── version.py      # clm version
│       └── info.py         # clm info
└── tests/
    ├── test_cli.py
    ├── test_info.py
    └── test_utils.py
```

## Future commands

Planned subcommands following the PROJECT.md roadmap:

- `clm env` – environment management
- `clm notebook` – notebook utilities
- `clm storage` – storage inspection and management
- `clm team` – team information
- `clm system` – system resources (CPU, memory, GPU)
