134 lines
36 KiB
YAML
134 lines
36 KiB
YAML
|
|
---
|
||
|
|
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
|