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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.51.2-cp311-abi3-manylinux_2_34_x86_64.whl (31.0 MB view details)

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

oxenai-0.51.2-cp311-abi3-manylinux_2_34_aarch64.whl (29.5 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

oxenai-0.51.2-cp311-abi3-macosx_11_0_arm64.whl (29.4 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.51.2-cp311-abi3-macosx_10_13_x86_64.whl (31.9 MB view details)

Uploaded CPython 3.11+macOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: oxenai-0.51.2-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 32.2 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.51.2-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e1598dac1de6fd567dd9dd6ebbeb7223d81b65d9f62c7b737903facabad95a1c
MD5 6df2cabaebcfbf8c5fbc1bf7bcaf99c9
BLAKE2b-256 184908356a30e8193142929d28ca6495e1ff930872032d85fd02d23bd886e911

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.2-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c15214c78024232a95c3c456b0555ed531911fe55f75e05cf66c26812dc4d447
MD5 982a5bca82fa8d5d6ad618e9b42f96f2
BLAKE2b-256 6f43303715ec50f5d40471afbcc3b97cde5b25263eda2c6b3f20fdb3cc224fb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.2-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1c91d4f34ca91587ecd5ebddc7897b284d6579ce3b27189b4d2bd99e592cd42c
MD5 0b62c4fed1a64213d4531a69f82f404d
BLAKE2b-256 529a9a99293c8a0b4a08671a83a3c1064e546c6ca60d4a5db35b5a2d4ce13052

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.2-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f197eed28bff7bee4bccc88100c5e81627bd2e04514f4b9fa1e157859f3dd1b4
MD5 d2ccb1d61492a278930bf7921ed1fb27
BLAKE2b-256 2cc3cd100b644560d9245662427d1bee6bf16170a70230a353abd58eda1f640f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.2-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 cb99d69503d7008c1c02d4042c567a715c7ecc2a25835b3303d7d620e26fe390
MD5 ec591782724603af7ba1d027f3a7ced9
BLAKE2b-256 674320aa388352b0fb173474f40ab612dd2b94cdb39222e9889d88d1d87edd72

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