{ "info": { "author": "Andrey Kislyuk", "author_email": "kislyuk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "tweak: Application configuration engine\n=======================================\nTweak is a Python helper class to ingest and serialize app-specific configuration.\n\nTweak provides a self-contained (no dependencies outside the standard library), Python 2 and 3 compatible configuration\nmanager. It automatically saves and restores your application's configuration in your user home directory. It uses JSON or\n(optionally) YAML for serialization. It supports dict-like methods and access semantics, hierarchical configuration sources,\nand array merge operators for layering configuration options (see below).\n\nInstallation\n------------\nIf your package does not permit dependency management, you can copy the ``Config`` class directly into your\napplication from https://github.com/kislyuk/tweak/blob/master/tweak/__init__.py. Otherwise:\n\n::\n\n pip install tweak\n\nSynopsis\n--------\n\n.. code-block:: python\n\n from tweak import Config\n\n config = Config()\n config.host, config.port = \"example.com\", 9000\n config.nested_config = {}\n config.nested_config.foo = True\n\nAfter restarting your application::\n\n config = Config()\n print(config)\n >>> {'host': 'example.com', 'port': 9000, 'nested_config': {'foo': True}}\n\nUsing an ``argparse.Namespace`` object returned by ``argparse.parse_args()``::\n\n parser = argparse.ArgumentParser()\n ...\n args = parser.parse_args()\n if args.foo is not None:\n config.foo = args.foo\n elif \"foo\" not in config:\n raise Exception(\"foo unconfigured\")\n\n config.update(vars(args))\n\nUsing YAML::\n\n config = Config(use_yaml=True)\n ...\n\nPass ``Config(save_on_exit=False)`` to disable automatic configuration saving on Python shutdown (this is useful if you\nonly want to read the config, never write it, or if you want to call ``config.save()`` manually). Pass\n``Config(autosave=True)`` to make ``save()`` run any time an assignment happens to a config object.\n\nConfiguration ingestion order\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nTweak supports ingesting configuration from a configurable array of sources. Each source is a JSON or YAML file.\nConfiguration sources that follow the first source update the configuration using recursive dictionary merging. Sources are\nenumerated in the following order:\n\n- Site-wide configuration source, ``/etc/NAME/config.(yml|json)``\n- User configuration source, ``~/.config/NAME/config.(yml|json)``\n- Any sources listed in the colon-delimited variable ``NAME_CONFIG_FILE``\n\nArray merge operators\n~~~~~~~~~~~~~~~~~~~~~\n\nWhen loading a chain of configuration sources, Tweak uses recursive dictionary merging to combine the\nsources. Additionally, when the original config value is a list, Tweak supports array manipulation operators::\n\n In [1]: from tweak import Config\n\n In [2]: c = Config()\n\n In [3]: c.update(x=[1, 2, 3])\n\n In [4]: c\n Out[4]: {'x': [1, 2, 3]}\n\n In [5]: c.update(x={\"$append\": 4})\n\n In [6]: c\n Out[6]: {'x': [1, 2, 3, 4]}\n\n In [7]: c.update(x={\"$extend\": [5, 6]})\n\n In [8]: c\n Out[8]: {'x': [1, 2, 3, 4, 5, 6]}\n\n In [9]: c.update(x={\"$insert\": {0: 0}})\n\n In [10]: c\n Out[10]: {'x': [0, 1, 2, 3, 4, 5, 6]}\n\n In [11]: c.update(x={\"$extendleft\": [-2, -1]})\n\n In [12]: c\n Out[12]: {'x': [-2, -1, 0, 1, 2, 3, 4, 5, 6]}\n\n In [13]: c.update(x={\"$remove\": 0})\n\n In [14]: c\n Out[14]: {'x': [-2, -1, 1, 2, 3, 4, 5, 6]}\n\nEach operator (``$append``, ``$extend``, ``$insert``, ``$extendleft``, ``$remove``) must be the only key in the\ndictionary representing the update, and the value being updated must be a list. For example, in the following set of two\nYAML files, the second file extends the list in the first file.\n\n``/etc/NAME/config.yml``::\n\n x:\n - y\n - z\n\n``~/.config/NAME/config.yml``::\n\n x:\n $extend:\n - a\n - b\n\nInclude directives\n~~~~~~~~~~~~~~~~~~\n\nThe optional ``Config(allow_includes=True)`` keyword argument can be used to trigger processing of include directives in\nconfig files. For each config source file ingested, a top level ``include`` key can contain a string or array of\nstrings. Each of these strings will be globbed and ingested before the file contianing the directive (e.g. ``{\"include\":\n\"config.d/*\"}`` to ingest a directory of config files).\n\nAuthors\n-------\n* Andrey Kislyuk\n\nLinks\n-----\n* `Project home page (GitHub) `_\n* `Documentation (Read the Docs) `_\n* `Package distribution (PyPI) `_\n\nBugs\n~~~~\nPlease report bugs, issues, feature requests, etc. on `GitHub `_.\n\nLicense\n-------\nLicensed under the terms of the `Apache License, Version 2.0 `_.\n\n.. image:: https://travis-ci.org/kislyuk/tweak.png\n :target: https://travis-ci.org/kislyuk/tweak\n.. image:: https://img.shields.io/coveralls/kislyuk/tweak.svg\n :target: https://coveralls.io/r/kislyuk/tweak?branch=master\n.. image:: https://img.shields.io/pypi/v/tweak.svg\n :target: https://pypi.python.org/pypi/tweak\n.. image:: https://img.shields.io/pypi/l/tweak.svg\n :target: https://pypi.python.org/pypi/tweak\n.. image:: https://readthedocs.org/projects/tweak/badge/?version=latest\n :target: https://tweak.readthedocs.io/\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/kislyuk/tweak", "keywords": "", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "tweak", "package_url": "https://pypi.org/project/tweak/", "platform": "MacOS X", "project_url": "https://pypi.org/project/tweak/", "project_urls": { "Homepage": "https://github.com/kislyuk/tweak" }, "release_url": "https://pypi.org/project/tweak/1.0.3/", "requires_dist": null, "requires_python": "", "summary": "Application configuration engine", "version": "1.0.3" }, "last_serial": 5526005, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "28e0ecc4c7c61e180a54c0711b2347d6", "sha256": "8b29ef7db3cc37ef09260c57b9bfe8ce1206712d7aed4101b08e414faa15f24c" }, "downloads": -1, "filename": "tweak-0.0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "28e0ecc4c7c61e180a54c0711b2347d6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4540, "upload_time": "2015-11-17T03:55:58", "url": "https://files.pythonhosted.org/packages/4c/58/ec1a76b61d4b6acabbb3880fd85842b166f97e7bc5ecb3d8bb55c75eb061/tweak-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f90169934c8fb50973f5713282bbe44", "sha256": "a1554fe07f08fb4f263128925812544abc5e21d516c57109c35c150d4f88b870" }, "downloads": -1, "filename": "tweak-0.0.1.tar.gz", "has_sig": true, "md5_digest": "9f90169934c8fb50973f5713282bbe44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3480, "upload_time": "2015-11-17T03:55:48", "url": "https://files.pythonhosted.org/packages/88/71/ab1190fee11a1130dbfb37521858fab00fec5cd59b11a7463bb0fe9948e0/tweak-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "bcf665ac807704e12bfdfafb4ea0d7a5", "sha256": "7593403ae323490eea77c25f40e25a8e42c505591454ec08d34dda871190baa6" }, "downloads": -1, "filename": "tweak-0.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "bcf665ac807704e12bfdfafb4ea0d7a5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5615, "upload_time": "2016-03-04T17:08:16", "url": "https://files.pythonhosted.org/packages/89/0d/65cdbf08276166c66a55c3a5c68796a81bd724cc3bded188030fecbb452a/tweak-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a158a2364610c23ef20715121055b7b9", "sha256": "7187c0ed4185166386aa51e2a19746d7263e12506cae52def9df294f34904850" }, "downloads": -1, "filename": "tweak-0.0.2.tar.gz", "has_sig": true, "md5_digest": "a158a2364610c23ef20715121055b7b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3658, "upload_time": "2016-03-04T17:06:51", "url": "https://files.pythonhosted.org/packages/d6/26/2065e7d6b67102f459852c5b893baa3f165678c16f5005dfe4944bc510e5/tweak-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "f7dea91f420d150120065299922c9beb", "sha256": "2ace99bc2b90db73a3ad216446b76c896a5f83dc5d8061efac045d160c5527e8" }, "downloads": -1, "filename": "tweak-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f7dea91f420d150120065299922c9beb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5940, "upload_time": "2016-03-12T00:57:13", "url": "https://files.pythonhosted.org/packages/a8/ea/1fe92cc534a3e15759a224389e63b635c32fd5fcc245b0b412e619820018/tweak-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1b91fa8aefcfb56e4f76b5a9949a180", "sha256": "c981bdbbdfd78f8bfeb21f842a8c314b14de966767c275d62f534664d1c9cd32" }, "downloads": -1, "filename": "tweak-0.1.0.tar.gz", "has_sig": true, "md5_digest": "e1b91fa8aefcfb56e4f76b5a9949a180", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4227, "upload_time": "2016-03-12T00:57:03", "url": "https://files.pythonhosted.org/packages/13/b2/059d8a0b9ab2ac33b8478301aafca661e5a3551c5de5724f12fbc22f0dc7/tweak-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b7dc6ef3081601de8bd68f8c0cd2abaf", "sha256": "5566e0c4b1a364528773377b94cfbde4a633d615251bcfe9b2f049f6a280205c" }, "downloads": -1, "filename": "tweak-0.1.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b7dc6ef3081601de8bd68f8c0cd2abaf", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5953, "upload_time": "2016-03-12T01:27:04", "url": "https://files.pythonhosted.org/packages/07/43/5b87da522236147e723999802a4fcc50543ab4de648c8ddac5274892a706/tweak-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbb4618357f42a16a8a6d51c1f5a3e41", "sha256": "4e892c9ecae1cbade56ff2d88813d8a4252261850d41ddfc6ba5bdebaa918207" }, "downloads": -1, "filename": "tweak-0.1.1.tar.gz", "has_sig": true, "md5_digest": "dbb4618357f42a16a8a6d51c1f5a3e41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4239, "upload_time": "2016-03-12T01:26:54", "url": "https://files.pythonhosted.org/packages/4a/a4/acb964c6813602cdba937e98c62a1216db8bddf4ef6018e8d6099f9d4088/tweak-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "10c3b44c2c552ed61ffcf288213d72f6", "sha256": "3207620885912ef56048e7c2960601c08ed1a9b0d941f39339c883ef5ee383ef" }, "downloads": -1, "filename": "tweak-0.1.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "10c3b44c2c552ed61ffcf288213d72f6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6330, "upload_time": "2016-03-20T21:12:58", "url": "https://files.pythonhosted.org/packages/a2/2f/a15e5553b21bb5a1c65969ee907e966de142c382dd93eb9690745a79c3ec/tweak-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe29e33ce9b9ca78b24b01e70a389ec0", "sha256": "db38747296707b291ad3c3088dc72147e6a860655a721602acf0d7498c1ed491" }, "downloads": -1, "filename": "tweak-0.1.2.tar.gz", "has_sig": true, "md5_digest": "fe29e33ce9b9ca78b24b01e70a389ec0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4531, "upload_time": "2016-03-20T21:12:50", "url": "https://files.pythonhosted.org/packages/21/4b/8e3e3aa6877862bbe941328659f113c6b340a93377e9ca4ee94cce5db695/tweak-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a462a48333e12e92ab9ab20174b0a4e0", "sha256": "438e20956463069523784a168056a1d979903ccc4a331ef832b50229329a496b" }, "downloads": -1, "filename": "tweak-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a462a48333e12e92ab9ab20174b0a4e0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6443, "upload_time": "2016-04-12T17:11:51", "url": "https://files.pythonhosted.org/packages/01/ba/85960107c801f7c7b999828aaa4fd0136cc7f3298606f333451b2668f22e/tweak-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae73a708ad276487dbbb5f4ccf9391a9", "sha256": "2dba0fa5361d51f1780f3b6b6bb867474921babdbd59c244cc8e0349f5ba5143" }, "downloads": -1, "filename": "tweak-0.2.0.tar.gz", "has_sig": true, "md5_digest": "ae73a708ad276487dbbb5f4ccf9391a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4644, "upload_time": "2016-04-12T17:11:39", "url": "https://files.pythonhosted.org/packages/0d/c8/e8f30c5bb0d2f93b7d58337750f1cd0628e4abcf29a43818a106632ee108/tweak-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b4a00ffa76cf936a6eee3196bfdb563e", "sha256": "80a07ab46bbb3b342cc263ae85c7aee851c417a779d879480a5bb8b441c93a2b" }, "downloads": -1, "filename": "tweak-0.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b4a00ffa76cf936a6eee3196bfdb563e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6704, "upload_time": "2016-04-12T20:24:13", "url": "https://files.pythonhosted.org/packages/8b/c1/715a3ae9ffd6e23be3de173fb7a755d6e1bb463886faeae9e3ec7467a584/tweak-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c364fb2df4d6d3071c1d361b4f237aab", "sha256": "1ca234969ae95ea35512969e09ff322d71782c989eacce36873d51323cf71c9b" }, "downloads": -1, "filename": "tweak-0.3.0.tar.gz", "has_sig": true, "md5_digest": "c364fb2df4d6d3071c1d361b4f237aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5033, "upload_time": "2016-04-12T20:23:33", "url": "https://files.pythonhosted.org/packages/e7/60/f4234e39a00f6230f1798d442476064fc9b39fe77d16eca7f41c8f4a567e/tweak-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "7c097ae352a981061c41c573344b3fcb", "sha256": "e738b574b7bb2949cd552f379d38a57d18f603522003e78e47597b67beca28b3" }, "downloads": -1, "filename": "tweak-0.3.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7c097ae352a981061c41c573344b3fcb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6718, "upload_time": "2016-04-12T20:29:00", "url": "https://files.pythonhosted.org/packages/ec/a4/f57d875b6ef306b019c0cfa86cb0967db10a74ba5cadf0ce0418865a7506/tweak-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82f7983a606cc4232ad587a9ffd715db", "sha256": "d0821cd2403388c6db7a794dc20419f9af4abef9aa5b1f23069e6b4c0103eea7" }, "downloads": -1, "filename": "tweak-0.3.1.tar.gz", "has_sig": true, "md5_digest": "82f7983a606cc4232ad587a9ffd715db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5046, "upload_time": "2016-04-12T20:28:43", "url": "https://files.pythonhosted.org/packages/de/5c/4575b39d70f7da8693d57f2a17b94a1be41db8455aa32f795771b36c51d9/tweak-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "df9c22e69252ed0284005bc4de686a4b", "sha256": "c3d065d101f67bf9aee4fc23ff2fb9654862204ef4e27beea4493d343b6f66e2" }, "downloads": -1, "filename": "tweak-0.3.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "df9c22e69252ed0284005bc4de686a4b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6728, "upload_time": "2016-04-12T23:58:09", "url": "https://files.pythonhosted.org/packages/cc/66/57db52bf92baaf1262a521fb7e85fb5f96a98c389f39cc3fe9e91ee1eae6/tweak-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ebc4883d1c5df6b42b000ba099c1cf7", "sha256": "603caace5cde37b974aad51f99f33fa39b0b796d3bfe099b7342a37b2b2f924b" }, "downloads": -1, "filename": "tweak-0.3.2.tar.gz", "has_sig": true, "md5_digest": "3ebc4883d1c5df6b42b000ba099c1cf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5057, "upload_time": "2016-04-12T23:57:35", "url": "https://files.pythonhosted.org/packages/19/da/288ebb5d6b87e1a29c5a32e3abf4893e3677075df94061c1b685de6cd1d3/tweak-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "cad4719976b36bff565c8f5e9c24f708", "sha256": "74d4ef509e67a88ccb50aacc8b3850363dbffe2a74e8893049e2d6ab790e57f0" }, "downloads": -1, "filename": "tweak-0.3.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "cad4719976b36bff565c8f5e9c24f708", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8141, "upload_time": "2016-06-14T22:00:21", "url": "https://files.pythonhosted.org/packages/f9/9a/91b157a20f86292ea5329a0513597b7024338996da854c9bbf2a4e2fadc1/tweak-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1443f8579619e85a2a11a2b258d8ac1", "sha256": "80707540ce24375c2e3182e0ebdb36d6b84057c34e750700babb7890dc9104eb" }, "downloads": -1, "filename": "tweak-0.3.3.tar.gz", "has_sig": true, "md5_digest": "b1443f8579619e85a2a11a2b258d8ac1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6206, "upload_time": "2016-06-14T22:00:00", "url": "https://files.pythonhosted.org/packages/b7/ff/3e062f20b16830d58211cd72cb838f36a49658594da0a9c9a4f0bb6a5bcb/tweak-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d493d998438ba2919b73debf9f19dcb4", "sha256": "79b5c77a8c9e19bf50e8a24d340655f8a0b01a94d3eb49370e0980bedaa13cdc" }, "downloads": -1, "filename": "tweak-0.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d493d998438ba2919b73debf9f19dcb4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8690, "upload_time": "2016-11-15T17:12:57", "url": "https://files.pythonhosted.org/packages/33/fb/b2aea702f4090fcf36a5fea4bcf189ba92984ad8e6fc550bf530eb8e4432/tweak-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85bce5479dec5be151e8523464bf52b3", "sha256": "a1e9cea56139ca904ff1804a3b4500548fd22d9f83c1829a1e65ed99d3f4e347" }, "downloads": -1, "filename": "tweak-0.4.0.tar.gz", "has_sig": true, "md5_digest": "85bce5479dec5be151e8523464bf52b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7265, "upload_time": "2016-11-15T17:12:51", "url": "https://files.pythonhosted.org/packages/54/bf/312d7bed8b37e113f01701ff7e0a23dfc0bc5bcfa32e6b006ab4aeb66657/tweak-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "23a983fb9605e41408367fd1fe1d0994", "sha256": "99b99dfda807203104232424949e206e2d12d18dc77253c10e2115e3bd0fd4f8" }, "downloads": -1, "filename": "tweak-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "23a983fb9605e41408367fd1fe1d0994", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8770, "upload_time": "2017-01-31T02:16:38", "url": "https://files.pythonhosted.org/packages/f6/97/10f51818d78911ad231e09a432763ee5505fb5b8ec0b34d4868f8768a31d/tweak-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79c1afb192fd208faa42d2e69739bbaa", "sha256": "845a87f8be4fa89ec17e611dfc1b6fb82f996b305e5bb86bb5e2329887b88f61" }, "downloads": -1, "filename": "tweak-0.5.0.tar.gz", "has_sig": true, "md5_digest": "79c1afb192fd208faa42d2e69739bbaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7352, "upload_time": "2017-01-31T02:16:35", "url": "https://files.pythonhosted.org/packages/92/44/cb007f45e21f2101219efd6af18164f5a3c1a7c6ad7e880c285afea82ebe/tweak-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "333dbbc574e45a87a337e58e6431b48c", "sha256": "c52efd8c6c0ab5a957cf369556143f521556130e5a1235a7be12e6c8b5d0ffc9" }, "downloads": -1, "filename": "tweak-0.5.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "333dbbc574e45a87a337e58e6431b48c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8792, "upload_time": "2017-01-31T02:44:07", "url": "https://files.pythonhosted.org/packages/cd/6e/1b8c63ee7bdd73d9b803dda16c8c850acf3cf38f0e6bf6ca09cccab998d0/tweak-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36fd34101f758770d223c47b15e940a1", "sha256": "a8aaa8abd0d941bc1c4e1b82f821a8ae759539ce586d0f9ad1f9d8356ba99761" }, "downloads": -1, "filename": "tweak-0.5.1.tar.gz", "has_sig": true, "md5_digest": "36fd34101f758770d223c47b15e940a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7415, "upload_time": "2017-01-31T02:44:03", "url": "https://files.pythonhosted.org/packages/95/91/e5f5644b652071c762ecc0faa9637c705e1c5a891fed3d63b3148f0c3f4a/tweak-0.5.1.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "af1c2f6f6928b6bac7e1a571a830e1d8", "sha256": "66dc14db8a4fc092fbf7d70049d24f412b14b5e037eca7a198ef8f09f8eaaec0" }, "downloads": -1, "filename": "tweak-0.6.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "af1c2f6f6928b6bac7e1a571a830e1d8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8873, "upload_time": "2017-11-17T05:11:39", "url": "https://files.pythonhosted.org/packages/b0/3a/b0a6a9615de03f3d82da31b22179e519f3a8e7803497f130a449ea7eb554/tweak-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f802647f7c6ae56bf1a514d115b4c916", "sha256": "a3ab11d2864f1d11730a7350dde69d2a0012349f7fcc4b63ed85bf4124def1eb" }, "downloads": -1, "filename": "tweak-0.6.3.tar.gz", "has_sig": true, "md5_digest": "f802647f7c6ae56bf1a514d115b4c916", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7525, "upload_time": "2017-11-17T05:11:37", "url": "https://files.pythonhosted.org/packages/11/c4/e88c13e61228c412469d0e346b04bdc803fa07a7df01f1bca49abee36d92/tweak-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "8217f08ee80b2a830e88c3bfce9bc50c", "sha256": "ad9666e80e90645b92104d753fb2f102d2fad3566b02af55a4d47aa2200e5025" }, "downloads": -1, "filename": "tweak-0.6.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8217f08ee80b2a830e88c3bfce9bc50c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8876, "upload_time": "2017-11-19T17:33:08", "url": "https://files.pythonhosted.org/packages/83/86/c40a684d2b5c727aad76ed312ce3008eca46c94ac69e7a13270f735c4a8b/tweak-0.6.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb3b08092005a4d60724ae5eba5d1fe2", "sha256": "3e4ffecaf42ebe463b9c0635cbe6be4a5ba7171ca730ec935a0043a34751c4fc" }, "downloads": -1, "filename": "tweak-0.6.4.tar.gz", "has_sig": true, "md5_digest": "eb3b08092005a4d60724ae5eba5d1fe2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7547, "upload_time": "2017-11-19T17:33:07", "url": "https://files.pythonhosted.org/packages/3a/15/33eefa119738ae3f8613da46852fff38a3569d28dd806d51121353927529/tweak-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "608d7b188cca2c8994a5aad81517adfd", "sha256": "5c347d4b9c7ab49cc38a5f8b0bc6c8c8f611d8d0012a5a0e19dfedff97acf35c" }, "downloads": -1, "filename": "tweak-0.6.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "608d7b188cca2c8994a5aad81517adfd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8870, "upload_time": "2018-01-22T03:37:07", "url": "https://files.pythonhosted.org/packages/91/68/7be056a1b21dc1feb81a0792a6d5f0d9a880773f28d5565a07666010a542/tweak-0.6.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9b35f820f0ca014a10ec338cd808a90", "sha256": "cf491502a1d7a7ce7bc7d6286ab81cedaaf6e38dfa2b0727beb617a87103f5c8" }, "downloads": -1, "filename": "tweak-0.6.5.tar.gz", "has_sig": true, "md5_digest": "a9b35f820f0ca014a10ec338cd808a90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7545, "upload_time": "2018-01-22T03:37:04", "url": "https://files.pythonhosted.org/packages/9b/55/cd9d184a129de8b00c546b41c59011cf440ab06e5fd3d8034ee28cf3d375/tweak-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "75beaa1d296316a49403a99ce0c52246", "sha256": "50d998210c2bf24fd4e922e034680cf2bb7769ab014441bb57e04edba99e7881" }, "downloads": -1, "filename": "tweak-0.6.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "75beaa1d296316a49403a99ce0c52246", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8870, "upload_time": "2018-01-22T03:40:03", "url": "https://files.pythonhosted.org/packages/d8/02/c15fc306e8cae42463219dad3d411faa040851021c10a34f9909628340ff/tweak-0.6.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4269db39006df7bae821ea2b4ee2917", "sha256": "f086ac04224aeffddda4c67ba055b692dcdc54d089f4c52f8602fdb5123e6401" }, "downloads": -1, "filename": "tweak-0.6.6.tar.gz", "has_sig": true, "md5_digest": "a4269db39006df7bae821ea2b4ee2917", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7545, "upload_time": "2018-01-22T03:40:01", "url": "https://files.pythonhosted.org/packages/77/4e/cf0aaebfa602bdbd35763f3a4567b0db3ed62cbb2d03c96a39d94f450c24/tweak-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "748a85bd4e127c5bc1c8a6ba3fe7b025", "sha256": "41ab990669100552117b648f356a395d184e6effc0f81296cc03d30740c67082" }, "downloads": -1, "filename": "tweak-0.6.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "748a85bd4e127c5bc1c8a6ba3fe7b025", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8866, "upload_time": "2018-01-22T04:04:28", "url": "https://files.pythonhosted.org/packages/ed/39/65a3ee8c50896a990a29484e88520391bf72ef42d84025ff69d3f2db9583/tweak-0.6.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a049a666f2cf963aa63142472c32e5e1", "sha256": "2006cd09883d9f8d9fbcf0cb26291c10ffe6e6c882dc931c8ff4a847eff17c4c" }, "downloads": -1, "filename": "tweak-0.6.7.tar.gz", "has_sig": true, "md5_digest": "a049a666f2cf963aa63142472c32e5e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7542, "upload_time": "2018-01-22T04:04:25", "url": "https://files.pythonhosted.org/packages/05/71/014e7fda97b0450dc0f4c397561e8c0137c5d72867537c0f462b510651fc/tweak-0.6.7.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "aa44709d7769382934f1c8d1970a8e77", "sha256": "54ebe73409af96026aed8a8281313407aeaa6e7fb96366812aebb1b692228e50" }, "downloads": -1, "filename": "tweak-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "aa44709d7769382934f1c8d1970a8e77", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 5828, "upload_time": "2018-09-04T18:15:34", "url": "https://files.pythonhosted.org/packages/7a/f5/a95bcfaff4871b5fba7bd4588da42f3dec682fea40dbb6b06c95184607c3/tweak-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3860dedbb496689290284dbf5198c20", "sha256": "da36c59cd92970ccf49b336414ad10eb6b157cdef1b7251d16c17007f426625e" }, "downloads": -1, "filename": "tweak-1.0.0.tar.gz", "has_sig": true, "md5_digest": "e3860dedbb496689290284dbf5198c20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7511, "upload_time": "2018-09-04T18:15:27", "url": "https://files.pythonhosted.org/packages/19/a1/c0eec2faf5e805d0e80d08557fe379fbab67025017267d28d0797a6d324a/tweak-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "49025281e54415e5ed91762bf46fe541", "sha256": "d411346a5dc3323381a597558a83a8a1746cc13b79b73e5dfd06fd3fc010c286" }, "downloads": -1, "filename": "tweak-1.0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "49025281e54415e5ed91762bf46fe541", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9818, "upload_time": "2019-02-11T21:52:11", "url": "https://files.pythonhosted.org/packages/5d/c7/933c01d0f5721015040710768e395b8b6003dda08f3c8653047da613db1b/tweak-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5bf2c09fb7ba37bf3ae1bf6779b669ed", "sha256": "a5ec625ae15b5136f6ef362a4807bd2f563b82a23c243417d8abfead8b08a15f" }, "downloads": -1, "filename": "tweak-1.0.1.tar.gz", "has_sig": true, "md5_digest": "5bf2c09fb7ba37bf3ae1bf6779b669ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6900, "upload_time": "2019-02-11T21:52:09", "url": "https://files.pythonhosted.org/packages/93/4c/db6297dc273e12ffd559a8249889d4500d982ad81a4c1c483381590ea318/tweak-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "8b9bac48a8fc3458a9b578089bcf1e72", "sha256": "2f5ebe0786f5fb365af025c1322b11160ed05ea70924ec8149f9a03bc2814608" }, "downloads": -1, "filename": "tweak-1.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8b9bac48a8fc3458a9b578089bcf1e72", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9842, "upload_time": "2019-02-11T23:31:33", "url": "https://files.pythonhosted.org/packages/99/9f/9d79997e1684442f31b217fed9d746e336e904792d8878f7bb8575c8c226/tweak-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64c53ee8a884a306bd15ae03849c55cf", "sha256": "1636397466a127d054db391bd594efdc10ce7fa5eee8607b89520f8906361f37" }, "downloads": -1, "filename": "tweak-1.0.2.tar.gz", "has_sig": true, "md5_digest": "64c53ee8a884a306bd15ae03849c55cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6930, "upload_time": "2019-02-11T23:31:35", "url": "https://files.pythonhosted.org/packages/b8/f8/63c811ed0cd129f6b357efd4b25b840299a0f0047a9277ed1bb96617bcc0/tweak-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "5df3ca4848755b15b18613e5a592e805", "sha256": "2e1d63ceab0081c3fb9e004c13c28ec30b8cb9d5f00b88944e3ef51fe196915d" }, "downloads": -1, "filename": "tweak-1.0.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5df3ca4848755b15b18613e5a592e805", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9931, "upload_time": "2019-07-13T04:08:37", "url": "https://files.pythonhosted.org/packages/97/61/f4cdd589683d774db99032769e6387747eac32eb0a547e07b855c54fadd6/tweak-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54ba573d1ebafd16e89c0153de804872", "sha256": "c444de0f0e48be80c052dfb5b0be0db70a5cedd6ef65f61a9bdee4b154302848" }, "downloads": -1, "filename": "tweak-1.0.3.tar.gz", "has_sig": true, "md5_digest": "54ba573d1ebafd16e89c0153de804872", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7609, "upload_time": "2019-07-13T04:08:39", "url": "https://files.pythonhosted.org/packages/db/43/3f0a8fc4b5b26bf283e5b790a41e6c5b595c1f780a6839f565af326e624f/tweak-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5df3ca4848755b15b18613e5a592e805", "sha256": "2e1d63ceab0081c3fb9e004c13c28ec30b8cb9d5f00b88944e3ef51fe196915d" }, "downloads": -1, "filename": "tweak-1.0.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5df3ca4848755b15b18613e5a592e805", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9931, "upload_time": "2019-07-13T04:08:37", "url": "https://files.pythonhosted.org/packages/97/61/f4cdd589683d774db99032769e6387747eac32eb0a547e07b855c54fadd6/tweak-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54ba573d1ebafd16e89c0153de804872", "sha256": "c444de0f0e48be80c052dfb5b0be0db70a5cedd6ef65f61a9bdee4b154302848" }, "downloads": -1, "filename": "tweak-1.0.3.tar.gz", "has_sig": true, "md5_digest": "54ba573d1ebafd16e89c0153de804872", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7609, "upload_time": "2019-07-13T04:08:39", "url": "https://files.pythonhosted.org/packages/db/43/3f0a8fc4b5b26bf283e5b790a41e6c5b595c1f780a6839f565af326e624f/tweak-1.0.3.tar.gz" } ] }