Python API
Workspace
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,
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.
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 stageddst
-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,
should_delete: bool = False)
Commit the workspace to a branch
Arguments:
message
-str
The message to commit withbranch_name
-Optional[str]
The name of the branch to commit to. If left empty, will commit to the branch the workspace was created from.should_delete
-bool
Whether to delete the workspace after the commit.