Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.oxen.ai/llms.txt

Use this file to discover all available pages before exploring further.

oxen.workspace

Workspace Objects

class Workspace()
The Workspace class allows you to interact with an Oxen workspace without downloading the data locally. Workspaces can be created off a branch and is tied to the commit id of the branch at the time of creation. You can commit a Workspace back to the same branch if the branch has not advanced, otherwise you will have to commit to a new branch and merge.

Examples

Adding Files to a Workspace

Create a workspace from a branch.
from oxen import RemoteRepo
from oxen import Workspace

# Connect to the remote repo
repo = RemoteRepo("ox/CatDogBBox")

# Create the workspace
workspace = Workspace(repo, "my-branch")

# Add a file to the workspace
workspace.add("my-image.png")

# Print the status of the workspace
status = workspace.status()
print(status.added_files())

# Commit the workspace
workspace.commit("Adding my image to the workspace.")

__init__

def __init__(repo: "RemoteRepo",
             branch: str,
             workspace_id: Optional[str] = None,
             workspace_name: Optional[str] = None,
             path: Optional[str] = None)
Create a new Workspace. Arguments:
  • repo - PyRemoteRepo The remote repo to create the workspace from.
  • branch - str The branch name to create the workspace from. The workspace will be tied to the commit id of the branch at the time of creation.
  • workspace_id - Optional[str] The workspace id to create the workspace from. If left empty, will create a unique workspace id.
  • workspace_name - Optional[str] The name of the workspace. If left empty, the workspace will have no name.
  • path - Optional[str] The path to the workspace. If left empty, the workspace will be created in the root of the remote repo.

id

@property
def id()
Get the id of the workspace.

name

@property
def name()
Get the name of the workspace.

branch

@property
def branch()
Get the branch that the workspace is tied to.

commit_id

@property
def commit_id()
Get the commit id of the workspace.

repo

@property
def repo() -> "RemoteRepo"
Get the remote repo that the workspace is tied to.

status

def status(path: str = "")
Get the status of the workspace. Arguments:
  • path - str The path to check the status of.

add

def add(src: str, dst: str = "")
Add a file to the workspace Arguments:
  • src - str The path to the local file to be staged
  • dst - str The path in the remote repo where the file will be added

rm

def rm(path: str)
Remove a file from the workspace Arguments:
  • path - str The path to the file on workspace to be removed

commit

def commit(message: str, branch_name: Optional[str] = None) -> PyCommit
Commit the workspace to a branch Arguments:
  • message - str The message to commit with
  • branch_name - Optional[str] The name of the branch to commit to. If left empty, will commit to the branch the workspace was created from.

delete

def delete()
Delete the workspace