Skip to main content

Data version control for machine learning

Project description

🐂 🐍 Oxen Python Interface

The Oxen python interface makes it easy to integrate Oxen datasets directly into machine learning dataloaders or other data pipelines.

Repositories

There are two types of repositories one can interact with, a Repo and a RemoteRepo.

Local Repo

To fully clone all the data to your local machine, you can use the Repo class.

import oxen

repo = oxen.Repo("path/to/repository")
repo.clone("https://hub.oxen.ai/ox/CatDogBBox")

If there is a specific version of your data you want to access, you can specify the branch when cloning.

repo.clone("https://hub.oxen.ai/ox/CatDogBBox", branch="my-pets")

Once you have a repository locally, you can perform the same operations you might via the command line, through the python api.

For example, you can checkout a branch, add a file, commit, and push the data to the same remote you cloned it from.

import oxen

repo = oxen.Repo("path/to/repository")
repo.clone("https://hub.oxen.ai/ox/CatDogBBox")
repo.checkout()

Remote Repo

If you don't want to download the data locally, you can use the RemoteRepo class to interact with a remote repository on OxenHub.

import oxen

repo = oxen.RemoteRepo("https://hub.oxen.ai/ox/CatDogBBox")

To stage and commit files to a specific version of the data, you can checkout an existing branch or create a new one.

repo.create_branch("dev")
repo.checkout("dev")

You can then stage files to the remote repository by specifying the file path and destination directory.

repo.add("new-cat.png", "images") # Stage to images/new-cat.png on remote
repo.commit("Adding another training image")

Note that no "push" command is required here, since the above code creates a commit directly on the remote branch.

Build 🔨

See the prerequisites section of the main readme before developing.

To get and build dependencies, as well as the oxen-python code, run:

uv sync --verbose

To build the PyO3 oxen wrappers only, use maturin and --no-sync:

uv run --no-sync maturin develop

Test

Run pytest:

uv run --verbose pytest -s tests/

If you have already installed all dependencies, and you're not making any changes to liboxen, then you may use --no-sync:

uv run --no-sync pytest -s tests/

Format and lint code with:

uvx ruff check .
uvx ruff format .

Logging

Oxen uses structured logging. It outputs to STDERR by default but can be configured with rotating log files. See Logging for details.

By default, the oxen-python does not perform any logging. Set RUST_LOG to change.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

oxenai-0.52.0-cp311-abi3-win_amd64.whl (32.0 MB view details)

Uploaded CPython 3.11+Windows x86-64

oxenai-0.52.0-cp311-abi3-manylinux_2_34_x86_64.whl (30.8 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ x86-64

oxenai-0.52.0-cp311-abi3-manylinux_2_34_aarch64.whl (29.3 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

oxenai-0.52.0-cp311-abi3-macosx_11_0_arm64.whl (29.2 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.52.0-cp311-abi3-macosx_10_13_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.11+macOS 10.13+ x86-64

File details

Details for the file oxenai-0.52.0-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.52.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 32.0 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.4

File hashes

Hashes for oxenai-0.52.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2649b12de27ae797f1952d0825863a4928b468aa59dcd3453b213779ccda409b
MD5 196c82efa982dade11936c1b6bfe8df8
BLAKE2b-256 d40c6426765acd66e8e686f41e3d24d39c2f040f3cd6a36090f612151282eb73

See more details on using hashes here.

File details

Details for the file oxenai-0.52.0-cp311-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for oxenai-0.52.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6e1e5186ab142791f79df5990c0d50f5bd0749526d1921762b3aae45e3e7fd0b
MD5 6905e3040b13417130c33ecb5f14af45
BLAKE2b-256 240140c1eeccae6f934591471857bf32f69ef2f40e13acedb5b689628d8b6d3a

See more details on using hashes here.

File details

Details for the file oxenai-0.52.0-cp311-abi3-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for oxenai-0.52.0-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 c56fa278885dcff9b0befdaa051aa051ae7e140fc05056f9ebd604415b13c4d0
MD5 fae2027dc9ddb531dc74c6d7cc45a1cf
BLAKE2b-256 e32b75610e11c58765e7833456a701cefa1db8b76cb3e681c634da6798453c25

See more details on using hashes here.

File details

Details for the file oxenai-0.52.0-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxenai-0.52.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a012bc4970d3fed21fc4b8e2a6ce1775281c570597ed3075a3112e5fe5b78ca1
MD5 31e72f915e110cf07033ea811a8359a8
BLAKE2b-256 d8c533f5326bcd78058d6ee765f98214d57a1ece6951adda088f9038898c50d2

See more details on using hashes here.

File details

Details for the file oxenai-0.52.0-cp311-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for oxenai-0.52.0-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 fb8a270607ca7b6f9950a1aa400dc6ef540ee9547c3e1d0c2c3f0665af51fb6a
MD5 059c645e7be18cc01de6c2ac86948147
BLAKE2b-256 15699b0edd8efa3f029f9ff0a07f465ed799f86caf31b53d849b6eb5c867d025

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