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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.50.5-cp311-abi3-manylinux_2_34_x86_64.whl (30.9 MB view details)

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

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

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.50.5-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.50.5-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.50.5-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 31.7 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.50.5-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 82fc8965881a48e8e78599b4f3caecec543e8b3cee84cd24b3d389f51c9b5cb5
MD5 c81ef329482220cbf426e4174f9b3328
BLAKE2b-256 93dacdeefe13974cd21fbec0d422cc3d25997ba3e3c500377684432024cbc64c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.5-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e5bf0807d78ce347da733230877bd6b1ed224a26c9305d0851e5e84778c80c07
MD5 d596160d81396a44451cd4c4040a4800
BLAKE2b-256 f6182c5673c749fc8b5755d7e671d481d944f8d8cc4ea837c0f2222cd77c7a2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.5-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 429ccb71240aba7c30f4d9850cba3be9ba24e9ede9ede43182ee66bd78e990e5
MD5 9c7c5c3625b6ec743b6e36570b7b2d6d
BLAKE2b-256 e2a12fdaddbfd0ef88066b91663fa5c3fbaaa088a3cab6422f0e17dcd4af9b46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.5-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1f8159a722e21fb1181b3e0796b436ae76245ddf059aee74da49edc6265da9b
MD5 ebdd4a80baf4f8ef67aa5a0a60ce994c
BLAKE2b-256 1ed3cc4f4f60f1a9b1a5bff1e340c9e0f5cb01768185f5b39a918580579d4d84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.5-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 67fd2cf4dd02a5b20800592facfd5526b42991d4d290c77538bd7d5e68e089fc
MD5 40abcad551c75f62660b10e7487bc887
BLAKE2b-256 8daa18d9457f35f0a2c41ed91bce8dcf54e281afdfea144cba7f9e685af7e303

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