Skip to main content

User-side Python SDK for downloading datasets and assets from Cortexa. Supports project_id, label_list, and filter_by_labels parameters for YOLO and JSON export types. Use 'annotation_type' parameter (rect, polygon) for YOLO.

Project description

Cortexa SDK

The Cortexa SDK is a Python client for downloading datasets from a Cortexa server, supporting both programmatic and CLI usage.

Installation

pip install cortexa-sdk

Configuration

You can configure the SDK in three ways (precedence: function parameters > config file > environment variables):

  1. Function parameters (passed directly to download_dataset)
  2. Config file (~/.cortexa/config.json)
  3. Environment variables

Example config file (auto-generate with cortexa-sdk --init-config):

{
  "api_key": "your-api-key",
  "base_url": "http://your-cortexa-server/api/v1",
  "dataset_dir": "~/datasets"
}

Environment variables:

  • CORTEXA_API_KEY – API key
  • CORTEXA_BASE_URL – Base URL of the Cortexa server
  • CORTEXA_DATASET_DIR – Default dataset download directory
  • CORTEXA_CONFIG – Path to a JSON config file (defaults to ~/.cortexa/config.json)

Usage

Python API:

You can use the SDK in two ways:

1. Pass all parameters explicitly (highest precedence):

from cortexa_sdk import download_dataset, ExportType, AnnotationType

path = download_dataset(
    dataset_id="DATASET_ID",
    export_type=ExportType.JSON,
    annotation_type=AnnotationType.RECT,
    api_key="YOUR_API_KEY",
    base_url="http://your-cortexa-server/api/v1",
    download_dir="~/datasets",
    assets_included=True
)
print("Dataset saved to", path)

2. Use config file or environment variables (lower precedence):

from cortexa_sdk import download_dataset, ExportType, AnnotationType

path = download_dataset("DATASET_ID", export_type=ExportType.JSON, annotation_type=AnnotationType.RECT)
print("Dataset saved to", path)

In this case, the SDK will read values from ~/.cortexa/config.json or environment variables if parameters are not provided.

CLI:

cortexa-sdk --init-config  # Generate default config file if needed
cortexa-sdk -d "DATASET_ID" --export-type YOLO --annotation-type rect
cortexa-sdk -d "DATASET_ID" \
  --export-type JSON \
  --annotation-type rect \
  --api-key TOKEN \
  --base-url http://localhost:8000/api/v1 \
  --download-dir ./tmp/datasets \
  --assets-included True

Example output:

Created download task for dataset 688a26a52b1a60e8375b98d7
Created dataset download task 688a79d2b3c851acb0606df6 for 688a26a52b1a60e8375b98d7
dataset task 688a79d2b3c851acb0606df6 status: PROCESSING progress: 40%
... (progress updates) ...
dataset task 688a79d2b3c851acb0606df6 status: COMPLETED progress: 100%
Downloading dataset from ...
Saved dataset to tmp/datasets/688a26a52b1a60e8375b98d7.zip

Examples

Using environment variables:

export CORTEXA_API_KEY="TOKEN"
export CORTEXA_BASE_URL="https://api.example.com/api/v1"
python - <<'PY'
from cortexa_sdk import download_dataset
download_dataset("dataset123")
PY

Using a config file:

from cortexa_sdk import download_dataset, ExportType
path = download_dataset("dataset123", export_type=ExportType.COCO)
print(path)

Overriding with parameters:

from cortexa_sdk import download_dataset, ExportType

download_dataset(
    "dataset123",
    export_type=ExportType.COCO,
    api_key="TOKEN",
    base_url="https://api.example.com/api/v1",
    download_dir="/tmp/datasets",
    assets_included=True,
)

Configuration Resolution Order

  1. Parameters passed to download_dataset
  2. Values from the config file (~/.cortexa/config.json or as set by CORTEXA_CONFIG)
  3. Environment variables

Project Structure

The main files and folders for the Cortexa SDK project are organized as follows:

cortexa-sdk-project/
│
├── pyproject.toml                # Project metadata and build configuration
├── README.md                     # This documentation file
├── test-download.py              # Example/test script for dataset download
├── cortexa_sdk/                  # SDK source code package
│   ├── __init__.py               # SDK main logic and API
│   └── cli.py                    # Command-line interface entry point
│
└── ... (other files and folders)
  • pyproject.toml: Defines the package, dependencies, and CLI entry point.
  • README.md: Documentation for installation, configuration, usage, and development.
  • test-download.py: Example script to demonstrate SDK usage for downloading datasets.
  • cortexa_sdk/: The main SDK Python package.
    • __init__.py: Implements the SDK API (e.g., download_dataset).
    • cli.py: Implements the CLI (cortexa-sdk command).

You can run the CLI directly after installation:

cortexa-sdk --help

Or use the SDK in your own Python scripts as shown in the usage examples above.

Releasing to PyPI

  1. Install build tools:
    pip install --upgrade setuptools build twine
    
  2. Build the package:
    python -m build
    
  3. Upload to PyPI:
    twine upload dist/*
    
  4. Tag and push the release in git:
    git tag v<version>
    git push --tags
    
  5. (Optional) Test uploads using TestPyPI with twine.

Rebuild and reinstall locally:

python -m build
pip install dist/cortexa_sdk-*.whl --force-reinstall

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cortexa_sdk-0.3.1.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cortexa_sdk-0.3.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file cortexa_sdk-0.3.1.tar.gz.

File metadata

  • Download URL: cortexa_sdk-0.3.1.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for cortexa_sdk-0.3.1.tar.gz
Algorithm Hash digest
SHA256 d4594398c6f767e11a5708b21a7beeed6d8c0cb7ceea2da45dde3072f02d6ccd
MD5 09f5eff4b75c7c15630503d7136b4376
BLAKE2b-256 f9ca4af8113be7d2290d83d96b3bfa9821745eb01b27c09d7700c006315d63aa

See more details on using hashes here.

File details

Details for the file cortexa_sdk-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: cortexa_sdk-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for cortexa_sdk-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bdbd890c7d57a286b0c92cfebe0f53c8685b3e4b7f39c05e7520935e88e38900
MD5 e2942c86ee86468141c88c5ae5a5f49c
BLAKE2b-256 b5e38e327c4fa0d2f9cd9379ba2180908aa8cc3b74c7f46386b0d343ff153dea

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page