Skip to main content

Documentation

https://configdict.readthedocs.io

Installation

$ pip install configdict

CheckedDict

A dictionary based on a default prototype. A CheckedDict can only define key:value pairs which are already present in the default. It is possible to define a docstring for each key and different restrictions for the values regarding possible values, ranges and type. A CheckedDict is useful for configuration settings.

ConfigDict

Based on CheckedDict, a ConfigDict is a persistent, unique dictionary. It is saved under the config folder determined by the OS and it is updated with each modification. It is useful for implementing configuration of a module / library / app, where there is a default/initial state and the user needs to be able to configure global settings which must be persisted between sessions (similar to the settings in an application)

Example

config = ConfigDict("myproj.subproj")
config.addKey("keyA", 10, doc="documentaion of keyA")
config.addKey("keyB", 0.5, range=(0, 1))
config.addKey("keyC", "blue", choices=("blue", "red"),
              doc="documentation of keyC")
config.load()

Alternatively, a ConfigDict can be created all at once:

config = ConfigDict("myapp",
    default = {
        'font-size': 10.0,
        'font-family': "Monospace",
        'port' : 9100,
    },
    validator = {
        'font-size::range' : (8, 24),
        'port::range' : (9000, 65000),
        'font-family::choices' : {'Roboto', 'Monospace'},
    },
    docs = {
        'port': 'The port number to listen to',
        'font-size': 'The size of the font, in pixels'
    }
)

This will create the dictionary and load any persisted version. Any saved modifications will override the default values. Whenever the user changes any value (via config[key] = newvalue) the dictionary will be saved.

In all other respects a ConfigDict behaves like a normal dictionary.

Metadata

Release files for configdict 2.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for configdict 2.10.0
File Interpreter ABI Platform
configdict-2.10.0-py3-none-any.whl Python 3 none any Details

Release files / configdict-2.10.0-py3-none-any.whl

Download URL configdict-2.10.0-py3-none-any.whl
Size 33.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4570d1032cd223876e6422b82120a4d6b405b26779609112861cb86edbff18b6
BLAKE2b-256 checksum
How to use checksums
9ddf6890c3d8effaaa87bf72800169128177aaef479510a4d9f802642a88acfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.4

Release history Release notifications | RSS feed

3.0.0

1 release file

2.14.2

2 release files

2.13.4

2 release files

2.13.3

2 release files

2.13.2

1 release file

2.13.1

2 release files

2.13.0

2 release files

2.12.0

2 release files

2.10.2

1 release file

This release

2.10.0 This release

1 release file

2.9.1

1 release file

2.9.0

1 release file

2.8.4

1 release file

2.8.3

1 release file

2.8.2

1 release file

2.8.1

1 release file

2.8.0

1 release file

2.7.0

1 release file

2.6.2

1 release file

2.6.1

1 release file

2.6.0

2 release files

2.5.2

1 release file

2.5.1

1 release file

2.5.0

1 release file

2.4.2

1 release file

2.4.1

1 release file

2.4.0

1 release file

2.3.2

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.2.0

1 release file

2.1.0

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.1.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.11.0

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page