{ "info": { "author": "Adam Sherwood", "author_email": "theherk@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "figgypy\n=======\n\n[![Chat on Gitter](https://badges.gitter.im/theherk/figgypy.svg)](https://gitter.im/theherk/figgypy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![Build Status](https://travis-ci.org/theherk/figgypy.svg)](https://travis-ci.org/theherk/figgypy)\n\nA simple configuration parser.\n\nInstallation\n------------\n\n pip install figgypy\n\nUsage\n-----\n\n``` python\nimport figgypy\ncfg = figgypy.set_config(conf_file)\ncfg.get_value('somevalue', optional_default)\n# or\ncfg.values['somevalue']\n# or\ncfg.values.get('somevalue', optional_default)\n# or\nfiggypy.get_value('somevalue', optional_default)\n```\n\nConfig object can be created with a filename only, relative path, or absolute path.\nIf only name or relative path is provided, look in this order:\n\n1. current directory\n2. `~/.config/`\n3. `/etc/`\n\nIt is a good idea to include you `__package__` in the file name.\nFor example, `cfg = Config(os.path.join(__package__, 'config.yaml'))`.\nThis way it will look for `your_package/config.yaml`,\n`~/.config/your_package/config.yaml`, and `/etc/your_package/config.yaml`.\n\n### Features ###\n\n#### Supports multiple formats ####\n\nThe configuration file currently supports json, _xml*_, and yaml.\n\n_* note_ - xml will work, but since it requires having only one root, all of the configuration will be in a dictionary named that root. See examples below.\n\n#### Global configuration (optional) ####\n\n``` python\n# a.py\nfrom figgypy import Config, set_config\ncfg = Config(config_file='config.yaml')\nfiggypy.set_config(cfg)\n\n# b.py\nimport figgypy\nfiggypy.get_value('somevalue')\n```\n\n#### No file needed ####\n\n``` python\nimport figgypy\ncfg = figgypy.Config()\ncfg.set_value('somedict', {'a': 'aye', 'b': 'bee'})\n```\n\n#### Optional decryption ####\n\n_note_: By default each is configured to run the decryption routine. This can be disabled.\n\n``` python\nimport figgypy\ncfg = figgypy.Config(config_file='config.yaml', decrypt_gpg=False, decrypt_kms=False)\ncfg.decrypt_kms = True\n# configuration is reloaded and decrypted\n```\n\n#### Reconstruct with updated settings ####\n\nYou can run Config.setup to reconstruct the same Config object with new settings. Like this:\n\n``` python\n# in shared.py\nimport figgypy\ncfg = figgypy.Config()\nfiggypy.set_config(cfg)\n\n# in worker.py\nimport figgypy\ncfg = get_config()\ncfg.setup(config_file=file_, kms_decrypt=False, gpg_config=gpgconf)\n```\n\nThese changes should also make testing in your applications easier, because in the tests you can reload a different configuration on the same object:\n\n``` python\nimport figgypy\nfrom mylib import totest\ntotest.config_file = 'tests/resources/config.yaml'\n```\n\nExamples\n--------\n\n### json ###\n\n```json\n{\n \"db\": {\n \"url\": \"mydburl.com\",\n \"name\": \"mydbname\",\n \"user\": \"myusername\",\n \"pass\": \"correcthorsebatterystable\"\n },\n \"log\": {\n \"file\": \"/var/log/cool_project.log\",\n \"level\": \"INFO\"\n }\n}\n```\n\n cfg = Config('theabove.json')\n\nThis yields object `cfg` with attributes `db` and `log`, each of which are dictionaries.\n\n### xml ###\n\n```xml\n\n\n \n mydburl.com\n mydbname\n myusername\n correcthorsebatterystable\n \n \n /var/log/cool_project.log\n INFO\n \n\n```\n\n cfg = Config('theabove.xml')\n\nThis yields object `cfg` with attribute `config`, which is the complete dictionary.\n\n### yaml ###\n\n```yaml\ndb:\n url: mydburl.com\n name: mydbname\n user: myusername\n pass: correcthorsebatterystable\nlog:\n file: /var/log/cool_project.log\n level: INFO\n```\n\n cfg = Config('theabove.yaml')\n\nThis yields object `cfg` with attributes `db` and `log`, each of which are dictionaries. This is the exact same behaviour as json, which makes sense given the close relationship of yaml and json.\n\nSecrets\n--------\n\nIt is possible to use gpg to store PGP and KMS encrypted secrets in a config file.\n\n```yaml\ndb:\n host: db.heck.ya\n pass: |\n -----BEGIN PGP MESSAGE-----\n Version: GnuPG v2\n\n hQIMAzf92ZrOUZL3ARAAgWexav8+pc2lnqISEuQafFZrqYI0pU3xCuMXnFZp+hpU\n gb0LsaExZ136p4ATIinFHuaLt94hFx7gULgqoSigt/2fubnUCsOGedq122xYZdtV\n Ep/24WPVQPcMVIP9pDTJTk82A41BQsOrVYorAGjjB13zFizizYHApNTcWKr4/gfR\n jmCqAX5qusXB84fXBecCJ886uEQI2v7+Vxnk+fQMqNt3ybd/uLuBLShMSygr6uLX\n zktyeZvP2QqPSWe0OpttdcvD792/SI/CTznsjbMe0wr1L81csEQcj++4o5wJop3Y\n mbQvG/FxeDdRi2aCxh7JK2xdCsrQzXKTNG2QZMwWqatB5Lb6lJ1mNiJQGX2YK+nI\n lbjy5Cp2lHlNxa9QfB+KglueMnH9gDku5YqBDos6rCEuqK/aTDdMx0V7YGYTamZ3\n 3Za+OGi+hl/+4WX2gm+bOM2WWrIysiu9k1HMI1/onui/3hr1nClR8rGb4a5qDlpg\n yRrt7LuLRU4vGXpYm05dXlUeI3uT04ur/DwLo32ujnPo3dc8LFegX8N8p1LLS9vq\n vvrvXRnWsgeAvAYFBprbEYcz7sOU04HM9OGcyjYREMs3Ih6H2oBi3GavJ2x0MG75\n M9JSTu/yytD8GCM3s+3RncKuEAxfZIk1Gbdz0pjb+U6G43qq8/vQPKtKuAeqJHDS\n SAER9YkKqbp0y85LbhUWNWPpHQ2zy8WB71TfYE6vBP5qjoxiqP/QGWjT/3jhCY+t\n 5k7R6XqvdvbSu1avFlEgApknzn94I+gsWQ==\n =QuDe\n -----END PGP MESSAGE-----\n```\n\nIf you are using json, you'll need newlines. I achieved the following example with `cat the_above.yaml | seria -j -`.\n\n```json\n{\n \"db\": {\n \"host\": \"db.heck.ya\",\n \"pass\": \"-----BEGIN PGP MESSAGE-----\\nVersion: GnuPG v2\\n\\nhQIMAzf92ZrOUZL3ARAAgWexav8+pc2lnqISEuQafFZrqYI0pU3xCuMXnFZp+hpU\\ngb0LsaExZ136p4ATIinFHuaLt94hFx7gULgqoSigt/2fubnUCsOGedq122xYZdtV\\nEp/24WPVQPcMVIP9pDTJTk82A41BQsOrVYorAGjjB13zFizizYHApNTcWKr4/gfR\\njmCqAX5qusXB84fXBecCJ886uEQI2v7+Vxnk+fQMqNt3ybd/uLuBLShMSygr6uLX\\nzktyeZvP2QqPSWe0OpttdcvD792/SI/CTznsjbMe0wr1L81csEQcj++4o5wJop3Y\\nmbQvG/FxeDdRi2aCxh7JK2xdCsrQzXKTNG2QZMwWqatB5Lb6lJ1mNiJQGX2YK+nI\\nlbjy5Cp2lHlNxa9QfB+KglueMnH9gDku5YqBDos6rCEuqK/aTDdMx0V7YGYTamZ3\\n3Za+OGi+hl/+4WX2gm+bOM2WWrIysiu9k1HMI1/onui/3hr1nClR8rGb4a5qDlpg\\nyRrt7LuLRU4vGXpYm05dXlUeI3uT04ur/DwLo32ujnPo3dc8LFegX8N8p1LLS9vq\\nvvrvXRnWsgeAvAYFBprbEYcz7sOU04HM9OGcyjYREMs3Ih6H2oBi3GavJ2x0MG75\\nM9JSTu/yytD8GCM3s+3RncKuEAxfZIk1Gbdz0pjb+U6G43qq8/vQPKtKuAeqJHDS\\nSAER9YkKqbp0y85LbhUWNWPpHQ2zy8WB71TfYE6vBP5qjoxiqP/QGWjT/3jhCY+t\\n5k7R6XqvdvbSu1avFlEgApknzn94I+gsWQ==\\n=QuDe\\n-----END PGP MESSAGE-----\"\n }\n}\n```\n\nTo store a KMS secret, just add the `_kms` key to the configuration file.\n\n```yaml\ndb:\n host: db.heck.ya\n pass:\n _kms: your KMS encrypted value\n```\n\nSee [below](#kms) for instructions on generating this value.\n\nThat's easy, right? Now this value will be decrypted and available just like you had typed in the value in the configuration file.\n\n### Passed in parameters ###\n\nThese can also be passed in as arguments when initializing.\n\n```python\naws_config = {'aws_access_key_id': aws_access_key_id,\n 'aws_secret_access_key': aws_secret_access_key,\n 'region_name': 'us-east-1'}\ngpg_config = {'homedir': 'noplace/like/home',\n 'keyring': 'pubring.kbx'}\ncfg = figgypy.Config('config.yaml', aws_config=aws_config, gpg_config=gpg_config)\n```\n\n### To encrypt a value ###\n\n#### GPG ####\n\n echo -n \"Your super secret password\" | gpg --encrypt --armor -r KEY_ID\n\nAdd the resulting armor to your configuration where necessary. If you are using yaml, this is very simple. Here is an example:\n\n#### KMS ####\n\n aws kms encrypt --key-id 'alias/your-key' --plaintext \"your secret\" --query CiphertextBlob --output text\n\nor the preferred method:\n\n```python\nfrom figgypy.util import kms_encrypt\nencrypted = kms_encrypt('your secret', 'key or alias/key-alias', optional_aws_config)\n```\n\nThanks\n------\n\nThis tool uses [Seria](https://github.com/rtluckie/seria) to serialize between supported formats. Seria is a great tool if you want convert json, xml, or yaml to another of the same three formats.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/theherk/figgypy/archive/1.2.dev.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/theherk/figgypy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "figgypy", "package_url": "https://pypi.org/project/figgypy/", "platform": "all", "project_url": "https://pypi.org/project/figgypy/", "project_urls": { "Download": "https://github.com/theherk/figgypy/archive/1.2.dev.zip", "Homepage": "https://github.com/theherk/figgypy" }, "release_url": "https://pypi.org/project/figgypy/1.1.9/", "requires_dist": [ "boto3", "future", "pretty-bad-protocol", "seria", "pyyaml" ], "requires_python": "", "summary": "Simple configuration tool. Get config from yaml, json, or xml.", "version": "1.1.9" }, "last_serial": 5877489, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f2dc71f422668c1605eb45559bfaf4cc", "sha256": "bfd6330a0bc70712fb5ea601d6ba727a6c01132ca477d79ea0afdc5d63efcefc" }, "downloads": -1, "filename": "figgypy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f2dc71f422668c1605eb45559bfaf4cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4040, "upload_time": "2015-10-16T17:54:07", "url": "https://files.pythonhosted.org/packages/1f/d4/9d1f7ac96c644762211ebbee221e1564d541755ba44a956ecdfd969618a5/figgypy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "90f3a4dddebc36ec0942576f60af78fe", "sha256": "f3e8215407bbc2dc871029e2856997f6022bb5991352eb2af300c25ad19c02c4" }, "downloads": -1, "filename": "figgypy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "90f3a4dddebc36ec0942576f60af78fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4002, "upload_time": "2015-10-16T20:37:47", "url": "https://files.pythonhosted.org/packages/19/b4/f43e96e101d5dd16ef8961c6888f1f11a258e95c8dcad3866e3ab418ef54/figgypy-0.1.1.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "1036e380b30b568ef63dc15dbefeb157", "sha256": "bc5caffe7e80c5c24c7e130f9820f6b70412949f60aac650611ab638e37541d7" }, "downloads": -1, "filename": "figgypy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "1036e380b30b568ef63dc15dbefeb157", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6550, "upload_time": "2015-10-26T03:04:42", "url": "https://files.pythonhosted.org/packages/08/6e/4601876f695dd88f340cd52ebc56c252bcbc6760bc2cbfbbec3fa84ecdf8/figgypy-0.1.3.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "f1baa04ac4ab3dcb71224d7fcc066553", "sha256": "c7553f299f761edc9c5944971006a65ee753e083b9524b5a7b9ed7f585d1b40f" }, "downloads": -1, "filename": "figgypy-0.1.6.tar.gz", "has_sig": false, "md5_digest": "f1baa04ac4ab3dcb71224d7fcc066553", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6863, "upload_time": "2015-10-27T22:10:09", "url": "https://files.pythonhosted.org/packages/b8/90/7b1f39cc109e3ea962e60e972a60982665139428556c9f9cf1464f2bd724/figgypy-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "cf732c73aeb72299d7bf85f7ce1cbd02", "sha256": "1dae938a77fcd8f9d4f0f07bf9892a8f4c129f4c520c7d2c7a72f3abede6d0b6" }, "downloads": -1, "filename": "figgypy-0.1.7.tar.gz", "has_sig": false, "md5_digest": "cf732c73aeb72299d7bf85f7ce1cbd02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6933, "upload_time": "2015-10-28T17:23:36", "url": "https://files.pythonhosted.org/packages/cd/81/4d5eb1c2f1108f67ecd3b9ebacf6dff08282e64b386740346fcd5cdff0fd/figgypy-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "635b1730529efd6407a3d7a1be3bb260", "sha256": "cd01536c79f5079fc1e2ed626750b68847adee22f50cf2dfed63c0a50e546887" }, "downloads": -1, "filename": "figgypy-0.1.8.tar.gz", "has_sig": false, "md5_digest": "635b1730529efd6407a3d7a1be3bb260", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6929, "upload_time": "2015-10-28T17:43:15", "url": "https://files.pythonhosted.org/packages/e1/36/43a16f41ece457738538e3b79b45f451d6eb367a85235036ced83c0e877f/figgypy-0.1.8.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "194acb2c6f69ac13fe804e19ce98ff6f", "sha256": "16d2574a3d292cc618d7dbbda590ff37b015e16d3bb4d220d237ab161040b135" }, "downloads": -1, "filename": "figgypy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "194acb2c6f69ac13fe804e19ce98ff6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6927, "upload_time": "2015-11-10T16:37:20", "url": "https://files.pythonhosted.org/packages/9d/34/2c36a1d036ef353ed2792506acb8d06f6363d680ae84a8381ec1eb3ef810/figgypy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "9feb7edc1deb217f15ba84b8d0554fda", "sha256": "f35ce7e6f99b87cf275cb19699658893a8c9d87075739d1ffbca84dc7419513e" }, "downloads": -1, "filename": "figgypy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9feb7edc1deb217f15ba84b8d0554fda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9037, "upload_time": "2016-04-18T21:41:38", "url": "https://files.pythonhosted.org/packages/5b/fc/eb4f6802c8a343f6b6b6e67ce2fe40394f1a4cdaf33c55fc9f66e83d8234/figgypy-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b815b19e5537444f37273dbc060745e7", "sha256": "f242c1e2a7f29705f30cefc8049c8ce36ba3438e27f76a18dbdc7d68085be84a" }, "downloads": -1, "filename": "figgypy-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b815b19e5537444f37273dbc060745e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9023, "upload_time": "2016-04-20T15:37:42", "url": "https://files.pythonhosted.org/packages/24/4f/9c1b349b83f2511c98d254b084f1cb1cc26ad3b86c6a6fa0c10beb09af4a/figgypy-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "21135c88439f27fc8e184b3445bcf23d", "sha256": "ac8928156ee1b0c5fb9a918289eb1cc8d3ec92f390e740829d26a0cf03ee4881" }, "downloads": -1, "filename": "figgypy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "21135c88439f27fc8e184b3445bcf23d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9083, "upload_time": "2016-04-21T18:00:34", "url": "https://files.pythonhosted.org/packages/6c/f7/ba05fe4b85c174ce191e81013a3cf00efa16b82181b93d0aa5b66a5adb2c/figgypy-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "b1d02a00a82452964e8c4abf36904f84", "sha256": "2e608d83ea8921997ce511381ae8116d1a366e4b6c03e992def0f37af1089968" }, "downloads": -1, "filename": "figgypy-0.2.4.tar.gz", "has_sig": false, "md5_digest": "b1d02a00a82452964e8c4abf36904f84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9087, "upload_time": "2016-04-22T20:42:00", "url": "https://files.pythonhosted.org/packages/47/68/24ef9f5439fec0370fcfb0628fac9f1c5094186518d9af2fbb9914da868f/figgypy-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "8714f8dbe8fa8583d4bd552313f43350", "sha256": "6bbfcaaaef7cd92094a7eda4645188efe9e71ea1cf09c5719f2c92f32f3fbf31" }, "downloads": -1, "filename": "figgypy-0.2.5.tar.gz", "has_sig": false, "md5_digest": "8714f8dbe8fa8583d4bd552313f43350", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9091, "upload_time": "2016-04-25T17:39:16", "url": "https://files.pythonhosted.org/packages/13/19/082f04b3c37193cde68add3e2edab693c7e3d655ffd05c84810310e9ffdf/figgypy-0.2.5.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "10e26e01e7e8f7106c3c2e0f7a1f1db4", "sha256": "799171d03fcf465463bacec828bcabf7787a4c10e8de0bbf1bfecc96721fa221" }, "downloads": -1, "filename": "figgypy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "10e26e01e7e8f7106c3c2e0f7a1f1db4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10850, "upload_time": "2016-04-28T18:19:20", "url": "https://files.pythonhosted.org/packages/ee/8d/daa4d34a1852dc2d1e4c1c46454945463c87a210a84f5b95136d44b4bf04/figgypy-0.3.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "b4e4c4bbd725d7630fbf1d91c4b85a57", "sha256": "38a488c1f7e666d934838646cb5a887151c0ff8bcea0d0f9b21328ff2b59f3c1" }, "downloads": -1, "filename": "figgypy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b4e4c4bbd725d7630fbf1d91c4b85a57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11761, "upload_time": "2017-01-29T08:00:48", "url": "https://files.pythonhosted.org/packages/f5/e7/509597651fee63bd8adfb7cceb15418900d225c18bebf3b5cc66396171e1/figgypy-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e3b7b90b3145d9b2e42e52bc39044048", "sha256": "fdf4ba0c5eafb4450cfb8bc1a215749ac8f8cba7d78f9ca84bbbece35cfb2094" }, "downloads": -1, "filename": "figgypy-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e3b7b90b3145d9b2e42e52bc39044048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13036, "upload_time": "2017-01-30T00:07:36", "url": "https://files.pythonhosted.org/packages/3c/fc/140c163f6dbf6e9caf409022b4f2066b13fa0e47c5bc2a7cadbfbd72be5b/figgypy-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "e4590b1b9d356e43f6f70de983711546", "sha256": "df45e52d7349df1e6d02211181efcdf01033f75e8a33b6bf8cffe03d7fb8ea1e" }, "downloads": -1, "filename": "figgypy-1.1.1.tar.gz", "has_sig": false, "md5_digest": "e4590b1b9d356e43f6f70de983711546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13041, "upload_time": "2017-01-30T00:24:28", "url": "https://files.pythonhosted.org/packages/b3/a7/9942452dffd3eb190d8f6241e5fd62d4032c8e7fd859f928a1071b61a8a0/figgypy-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "15761e2c7ea7ce0e7abe352caea35612", "sha256": "24d1113dcec12252fd57f0e1f141031fa6e76da76f0b5e9bbf9cd0b8f5b97204" }, "downloads": -1, "filename": "figgypy-1.1.2.tar.gz", "has_sig": false, "md5_digest": "15761e2c7ea7ce0e7abe352caea35612", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13036, "upload_time": "2017-01-30T00:26:07", "url": "https://files.pythonhosted.org/packages/3b/a3/a355bb8a05050990b7cbc1ac73fd8230affcdd90da5b90b0b1d5f4d574e6/figgypy-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "4823648ee1e45504ad6f2502df82b728", "sha256": "cbe3e3aa9ddb8ec0b670b81cf8845d040b19e75dc7de5e58bb4a7e0216036b92" }, "downloads": -1, "filename": "figgypy-1.1.3.tar.gz", "has_sig": false, "md5_digest": "4823648ee1e45504ad6f2502df82b728", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13039, "upload_time": "2017-01-30T00:27:57", "url": "https://files.pythonhosted.org/packages/da/05/178d60188bfefb43d5940f4b82574e5a40247158dff86a365960934be0a6/figgypy-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "8aad67485c56a126a6b4bf407696ff2c", "sha256": "5e6d362dd727578893e138e477aaa0ce3a8ca94f765a353949885a989089e4f5" }, "downloads": -1, "filename": "figgypy-1.1.4.tar.gz", "has_sig": false, "md5_digest": "8aad67485c56a126a6b4bf407696ff2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13043, "upload_time": "2017-01-30T00:31:39", "url": "https://files.pythonhosted.org/packages/c7/c5/02bd7b0ea1979a25e7a5d486c5af4449ccc7242fcab52841c3742e51c803/figgypy-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "bf60ad6e63a0671200d0ee0cb1d46e28", "sha256": "6eb5b062c8c671f7df266171b16e43a077863755e6e1b903b2a6eed5b4545239" }, "downloads": -1, "filename": "figgypy-1.1.5.tar.gz", "has_sig": false, "md5_digest": "bf60ad6e63a0671200d0ee0cb1d46e28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13048, "upload_time": "2017-01-30T01:16:55", "url": "https://files.pythonhosted.org/packages/62/ee/58543d88cdfc8dc8f793316216853b0fdba424b57db1297f74690e60a332/figgypy-1.1.5.tar.gz" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "06121d1845df3f4a9b56e8a573c8a39d", "sha256": "973c43d007423a5e6f341a8ac4d4a003c57765b1a57d6fdb5f905b7b378d91b6" }, "downloads": -1, "filename": "figgypy-1.1.6.tar.gz", "has_sig": false, "md5_digest": "06121d1845df3f4a9b56e8a573c8a39d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12159, "upload_time": "2017-02-21T03:57:58", "url": "https://files.pythonhosted.org/packages/2d/2f/2ced354895c0b492ea70cad6952d95d4d0cf34c9dc8727f87838ec6e13e3/figgypy-1.1.6.tar.gz" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "827ffcc34a9fb0b69621eb822e216b93", "sha256": "ceea612d685e550aa133f93b6a1e4d2fe062dc75784ffc04c76ce5a8a0ba3a9c" }, "downloads": -1, "filename": "figgypy-1.1.7.tar.gz", "has_sig": false, "md5_digest": "827ffcc34a9fb0b69621eb822e216b93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12157, "upload_time": "2017-03-13T18:13:03", "url": "https://files.pythonhosted.org/packages/3d/5b/2e1ec80b3f59317dd1682ed10409c612ff1e73f86471adf1c5bd3917dc84/figgypy-1.1.7.tar.gz" } ], "1.1.9": [ { "comment_text": "", "digests": { "md5": "ac915328fd3fbc61037c3519d1289825", "sha256": "892a265d293a679e728d7f1bb21b33810034a5e48a88388c29bd139f6264b7ee" }, "downloads": -1, "filename": "figgypy-1.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "ac915328fd3fbc61037c3519d1289825", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14347, "upload_time": "2019-09-24T04:39:08", "url": "https://files.pythonhosted.org/packages/2a/3c/cfe61cfe6b2104754f2edd2a58cf85712854cacedf695a53392fff3a1a4b/figgypy-1.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac4e3df429b817fd701786224ee8b672", "sha256": "f0c6aeb0ee0e90a337ae699c1c5e23284626209ce5b35e5e141cf48566f3b32a" }, "downloads": -1, "filename": "figgypy-1.1.9.tar.gz", "has_sig": false, "md5_digest": "ac4e3df429b817fd701786224ee8b672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13878, "upload_time": "2019-09-24T04:39:10", "url": "https://files.pythonhosted.org/packages/65/20/b340071122d0d7d1b0ff954ac3b251250258fab3cd93b079b1926ec5ce67/figgypy-1.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ac915328fd3fbc61037c3519d1289825", "sha256": "892a265d293a679e728d7f1bb21b33810034a5e48a88388c29bd139f6264b7ee" }, "downloads": -1, "filename": "figgypy-1.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "ac915328fd3fbc61037c3519d1289825", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14347, "upload_time": "2019-09-24T04:39:08", "url": "https://files.pythonhosted.org/packages/2a/3c/cfe61cfe6b2104754f2edd2a58cf85712854cacedf695a53392fff3a1a4b/figgypy-1.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac4e3df429b817fd701786224ee8b672", "sha256": "f0c6aeb0ee0e90a337ae699c1c5e23284626209ce5b35e5e141cf48566f3b32a" }, "downloads": -1, "filename": "figgypy-1.1.9.tar.gz", "has_sig": false, "md5_digest": "ac4e3df429b817fd701786224ee8b672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13878, "upload_time": "2019-09-24T04:39:10", "url": "https://files.pythonhosted.org/packages/65/20/b340071122d0d7d1b0ff954ac3b251250258fab3cd93b079b1926ec5ce67/figgypy-1.1.9.tar.gz" } ] }