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

Uploaded CPython 3.11+Windows x86-64

oxenai-0.50.7-cp311-abi3-manylinux_2_34_x86_64.whl (31.0 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ x86-64

oxenai-0.50.7-cp311-abi3-manylinux_2_34_aarch64.whl (29.5 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

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

File metadata

  • Download URL: oxenai-0.50.7-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.7-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 41442bf03aebb44e6f9bad9d7ac7ae58ef984b21f6ccdfd5c6b57398580b74d3
MD5 314b78eab3f4655767491e5d6a94ecac
BLAKE2b-256 02bb1d7d776382f7c3be8c4916a817fd43d4d5ee8a1b7cb0fbcdee0065671371

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.7-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 781e30113b17070a1cec1c15475c02d16757bdf4d45540611750b5e6eb887dfd
MD5 e524f4bca24abc1116ca26e6f500f2c9
BLAKE2b-256 1a99783a80c295684bc644c294449ea70057aec1af33b485a65d7280ea340743

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.7-cp311-abi3-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 023720fca732926806b80d043563fa4f0e33858c97a1e74bd4c18635d193df74
MD5 c37ddf17fefcd81bdec2b4e779b9ff52
BLAKE2b-256 d4aad5e6593724aeff93e91487f9cbbf9803af9be56e8d87a416a8f038cd25f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.7-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd777945446d3fa64a0fc048cde40ee8f726aa0a24410a68131f03a975847981
MD5 66b58eb57a5d1623ef9103bb122f06b1
BLAKE2b-256 b7a2baaea212a220a0e322fc9af7c24fa9a2e396389af777bc713bf9753d9b02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxenai-0.50.7-cp311-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 204837094de39d985b233503f7853b835cd70c41f130957ae2f862552338c8ca
MD5 93ea39e84a78aee79e8db7528f202941
BLAKE2b-256 9a1b4fe92d76ea94c977f72ad3a775a85460702260ab4ec0b87242f107f56461

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