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.49.0-cp311-abi3-win_amd64.whl (31.4 MB view details)

Uploaded CPython 3.11+Windows x86-64

oxenai-0.49.0-cp311-abi3-manylinux_2_34_x86_64.whl (30.7 MB view details)

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

oxenai-0.49.0-cp311-abi3-manylinux_2_34_aarch64.whl (29.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

oxenai-0.49.0-cp311-abi3-macosx_11_0_arm64.whl (29.1 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.49.0-cp311-abi3-macosx_10_13_x86_64.whl (31.6 MB view details)

Uploaded CPython 3.11+macOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: oxenai-0.49.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 31.4 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.49.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6a3b57059009bc79c4efa2d2d355604e0be8f0fb807c583b04f976f7f172a32b
MD5 109e99d7dedb8743334d2e0950d6c93b
BLAKE2b-256 aba0dc3788f55775a55838bb53dcf8e1f9da14fa46f5b45e7f267a10b35c8e44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.49.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d0e4e5d36f46537743257c38ddf40dda4daa2503c38b218dcc4620da2aa03560
MD5 727e6c8fc12348fa1aa7fe586db08899
BLAKE2b-256 4402493144fe6fceddfd719f2407c99f76e6a92f8016f9633469aaa9dade9eae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.49.0-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 06b17e3b8f0b8e77a55970145254d0dd6d365e9ba021d1e9b308978fe0a5a3e0
MD5 91baa1773ed19bb1022ce699080710dd
BLAKE2b-256 8cc5059355b230f86157dfb95f4db9bf7612f0834b23410d973b94c9ff475497

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.49.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3254f1fda9503f0de8cac9c32bc5b95af8071ee868f53eabcb2c443a55953174
MD5 7836d39a6b01781185074ba46f0dcabc
BLAKE2b-256 5d72c04639e5bc17ca6ea88a4f16fbcba84ca37cb137ffe97302a2c39880b980

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.49.0-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 82a6b0484d775201792671310e240dcf297de567683391c0b64bf918e7cb2ec4
MD5 9d751bb0f6b82c6676e659bade2d323d
BLAKE2b-256 1d744e99c1c0987aa2d64e9405671088db2e75176e68ee0d22d9fc7b899c604a

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