{ "info": { "author": "Peyman Mortazavi", "author_email": "pey.mortazavi@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "[![CircleCI](https://circleci.com/gh/infoscout/garlicconfig.svg?style=svg&circle-token=cfc59c65adb4fae414d1665d74d8b520a6326444)](https://circleci.com/gh/infoscout/garlicconfig)\n[![codecov](https://codecov.io/gh/infoscout/garlicconfig/branch/master/graph/badge.svg?token=5uJ3VXkNJl)](https://codecov.io/gh/infoscout/garlicconfig)\n\n# GarlicConfig\n\nGarlicConfig is a framework that makes it easy to deal with configurations in an easy yet flexible way. The core of this package is written in C++ and this Python package wraps the native code to provide an easy access to the configuration and some extra feature on top of it. The native library allows for quick retrieval of the configurations which can be used on any platform, this wrapper, however allows for defining advanced validation and config retrieval logic. For example, you could define your own conventions for getting localized version of configs.\n\nThe whole thing starts by defining the structure of your configs using models.\n\nYou can define models by inheriting from `ConfigModel`:\n\n```python\nfrom garlicconfig import models\n\nclass DatabaseConfig(models.ConfigModel):\n pass\n```\n\nBy adding attributes (or properties), you can define what this model recognizes and what format should each one of these attributes have.\n\nFor properties, you can use `ConfigField`. There are a set of built-in fields:\n\n* StringField\n* IntegerField\n* ArrayField\n* ModelField\n* BooleanField\n\n\nYou can also make your own custom `ConfigModel` and/or `ConfigField`.\n\nfor example:\n\n```python\nfrom garlicconfig import fields\nfrom garlicconfig.exceptions import ValidationError\n\nclass EvenIntegerField(IntegerField):\n\n def validate(self, value):\n if value % 2 != 0:\n raise ValidationError('bad integer')\n\n def to_model_value(self, value):\n return int(value)\n\n def to_garlic_value(self, value):\n return str(value)\n```\n\nThe field class above stores `str` in the python dictionary representation. However, for the materialized config model, `int` is used. It also invalidates unaccepted values by raising `ValidationError`, in this case odd values.\n\nNote that `to_model_value` is responsible for converting a basic type to a more complicated python type, perhaps constructing a Python-defined class.\n\n`to_garlic_value` does the exact opposite, it should convert the value to a basic value. Basic value is defined to be one of the following types:\n\n* **str**\n* **int**\n* **float**\n* **dict**\n* **set** & **list**\n\nThis is primarily used for ease of encoding/decoding. By default, both of these methods return the given `value` without making any changes and I'd recommend not creating very complicated objects since it'll limit the accessibility of them in different platforms should you need to support them.\n\nNext, you can define your own config model and use the custom `ConfigField` we just created.\n\nfor example:\n\n```python\nclass SomeRandomConfig(ConfigModel):\n\n\tvalue = EvenIntegerField(nullable=False, default=2)\n```\n\nYou can use `py_value` method on config models to get a python dictionary with basic value types in it. This is handy to cache it in memory, or to use it for serialization.\n\n`from_dict` will create a new config model from a python dictionary.\n\nFurthermore, you can use `garlic_value` to construct a `GarlicValue` from the current config model and use `from_garlic` to construct a model from a `GarlicValue`.\n\n`GarlicValue` is a type that keeps configuration objects in the native code and loads them in Python lazily. This allows you to lower memory usage while speeding up all operations. It also comes with a set of handy methods:\n\n### resolve\nAllows for requested a specific value by providing a dot separated path.\n\nfor example:\n\n```python\nclass ParentConfig(models.ConfigModel):\n\n random_config_field = models.ModelField(SomeRandomConfig)\n\n\nfoo = ParentConfig()\nfoo.random_config_field.value = 8\ngarlic_value = foo.garlic_value()\nprint(garlic_value.resolve('random_config_field.value'))\n```\nIn the above code, if value to the given path exists, the python representation of the value gets returned. Otherwise, `None` gets returned. This is helpful because you can simply give the path to the final value and get the requested value. Since all of this is happening in the native code, it's significantly faster to use `GarlicValue` over python dictionary or regular models.\n\nYour goal should be to validate models using `ConfigModel` and store/read configurations using `GarlicValue`.\n\n### clone\nCopy operations, specially deep copies in Python are very expensive. You can, however, clone `GarlicValue` instances much faster by using the native clone which copies the object without the need to use deep copy yet accomplish the same result.\n\nfor example:\n\n```python\ngarlic_value_1 = foo.garlic_value()\ngarlic_value_2 = foo.clone()\n```\n\n# Serialization\n\nYou can use the following code to encode/decode configs. The default encoder is Json. However, you can write your own encoder and support other formats as needed.\n\n```python\nfrom garlicconfig import encoding\n\nconfig = DatabaseConfig()\nserialized_string = encoding.encode(config, pretty=True)\n```\n\n\n# Merging layers\n\nYou merge two configuration layers in order to support inheritance. Something that will come very handy if you plan to use localization or multi-layered configurations.\n\nAny `GarlicValue` instance will have a `apply` method that will basically applies a second `GarlicValue` on top of itself.\n\nfor example:\n\n```python\nfrom garlicconfig import models\nfrom garlicconfig import fields\n\n\nclass ExtraConfig(models.ConfigModel):\n\n has_id = fields.BooleanField(default=False)\n has_degree = fields.BooleanField(default=False)\n\n\nclass DumbConfig(models.ConfigModel):\n\n name = fields.StringField(nullable=False)\n numbers = fields.ArrayField(IntegerField())\n extra = models.ModelField(ExtraConfig)\n\n def validate(self):\n super(DumbConfig, self).validate()\n if not self.name and not self.numbers:\n raise garlicconfig.exceptions.ValidationError('invalid config for some reason!')\n\n\nconfig_1 = DumbConfig.from_dict({\n 'name': 'Peyman',\n 'numbers': [1, 2, 3]\n 'extra': {\n 'has_id': True\n }\n}).garlic_value()\n\nconfig_2 = DumbConfig.from_dict({\n 'name': 'Patrick',\n 'numbers': [4, 5, 6]\n 'extra': {\n 'has_degree': True\n }\n}).garlic_value()\n\nconfig_1.apply(config_2)\nconfig_1.resolve('numbers') # returns [4, 5, 6]\nconfig_1.resolve('name') # returns 'Patrick'\nconfig_1.resolve('extra.has_id') # returns True (from config_1)\nconfig_1.resolve('extra.has_degree') # returns True (from config_2)\n```\n\n", "description_content_type": "text/markdown; charset=UTF-8", "docs_url": null, "download_url": "https://github.com/infoscout/garlicconfig/archive/1.1.6.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/infoscout/garlicconfig", "keywords": "configs,settings", "license": "", "maintainer": "", "maintainer_email": "", "name": "garlicconfig", "package_url": "https://pypi.org/project/garlicconfig/", "platform": "", "project_url": "https://pypi.org/project/garlicconfig/", "project_urls": { "Download": "https://github.com/infoscout/garlicconfig/archive/1.1.6.tar.gz", "Homepage": "https://github.com/infoscout/garlicconfig" }, "release_url": "https://pypi.org/project/garlicconfig/1.1.6/", "requires_dist": [ "six" ], "requires_python": "", "summary": "InfoScout GarlicConfig", "version": "1.1.6" }, "last_serial": 5320200, "releases": { "1.0.4": [ { "comment_text": "", "digests": { "md5": "b566d889ec32fd04de30f9f877a5a4a4", "sha256": "64103b832b594f5a99b511393be7f118ee2fb7c980017ece8727e6bea85e9f09" }, "downloads": -1, "filename": "garlicconfig-1.0.4.tar.gz", "has_sig": false, "md5_digest": "b566d889ec32fd04de30f9f877a5a4a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7752, "upload_time": "2018-05-17T14:14:35", "url": "https://files.pythonhosted.org/packages/56/26/f95fd7cd18a528e56c19c77bd6dfba26b00ccadff069645a2cbc1abb8b1c/garlicconfig-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "eefae06e67a2a5988749087c0f86c89e", "sha256": "8a5187e79538a49ac384b490de8419b9f1f06acb1664851279229958fbcb042d" }, "downloads": -1, "filename": "garlicconfig-1.0.5.tar.gz", "has_sig": false, "md5_digest": "eefae06e67a2a5988749087c0f86c89e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8772, "upload_time": "2018-05-27T16:40:06", "url": "https://files.pythonhosted.org/packages/51/56/6d12808000be9fb6a7aaacfb61aeb08d0a3f2f991d8c8b2f2fd9b48647b4/garlicconfig-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "56f61088af7f319dccab5f01d2426593", "sha256": "2c324114331600e04de55936ca2e134eb78ee55ab36922ba7e64fe41095b8546" }, "downloads": -1, "filename": "garlicconfig-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "56f61088af7f319dccab5f01d2426593", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10263, "upload_time": "2018-09-14T15:24:23", "url": "https://files.pythonhosted.org/packages/a6/10/faf6804da6ca68579a23f1666a2b304ea11ba4781becdcf1af84affaf8ad/garlicconfig-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b828dfce4a50ca310427bf451a6bdff", "sha256": "945657cc82166f8d025b66e51f0d51b0087ef7470157b78228646474a3324977" }, "downloads": -1, "filename": "garlicconfig-1.0.6.tar.gz", "has_sig": false, "md5_digest": "9b828dfce4a50ca310427bf451a6bdff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8825, "upload_time": "2018-09-14T15:24:24", "url": "https://files.pythonhosted.org/packages/b6/f3/c342d475e08cc929a617982f47655675330cb52fc908f3fb5bb02c89dd8d/garlicconfig-1.0.6.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "975d09c0c895cfb3327c9a116ab14e4a", "sha256": "6bd418d5f651c354f1e73dfdc87c905cc6fe887ac0850f036394c509173f6c07" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "975d09c0c895cfb3327c9a116ab14e4a", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 613132, "upload_time": "2018-10-23T21:49:28", "url": "https://files.pythonhosted.org/packages/ab/c6/48228c5296abcd9f8d5ee28d02b78a8e30222e1186922a425f85d1dd92d5/garlicconfig-1.1.0-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "dde1dfc87217cb29b099103cc90a3603", "sha256": "0dfe457cfd96fff4cdf491500314fe8fabca22791105867b42e90f05dc4dc5b4" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "dde1dfc87217cb29b099103cc90a3603", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1533836, "upload_time": "2018-10-23T21:49:30", "url": "https://files.pythonhosted.org/packages/e9/58/8d8adf906e433a7cb4c1971b52b9d1c3e928b53d202b2daab22d323a74bb/garlicconfig-1.1.0-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "02741213498222d19ef72724b0fe1829", "sha256": "71f4981c43d9fa474e670672d931b246c9065c3a00432ebc940b256d0bb333f1" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "02741213498222d19ef72724b0fe1829", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1533955, "upload_time": "2018-10-23T21:49:32", "url": "https://files.pythonhosted.org/packages/ab/0c/651bbe052d85b69fa5018af58a3c8665c953384587a61410636ee7a0596e/garlicconfig-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "dbf5a9982adb4cef3f47bd71d0595b54", "sha256": "01153355c88ba47014afe59990a8c6af3dbc5675350f7e00885ca89e4116fc32" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "dbf5a9982adb4cef3f47bd71d0595b54", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1602346, "upload_time": "2018-10-23T21:49:34", "url": "https://files.pythonhosted.org/packages/2e/7f/d6eebce0db84f8214015b2912c411745680a8a0c003a4be9971795d41758/garlicconfig-1.1.0-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "54542fcdb91a25691abb6f60cc33c7fa", "sha256": "3185bf88958cf4611de00f5c76b6d3120ffd4291528ccba468989ce133fde81f" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "54542fcdb91a25691abb6f60cc33c7fa", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1577216, "upload_time": "2018-10-23T21:49:36", "url": "https://files.pythonhosted.org/packages/27/23/a665d019081ed9285f54abe331008e2df568fb144a8fc5a71bd560ad5350/garlicconfig-1.1.0-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e250f121169fcac35b12be154dd67b87", "sha256": "316d80c6574bdf1b465f88e12b5d1c8609eb0b719f3e24ad32ef508a5d6506b5" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "e250f121169fcac35b12be154dd67b87", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1603773, "upload_time": "2018-10-23T21:49:38", "url": "https://files.pythonhosted.org/packages/c9/09/c1373cebb6d6c518e3eb7b510f8970f453bb85abff74698d852970b0d6c4/garlicconfig-1.1.0-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "1e64601e4d685e3d65f88f46ff85c358", "sha256": "6019349c1709f7ad86b2d970c4143e11b4403b8c3f2e0477b1dc2a8b9ea44428" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "1e64601e4d685e3d65f88f46ff85c358", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 609153, "upload_time": "2018-10-23T21:49:14", "url": "https://files.pythonhosted.org/packages/92/13/b032bee2f9fb9b50d90ea81c91c84d340a31fbe0a65969b4ee087d1c4652/garlicconfig-1.1.0-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f93b92e55eb711b36a235b43d5eaf155", "sha256": "5df59ac2defee2ce2230e5d213ca263b4858346a8a53dd8c3a6015e75a2cbf2f" }, "downloads": -1, "filename": "garlicconfig-1.1.0-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "f93b92e55eb711b36a235b43d5eaf155", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1600617, "upload_time": "2018-10-23T21:49:39", "url": "https://files.pythonhosted.org/packages/99/de/5557876cb0332e42fb9dbeefd63f24cd3e5b7f9abc55d030db79b63b3ee6/garlicconfig-1.1.0-cp37-cp37m-manylinux1_x86_64.whl" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "37efd66fd2044f86df40f3d4a8775b13", "sha256": "8dd2fe1ea174e55c1e066ff364639302139d76ad3ab26eabcdb212d6ee6c8a02" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "37efd66fd2044f86df40f3d4a8775b13", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 614934, "upload_time": "2018-10-24T13:38:27", "url": "https://files.pythonhosted.org/packages/33/63/d2ef02edec04f1fccde84c7e93dfdc38da47436febdee0ed1846eee583c2/garlicconfig-1.1.1-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d8b1647014b974477f3498a59f70a3be", "sha256": "38e41c9165c5ecdc434c0ce1c482be55132ca73b4fa4df0ba3a54d4dfa9dbce1" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d8b1647014b974477f3498a59f70a3be", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1536774, "upload_time": "2018-10-24T13:38:41", "url": "https://files.pythonhosted.org/packages/cc/2a/d7065fe25312981ddc0374fd1025760b65875100e0d82c258bfd867d50f2/garlicconfig-1.1.1-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ca9501fa58e2287c5655524fbb7795be", "sha256": "0620c8e94867255f341d4bc61505328f54f1c0a8223372ba0ee320aa7b80d999" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ca9501fa58e2287c5655524fbb7795be", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1536896, "upload_time": "2018-10-24T13:38:43", "url": "https://files.pythonhosted.org/packages/96/a7/df714e30618cc806ec7fe551fa474386d8defa66d560820b400e95a3f143/garlicconfig-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "af8c6b37e3d69935df972946c3d3fd54", "sha256": "6d68510caefe71136d03ea3d2f840ebb7bfaff3e97ecfaf728b7cb4a276df13a" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "af8c6b37e3d69935df972946c3d3fd54", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1606368, "upload_time": "2018-10-24T13:38:44", "url": "https://files.pythonhosted.org/packages/f1/aa/46cdd20a1ee93a5acb341d6fc09425629f3c0e55ce373084e58790b43885/garlicconfig-1.1.1-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "2fa1d06a58549f9649baa8d67b68c35a", "sha256": "c649e4c7f2c159958f0afe6b88e8897491bceb088aa6181e320bf5ae2a5b15bd" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "2fa1d06a58549f9649baa8d67b68c35a", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1580702, "upload_time": "2018-10-24T13:38:46", "url": "https://files.pythonhosted.org/packages/a9/50/5134b9a59d47ea1cc40a9153dbada922458a6ba8f698ed6cd98ad26c8e34/garlicconfig-1.1.1-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "2a7b80f4b7af7eb42819a681e292056f", "sha256": "357d0403164572c53119ede770f002842b05881b397597b9b5058e3acbf0e40a" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "2a7b80f4b7af7eb42819a681e292056f", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1608471, "upload_time": "2018-10-24T13:38:48", "url": "https://files.pythonhosted.org/packages/49/a6/d678a2cd168b252bb99a768f5d635d3d920f79fe5c75cb6f4eb0a43da4bf/garlicconfig-1.1.1-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3c16fb6ca11c07d371cc9529ae6a6067", "sha256": "f7cccda7fe5ae5be78ee4a2241dae79131ac712585323b31732cb5c4560a4a53" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "3c16fb6ca11c07d371cc9529ae6a6067", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 611007, "upload_time": "2018-10-24T13:38:23", "url": "https://files.pythonhosted.org/packages/9e/eb/db709210ab982a3d0fd1df18812a9473271c85ea43f308185b120dec2092/garlicconfig-1.1.1-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6f6edd2e920891b53ce68753fc44998f", "sha256": "b7b5f7e56ca4468dfa6df318fe3c7e784bdf6b31d38329d00d9bb2622e36ab16" }, "downloads": -1, "filename": "garlicconfig-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6f6edd2e920891b53ce68753fc44998f", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1604951, "upload_time": "2018-10-24T13:38:51", "url": "https://files.pythonhosted.org/packages/09/9c/c4fd64b835d36a0e408dfb7a57f87077d9bb095c585cecf1380531bf6cf9/garlicconfig-1.1.1-cp37-cp37m-manylinux1_x86_64.whl" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "7a4809341fc5b46b33524af0c40b4f36", "sha256": "4371b2df4e36883a859b9fbb419fd6d5ed3101a71a67255255d2246013b87f2c" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "7a4809341fc5b46b33524af0c40b4f36", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 449109, "upload_time": "2019-03-01T05:52:26", "url": "https://files.pythonhosted.org/packages/dd/0f/7dfd3887539f8862be2083666fc028df272d62210bf545de3351d0e0d076/garlicconfig-1.1.2-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6db6930f5808eff1717de34ca5b84b30", "sha256": "7dce2973a22b363626122551337d08010e619cb8b3bd8cfa4904b6f8d1b18639" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6db6930f5808eff1717de34ca5b84b30", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1171785, "upload_time": "2019-03-01T05:53:02", "url": "https://files.pythonhosted.org/packages/8b/69/9010f10f2e7db51226d6ab83b1b26d02f1ecec59e65e4318c4b0382eff1f/garlicconfig-1.1.2-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "06d360179675d9901ecfee33511b8cbc", "sha256": "83a561916c80542378e8c505840ad061112ebaa4ba62422b61ad97faa62dd22b" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "06d360179675d9901ecfee33511b8cbc", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1171774, "upload_time": "2019-03-01T05:53:04", "url": "https://files.pythonhosted.org/packages/c5/f3/4c6074830ea3c28f78a9c6e0a276136b7be05e043f32defafcd83541c860/garlicconfig-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b338d1dcf2821c50cc41396836a5dd50", "sha256": "b3be613552b3b1def650801d7feb322cc237e07d6d8149527c801c47172e4744" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "b338d1dcf2821c50cc41396836a5dd50", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1220431, "upload_time": "2019-03-01T05:53:06", "url": "https://files.pythonhosted.org/packages/55/5b/8379ee920be50d8204a525f562449a25477a854bba32e9f503d5b5a5a70e/garlicconfig-1.1.2-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7c7607dfb1eb7f35b6caf1dcf0a118d3", "sha256": "946230614d8535128f997cb818c871f0cd426b420a610998c548393f61e8fdb7" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "7c7607dfb1eb7f35b6caf1dcf0a118d3", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1201647, "upload_time": "2019-03-01T05:53:07", "url": "https://files.pythonhosted.org/packages/b2/48/343a9a76088d47953ae20bf7d86fcd7286b2e7e1df6abaf00f6d6b12446a/garlicconfig-1.1.2-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "fc91c9603b94b8555673b0b55e82235c", "sha256": "872c1938910ce0a452ce761f7a630e87d52d5844ae1dbe116f5c973a84a2bd02" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "fc91c9603b94b8555673b0b55e82235c", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1219244, "upload_time": "2019-03-01T05:53:09", "url": "https://files.pythonhosted.org/packages/fd/3b/eab3c86cdd1d64be513db6922b81a15c9f24423645c0bc6b250e6715b958/garlicconfig-1.1.2-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "811ad762cae7aa0a052435eddc9fcadb", "sha256": "9226077557fa4a0b426f1a8e8c2e7cfda11e291b5f2f789e38bd94455a72b859" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "811ad762cae7aa0a052435eddc9fcadb", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 445064, "upload_time": "2019-03-01T05:52:39", "url": "https://files.pythonhosted.org/packages/1b/a4/fb1ee992c1cbedfe7ae2967a80fca92a687c1adb2323ba13637f060d82fb/garlicconfig-1.1.2-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b6a2b2db9c7dbab52a32da7cca2c58c1", "sha256": "e54fd3d15f88a2a69cb3faec318c7d8e340da8e7fcebd9c603214e25efe7e2a5" }, "downloads": -1, "filename": "garlicconfig-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "b6a2b2db9c7dbab52a32da7cca2c58c1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1218084, "upload_time": "2019-03-01T05:53:10", "url": "https://files.pythonhosted.org/packages/82/a5/8726e55e06713954e380507bec323fa5b0d6519809a9c4133ac0d3806c3a/garlicconfig-1.1.2-cp37-cp37m-manylinux1_x86_64.whl" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "d9a45cbd5bb5e9ba4a57416ed8398903", "sha256": "c58415f38595d6663cfff9eb29ca1481bfdb1936587102234ffc3fc1084d0a11" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d9a45cbd5bb5e9ba4a57416ed8398903", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 450112, "upload_time": "2019-03-11T19:47:35", "url": "https://files.pythonhosted.org/packages/ac/ac/f2b612d52c0787cec77d4a36dcd3178b006c79a7d7f8e1b927c5c41026b9/garlicconfig-1.1.3-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6820dac6149c19f3e751ab24e2873b5d", "sha256": "6632d53f30df7ebbdfae365fcc4236c8fd4d926299c73d93f931c8088ec37877" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6820dac6149c19f3e751ab24e2873b5d", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1174060, "upload_time": "2019-03-11T19:47:58", "url": "https://files.pythonhosted.org/packages/74/f0/9275cb815c13c16a073284f0c68dcec6f916d6b7229d1bbd356eddb2f359/garlicconfig-1.1.3-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "62be1c273307819c61c5e1e5e1f32570", "sha256": "eba3d594986fc41925bd292fc9cb9f56fb94dbe9a7bf8d69e394677a738b5fea" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "62be1c273307819c61c5e1e5e1f32570", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1174060, "upload_time": "2019-03-11T19:48:00", "url": "https://files.pythonhosted.org/packages/2f/a4/d78ba38e378b287fc5841ceaea942ba2df29ff846cb94408f46580588725/garlicconfig-1.1.3-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "3d2eb9c4d7edf9df86d095fe00a2d579", "sha256": "9df2a7910b5c194e64880e7528330935b57fd3e0909c38556f6f23d55add8425" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "3d2eb9c4d7edf9df86d095fe00a2d579", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1223602, "upload_time": "2019-03-11T19:48:01", "url": "https://files.pythonhosted.org/packages/bd/7e/fa5ba7f4461e4f34c046893514524de02cacbc7de37cdb53a947b6adfd95/garlicconfig-1.1.3-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a127727b4387e73264fa353f6264c574", "sha256": "7142f6bb2f4e39b350f306e581dce11cfbf6bcad42c5870083807ee20bd901f8" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a127727b4387e73264fa353f6264c574", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1203987, "upload_time": "2019-03-11T19:48:03", "url": "https://files.pythonhosted.org/packages/2c/d7/3370ee377ff6ece91f797a9275630a1e439924ec0847452dfd5f84e5b74f/garlicconfig-1.1.3-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "c58d54dae8832ca128bf7563cf968454", "sha256": "448d946c08cfb34ce6bed55976c8f85fd7c0696f27b815a8f683ff757ec5d382" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "c58d54dae8832ca128bf7563cf968454", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1221761, "upload_time": "2019-03-11T19:48:05", "url": "https://files.pythonhosted.org/packages/1b/03/e0a73a5a5605d6b4b3e7031a9b155fa895d8222fb8e49d1ed36df5bd8c8c/garlicconfig-1.1.3-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "90ed619889536c6712f789180843f8ff", "sha256": "7ebd0500a7c2f01c1a2adf7821d344c8c8463e43d9085b41099c66056fa74381" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "90ed619889536c6712f789180843f8ff", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 446145, "upload_time": "2019-03-11T19:47:35", "url": "https://files.pythonhosted.org/packages/3e/f7/bb2084e5da2b954446eebf5b0c5de405ca98be1081eaae5592248564dbe3/garlicconfig-1.1.3-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a1b35bd344f804a2f555942e4185110d", "sha256": "9c3380030581d3f6069af61d7c831f3b3e01cec997f431d44c18eedb03e1cda8" }, "downloads": -1, "filename": "garlicconfig-1.1.3-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a1b35bd344f804a2f555942e4185110d", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1221112, "upload_time": "2019-03-11T19:48:07", "url": "https://files.pythonhosted.org/packages/5d/db/f6d4b554427460a73141f118f0f691f634b4957103e03917ca1272f05ebb/garlicconfig-1.1.3-cp37-cp37m-manylinux1_x86_64.whl" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "d6e79aeeb71ab64ef139033a7fc9ec9b", "sha256": "b419cdf65996ec135c55c77cd629a305dace4b83a38ed4a91d40813cf59a0c93" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d6e79aeeb71ab64ef139033a7fc9ec9b", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 450519, "upload_time": "2019-05-26T22:43:20", "url": "https://files.pythonhosted.org/packages/17/0e/0189fba7223b0b41e34b45895127e131a745dca1334bb99ddade01a417d6/garlicconfig-1.1.4-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "76bed7d22f5d42d92bb7388cd1040d27", "sha256": "830abbfa6bbdc74c48609c60c1f1b5406f8818d3cac72472f44202ad4250b380" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "76bed7d22f5d42d92bb7388cd1040d27", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1174914, "upload_time": "2019-05-26T22:42:48", "url": "https://files.pythonhosted.org/packages/2d/40/f7cac888c1b35a0d8c32e5901225df61fff0cc43fa483efb7ef7a85cd3ac/garlicconfig-1.1.4-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a98c4eab7b2eb662e9b7f6499c98455d", "sha256": "08e273269e7cb05617d802c93b566344e8e626b8e92b05d66d00664d46c7af9b" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a98c4eab7b2eb662e9b7f6499c98455d", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1174931, "upload_time": "2019-05-26T22:42:50", "url": "https://files.pythonhosted.org/packages/11/99/c2d0a0b294e75a3040581ecb39e9d3825be9fb59eca12640158ea5e148a4/garlicconfig-1.1.4-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6ec59ababf28bb459332ff8c7f77e4ec", "sha256": "6d9a08edf7aac92945e9974ca5788ee9a2b7961b200039863598efee4bc3cab9" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6ec59ababf28bb459332ff8c7f77e4ec", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1224163, "upload_time": "2019-05-26T22:42:52", "url": "https://files.pythonhosted.org/packages/f7/05/f621e7def986e7598679c541005a233e5e3dda7a776778faf30eb17af299/garlicconfig-1.1.4-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "623bd5344473d12b631dc1cf3ce79e48", "sha256": "10d157fde8de12cf3ce9f05181ec368cbefe862660974919f11ea0af5a163fbe" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "623bd5344473d12b631dc1cf3ce79e48", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1204653, "upload_time": "2019-05-26T22:42:54", "url": "https://files.pythonhosted.org/packages/8a/5a/a880fe2c81734bbdd605e915b6eafc2369ea9672e86ab6f51d6703ec1cbe/garlicconfig-1.1.4-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "383965f15824a0089482d02fee3a63e6", "sha256": "213bd1d0aeed202a51e5e4254734cc00448d6cf6829a2159382af105cdda1b4e" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "383965f15824a0089482d02fee3a63e6", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1222486, "upload_time": "2019-05-26T22:42:56", "url": "https://files.pythonhosted.org/packages/a2/6b/c9f5117f3c78af971fbbb264c5cc3c2ef8409437b23a002c7ce0c3c9a05e/garlicconfig-1.1.4-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6fbf5151d16e4690d97eb810c7de3912", "sha256": "6927cb00c19da8ca3d2a6feb873862cd88cf409b5f506e1a1c2cb3657d5dbea1" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "6fbf5151d16e4690d97eb810c7de3912", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 446694, "upload_time": "2019-05-26T22:43:17", "url": "https://files.pythonhosted.org/packages/c4/59/53a96f6c89d5280cfbad505e1744508fe7cf2896a42a491d3e57a70b1536/garlicconfig-1.1.4-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a280e7acb6cccdd3c6bac8488052d7f6", "sha256": "fa134d63d39d94d63d27b416571ca13d77c4e55ff1fcf5e055391b0545489170" }, "downloads": -1, "filename": "garlicconfig-1.1.4-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a280e7acb6cccdd3c6bac8488052d7f6", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1221099, "upload_time": "2019-05-26T22:42:57", "url": "https://files.pythonhosted.org/packages/4c/04/6f009603a42872ed92f6a80101529a3a65a2f9316ba9d8935e5f4e624efa/garlicconfig-1.1.4-cp37-cp37m-manylinux1_x86_64.whl" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "bee026c602f5588c1823df3796bbc4fb", "sha256": "e81ec5e6f2ab5e45a282cdc87645fb605e99cf81dde93d69e338b5bada908e65" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "bee026c602f5588c1823df3796bbc4fb", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 449298, "upload_time": "2019-05-27T00:27:53", "url": "https://files.pythonhosted.org/packages/c0/2c/67efa4e5eed4743c9d1553a3a24b6c283fac4b1b76b019f5c3595abdc7a2/garlicconfig-1.1.5-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "19126bf1318e817acead0148db3eb8ab", "sha256": "38ed08091b29482195bd0cf2741965eb50e14330623ef192373e347089d5bfc9" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "19126bf1318e817acead0148db3eb8ab", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1172747, "upload_time": "2019-05-27T00:28:46", "url": "https://files.pythonhosted.org/packages/c7/b0/4ab49098f34903cbbbb24cc994f2179f183442f2c93ae7ed8605b302e5d4/garlicconfig-1.1.5-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "26dbc9b5c237c8233e3c9ab1816507eb", "sha256": "b98c537def613f12b80acf2a3e96c61d3402d6d927d64825db491863bd321f74" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "26dbc9b5c237c8233e3c9ab1816507eb", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1172824, "upload_time": "2019-05-27T00:28:48", "url": "https://files.pythonhosted.org/packages/09/31/aa2a49564475ce25343c446721b35f1a756b475e70839492792ea532d820/garlicconfig-1.1.5-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "4f68570ef233f6c444f77375b02ce3ca", "sha256": "6c9d1b442bb73c75ff972acdb73fb752457401e0ab19eb9f6c30d158b6696819" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "4f68570ef233f6c444f77375b02ce3ca", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1222608, "upload_time": "2019-05-27T00:28:50", "url": "https://files.pythonhosted.org/packages/40/77/fca9da22ea2d60a6541092c8d7eff4d8ab028db78852ba45ae126b2ae416/garlicconfig-1.1.5-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "c60e0cf3f3d81cb61cde0c0204766557", "sha256": "8927264aba78f55acac2ab9dfae8d81e01dd2db0a7f4d5e959ad7e7c5803f1c2" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "c60e0cf3f3d81cb61cde0c0204766557", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1203184, "upload_time": "2019-05-27T00:28:52", "url": "https://files.pythonhosted.org/packages/73/0c/f5da52b6d41c58c2367df437fafbadbe26444c3ead88fe4d3cb5f4ff06f4/garlicconfig-1.1.5-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ad4bb01e82ed6e1b48d85c198e6d8f17", "sha256": "bf472d25367f4870ad2cf215f5b6ee565ac4e2e10afcdd885be36dcff89df0d7" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ad4bb01e82ed6e1b48d85c198e6d8f17", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1220973, "upload_time": "2019-05-27T00:28:53", "url": "https://files.pythonhosted.org/packages/0d/95/7a13077052eaa0a67ccd054587f772ab003518dd9e29b3cd16c386a52953/garlicconfig-1.1.5-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d020ce7a70ce79daac46281aee0439c1", "sha256": "9c6f7032922c08a3abb9bedf3393147e74bf1ff85d0a01c6cbd54a00ad385bd8" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d020ce7a70ce79daac46281aee0439c1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 445586, "upload_time": "2019-05-27T00:27:56", "url": "https://files.pythonhosted.org/packages/e5/4d/4507f0b14f3be5ab2b8ef797f241367a8a9af6eed68ea3cf62aac93e188e/garlicconfig-1.1.5-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "7ad2e6ae13264ab0332fc8887306e039", "sha256": "107ca0c4350db8bdb1b08006168f04a44d642c90c76dc420f333389161792a0b" }, "downloads": -1, "filename": "garlicconfig-1.1.5-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "7ad2e6ae13264ab0332fc8887306e039", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1219668, "upload_time": "2019-05-27T00:28:55", "url": "https://files.pythonhosted.org/packages/68/3f/248698540fec20c1c068333ab0353bb2b594c8e3915fc359348bcdb241bb/garlicconfig-1.1.5-cp37-cp37m-manylinux1_x86_64.whl" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "d9d4a50d3054b315d8d31d7b03600412", "sha256": "e23a3b614238b090ab4682fa85a10aeff7016dbc6ace0b77892ba2682c3ea7f2" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d9d4a50d3054b315d8d31d7b03600412", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 448479, "upload_time": "2019-05-27T00:42:06", "url": "https://files.pythonhosted.org/packages/ae/25/1d6d2d4468e2fe576f81aa99fc201df5b32c59ba3d884830ff59d41c6fb9/garlicconfig-1.1.6-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b9d9844838b0d6d51bcd2b5c69d7cb92", "sha256": "dc3410067d8cc0d56ecc411e50e851bdef34a7051c4b4e3938ab4d4524514d21" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "b9d9844838b0d6d51bcd2b5c69d7cb92", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1169287, "upload_time": "2019-05-27T00:42:24", "url": "https://files.pythonhosted.org/packages/9b/e5/39f69bcb4a47a9c8b679f3beb5841f01c89d422cbf3f0a40e4522ff539ba/garlicconfig-1.1.6-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "1563a2cf6827fdc98b8ef75474159262", "sha256": "8ee880d5b8616797e35d35843effc3f79e1e8b09a3c0cd7f28e365a91dad7898" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "1563a2cf6827fdc98b8ef75474159262", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1169350, "upload_time": "2019-05-27T00:42:25", "url": "https://files.pythonhosted.org/packages/bc/fe/1ff34d812166a84ad0124a546949def7a3c54efda726752f739ff1555cb6/garlicconfig-1.1.6-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d56ee936ec25816a3bbe1a28561d960e", "sha256": "299bf569646be35789176ea125adc90e59f7cdc02f774ec4ba656076382696b5" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d56ee936ec25816a3bbe1a28561d960e", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1220347, "upload_time": "2019-05-27T00:42:32", "url": "https://files.pythonhosted.org/packages/30/47/defa2589a7178a1f80d2133552ba67c3d0a49ce4e703d18c207ca34c9c04/garlicconfig-1.1.6-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "2c8874efe566a33b24e92ac1e60aebf9", "sha256": "20371d658e0ec670ebd55b40c364243d0a69516e3f15c5c2b57dc1145bab40b1" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "2c8874efe566a33b24e92ac1e60aebf9", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1201223, "upload_time": "2019-05-27T00:42:34", "url": "https://files.pythonhosted.org/packages/e3/39/b33bc56af02289d570ba737d16486974a25d9552a3e5967f55e9734b14c0/garlicconfig-1.1.6-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8b7944a2663d72d4de70ef64f1474150", "sha256": "4b2d4f76e24609a8e04d079351db7e718d5daa6527cdddb2d8b0a066db8a1c87" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8b7944a2663d72d4de70ef64f1474150", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1218365, "upload_time": "2019-05-27T00:42:36", "url": "https://files.pythonhosted.org/packages/5d/79/9149aa2c26ae5ad8b5daa8eb155959e5b3db09b5ae43fb8f575be63631d1/garlicconfig-1.1.6-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d48c0c15cd98952f3633b2d7e35ecea6", "sha256": "ae36a5b2dcecc70536c0bd0ff0d6adacf8a17a41e1955ad1295ae77947bc34cf" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d48c0c15cd98952f3633b2d7e35ecea6", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 444668, "upload_time": "2019-05-27T00:42:05", "url": "https://files.pythonhosted.org/packages/29/59/7e750f48b82058d5e3658570b5064ea5becfd3b4faf848e6fb28f314f0cd/garlicconfig-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6e25bd20249fed06ba08ba43343470c1", "sha256": "cfab9d9834e54bc41c63592bc9187143d0b6ab25e830400fac32234a02ccdfbc" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6e25bd20249fed06ba08ba43343470c1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1217135, "upload_time": "2019-05-27T00:42:38", "url": "https://files.pythonhosted.org/packages/d8/66/c90ea87ee0bbb62d9fad2cd81474c438d5b86f4ef97ffd4f80e397bc62e9/garlicconfig-1.1.6-cp37-cp37m-manylinux1_x86_64.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d9d4a50d3054b315d8d31d7b03600412", "sha256": "e23a3b614238b090ab4682fa85a10aeff7016dbc6ace0b77892ba2682c3ea7f2" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp27-cp27m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d9d4a50d3054b315d8d31d7b03600412", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 448479, "upload_time": "2019-05-27T00:42:06", "url": "https://files.pythonhosted.org/packages/ae/25/1d6d2d4468e2fe576f81aa99fc201df5b32c59ba3d884830ff59d41c6fb9/garlicconfig-1.1.6-cp27-cp27m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "b9d9844838b0d6d51bcd2b5c69d7cb92", "sha256": "dc3410067d8cc0d56ecc411e50e851bdef34a7051c4b4e3938ab4d4524514d21" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "b9d9844838b0d6d51bcd2b5c69d7cb92", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1169287, "upload_time": "2019-05-27T00:42:24", "url": "https://files.pythonhosted.org/packages/9b/e5/39f69bcb4a47a9c8b679f3beb5841f01c89d422cbf3f0a40e4522ff539ba/garlicconfig-1.1.6-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "1563a2cf6827fdc98b8ef75474159262", "sha256": "8ee880d5b8616797e35d35843effc3f79e1e8b09a3c0cd7f28e365a91dad7898" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "1563a2cf6827fdc98b8ef75474159262", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1169350, "upload_time": "2019-05-27T00:42:25", "url": "https://files.pythonhosted.org/packages/bc/fe/1ff34d812166a84ad0124a546949def7a3c54efda726752f739ff1555cb6/garlicconfig-1.1.6-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d56ee936ec25816a3bbe1a28561d960e", "sha256": "299bf569646be35789176ea125adc90e59f7cdc02f774ec4ba656076382696b5" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d56ee936ec25816a3bbe1a28561d960e", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1220347, "upload_time": "2019-05-27T00:42:32", "url": "https://files.pythonhosted.org/packages/30/47/defa2589a7178a1f80d2133552ba67c3d0a49ce4e703d18c207ca34c9c04/garlicconfig-1.1.6-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "2c8874efe566a33b24e92ac1e60aebf9", "sha256": "20371d658e0ec670ebd55b40c364243d0a69516e3f15c5c2b57dc1145bab40b1" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "2c8874efe566a33b24e92ac1e60aebf9", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1201223, "upload_time": "2019-05-27T00:42:34", "url": "https://files.pythonhosted.org/packages/e3/39/b33bc56af02289d570ba737d16486974a25d9552a3e5967f55e9734b14c0/garlicconfig-1.1.6-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "8b7944a2663d72d4de70ef64f1474150", "sha256": "4b2d4f76e24609a8e04d079351db7e718d5daa6527cdddb2d8b0a066db8a1c87" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "8b7944a2663d72d4de70ef64f1474150", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1218365, "upload_time": "2019-05-27T00:42:36", "url": "https://files.pythonhosted.org/packages/5d/79/9149aa2c26ae5ad8b5daa8eb155959e5b3db09b5ae43fb8f575be63631d1/garlicconfig-1.1.6-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d48c0c15cd98952f3633b2d7e35ecea6", "sha256": "ae36a5b2dcecc70536c0bd0ff0d6adacf8a17a41e1955ad1295ae77947bc34cf" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl", "has_sig": false, "md5_digest": "d48c0c15cd98952f3633b2d7e35ecea6", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 444668, "upload_time": "2019-05-27T00:42:05", "url": "https://files.pythonhosted.org/packages/29/59/7e750f48b82058d5e3658570b5064ea5becfd3b4faf848e6fb28f314f0cd/garlicconfig-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6e25bd20249fed06ba08ba43343470c1", "sha256": "cfab9d9834e54bc41c63592bc9187143d0b6ab25e830400fac32234a02ccdfbc" }, "downloads": -1, "filename": "garlicconfig-1.1.6-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6e25bd20249fed06ba08ba43343470c1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1217135, "upload_time": "2019-05-27T00:42:38", "url": "https://files.pythonhosted.org/packages/d8/66/c90ea87ee0bbb62d9fad2cd81474c438d5b86f4ef97ffd4f80e397bc62e9/garlicconfig-1.1.6-cp37-cp37m-manylinux1_x86_64.whl" } ] }