Source code for svgen.config
"""
A module implementing package configuration data interfaces.
"""
# built-in
import argparse
# third-party
from vcorelib.dict import GenericStrDict
from vcorelib.dict.config import Config
# internal
from svgen.color.theme.manager import DEFAULT_THEME
DEFAULT_HEIGHT = 100
DEFAULT_WIDTH = DEFAULT_HEIGHT
[docs]
def initialize_config(
config: Config | GenericStrDict,
default_height: int = DEFAULT_HEIGHT,
default_width: int = DEFAULT_WIDTH,
default_theme: str = DEFAULT_THEME,
) -> None:
"""Set initial values for SVG document configurations."""
settings = {
"height": default_height,
"width": default_width,
"scripts": [],
"grid": {},
"background": {},
"theme": default_theme,
}
if isinstance(config, Config):
for key, val in settings.items():
config.set_if_not(key, val)
else:
for key, val in settings.items():
config.setdefault(key, val)
[docs]
def add_dimension_args(parser: argparse.ArgumentParser) -> None:
"""Add dimension-related arguments to the command-line parser."""
parser.add_argument(
"--height",
type=int,
default=DEFAULT_HEIGHT,
help=(
"height of the document, if not specified by "
"configuration (default: %(default)s)"
),
)
parser.add_argument(
"--width",
type=int,
default=DEFAULT_WIDTH,
help=(
"width of the document, if not specified by "
"configuration (default: %(default)s)"
),
)