|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Public Member Functions | |
| None | __init__ (self, str app, Path|str|None default_root=None) |
| str | current_user (self, Request request) |
| Path | user_dir (self, str user, str|None app=None, *, bool create=True) |
| Path | site_dir (self, *, bool create=False) |
| list[str] | all_users (self, str|None app=None) |
| list[dict] | list_configs (self, str user) |
| dict|None | read_config (self, str user, str slug) |
| dict | write_config (self, str user, str name, dict config) |
| bool | delete_config (self, str user, str slug) |
Public Attributes | |
| app = app | |
Static Public Attributes | |
| slugify = staticmethod(slugify) | |
| slug_user = staticmethod(slug_user) | |
Protected Member Functions | |
| Path | _root (self) |
| Path | _configs_dir (self, str user) |
Protected Attributes | |
| _default_root = Path(default_root) if default_root else None | |
The on-disk layout for one app. ``default_root`` is where dev data lands when ``USERDATA_DIR`` is unset: a gitignored directory beside the app, so ``./dev.sh`` needs no setup.
Definition at line 68 of file userdata.py.
| None stardesign.userdata.UserData.__init__ | ( | self, | |
| str | app, | ||
| Path | str | None | default_root = None ) |
Definition at line 75 of file userdata.py.
|
protected |
Definition at line 150 of file userdata.py.
References user_dir().
Referenced by delete_config(), list_configs(), read_config(), and write_config().
|
protected |
Definition at line 81 of file userdata.py.
References _default_root.
Referenced by all_users(), site_dir(), and user_dir().
| list[str] stardesign.userdata.UserData.all_users | ( | self, | |
| str | None | app = None ) |
Every user slug that has data for ``app``, sorted. Never creates anything. All the design tools mount one shared volume, so the root holds the whole team; requiring a ``<user>/<app>`` subdirectory narrows it to people who have actually used *this* app.
Definition at line 120 of file userdata.py.
References _root(), stardesign.userdata._sanitize(), and app.
| str stardesign.userdata.UserData.current_user | ( | self, | |
| Request | request ) |
Whose data to use: ``X-Auth-Email`` in prod (from Caddy), else ``local``. Never raises and never denies -- a missing header is dev, not a rejection.
Definition at line 89 of file userdata.py.
References stardesign.userdata._sanitize().
| bool stardesign.userdata.UserData.delete_config | ( | self, | |
| str | user, | ||
| str | slug ) |
Remove a saved config. False if it did not exist.
Definition at line 206 of file userdata.py.
References _configs_dir(), and slugify.
| list[dict] stardesign.userdata.UserData.list_configs | ( | self, | |
| str | user ) |
Metadata for each saved config, newest first: ``{slug, name, savedAt}``.
Definition at line 155 of file userdata.py.
References _configs_dir().
| dict | None stardesign.userdata.UserData.read_config | ( | self, | |
| str | user, | ||
| str | slug ) |
The full blob (``{name, savedAt, config}``) for ``slug``, or None.
Definition at line 170 of file userdata.py.
References _configs_dir(), and slugify.
| Path stardesign.userdata.UserData.site_dir | ( | self, | |
| * | , | ||
| bool | create = False ) |
``<root>/.site/<app>``: settings that belong to the app, not a user. Dot-prefixed so :meth:`all_users` -- which skips dot directories -- can never mistake it for a person.
Definition at line 109 of file userdata.py.
References _root(), stardesign.userdata._sanitize(), and app.
| Path stardesign.userdata.UserData.user_dir | ( | self, | |
| str | user, | ||
| str | None | app = None, | ||
| * | , | ||
| bool | create = True ) |
``<root>/<user>/<app>``, created on demand. Root is not assumed to exist. Pass ``create=False`` when merely *inspecting* another user's tree (the cross-user browse walks every sibling folder, and must not conjure an empty directory for each one it looks at).
Definition at line 96 of file userdata.py.
References _root(), stardesign.userdata._sanitize(), and app.
Referenced by _configs_dir().
| dict stardesign.userdata.UserData.write_config | ( | self, | |
| str | user, | ||
| str | name, | ||
| dict | config ) |
Save/overwrite a named config atomically. Returns ``{slug, name, savedAt}``.
Definition at line 183 of file userdata.py.
References _configs_dir(), and slugify.
|
protected |
Definition at line 77 of file userdata.py.
Referenced by _root().
| stardesign.userdata.UserData.app = app |
Definition at line 76 of file userdata.py.
Referenced by backend.routers.layerx.UploadSizeGuard.__call__(), all_users(), site_dir(), and user_dir().
|
static |
Definition at line 142 of file userdata.py.
|
static |
Definition at line 141 of file userdata.py.
Referenced by delete_config(), read_config(), and write_config().