Remote repo
oxen.remote_repo
get_repo
def get_repo(name: str, host: str = "hub.oxen.ai")
Get a RemoteRepo object for the specified name. For example ‘ox/CatDogBBox’.
Arguments:
name
-str
Name of the repository in the format ‘namespace/repo_name’.host
-str
The host to connect to. Defaults to ‘hub.oxen.ai’
Returns:
create_repo
def create_repo(name: str,
description="",
is_public: bool = True,
host: str = "hub.oxen.ai",
scheme: str = "https",
files: List[Tuple[str, str]] = [])
Create a new repository on the remote server.
Arguments:
name
-str
Name of the repository in the format ‘namespace/repo_name’.description
-str
Description of the repository. Only applicable to OxenHub.is_public
-bool
Whether the repository is public or private. Only applicable to OxenHub.host
-str
The host to connect to. Defaults to ‘hub.oxen.ai’scheme
-str
The scheme to use for the remote url. Default: ‘https’files
-List[Tuple[str, str]]
A list of tuples containing the path to the file and the contents of the file that you would like to seed the repository with.
Returns:
RemoteRepo Objects
class RemoteRepo()
The RemoteRepo class allows you to interact with an Oxen repository without downloading the data locally.
Examples
Add & Commit Files
Adding and committing a file to a remote workspace.
from oxen import RemoteRepo
repo = RemoteRepo("ox/CatDogBBox")
repo.add("/path/to/image.png")
status = repo.status()
print(status.added_files())
repo.commit("Adding my image to the remote workspace.")
Downloading Specific Files
Grab a specific file revision and load it into pandas.
from oxen import RemoteRepo
import pandas as pd
# Connect to the remote repo
repo = RemoteRepo("ox/CatDogBBox")
# Specify the version of the file you want to download
branch = repo.get_branch("my-pets")
# Download takes a file or directory a commit id
repo.download("annotations", revision=branch.commit_id)
# Once you have the data locally, use whatever library you want to explore the data
df = pd.read_csv("annotations/train.csv")
print(df.head())
__init__
def __init__(path: str,
host: str = "hub.oxen.ai",
revision: str = "main",
scheme: str = "https")
Create a new RemoteRepo object to interact with.
Arguments:
path
-str
Name of the repository in the format ‘namespace/repo_name’. For example ‘ox/chatbot’host
-str
The host to connect to. Defaults to ‘hub.oxen.ai’revision
-str
The branch name or commit id to checkout. Defaults to ‘main’scheme
-str
The scheme to use for the remote url. Default: ‘https’
create
def create(empty: bool = False, is_public: bool = False)
Will create the repo on the remote server.
Arguments:
empty
-bool
Whether to create an empty repo or not. Default: Falseis_public
-bool
Whether the repository is public or private. Default: False
exists
def exists() -> bool
Checks if this remote repo exists on the server.
delete
def delete()
Delete this remote repo from the server.
checkout
def checkout(revision: str, create=False)
Switches the remote repo to the specified revision.
Arguments:
revision
-str
The name of the branch or commit id to checkout.create
-bool
Whether to create a new branch if it doesn’t exist. Default: False
ls
def ls(directory: Optional[str] = None,
page_num: int = 1,
page_size: int = 100)
Lists the contents of a directory in the remote repo.
Arguments:
directory
-str
The directory to list. If None, will list the root directory.page_num
-int
The page number to return. Default: 1page_size
-int
The number of items to return per page. Default: 100
download
def download(src: str,
dst: Optional[str] = None,
revision: Optional[str] = None)
Download a file or directory from the remote repo.
Arguments:
src
-str
The path to the remote filedst
-str | None
The path to the local file. If None, will download to the same path assrc
revision
-str | None
The branch or commit id to download. Defaults toself.revision
log
def log()
Get the commit history for a remote repo
branches
def branches()
List all branches for a remote repo
get_branch
def get_branch(branch: str)
Return a branch by name on this repo, if exists
Arguments:
branch
-str
The name of the branch to return
create_branch
def create_branch(branch: str)
Return a branch by name on this repo, creating it from the currently checked out branch if it doesn’t exist
Arguments:
branch
-str
The name to assign to the created branch
create_checkout_branch
def create_checkout_branch(branch: str)
Create a new branch from the currently checked out branch, and switch to it
Arguments:
branch
-str
The name to assign to the created branch
namespace
@property
def namespace() -> str
The namespace for the repo.
name
@property
def name() -> str
The name of the repo.
identifier
@property
def identifier()
The namespace/name of the repo.
url
@property
def url() -> str
The remote url for the repo.
revision
@property
def revision() -> str
The branch or commit id for the repo