-
Notifications
You must be signed in to change notification settings - Fork 114
PDDB Path Conventions
Sean Cross edited this page Jun 29, 2022
·
11 revisions
A PDDB Path may be a dict, a dict + a key, a basis + dict, or a basis + dict + key. In the following examples, the given Basis, Dict, and Key are as follows:
- Basis:
.System - Dict:
wlan.networks - Key:
Home Wifi
A canonical path looks like:
[:BASIS:]DICT1:DICT2:DICT3[:KEY]
-
:Home Wifi-- A basis named "Home Wifi" -
:.System:-- A basis named ".System" -
wlan.networks-- A dict named "wlan.networks" in the default basis -
wlan.networks:recent-- A dict named "wlan.networks:recent", which may be considered a path, in the default basis. This also desecribes a key called "recent" in the dict "wlan.networks", depending on whether -
:.System:wlan.networks-- A dict named "wlan.networks" in the basis ".System" -
:.System:wlan.networks:recent-- a fully-qualified path, describing a key "recent" in the dict "wlan.networks" in the basis ".System". Also describes a dict "wlan.networks:recent" in the basis ".System" when -
:-- The root, which lists every basis. Files cannot be created here. "Directories" can be created and destroyed, which corresponds to creating and destroying bases. -
::-- An empty basis is a synonym for all bases, so this corresponds to listing all dicts in the root of the default basis. - -- An empty string corresponds to listing all dicts in root the union basis.
-
: :-- A basis named " ". Legal, but questionable -
-- A dict named " " in the default basis. Legal, but questionable. -
:-- Also a dict named " " in the default basis. -
:-- A key named " " in a dict called " ". Legal. -
baz:-- A dict named "baz" in the default basis with an extra ":" following. Legal. -
baz:foo:-- Currently illegal, but may become equal tobaz:fooin the future. -
:::-- An key named ":" in an empty dict in the default basis. Illegal. -
::::-- An key named "::" in an empty dict in the default basis. Illegal. -
::foo-- A key "foo" in the default basis. -
:lorem.ipsum:foo:baz-- A key called "foo:baz" in the basis "lorem.ipsum". May also describe a dict "foo:baz" in the basis "lorem.ipsum" if treated as a directory. -
:bar:lorem.ipsum:foo:baz-- A key called "baz" in the dict "lorem.ipsum:foo" in the basis "bar", or a dict called "lorem.ipsum:foo:baz". Legal.
Any reference to "default basis" depends on whether the operation is a "read" or a "write":
- "Read" operations come from a union, with the most-recently-added basis taking precedence
- "Write" operations go to the most-recently-added basis that contains the key. If the key does not exist and "Create" was specified, then the file is created in the most-recently-added basis.