Skip to main content

ExtendParser extend stanrad ConfigParser for some functionality.

Project description

Extend parser is set of ConfigParser extensions. Get and Include extensions are added to one class ExtendParser. For more details see source code, or use help.

copyright:

2018, see AUTHORS for more details

license:

BSD, see LICENSE for more details

Library

ExtendParser

>>> from extendparser import ExtendParser
>>> cp = ExtendParser()

Include

Include class can append content from other configuration files. Let’s have these configuration files:

# test.ini
[main]
string = value
.include numbers.ini
# numbers.ini
integer = 42
.include const.ini
# const.ini
pi = 3.14

Here is the string buffer which ConfiguratinParser will read:

# test.ini
[main]
string = value
# numbers.ini
integer = 42
# const.ini
pi = 3.14

Get

Get class has two smart methods get_option and get_section to get value(s) in any type you want.

>>> from extendparser.get import Get
>>> cp = Get()
>>> print(cp.get_option("test", "number", target=int, fallback=1))
1
>>> print(cp.get_option("test", "list", target=list, fallback=["a"],
...                      delimiter=','))
['a']
>>> cp.add_section("test")
>>> cp.set("test", "tuple", "a:b:c")
>>> print(cp.get_option("test", "tuple", target=tuple, delimiter=':'))
('a', 'b', 'c')
>>> print(cp.get_section("test", (("tuple", tuple, tuple(), ':'),
...                               ("string", str, "value"))))
{'tuple': ('a', 'b', 'c'), 'string': 'value'}

Environment

Environ module has two classes, which extend ConfigParser to read environment variables. There is EnvironFirst class, which read environment variables first, and then use original get method.

>>> from os import environ
>>> from configparser import ConfigParser
>>> from extendparser.environ import EnvironFirst
>>> cp = EnvironFirst()
>>> cp.add_section("test")
>>> cp.getint("test", "number", fallback=1)
1
>>> cp.set("test", "number", "7")
>>> cp.getint("test", "number")
7
>>> environ["TEST_NUMBER"] = "42"
>>> cp.getint("test", "number")
42

Next EnvironLast class use environment variable as fallback for original get method.

>>> from os import environ
>>> from configparser import ConfigParser
>>> from extendparser.environ import EnvironLast
>>> cp = EnvironLast()
>>> cp.add_section("test")
>>> cp.getfloat("test", "float", fallback=1.0)
1.0
>>> environ["TEST_FLOAT"] = "42"
>>> cp.getfloat("test", "float", fallback=1)
42.0
>>> cp.set("test", "float", "3.14")
>>> cp.getfloat("test", "float")
3.14

Installation

~$ pip install extendparser

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

extendparser-0.3.1.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

extendparser-0.3.1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file extendparser-0.3.1.tar.gz.

File metadata

  • Download URL: extendparser-0.3.1.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.1

File hashes

Hashes for extendparser-0.3.1.tar.gz
Algorithm Hash digest
SHA256 91bd3117a48806aead792200aff889ee76b35fe305c3398021b3362ddc0ec2ac
MD5 b2902fc595e7017ff3cc760f48f67626
BLAKE2b-256 2fc44fa9b3d5d7bdee4b8eac324832d783dfdcd813b72bb86a5c8b5e117afd31

See more details on using hashes here.

File details

Details for the file extendparser-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: extendparser-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.1

File hashes

Hashes for extendparser-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f22dd3e19cabf4cb0108ab194d1251498167cd53e369ec6bb7e6311eb3765780
MD5 36d59234390a052fc68f8d88ce58acfd
BLAKE2b-256 c616070ec7b689e84b2c6d224733d207eef8e434340b2a9a82c8244ef93516cd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page