Skip to main content

A common configuration-storage class with a .diag() method

Project description

A common configuration-storage class with a .diag() method

Description

This module provides four classes that may be used as base classes for storing program runtime configuration with a verbose boolean field. The classes provide a .diag(msg) method that decides whether to output the provided message based on the value of the object's verbose field.

The ConfigDiagUnfrozen and ConfigDiagUnfrozenStdOut classes are normal dataclasses, while the ConfigDiag and ConfigDiagStdOut ones are frozen.

The ConfigDiag and ConfigDiagUnfrozen classes will output any diagnostic messages to the standard error stream, while the ConfigDiagStdOut and ConfigDiagUnfrozenStdOut ones will output the diagnostic messages to the standard output stream.

Example

Subclass the frozen ConfigDiag class, add a program-specific field:

@dataclasses.dataclass(frozen=True)
class Config(cfg_diag.ConfigDiag):
    """Runtime configuration for the fribble program."""
    path: pathlib.Path

Initialize this class from an argument parser object:

return Config(path=args.path, verbose=args.verbose)

Output a diagnostic message if requested:

cfg.diag("This will either appear or it will not")

Contact

This module is developed in a GitHub repository. Contact the StorPool support team for information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cfg_diag-0.2.1.tar.gz (5.4 kB view hashes)

Uploaded source

Built Distribution

cfg_diag-0.2.1-py3-none-any.whl (4.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page