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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.51.4-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.51.4-cp311-abi3-manylinux_2_34_aarch64.whl (29.3 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

oxenai-0.51.4-cp311-abi3-macosx_11_0_arm64.whl (28.3 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.51.4-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.51.4-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.51.4-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.51.4-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 51bd6700c6edcff46459e266000144c5d2cf3b5e859ef5760def7f3054fba754
MD5 85dd8f0c192bbd15fc03d5314da5c0ff
BLAKE2b-256 c96c13402bbfd3ecaac4adfa290d620cdd9c894d52ba62ed15b2117bf19248f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.4-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d55ec6f354bbd2dd823111aceb505da7833bb487c67e3ad8dca48195f84f02af
MD5 9a63cbc7af336a5d90ff237ba82e5fe9
BLAKE2b-256 0c034bcf7f100982ff55efa805b7479ec8e03eb95cd72918a329284f5e2a04e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.4-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 b925973d6680d3d8eae12216ad3c5629dd5019a7d568b8c4791e637fc96a16bb
MD5 f1b51eeaa78b3413fb9853ae8d5e5de9
BLAKE2b-256 7f9879cf4132b242dde30c5509653749e54347ae2478c614daa8a058a952c408

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.4-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f2a197dfe4475250a0af4b062b765aa2213da417d502295e74726e6d282f78c
MD5 27eeb31ed8ef6619888b721054443d60
BLAKE2b-256 5affc04f94910447f8333788d0b78da524ee263c78ff85befc3298de6ba17625

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.51.4-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 aa2f903f8c53550025d8c97328252adcc8957dc69a5f767be73536aa818d6b1a
MD5 fd454edbb82335a57ff0f5ea14f36330
BLAKE2b-256 25e3324251b690064844ff6f92fec0d861811a29bc01cdd076a85d3c4ccb27c3

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