cape.dkit.writedb: Write DataKit processed data to file¶
This module provides a function to write processed data for a given DataKit. It works within the context of a “DataKit collection” (i.e. a repo containing one or more DataKit packages) and is knowledgeable about the dependencies between DataKits within the collection.
- cape.dkit.writedb.genr8_modsequence(modnames: list, **kw)¶
Create a sequence of modules that satisfy all requirements
- Call:
>>> dbnames, modnames = genr8_modsequence(modnames, **kw)
- Inputs:
- Outputs:
- Versions:
2021-07-17
@ddalle: v1.02021-08-20
@ddalle: v1.1; prefix option
- cape.dkit.writedb.get_assistant(mod) DataKitAssistant¶
Get DataKitAssistant from a datakit module
- Call:
>>> ast = get_assistant(mod)
- Inputs:
- mod:
module DataKit module
- mod:
- Outputs:
- ast:
DataKitAssistant DataKit assistant from mod
- ast:
- Versions:
2025-06-13
@ddalle: v1.0
- cape.dkit.writedb.get_dbname(mod) str¶
Get database name from a module
- Call:
>>> dbname = get_dbname(mod)
- Inputs:
- mod:
module DataKit module
- mod:
- Outputs:
- dbname:
str Database name, from mod.AST or mod.__name__
- dbname:
- Versions:
2021-08-20
@ddalle: v1.0
- cape.dkit.writedb.get_fullmodname(modname: str, prefix: str | None = None, **kw) str¶
Append prefix to module name if necessary
For example
"v004"might become"sls10afa.v004"- Call:
>>> modname = get_fullmodname(modname, prefix=None)
- Inputs:
- Outputs:
- modname:
str Full module name for import, possibly prepended
- modname:
- Versions:
2021-08-20
@ddalle: v1.02021-09-15
@ddalle: v1.1; better prefix check
- cape.dkit.writedb.get_prefix(prefix: str | None = None, **kw) str¶
Determine module name prefix based on current folder
- cape.dkit.writedb.import_dbname(mod, dbname: str, **kw)¶
Import a module by DB_NAME instead of module spec
- Call:
>>> mod2 = import_dbname(mod, dbname)
- Inputs:
- Outputs:
- mod2:
module Second module, having DB name matching dbname
- mod2:
- Versions:
2021-07-16
@ddalle: v1.02021-08-20
@ddalle: v1.1; prefix option2025-06-13
@ddalle: v1.2; upgrade for DataKitAssistant
- cape.dkit.writedb.import_module(modname: str | None = None, prefix: str | None = None, **kw)¶
Import module from (possibly abbrev.) name
- Call:
>>> mod = import_module(modname=None)
- Inputs:
- Outputs:
- mod:
module Module with (possibly prefixed) name rev
- mod:
- Versions:
2021-07-16
@ddalle: v1.0 (ATT-VM-CLVTOPS-003)- 2021-08-20
@ddalle: v1.1 automated default PREFIX
support empty modname
- 2021-08-20
- cape.dkit.writedb.main()¶
Main command-line interface function
- Call:
>>> main()
- Versions:
2021-07-15
@ddalle: v1.0- 2021-07-17
@ddalle: v2.0 Move to
write_dbs()Add dependency tracking
Add
-Foption
- 2021-07-17
- 2021-08-20
@ddalle: v3.0 Generalize for
capeAdd write_func option
- 2021-08-20
- cape.dkit.writedb.write_db(modname: str, **kw)¶
Convert source data to formatted datakit files
- Call:
>>> write_db(modname, **kw)
- Inputs:
- Versions:
2017-07-13
@ddalle: v1.02018-12-27
@ddalle: v2.0; usingimportlib2021-07-15
@ddalle: v2.1; Generalize for TNA/S-53- 2021-08-20
@ddalle: v3.0 move to
capefromATT-VM-CLVTOPS-003generalize prefix using
setuptools.find_packages()add prefix, write_func kwargs
- 2021-08-20
- cape.dkit.writedb.write_dbs(*a, **kw)¶
Write one or more datakit modules, with dependencies
- Call:
>>> write_dbs(*modnames, **kw)
- Inputs:
- modnames:
tuple[str] Names of modules to write, like
"db0001"- prefix: {
None} |str Optional user-specified prefix
- f, force:
True| {False} Overwrite any modules in a
- F, force_all, force-all:
True| {False} Overwrite all modules, including dependencies
- reqs, dependencies: {
True} |False Also process any modules listed in REQUIREMENTS in each modul in a
- write: {
True} |False Flag to write databases (otherwise just print dependencies)
- write_func, func: {
"write_db"} |str Name of function to use to write formatted files
- modnames:
- Versions:
2021-07-17
@ddalle: v1.02021-07-19
@ddalle: v1.1; add write option2021-08-20
@ddalle: v1.2; generalize prefix