Skip to main content

Ryn SDK: data, model, and trainer interfaces

Project description

Ryn SDK

A unified Python SDK for data, model, and trainer workflows.
This repository mirrors the automatic release workflow used in model-registry (auto-publish to PyPI via GitHub Actions).

Default install pulls everything. Subsets are available via extras (ryn[model], ryn[data], ryn[trainer]).


Table of Contents


Installation

Default (everything): installs the union of data + model + trainer requirements.

# Everything
pip install ryn

# Only the model stack
pip install "ryn[model]"

# Only the data stack
pip install "ryn[data]"

# Only the trainer stack
pip install "ryn[trainer]"

Notes

  • Some dependencies (e.g., torch) may require platform-specific wheels. If you're on a GPU machine, consult the official PyTorch install guide for your CUDA/ROCm toolkit.
  • If you need a slim install instead, use a virtual environment and install only the extras you need.

Quick Start

import ryn
from ryn import data, model, trainer

print("Ryn version:", ryn.__version__)

# Example scaffolding (replace with your actual API calls):
# Dataset operations
# ds = data.load_dataset("your-dataset-id")
# df = data.to_pandas(ds)

# Model registry / storage operations
# model_id = model.register_model(name="my-model", version="1.0.0", metadata={"task": "classification"})
# meta = model.get_model(name="my-model", version="1.0.0")

# Training utilities
# run = trainer.train(config={"epochs": 10, "lr": 1e-3})
# metrics = trainer.evaluate(run)

The snippet above shows typical entry points. Replace with your actual functions/classes provided by ryn.data, ryn.model, and ryn.trainer in this repo.


Project Structure

ryn/
  data/       # Data utilities & loaders
  model/      # Model registry / storage / inference helpers
  trainer/    # Training loops, trackers, and helpers
  __init__.py # Exposes public API and package metadata

Requirements Layout

Dependencies are split into three groups under requirements/ and combined for the default install:

requirements/
  model.txt    # e.g., boto3, huggingface-hub, transformers, einops, ...
  data.txt     # e.g., numpy, pandas, scikit-learn, datasets, openml, ...
  trainer.txt  # e.g., torch, torchvision, timm, albumentations, ...
  • Default install (pip install ryn) = union(model + data + trainer).
  • Extras for explicit subsets:
    • ryn[model]
    • ryn[data]
    • ryn[trainer]

These groups are wired in setup.py so that PyPI metadata carries the dependency info.


Versioning & Auto-Publish to PyPI

The repository uses a CI workflow (GitHub Actions) that auto-bumps and publishes to PyPI on push to main when the following conditions are met:

  1. Repository variable PUBLISH_TO_PYPI is set to true.
  2. The commit message contains the phrase pipy commit -push.

Bump level is controlled via the commit message:

  • pipy commit -push major → bump MAJOR
  • pipy commit -push minor → bump MINOR
  • pipy commit -push (no keyword) → bump PATCH (default)

Workflow outline

  1. Read current version from PyPI.
  2. Compute next version (patch/minor/major).
  3. Update ryn/__init__.py and setup.py.
  4. Build distributions (sdist + wheel).
  5. Upload to PyPI using Twine.

Required repo settings

  • Settings → Secrets and variables → Actions → Secrets
    • PYPI_API_TOKEN (PyPI token)
  • Settings → Secrets and variables → Actions → Variables
    • PUBLISH_TO_PYPI = true

Local Development

# Clone
git clone https://github.com/AIP-MLOPS/rayen.git
cd rayen

# (Optional) Create a virtual environment
python -m venv .venv && source .venv/bin/activate  # or .venv\Scripts\activate on Windows

# Install in editable mode with a subset of extras, e.g., model
pip install -e ".[model]"

# Build locally
python -m pip install --upgrade pip build twine
python -m build
twine check dist/*

If you prefer a full dev install, use pip install -e ".[all]" (identical to default deps).


Update Checker (Optional)

The package may include a lightweight update checker that prints a hint if a newer version is available on PyPI. This check is best-effort and should never fail your import due to network issues.


Supported Python Versions

  • Python 3.11+

Contributing

  1. Fork the repository and create a feature branch.
  2. Keep commits focused and meaningful.
  3. Open a Pull Request with a clear description and, if applicable, tests or examples.

Consider running your linter/formatter locally (e.g., ruff) before opening a PR.


License

MIT

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

ryn-0.2.5.tar.gz (141.2 kB view details)

Uploaded Source

Built Distribution

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

ryn-0.2.5-py3-none-any.whl (194.3 kB view details)

Uploaded Python 3

File details

Details for the file ryn-0.2.5.tar.gz.

File metadata

  • Download URL: ryn-0.2.5.tar.gz
  • Upload date:
  • Size: 141.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.6

File hashes

Hashes for ryn-0.2.5.tar.gz
Algorithm Hash digest
SHA256 aabbf4472e31cb49a3b1c1f266140973596b74bd500b1007a40c204850a26d92
MD5 e9c0bc426ab72cbf95d6ffd2a30df003
BLAKE2b-256 62feb25c8a8806f60931f81f54dd2ef0a95cdf6f82665c57d89e04fa54f2b450

See more details on using hashes here.

File details

Details for the file ryn-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: ryn-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 194.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.6

File hashes

Hashes for ryn-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ec48527db1b8a48731b5c77e43bfb5921b670d83268aa7f58a4bcf4b1aa297ff
MD5 99796f34d03fe2a996273c83fb3358d5
BLAKE2b-256 6c45a0a13e1e9086bda84119f058b8832bc2de2a17acaf062cb936f3d596a0d0

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