Skip to content

devboard ¤

Devboard package.

A development dashboard for your projects.

Modules:

  • app

    The Textual application.

  • board

    The Textual application.

  • cli

    Module that contains the command line application.

  • datatable

    Data tables with selectable rows.

  • debug

    Debugging utilities.

  • default_board

    User configuration of columns.

  • modal

    Modal screen.

  • notifications

    Notifications.

  • projects

    Git utilities.

Classes:

  • Column

    A Devboard column.

  • Project

    A class representing development projects.

  • Row

    A Devboard row.

Column ¤

Bases: Container, ModalMixin, NotifyMixin

A Devboard column.

Methods:

Attributes:

DEFAULT_CLASSES class-attribute instance-attribute ¤

DEFAULT_CLASSES = 'box'

Textual CSS classes.

HEADERS class-attribute instance-attribute ¤

HEADERS: tuple[str, ...] = ()

The data table headers.

THREADED class-attribute instance-attribute ¤

THREADED: bool = True

Whether actions of this column should run in the background.

TITLE class-attribute instance-attribute ¤

TITLE: str = ''

The title of the column.

table property ¤

table: DataTable

Data table.

action_apply ¤

action_apply(action: str = 'default') -> None

Apply an action to selected rows.

apply ¤

apply(action: str, row: Row) -> None

Apply action on given row.

compose ¤

compose() -> ComposeResult

Compose column widgets.

list_projects ¤

list_projects() -> Iterable[Project]

List projects for this column.

modal ¤

modal(text: str) -> None

Push a modal.

notify_error ¤

notify_error(message: str, timeout: float = 3.0) -> None

Notify error.

notify_info ¤

notify_info(message: str, timeout: float = 3.0) -> None

Notify information.

notify_success ¤

notify_success(message: str, timeout: float = 3.0) -> None

Notify success.

notify_warning ¤

notify_warning(message: str, timeout: float = 3.0) -> None

Notify warning.

on_mount ¤

on_mount() -> None

Fill data table.

populate_rows staticmethod ¤

populate_rows(project: Project) -> list[tuple[Any, ...]]

Populate rows for this column.

update ¤

update() -> None

Update the column (recompute data).

Project dataclass ¤

Project(
    LOCKS: dict[Project, Lock] = defaultdict(Lock),
    DEFAULT_BRANCHES: tuple[str, ...] = ("main", "master"),
    path: Path,
)

A class representing development projects.

It is instantiated with a path, and then provides many utility properties and methods.

Methods:

  • checkout

    Checkout branch, restore previous one when exiting.

  • delete

    Delete branch.

  • fetch

    Fetch.

  • lock

    Lock project.

  • pull

    Pull branch.

  • push

    Push branch.

  • unlock

    Unlock project.

  • unpulled

    Number of unpulled commits, per branch.

  • unpushed

    Number of unpushed commits, per branch.

  • unreleased

    List unreleased commits.

Attributes:

  • DEFAULT_BRANCHES (tuple[str, ...]) –

    Name of common default branches. Mainly useful to compute unreleased commits.

  • branch (Head) –

    Currently checked out branch.

  • default_branch (str) –

    Default branch (or main branch), as checked out when cloning.

  • is_dirty (bool) –

    Whether the project is in a "dirty" state (uncommitted modifications).

  • latest_tag (TagReference) –

    Latest tag.

  • name (str) –

    Name of the project.

  • path (Path) –

    Path of the project on the file-system.

  • repo (Repo) –

    GitPython's Repo object.

  • status (Status) –

    Status of the project.

  • status_line (str) –

    Status of the project, as a string.

DEFAULT_BRANCHES class-attribute ¤

DEFAULT_BRANCHES: tuple[str, ...] = ('main', 'master')

Name of common default branches. Mainly useful to compute unreleased commits.

branch property ¤

branch: Head

Currently checked out branch.

default_branch property ¤

default_branch: str

Default branch (or main branch), as checked out when cloning.

is_dirty property ¤

is_dirty: bool

Whether the project is in a "dirty" state (uncommitted modifications).

latest_tag property ¤

latest_tag: TagReference

Latest tag.

name property ¤

name: str

Name of the project.

path instance-attribute ¤

path: Path

Path of the project on the file-system.

repo property ¤

repo: Repo

GitPython's Repo object.

status property ¤

status: Status

Status of the project.

status_line property ¤

status_line: str

Status of the project, as a string.

checkout ¤

checkout(branch: str | None) -> Iterator[None]

Checkout branch, restore previous one when exiting.

delete ¤

delete(branch: str) -> None

Delete branch.

fetch ¤

fetch() -> None

Fetch.

lock ¤

lock() -> bool

Lock project.

pull ¤

pull(branch: str | None = None) -> None

Pull branch.

push ¤

push(branch: str | None = None) -> None

Push branch.

unlock ¤

unlock() -> None

Unlock project.

unpulled ¤

unpulled(remote: str = 'origin') -> dict[str, int]

Number of unpulled commits, per branch.

unpushed ¤

unpushed(remote: str = 'origin') -> dict[str, int]

Number of unpushed commits, per branch.

unreleased ¤

unreleased(branch: str | None = None) -> list[Commit]

List unreleased commits.

Row dataclass ¤

Row(table: SelectableRowsDataTable, key: RowKey)

Bases: SelectableRow

A Devboard row.

Methods:

Attributes:

app property ¤

app: App

Textual application.

checkbox property ¤

checkbox: Checkbox

Row checkbox.

data property ¤

data: list

Row data (without checkbox).

index property ¤

index: int

Row index.

next property ¤

Next row (down).

previous property ¤

previous: SelectableRow

Previous row (up).

project property ¤

project: Project

Devboard project.

selected property ¤

selected: bool

Whether this row is selected.

remove ¤

remove() -> None

Remove row from the table.

select ¤

select() -> None

Select this row.

toggle_select ¤

toggle_select() -> bool

Toggle-select this row.

unselect ¤

unselect() -> None

Unselect this row.