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

Uploaded CPython 3.11+Windows x86-64

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

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.50.6-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.6-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.50.6-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.6-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 41d1ae31e39d9a33d24e217f9d14f9cb1a79737e18c3e6ee4bc76f04bf49974c
MD5 e27f99a9425b7b4becf370e4a52b9000
BLAKE2b-256 93c08639e40216b27fdd8ccb8bf7743f826262b5c691c61d154a97bf44810dd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.6-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9400ca15e87366bdcaef89ee07ad16dd543c05dca42d3a18ef9d4738352d42d6
MD5 ca6fa58dca964f461f4ad17c41fb81c8
BLAKE2b-256 c53aeca90fec0936318260d9fbede9562857eedb2568b84827f82ba4c97cc77d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.6-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 1cc452379511042d8900a479e70c0d1bd9b610a38c90cf4f642da1ce038cf626
MD5 703d4c4a8151abdc73ac6e6cfd587daf
BLAKE2b-256 575475377f381d7c5ac7abe4e0f76059c36e520a80dbc898394098333a2f4501

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.6-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b43b87c2f9896585fab03e752f938ebca2ded4df259762971288970e26d117c
MD5 b896aff80a2cf8d8884a863b140e0cec
BLAKE2b-256 f0e2aef1f3f1e0cf770a1c6cbd49adfcd457cc0508a91dc8b06af9d3a46671be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.6-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 84777b8096fce0434155c3941ce35751dd536bde09530b084e5e6658736d1065
MD5 5d8a2238eee615754da1581395f52672
BLAKE2b-256 7b8d6c4206c5b78de0962060d73217969bae97b7f78458d199ae179725020424

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