Projects — Registry & Backup

The projects package manages multi-project discovery, registration, and backup.

ProjectRegistry

class jot.projects.registry.ProjectRegistry(registry_file='~/.jot-projects.json')[source]

Bases: object

Manages project name → directory path mappings with usage tracking

register_project(name, path)[source]

Register a project

Parameters:
  • name – Project name (validated for safety)

  • path – Project directory path

Raises:

ValueError – If name contains dangerous characters

unregister_project(name)[source]

Unregister a project

get_project_path(name)[source]

Get path for a project name

list_projects()[source]

Return {name: path} dict (backward compatible)

list_projects_by_usage()[source]

Return [(name, path, usage_count)] sorted by usage desc, then name asc

record_usage(name)[source]

Increment usage count for a project

is_path_registered(path)[source]

Check if a directory path is already registered

refresh()[source]

Re-run auto-discovery

ProjectBackup

class jot.projects.backup.ProjectBackup(project_dir=None)[source]

Bases: object

Manages project backup and restoration

__init__(project_dir=None)[source]

Initialize backup manager

get_backup_files()[source]

Get list of all jot files to backup

create_backup(output_file=None)[source]

Create a backup tarball of all jot files

restore_backup(backup_file, force=False)[source]

Restore from a backup tarball

list_backup_contents(backup_file)[source]

List contents of a backup file