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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.51.1-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.1-cp311-abi3-manylinux_2_34_aarch64.whl (29.5 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.51.1-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.1-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.51.1-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.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 27db10d9bd8094f607769a5953811b008600ced12a2987bd379e1ea4e290ac3d
MD5 c2197ab7be174d098d064f77c4bb5fea
BLAKE2b-256 b87b4a74239c6f4e744e189ffc854947e508c4a3eb2a554e047042b2d8dc28af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.1-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fde71345e95da882a5416a7740460af51142d7505cc5c5a4db701295f5d82809
MD5 90f43824022b1915d068b4a9dcc95298
BLAKE2b-256 a240095b5e0b73aeb17e067c26ca0ae4a59e1ed7c2941305bdb84548a0b74073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.1-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 85a3fb0e5e3124c60f5d642dfe53e9231b4a64edb2961f7b53e1b53a1819e0aa
MD5 529c7a7f9c4d923150f93895e47efbe1
BLAKE2b-256 3ce16e5feb7508255533b111d212a5c6defb9bfe496267bd71f50fa295b97f2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13c1ccb211145e9c4df26d62afab44aa631503c3ff917a7bca1e12724041a9b5
MD5 c4576c2381baebee2ae9d59d57ecebbc
BLAKE2b-256 9233af147e501386d82b56260c113d28ee37daade884d92fb6e2fdd101d7c2cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.1-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d30b839e896afd4c0ad5d95573e5f7e4cd64bb21d8a811865b4e2743fef56495
MD5 c2368b147ec5668339433e59c9d0a8ff
BLAKE2b-256 b4f1c2e3c9c8a629386c3d806c592be7deeaad4c49dd1fa4fed87023532e597d

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