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

Uploaded CPython 3.11+Windows x86-64

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

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

oxenai-0.53.0-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.0-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: oxenai-0.53.0-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.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c95d718725b4ac5121e81302795e7f48db529be97766eee0a7a1a9249d1142f5
MD5 b7db637a7ddfc320b7195a48725cd1ae
BLAKE2b-256 25389b5263b01d1c336ff5fa8465f103abe324185594068306d238636357e51f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 33a28a0e274134542b6a0b02d2f6162410b509cf0497bf5a481aca38dde92e60
MD5 e2d9ee0b468b1dd19eaee1bcfb8c91d4
BLAKE2b-256 0836b47c5ccddf74e7588356ab0bccbf23b481127dd1fcb00830acd285261002

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.0-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 7b6f258ce9e0d25b20537c9fa26ec8baacea0770fe0266096d011bf992f28b9d
MD5 67feca74ef85296acf290114acb0c085
BLAKE2b-256 59a510228553727bd42f60eba89f27d8481456ed2529210ad9ae3ddd51045732

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0cc420d45e4c5395e2dab9289165c2dec1a657e7a35280adff1dedc9a9a1025c
MD5 0297f7af6b1e3b9b88cb5004f04ff67e
BLAKE2b-256 c8ea0da70c6d6aadbd33fee788dbf008fbe1d5bf92b600f2fced80ef930dc390

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.53.0-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 73fc33bc9e8da420a39efb81106b231a9f7ddf923f6f5c7fa39a7afcc8881584
MD5 924b9e5697699036fe85bc23774512e8
BLAKE2b-256 d176af61114ab812882471928657d75ea788f42f4918649c2c63cb27f0bfa2ab

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