python-configparser/python-configparser.yaml

134 lines
36 KiB
YAML
Raw Normal View History

2020-05-09 11:10:05 +08:00
---
version_control: pypi
src_repo: configparser
tag_prefix: "^v"
seperator: "."
last_query:
time_stamp: 2020-04-26 03:10:25.650655390 +00:00
raw_data: '{"info":{"author":"\u0141ukasz Langa","author_email":"lukasz@langa.pl","bugtrack_url":null,"classifiers":["Development
Status :: 5 - Production/Stable","Intended Audience :: Developers","License ::
OSI Approved :: MIT License","Programming Language :: Python :: 3","Programming
Language :: Python :: 3 :: Only"],"description":".. image:: https://img.shields.io/pypi/v/configparser.svg\n :target:
`PyPI link`_\n\n.. image:: https://img.shields.io/pypi/pyversions/configparser.svg\n :target:
`PyPI link`_\n\n.. _PyPI link: https://pypi.org/project/configparser\n\n.. image::
https://dev.azure.com/jaraco/configparser/_apis/build/status/jaraco.configparser?branchName=master\n :target:
https://dev.azure.com/jaraco/configparser/_build/latest?definitionId=1&branchName=master\n\n..
image:: https://img.shields.io/travis/jaraco/configparser/master.svg\n :target:
https://travis-ci.org/jaraco/configparser\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target:
https://github.com/psf/black\n :alt: Code style: Black\n\n.. .. image:: https://img.shields.io/appveyor/ci/jaraco/configparser/master.svg\n.. :target:
https://ci.appveyor.com/project/jaraco/configparser/branch/master\n\n.. image::
https://readthedocs.org/projects/configparser/badge/?version=latest\n :target:
https://configparser.readthedocs.io/en/latest/?badge=latest\n\n.. image:: https://tidelift.com/badges/package/pypi/configparser\n :target:
https://tidelift.com/subscription/pkg/pypi-configparser?utm_source=pypi-configparser&utm_medium=readme\n\n\nThe
ancient ``ConfigParser`` module available in the standard library 2.x has\nseen
a major update in Python 3.2. This is a backport of those changes so that\nthey
can be used directly in Python 2.6 - 3.5.\n\nTo use the ``configparser`` backport
instead of the built-in version on both\nPython 2 and Python 3, simply import
it explicitly as a backport::\n\n from backports import configparser\n\nIf you''d
like to use the backport on Python 2 and the built-in version on\nPython 3, use
that invocation instead::\n\n import configparser\n\nFor detailed documentation
consult the vanilla version at\nhttp://docs.python.org/3/library/configparser.html.\n\nWhy
you''ll love ``configparser``\n--------------------------------\n\nWhereas almost
completely compatible with its older brother, ``configparser``\nsports a bunch
of interesting new features:\n\n* full mapping protocol access (`more info\n <http://docs.python.org/3/library/configparser.html#mapping-protocol-access>`_)::\n\n >>>
parser = ConfigParser()\n >>> parser.read_string(\"\"\"\n [DEFAULT]\n location
= upper left\n visible = yes\n editable = no\n color = blue\n\n [main]\n title
= Main Menu\n color = green\n\n [options]\n title = Options\n \"\"\")\n >>>
parser[''main''][''color'']\n ''green''\n >>> parser[''main''][''editable'']\n ''no''\n >>>
section = parser[''options'']\n >>> section[''title'']\n ''Options''\n >>>
section[''title''] = ''Options (editable: %(editable)s)''\n >>> section[''title'']\n ''Options
(editable: no)''\n\n* there''s now one default ``ConfigParser`` class, which basically
is the old\n ``SafeConfigParser`` with a bunch of tweaks which make it more predictable
for\n users. Don''t need interpolation? Simply use\n ``ConfigParser(interpolation=None)``,
no need to use a distinct\n ``RawConfigParser`` anymore.\n\n* the parser is highly
`customizable upon instantiation\n <http://docs.python.org/3/library/configparser.html#customizing-parser-behaviour>`__\n supporting
things like changing option delimiters, comment characters, the\n name of the
DEFAULT section, the interpolation syntax, etc.\n\n* you can easily create your
own interpolation syntax but there are two powerful\n implementations built-in
(`more info\n <http://docs.python.org/3/library/configparser.html#interpolation-of-values>`__):\n\n *
the classic ``%(string-like)s`` syntax (called ``BasicInterpolation``)\n\n *
a new ``${buildout:like}`` syntax (called ``ExtendedInterpolation``)\n\n* fallback
values may be specified in getters (`more info\n <http://docs.python.org/3/library/configparser.html#fallback-values>`__)::\n\n >>>
config.get(''closet'', ''monster'',\n ... fallback=''No such things
as monsters'')\n ''No such things as monsters''\n\n* ``ConfigParser`` objects
can now read data directly `from strings\n <http://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_string>`__\n and
`from dictionaries\n <http://docs.python.org/3/library/configparser.html#configparser.ConfigParser.read_dict>`__.\n That
means importing configuration from JSON or specifying default values for\n the
whole configuration (multiple sections) is now a single line of code. Same\n goes
for copying data from another ``ConfigParser`` instance, thanks to its\n mapping
protocol support.\n\n* many smaller tweaks, updates and fixes\n\nA few words about
Unicode\n-------------------------\n\n``configparser`` comes from Python 3 and
as such it works well with Unicode.\nThe library is generally cleaned up in terms
of internal data storage and\nreading/writing files. There are a couple of incompatibilities
with the old\n``ConfigParser`` due to that. However, the work required to migrate
is well\nworth it as it shows the issues that would likely come up during migration
of\nyour project to Python 3.\n\nThe design assumes that Unicode strings are used
whenever possible [1]_. That\ngives you the certainty that what''s stored in
a configuration object is text.\nOnce your configuration is read, the rest of
your application doesn''t have to\ndeal with encoding issues. All you have is
text [2]_. The only two phases when\nyou should explicitly state encoding is when
you either read from an external\nsource (e.g. a file) or write back.\n\nVersioning\n----------\n\nThis
project uses `semver <https://semver.org/spec/v2.0.0.html>`_ to\ncommunicate the
impact of various releases while periodically syncing\nwith the upstream implementation
in CPython.\n`The changelog <https://github.com/jaraco/configparser/blob/master/CHANGES.rst>`_\nserves
as a reference indicating which versions incorporate\nwhich upstream functionality.\n\nPrior
to the ``4.0.0`` release, `another scheme\n<https://github.com/jaraco/configparser/blob/3.8.1/README.rst#versioning>`_\nwas
used to associate the CPython and backports releases.\n\nMaintenance\n-----------\n\nThis
backport was originally authored by \u0141ukasz Langa, the current vanilla\n``configparser``
maintainer for CPython and is currently maintained by\nJason R. Coombs:\n\n* `configparser
repository <https://github.com/jaraco/configparser>`_\n\n* `configparser issue
tracker <https://github.com/jaraco/configparser/issues>`_\n\nSecurity Contact\n----------------\n\nTo
report a security vulnerability, please use the\n`Tidelift security contact <https://tidelift.com/security>`_.\nTidelift
will coordinate the fix and disclosure.\n\nConversion Process\n------------------\n\nThis
section is technical and should bother you only if you are wondering how\nthis
backport is produced. If the implementation details of this backport are\nnot
important for you, feel free to ignore the following content.\n\n``configparser``
is converted using `python-future\n<http://python-future.org>`_. The project takes
the following\nbranching approach:\n\n* the ``3.x`` branch holds unchanged files
synchronized from the upstream\n CPython repository. The synchronization is currently
done by manually copying\n the required files and stating from which CPython
changeset they come from.\n\n* the ``master`` branch holds a version of the ``3.x``
code with some tweaks\n that make it independent from libraries and constructions
unavailable on 2.x.\n Code on this branch still *must* work on the corresponding
Python 3.x but\n will also work on Python 2.6 and 2.7 (including PyPy). You
can check this\n running the supplied unit tests with ``tox``.\n\nThe process
works like this:\n\n1. In the ``3.x`` branch, run ``pip-run -- sync-upstream.py``,
which\n downloads the latest stable release of Python and copies the relevant\n files
from there into their new locations here and then commits those\n changes with
a nice reference to the relevant upstream commit hash.\n\n2. I check for new names
in ``__all__`` and update imports in\n ``configparser.py`` accordingly. I run
the tests on Python 3. Commit.\n\n3. I merge the new commit to ``master``. I run
``tox``. Commit.\n\n4. If there are necessary changes, I do them now (on ``master``).
Note that\n the changes should be written in the syntax subset supported by
Python\n 2.6.\n\n5. I run ``tox``. If it works, I update the docs and release
the new version.\n Otherwise, I go back to point 3. I might use ``pasteurize``
to suggest me\n required changes but usually I do them manually to keep resulting
code in\n a nicer form.\n\n\nFootnotes\n---------\n\n.. [1] To somewhat ease
migration, passing bytestrings is still supported but\n they are converted
to Unicode for internal storage anyway. This means\n that for the vast majority
of strings used in configuration files, it\n won''t matter if you pass them
as bytestrings or Unicode. However, if you\n pass a bytestring that cannot
be converted to Unicode using the naive\n ASCII codec, a ``UnicodeDecodeError``
will be raised. This is purposeful\n and helps you manage proper encoding
for all content you store in\n memory, read from various sources and write
back.\n\n.. [2] Life gets much easier when you understand that you basically manage\n **text**
in your application. You don''t care about bytes but about\n letters. In
that regard the concept of content encoding is meaningless.\n The only time
when you deal with raw bytes is when you write the data to\n a file. Then
you have to specify how your text should be encoded. On\n the other end,
to get meaningful text from a file, the application\n reading it has to
know which encoding was used during its creation. But\n once the bytes
are read and properly decoded, all you have is text. This\n is especially
powerful when you start interacting with multiple data\n sources. Even
if each of them uses a different encoding, inside your\n application data
is held in abstract text form. You can program your\n business logic without
worrying about which data came from which source.\n You can freely exchange
the data you store between sources. Only\n reading/writing files requires
encoding your text to bytes.\n\n\n","description_content_type":"","docs_url":null,"download_url":"","downloads":{"last_day":-1,"last_month":-1,"last_week":-1},"home_page":"https://github.com/jaraco/configparser/","keywords":"configparser
ini parsing conf cfg configuration file","license":"","maintainer":"Jason R. Coombs","maintainer_email":"jaraco@jaraco.com","name":"configparser","package_url":"https://pypi.org/project/configparser/","platform":"any","project_url":"https://pypi.org/project/configparser/","project_urls":{"Homepage":"https://github.com/jaraco/configparser/"},"release_url":"https://pypi.org/project/configparser/5.0.0/","requires_dist":["sphinx
; extra == ''docs''","jaraco.packaging (>=3.2) ; extra == ''docs''","rst.linker
(>=1.9) ; extra == ''docs''","pytest (!=3.7.3,>=3.5) ; extra == ''testing''","pytest-checkdocs
(>=1.2.3) ; extra == ''testing''","pytest-flake8 ; extra == ''testing''","pytest-black-multipy
; extra == ''testing''","pytest-cov ; extra == ''testing''"],"requires_python":">=3.6","summary":"Updated
configparser from Python 3.8 for Python 2.6+.","version":"5.0.0","yanked":false},"last_serial":6885867,"releases":{"3.2.0r1":[{"comment_text":"","digests":{"md5":"49ff19dd5511b069285a293dd3907902","sha256":"8d2af400e4c4fbc4b8cb1cfb42c465b1f7470327a72a2a2413b6e50e4332b231"},"downloads":-1,"filename":"configparser-3.2.0r1.tar.gz","has_sig":false,"md5_digest":"49ff19dd5511b069285a293dd3907902","packagetype":"sdist","python_version":"source","requires_python":null,"size":29616,"upload_time":"2011-04-29T16:40:49","upload_time_iso_8601":"2011-04-29T16:40:49.477688Z","url":"https://files.pythonhosted.org/packages/da/d3/2c5b86bae7a9b241307fb21196bbaf011df559ee954a2a09dfaa481de14b/configparser-3.2.0r1.tar.gz","yanked":false}],"3.2.0r2":[{"comment_text":"","digests":{"md5":"ecdc31147658bd9340bcd605c1b7a849","sha256":"fd99dc17193b500b800140c1eb85713e7008243cd6966b7bf52662423a33af34"},"downloads":-1,"filename":"configparser-3.2.0r2.tar.gz","has_sig":false,"md5_digest":"ecdc31147658bd9340bcd605c1b7a849","packagetype":"sdist","python_version":"source","requires_python":null,"size":32082,"upload_time":"2011-05-04T17:36:58","upload_time_iso_8601":"2011-05-04T17:36:58.773023Z","url":"https://files.pythonhosted.org/packages/fa/99/8b0796ab16e92f2a0bb5a7c965c3480637c96ff901af508b490311df8441/configparser-3.2.0r2.tar.gz","yanked":false}],"3.2.0r3":[{"comment_text":"","digests":{"md5":"8500fd87c61ac0de328fc996fce69b96","sha256":"37feec498c770201ac51112b203338c3342721232fced5f6295399e67f535648"},"downloads":-1,"filename":"configparser-3.2.0r3.tar.gz","has_sig":false,"md5_digest":"8500fd87c61ac0de328fc996fce69b96","packagetype":"sdist","python_version":"source","requires_python":null,"size":32281,"upload_time":"2011-05-10T16:28:50","upload_time_iso_8601":"2011-05-10T16:28:50.545804Z","url":"https://files.pythonhosted.org/packages/73/fd/654fc616e2db08e4b411c89ec0392da43ef5ac27bbee9a510d33d789ed2c/configparser-3.2.0r3.tar.gz","yanked":false}],"3.3.0r1":[{"comment_text":"","digests":{"md5":"b6c6a9409be55966a4481f3a729070b3","sha256":"78e08cbd08aa09caa5e404cbe890325d93152d1b3c1250f794ac1d50bec5e9d1"},"downloads":-1,"filename":"configparser-3.3.0r1.tar.gz","has_sig":false,"md5_digest":"b6c6a9409be55966a4481f3a729070b3","packagetype":"sdist","python_version":"source","requires_python":null,"size":32819,"upload_time":"2012-12-31T15:02:50","upload_time_iso_8601":"2012-12-31T15:02:50.437636Z","url":"https://files.pythonhosted.org/packages/da/be/30c9d70656f5bae43af4344c11fe1ef7138a9340adce0a98763bfd60ae52/configparser-3.3.0r1.tar.gz","yanked":false}],"3.3.0r2":[{"comment_text":"","digests":{"md5":"dda0e6a43e9d8767b36d10f1e6770f09","sha256":"6a2318590dfc4013fc5bf53c2bec14a8cb455a232295eb282a13f94786c4b0b2"},"downloads":-1,"filename":"configparser-3.3.0r2.tar.gz","has_sig":false,"md5_digest":"dda0e6a43e9d8767b36d10f1e6770f09","packagetype":"sdist","python_version":"source","requires_python":null,"size":32885,"upload_time":"2013-01-02T00:58:20","upload_time_iso_8601":"2013-01-02T00:58:20.791429Z","url":"https://files.pythonhosted.org/packages/cf/59/d42a1e75fd73800f615ef7f63de2975c92b3f7267036f9f99711704525f3/configparser-3.3.0r2.tar.gz","yanked":false}],"3.5.0":[{"comment_text":"","digests":{"md5":"cfdd915a5b7a6c09917a64a573140538","sha256":"5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a"},"downloads":-1,"filename":"configparser-3.5.0.tar.gz","has_sig":false,"md5_digest":"cfdd915a5b7a6c09917a64a573140538","packagetype":"sdist","python_version":"source","requires_python":null,"size":39573,"upload_time":"2016-05-21T08:15:10","upload_time_iso_8601":"2016-05-21T08:15:10.703200Z","url":"https://files.pythonhosted.org/packages/7c/69/c2ce7e91c89dc073eb1aa74c0621c3eefbffe8216b3f9af9d3885265c01c/configparser-3.5.0.tar.gz","yanked":false}],"3.5.0b1":[{"comment_text":"","digests":{"md5":"d60ca2c714acb4adaf5818c6a1ffd78b","sha256":"a0a2b6f89c167d409dabb52e39206ba77359f92310eed8c4610e3c894937d982"},"downloads":-1,"filename":"configparser-3.5.0b1.tar.gz","has_sig":false,"md5_digest":"d60ca2c714acb4adaf5818c6a1ffd78b","packagetype":"sdist","python_v