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

Uploaded CPython 3.11+Windows x86-64

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

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

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

File metadata

  • Download URL: oxenai-0.52.1-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.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c553993bca9a48599b35d47aa7f2f95d582534476ecf506105b4dc73e764892f
MD5 20c287801f582db14b706c4333819fdc
BLAKE2b-256 ddb9967fe6a7123c57b1427bf57b250df836482e8967d59ac970524874a94b7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.1-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 70bc9347947270e20e0ba1a2d9a71fa621f31c8582d562f910ba23a108bbec4e
MD5 3f796fe65fcc91098f0e0677462fbced
BLAKE2b-256 91164a485de7eee6a7bab93ff33697c66b7c0e1c06a6f9cfeb12fc1af8606c41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.1-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d78e430454571519cb031e09fa31e5e3bacba4e0761a40bea77b80c31f893501
MD5 ca730e7e1de1d717aa67c52a9ddae88a
BLAKE2b-256 4dc1e505ed9a03332957e72dd476bb1da104ef1db9021641c4c9ca6a1637b581

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c1c616992f327154d40870d05bf5ee27e67738acfdccfa5991c8ebc57e1643c
MD5 0c7e10c640a79965402851c2123bad70
BLAKE2b-256 c78dad3c2ea0c78d678dfe1c63841ae9a432c91ff75a21e06b689f00b3e5e20b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.52.1-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 5a3679c5b1bbc07c3c1a658ba937d9c7adb5b269ba9e53791929d994348d23fd
MD5 eeb57fa887a698dda89664be9a726e96
BLAKE2b-256 14e85aa21e0c5b17feec1127de8453e98e7cb0369137810604ad243b6c10ee6f

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