Skip to main content

🐂 🐍 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.

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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.53.4-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.53.4-cp311-abi3-manylinux_2_34_aarch64.whl (29.4 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

oxenai-0.53.4-cp311-abi3-macosx_11_0_arm64.whl (29.3 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.53.4-cp311-abi3-macosx_10_13_x86_64.whl (31.8 MB view details)

Uploaded CPython 3.11+macOS 10.13+ x86-64

File details

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

File metadata

  • Download URL: oxenai-0.53.4-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 30.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.53.4-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2d32622f20668486f709e02e5e26017f7c02d22fb8b7869ef10be38edd5544db
MD5 8d25d206b6d217bfd793fd651f4ce4d0
BLAKE2b-256 3fa47b7d4621c52ce3bef21ea655c3c72003b160671fc8c06893327c7d4d7625

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.4-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 06fbd6614d06a4944a01d4c1d5c6f8d638b11b0df9298ceef3d461717c7b7d54
MD5 008585e0bbe4c44b819addf5a0ee875c
BLAKE2b-256 17bf172da78783e016a2bba75fddaf546dd59020fd29105c686f9bc8e4a79fab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.4-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e8101cfa704fc418e85ff6296755d2e7c5e2f206079eb8041af6322f3638cc02
MD5 e3ac917a192bf830bc3d9c9d149b033b
BLAKE2b-256 298e5a5beeb8c6ec35cd80d58214b903309f9060f98d9b93168cdfff4edf18a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.4-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87b9c0bc87ce0b8095dae53f3721069894cb6e87817d1aea8bc1c4e6d78aa895
MD5 9a9872198d8a9ada5bfe95ac1c78daff
BLAKE2b-256 bfcc1f5be554e29743424bc6ab1b7c5de813b426056b0c328e83fa51b94330b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.4-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 09e8996c4862d0e666130a03765c4740b6b9a303277d99e86742e6029dbfaa04
MD5 95fe79ecb0ce23665f69bcff1ae66e9c
BLAKE2b-256 6553822a8367ed0c04e083061a6118798ef6d4d5582c5a933fb65955e93da8d3

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 Sentry Error logging StatusPage Status page