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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.50.0-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.50.0-cp311-abi3-manylinux_2_34_aarch64.whl (29.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

oxenai-0.50.0-cp311-abi3-macosx_11_0_arm64.whl (29.1 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.50.0-cp311-abi3-macosx_10_13_x86_64.whl (31.6 MB view details)

Uploaded CPython 3.11+macOS 10.13+ x86-64

File details

Details for the file oxenai-0.50.0-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.50.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 31.4 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.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fb48720efe359683c319d131fbe2adc97b03479ed2856204c5e63862ef4f5e9a
MD5 d56dd7a655c3fd6e973f8b451bceb42d
BLAKE2b-256 7cce1baedbdd4a657af8ceac09198a72cdbfea688081e2cc260c79c075dd9816

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c2a1210061927a6fb01966b1d4622794fe0a348025ae406661c3f3a6fcc73280
MD5 35bfca30fbed04f88f157ac73fe7e11a
BLAKE2b-256 0b4dc55e413f5b0b5f73cc3dfeb47a63b320feb42a1b8a1461a5332318d25540

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.0-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9d70e1a0dea6abf4df1b5107cd82026e51ca8d820517ede62ddcfb87c96bd129
MD5 6c3dceef730687a0ee1988308362f28d
BLAKE2b-256 bc39a2fe58d08f8d50028282a5c4a65d41474cbb9085817dbcd219df84503018

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d3fae43209d54f6cc3a9d6ecc6b1d18833c7cedee5fa2eb7733c4f98a4ac9f4
MD5 318271779f26c48328fa3a876eff942a
BLAKE2b-256 6f79c51a0348c9f7a8f22b224dbb647833243cb7a60855d6aac2826abee15b24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.0-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 433a55e05a54628daa7c427b740339779ca42d852d08ae5089190c1727d3fac2
MD5 fa1ffc751decbe7ef339fc35d8710ace
BLAKE2b-256 1e6e575d850d7b1e7c47cc1456ba5b088b26e1b9788d27b0ba88eedc04f506df

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