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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.52.3-cp311-abi3-manylinux_2_34_x86_64.whl (30.8 MB view details)

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

oxenai-0.52.3-cp311-abi3-manylinux_2_34_aarch64.whl (29.3 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

oxenai-0.52.3-cp311-abi3-macosx_11_0_arm64.whl (29.2 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.52.3-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.52.3-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.52.3-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.52.3-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4cf4ea5c36269876f1982961d551c66e9481f704c170c9cca5d4e83ae6c81bcd
MD5 bbf9500f3a8083edddd8c2950e37f124
BLAKE2b-256 1f1b75a5599d5a6e7681579a9739927928ae99d1b85136b0dd5dd3ceafa74d87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.3-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5462fccf060d87bf952f37cef868e31aa0322d798463e4dd3c2302fed135f8fd
MD5 21b41b9be3afc5f05f4475a7c1066054
BLAKE2b-256 560e5f10cfa2a2cb8cbe90ed395483598533e58f2afbfb608937512e51dc3e4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.3-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1db332c13c4415f9628a0fb37e981f4ce8be6d73d2154ce0053c70a9e741a4fb
MD5 460896146925f3ce1457483e6ad9a7ab
BLAKE2b-256 f0c41f2bf0d699ffc2784310082eceb599df33b84f5bbb55d7eaeea7035363a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.3-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ccda16bc48df45b132d66f545e5fe263e963afadbbfcfea51924e9e7db6e65d7
MD5 6ee5d6f99494e63c4aed0621fadff7de
BLAKE2b-256 4629fd58414621726bf25126564cf9921014b5291726d86c20243292d22d53aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.3-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e37af4b5bb1dd47c236815b7773d2b69ae74e501a2b804d3d1814570b187e1e5
MD5 97deca59fd01a61f8fa73da250fa43d1
BLAKE2b-256 afefedaba9cbcf85de6ce318f0d1f5e3d4e18950cfdbfc48b277fd34f9ee5027

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