Typings - vcspull.types

Typings for vcspull.

Configuration Object Graph

The user-facing .vcspull.yaml maps workspace roots (parent directories) to named repositories. For example:

~/study/c:
  cpython:
    repo: git+https://github.com/python/cpython.git
  tmux:
    repo: git+https://github.com/tmux/tmux.git

~/work/js:
  react:
    repo: https://github.com/facebook/react.git
  vite:
    repo: https://github.com/vitejs/vite.git

In Python we model this as:

WorkspaceRoot - Mapping of repository name to its configuration WorkspaceRoots - Mapping of workspace root path to WorkspaceRoot

When the configuration is parsed we preserve the original key string, but WorkspaceRoot terminology is used consistently across the codebase.

class vcspull.types.RawConfigDict[source]

Bases: TypedDict

Configuration dictionary without any type marshalling or variable resolution.

vcs: VCSLiteral
name: str
path: StrPath
url: str
remotes: GitSyncRemoteDict
class vcspull.types.ConfigDict[source]

Bases: TypedDict

Configuration map for vcspull after shorthands and variables resolved.

vcs: VCSLiteral | None
name: str
path: pathlib.Path
url: str
workspace_root: str
remotes: NotRequired[GitSyncRemoteDict | None]
shell_command_after: NotRequired[list[str] | None]