v0.6.0
create writes a plan. Nested directory overrides merge. exists_opt(None) is None.
-
Write
relative_to,create,root,format,parse,put
Creating with schemasrelative_tofills paths.createwrites that plan and does not check the tree.
quickstartcreateon a bound schema raisesTypeError:use root().dir.create()makes that directory and required child directories. No files, no optional directories, no collection members.Noneleaves an optional child absent. An unknown alias raisesKeyError.- A collection takes a filename-to-body map, or a list of
(captures, payload)pairs. Keys that are capture names are rejected.
delivery - A file collection whose captures were set by
formattakes the body alone. A directory collection does not.
one member - A missing capture raises
TypeErrorand names it. Two values for one capture raiseValueError. putreplaces the path in one step. No body writes an empty file. Body: bytes, text, a file to copy,save, or a dataclass as JSON.
Reading and writing
-
Declare
Schema,File,Dir
Inheritance and replacement- A nested directory override merges children with the base. A file override replaces that file.
- On the class, a file or a collection exposes
alias,fmt,match,min,max.Coincident.parts.match. - An exact directory with a schema class is that class.
Parent.child.file.match. - A directory collection exposes
fmtandmatchon the collection, not the child schema's fields.
-
Bind
Schema.bind,exists_opt,MismatchErr
Applying schemasbindtakes a string, aPath, or any__fspath__value, including a schema node. A planned root binds itself.exists_opt(None)returnsNone.
Fixed directories and files- A wrong collection count names dangling symlinks that matched:
(dangling: gone.png). - Read follows a live symlink.
putreplaces a symlink at that path and does not write through it.
-
Read
Integrationsglomis no longer installed with the package. Navigation examples are in the docs.