{ "info": { "author": "Marc Bertens-Nguyen", "author_email": "m.bertens@pe2mbs.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Environment :: Win32 (MS Windows)", "Environment :: X11 Applications", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Build Tools", "Topic :: Utilities" ], "description": "# saiti - Generic YAML/JSON configuration handler\n\nThe saiti package convert a YAML or JSON config file into classes.\nTo be used with our application. It performs validation on parameters \nand checks existence of parameters. The validation is to prevent \ntypos in the configuration. \n\nIt currently supports to follwoing external packages;\n\n* Flask \n* Flask-JWT\n* Flask-JWT-Extended \n* Flask-SQLAlchemy\n* Flask-apscheduler\n\n## Concept\nThe concept is simple and straightforward to use start with a class that \ninherits the ConfigFile class and implement properies that are accessable\nat root file level. For primitive variable (str, int, bool and float) \nimplement both propery getter and setter.\n\n```python\n class MyConfigurationFileObject( ConfigYamlFile ):\n def __init__( self, **kwargs )\n self.__property_name = default value or None\n ... \n ConfigFile.__init__( self, **kwargs )\n return\n\n @property\n def property_name( self ):\n return self.__property_name\n\n @property_name.setter\n def property_name( self, value )\n self.__property_name = value\n return\n```\n\nFor complex properies only a getter needs to be implemented.\n```python \nclass MyConfigurationObject( ConfigProcessor ):\n def __init__( self, **kwargs )\n self.__list_property_name = []\n self.__object_property_name = DerivedConfigProcessor\n self.__list_objects_property_name = DerivedConfigProcessorList\n ... \n\n @property\n def list_property_name( self ):\n return self.__list_property_name\n\n @property\n def object_property_name( self ):\n return self.__object_property_name\n\n @property\n def list_object_property_name( self ):\n return self.__list_object_property_name\n\n```\n\nThe internal variable maybe a simple list with primitive variables, or \nan object derived from the ConfigProcessor or ConfigListProcessor in \ncase of the list of complex objects.\n\nAn object deriving from the ConfigProcess class looks like the following\n```python\nfrom saiti import ConfigProcessor\n\nclass MyConfigurationObject( ConfigProcessor ):\n def __init__( self, **kwargs ):\n self.__property_name = default value or None\n ConfigProcessor.__init__( self, '', **kwargs )\n ... \n\n @property\n def property_name( self ):\n return self.__property_name\n\n @property_name.setter\n def property_name( self, value )\n self.__property_name = value\n return\n```\n\nAn list of complex object needs an implemetation as above as the object \nin the list. And an implementation of the ConfigListProcessor class like \nbelow.\n\n```python\nfrom saiti import ConfigListProcessor \n\nclass MyListConfigurationObject( ConfigListProcessor ):\n def __init__( self, **kwargs ):\n ConfigListProcessor.__init__( self, **kwargs )\n return\n\n def newObject( self, name, obj ):\n return MyConfigurationObject( name )\n\n```\n\nThere are a number of configuration classes in the library available;\n* LoggingConfig; implementing the standard python logging.\n* DatabaseConfig: implementing standard configuration items for access \nto a database with the following properies: \n> * engine\n> * database\n> * username\n> * password\n> * hostname\n> * hostport\n* FlaskConfig: \n\nThere also a number of mixins they can be found in the mixins subpackage;\n* HostPortConfigMixin; with the following properties:\n> * hostname\n> * host same ase hostname\n> * hostport\n> * port same ase hostport\n* UserPassConfigMixin; with the following properties:\n> * username\n> * password\n\n## Special cases\nWhenever a configuration contains keys for configuration objects that \nare variable, therefore not predefined. \n\nIn the derived ConfigProcessor class the variable 'wildcardObject' must \nbe set to a class derived from ConfigProcessor.\n\n## Examples\nSee the example folder\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pe2mbs/saiti", "keywords": "config json yaml logging flask generic custom", "license": "GNU General Public License v2 (GPLv2)", "maintainer": "", "maintainer_email": "", "name": "saiti", "package_url": "https://pypi.org/project/saiti/", "platform": "", "project_url": "https://pypi.org/project/saiti/", "project_urls": { "Documentation": "https://github.com/pe2mbs/saiti/wiki", "Homepage": "https://github.com/pe2mbs/saiti", "Say Thanks!": "https://saythanks.io/to/pe2mbs", "Source": "https://github.com/pe2mbs/saiti/", "Tracker": "https://github.com/pe2mbs/saiti/issues" }, "release_url": "https://pypi.org/project/saiti/0.32.11rc1/", "requires_dist": [ "pyyaml (>=4.2b1)" ], "requires_python": ">=3", "summary": "Generic YAML/JSON configuration reader/writer", "version": "0.32.11rc1" }, "last_serial": 5345543, "releases": { "0.31.3rc1": [ { "comment_text": "", "digests": { "md5": "dfd1e8cfa5af585de84114a9968e5c1d", "sha256": "d31f85e811bd56db4b2e85e315a5101396a1b3cf3a328418f7840d0690e25491" }, "downloads": -1, "filename": "saiti-0.31.3rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "dfd1e8cfa5af585de84114a9968e5c1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 35465, "upload_time": "2019-05-27T20:24:23", "url": "https://files.pythonhosted.org/packages/a4/93/11b49466dc36a8385f28457f3311cf52fe9ca9dd6231268597f6e2a9ad1f/saiti-0.31.3rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "52ef8206c5853b87f3f765b31f148c6f", "sha256": "4145dbf31e40775c5465e1896e6ec05c0e60c8b556da8ed0581cbb5f426315d7" }, "downloads": -1, "filename": "saiti-0.31.3rc1.tar.gz", "has_sig": false, "md5_digest": "52ef8206c5853b87f3f765b31f148c6f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 30958, "upload_time": "2019-05-27T20:22:58", "url": "https://files.pythonhosted.org/packages/8c/1c/18430fc4d18fa48fc37b955fc76cd21bef26239c898f87933f3ec5734dd9/saiti-0.31.3rc1.tar.gz" } ], "0.31.4rc1": [ { "comment_text": "", "digests": { "md5": "226560584244163a5b58e3b6f4429eaf", "sha256": "aef158d9d3c8d4a61ec18ec369a0ca1b9e56d6dce3aa69fb235a8eb570ad1e31" }, "downloads": -1, "filename": "saiti-0.31.4rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "226560584244163a5b58e3b6f4429eaf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 35463, "upload_time": "2019-05-27T20:27:20", "url": "https://files.pythonhosted.org/packages/36/53/92ffa6b5652f44021f12a01f4da3cd627d98abaa36bc886ec254cd5e979d/saiti-0.31.4rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1dd86d0c575d80336ee2e5a60afbc327", "sha256": "dbd4c334e2d565d060adb4583a653e9b79fe2eb4cb7b264c69ee9dd833c59f18" }, "downloads": -1, "filename": "saiti-0.31.4rc1.tar.gz", "has_sig": false, "md5_digest": "1dd86d0c575d80336ee2e5a60afbc327", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31390, "upload_time": "2019-05-27T20:27:22", "url": "https://files.pythonhosted.org/packages/c2/f2/b63658b5678bb4e303f7e5d89a96442915229281eac26d325e7469d62fbd/saiti-0.31.4rc1.tar.gz" } ], "0.31.5rc1": [ { "comment_text": "", "digests": { "md5": "4f99f96e4804d79033d7ff477ed8ce9e", "sha256": "c41b6b87dd9ae361a7a701660bbd4712a17ed3206363e66a88a943511508de14" }, "downloads": -1, "filename": "saiti-0.31.5rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "4f99f96e4804d79033d7ff477ed8ce9e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 35465, "upload_time": "2019-05-27T20:34:01", "url": "https://files.pythonhosted.org/packages/0b/4c/1d44340a9bee93e512e2cd2982ac7aa9af3e39dd01e079fdefb8376298aa/saiti-0.31.5rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d5bb3ac83f6681bdaa1cb492e413411", "sha256": "f65828453c13a8b228f8407d99f5af3b5f27d282ff63fdf9f0fc5650ed7c0ecd" }, "downloads": -1, "filename": "saiti-0.31.5rc1.tar.gz", "has_sig": false, "md5_digest": "0d5bb3ac83f6681bdaa1cb492e413411", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31395, "upload_time": "2019-05-27T20:34:03", "url": "https://files.pythonhosted.org/packages/d7/b4/33eba8fba60fc9b13158245944c27df73e4705846dd83c202fb6ab76cda1/saiti-0.31.5rc1.tar.gz" } ], "0.32.0rc1": [ { "comment_text": "", "digests": { "md5": "ffb51e61315010f547c5cd87875617fe", "sha256": "6178ebb82d2dda36760fd6af3ff0db303f09feffc9bf0cf477fcde4027a3ae99" }, "downloads": -1, "filename": "saiti-0.32.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "ffb51e61315010f547c5cd87875617fe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 35882, "upload_time": "2019-05-31T05:50:16", "url": "https://files.pythonhosted.org/packages/57/9c/3c1ce7c1de06fe68a72459ec06cb7665e10e58f319aab0e00c5576cbb23b/saiti-0.32.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11c284d680d60d3c81f4dee5341afcfc", "sha256": "95fdb60914424dcd6501a12987fd194fea50ddcc0e9b8205f20fde966d9bd732" }, "downloads": -1, "filename": "saiti-0.32.0rc1.tar.gz", "has_sig": false, "md5_digest": "11c284d680d60d3c81f4dee5341afcfc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31761, "upload_time": "2019-05-31T05:50:18", "url": "https://files.pythonhosted.org/packages/6d/5d/9d4cbc255f06f8dd7bb41ea7c9902fe80d4206f6a2a543a3aa7bc9af6efb/saiti-0.32.0rc1.tar.gz" } ], "0.32.10rc1": [ { "comment_text": "", "digests": { "md5": "ec008232a750819daac0cc406b4e7855", "sha256": "bd2b08f5a57f69e8c0feb23a6f0551c9c9261945605ca85410b11efc879eafcc" }, "downloads": -1, "filename": "saiti-0.32.10rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "ec008232a750819daac0cc406b4e7855", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36165, "upload_time": "2019-06-01T06:29:42", "url": "https://files.pythonhosted.org/packages/fb/a6/9b58588de3c733f53bf26c66bfc8a85b559fd87d9df94c16373d1f7330d4/saiti-0.32.10rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "73b20e980505f4d70e5ca7cf1ca6adcb", "sha256": "293e0612e2d6e4c09d2a2fdd0794a821269ee860cb19088166ca5fd8a86c6f4c" }, "downloads": -1, "filename": "saiti-0.32.10rc1.tar.gz", "has_sig": false, "md5_digest": "73b20e980505f4d70e5ca7cf1ca6adcb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32005, "upload_time": "2019-06-01T06:29:43", "url": "https://files.pythonhosted.org/packages/86/c7/651014eec5572272a6f9198c62e40c75ffc13d6231614cb3369adcdfe3d4/saiti-0.32.10rc1.tar.gz" } ], "0.32.11rc1": [ { "comment_text": "", "digests": { "md5": "48b346366ef7ac96173ac28c0e04eaab", "sha256": "c54781a121470e9fde4e789b7916a00c6fc417c7fba227fa7d81a3fa921c4daa" }, "downloads": -1, "filename": "saiti-0.32.11rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "48b346366ef7ac96173ac28c0e04eaab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36163, "upload_time": "2019-06-01T06:33:43", "url": "https://files.pythonhosted.org/packages/dd/9d/e7f105e52179f15cba6cdce78cfc8d2826f7ee2ad2ab619544401eb5b163/saiti-0.32.11rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b993a4c25e9676c642fa6b9356648ff", "sha256": "7a8525b8244bfec1f5008bfe5e696e463a751a472317bc95d7635212ee8b30eb" }, "downloads": -1, "filename": "saiti-0.32.11rc1.tar.gz", "has_sig": false, "md5_digest": "9b993a4c25e9676c642fa6b9356648ff", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32010, "upload_time": "2019-06-01T06:33:45", "url": "https://files.pythonhosted.org/packages/e9/d4/bec61e9fca2f435c7200bf3a9c65f685535ff6dad78b609de2de1a0aee81/saiti-0.32.11rc1.tar.gz" } ], "0.32.1rc1": [ { "comment_text": "", "digests": { "md5": "4d1c0bf42d9869e12e22a0532d7e1498", "sha256": "50c2d12844f077a59ff0d679e174777408eb4d04a3dead44ec5a776b408ef260" }, "downloads": -1, "filename": "saiti-0.32.1rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "4d1c0bf42d9869e12e22a0532d7e1498", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 35944, "upload_time": "2019-05-31T06:06:53", "url": "https://files.pythonhosted.org/packages/2a/15/057f8af548582e6a58d670fee79f4704ff4be90eb6263e0d9b4b713e2997/saiti-0.32.1rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47de8ede1de1113b7e1a9d47859161a8", "sha256": "88995a30883bb7e69a91ce495df2812cbba06371aa72e9955426e50424b2db0d" }, "downloads": -1, "filename": "saiti-0.32.1rc1.tar.gz", "has_sig": false, "md5_digest": "47de8ede1de1113b7e1a9d47859161a8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31807, "upload_time": "2019-05-31T06:06:55", "url": "https://files.pythonhosted.org/packages/32/95/02bd95d45298298c63f21473c486a0cd8cf11a56f0bcd5f70f353cac1475/saiti-0.32.1rc1.tar.gz" } ], "0.32.2rc1": [ { "comment_text": "", "digests": { "md5": "eeb7a62f02b2afabec559554d19a7ce1", "sha256": "554eb8d765138a83e7ea74a415d9e0cc57d943574e54c1b2b8fd0c453c066326" }, "downloads": -1, "filename": "saiti-0.32.2rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "eeb7a62f02b2afabec559554d19a7ce1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 35940, "upload_time": "2019-05-31T06:16:48", "url": "https://files.pythonhosted.org/packages/27/23/66f3c5fedbb2a7c895605309b4fef35404302ee1eb11ca978c2774a0f2fc/saiti-0.32.2rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36c4dff6dd0f1fd7d5cfa33e060d769e", "sha256": "746c96b31fdeacb62b9d24df4cf74edc07748f43789158562c2928537b60993d" }, "downloads": -1, "filename": "saiti-0.32.2rc1.tar.gz", "has_sig": false, "md5_digest": "36c4dff6dd0f1fd7d5cfa33e060d769e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31798, "upload_time": "2019-05-31T06:16:49", "url": "https://files.pythonhosted.org/packages/e2/5f/23d0face882073fa6a3a2cb017b8226e47c41016fbf4579b90d19c85b49c/saiti-0.32.2rc1.tar.gz" } ], "0.32.3rc1": [ { "comment_text": "", "digests": { "md5": "01d95e13935d268c1f02c178eef12900", "sha256": "7fc5d8c03296a2ca5930bb342065a661d1e3b8f88e5928e35169d4096ec1634a" }, "downloads": -1, "filename": "saiti-0.32.3rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "01d95e13935d268c1f02c178eef12900", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 35985, "upload_time": "2019-05-31T06:29:01", "url": "https://files.pythonhosted.org/packages/ff/9a/ad4924436b5a2d5c276fbd39591e0f012103d7c8a8398d84d5b52bf572c5/saiti-0.32.3rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d280ff67c7bc6cfee6bd319c442eed3c", "sha256": "0ed10d9fa6846b15ce58d90eb81b2d440cf6f122a4b0589ce5bed33c122b93f1" }, "downloads": -1, "filename": "saiti-0.32.3rc1.tar.gz", "has_sig": false, "md5_digest": "d280ff67c7bc6cfee6bd319c442eed3c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31847, "upload_time": "2019-05-31T06:29:03", "url": "https://files.pythonhosted.org/packages/b7/ce/286274644abc948b0d108857c7695379a0efc03a1fc109f4b777485338ad/saiti-0.32.3rc1.tar.gz" } ], "0.32.4rc1": [ { "comment_text": "", "digests": { "md5": "590c390df024b88dc12b82857a681585", "sha256": "2b5a0d2ea938e8e42c15b8e6054e2654712399d584f292e4340553fe94387604" }, "downloads": -1, "filename": "saiti-0.32.4rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "590c390df024b88dc12b82857a681585", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36009, "upload_time": "2019-05-31T06:32:19", "url": "https://files.pythonhosted.org/packages/67/76/e733584d26f42592ca61eb0c08a9139231b54ff7562cda09b4d21a88e46d/saiti-0.32.4rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a4ecb65eef27e1ae7083686255f248a", "sha256": "34236974d59d26ae47a7667de4c5a72c2c602fa6cb2266ec33d8d61f0f88c7e2" }, "downloads": -1, "filename": "saiti-0.32.4rc1.tar.gz", "has_sig": false, "md5_digest": "3a4ecb65eef27e1ae7083686255f248a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31877, "upload_time": "2019-05-31T06:32:21", "url": "https://files.pythonhosted.org/packages/57/80/4e1d60993175993c5324ff50ec9002d37f9b0c71faa0d18b335c4793b169/saiti-0.32.4rc1.tar.gz" } ], "0.32.5rc1": [ { "comment_text": "", "digests": { "md5": "a910ab75666fbc2f88a334698e7aadb5", "sha256": "89f799e8e77fa265d665ec95591d46bbe49d3d73d62f3f0120e72a6f908adef1" }, "downloads": -1, "filename": "saiti-0.32.5rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "a910ab75666fbc2f88a334698e7aadb5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36010, "upload_time": "2019-05-31T07:01:12", "url": "https://files.pythonhosted.org/packages/8b/4c/e1104db66c2c413376aecfded62b187bb13bc72992e7ac5ee514b5987247/saiti-0.32.5rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17a49266238228608180847c66d380c5", "sha256": "8184e042f8079e0962ed85bb0c5cd06e0841a3969ea1af3ed1e7d709839a7e59" }, "downloads": -1, "filename": "saiti-0.32.5rc1.tar.gz", "has_sig": false, "md5_digest": "17a49266238228608180847c66d380c5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31869, "upload_time": "2019-05-31T07:01:14", "url": "https://files.pythonhosted.org/packages/d6/f9/88067eb184f72d5f55dedaf1d988651d51c7e15ddad4d1c3763de76beeb8/saiti-0.32.5rc1.tar.gz" } ], "0.32.6rc1": [ { "comment_text": "", "digests": { "md5": "64f850053d6df39744a6858d4a8f2fbc", "sha256": "51bbdca4d0267eb5348b319bfab5ae4fd50b5134ffb1b3fbacaef825adca498b" }, "downloads": -1, "filename": "saiti-0.32.6rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "64f850053d6df39744a6858d4a8f2fbc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36024, "upload_time": "2019-05-31T07:03:46", "url": "https://files.pythonhosted.org/packages/36/5c/a21b1ff8b61beae49d427b679d44989feba6f18711f0d3f95a27167fa1c2/saiti-0.32.6rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95f70f465122aef08aabf8990b6c0724", "sha256": "e66b410045bafce64697c7439f3ac7d82a2464adac721b788d43cf8e95798c7f" }, "downloads": -1, "filename": "saiti-0.32.6rc1.tar.gz", "has_sig": false, "md5_digest": "95f70f465122aef08aabf8990b6c0724", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31882, "upload_time": "2019-05-31T07:03:48", "url": "https://files.pythonhosted.org/packages/49/9b/cf0d0a3cc650bc6ca01b4fd65c9377ef8bca46648a7e171060c9cbeb1e71/saiti-0.32.6rc1.tar.gz" } ], "0.32.7rc1": [ { "comment_text": "", "digests": { "md5": "6657eed3b14d6d02a14be10fd52edaa1", "sha256": "911e69ec0d7ebd5931618ad70ef6b2caecd948e71f149a7e1c81aa910669095f" }, "downloads": -1, "filename": "saiti-0.32.7rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "6657eed3b14d6d02a14be10fd52edaa1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36025, "upload_time": "2019-05-31T07:05:49", "url": "https://files.pythonhosted.org/packages/c4/f5/f98eb39d47b95061d9fdf31e8fced3eba2d7f0bec47cf78e77982a36aea7/saiti-0.32.7rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39ce6db88ce738df40587265c1d16fbc", "sha256": "19d837b4001d1d9ee5e30524769765ae6aec5268905715fdc1910c1436692e1a" }, "downloads": -1, "filename": "saiti-0.32.7rc1.tar.gz", "has_sig": false, "md5_digest": "39ce6db88ce738df40587265c1d16fbc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31885, "upload_time": "2019-05-31T07:05:50", "url": "https://files.pythonhosted.org/packages/7d/0f/36b8109f903b1248fa0bb154780a4318c897cf9516ad4fda5dfffe17dc87/saiti-0.32.7rc1.tar.gz" } ], "0.32.8rc1": [ { "comment_text": "", "digests": { "md5": "5e0da98ee9aab616c0f5107a8a2c4c13", "sha256": "8046f70242a2953dca03fcefb4c03589a35310655621f66a55e48160d41df4c1" }, "downloads": -1, "filename": "saiti-0.32.8rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "5e0da98ee9aab616c0f5107a8a2c4c13", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36091, "upload_time": "2019-05-31T07:13:06", "url": "https://files.pythonhosted.org/packages/44/a6/5acf51d899ae126a41a0ffb0ee550bf617e68c59ec31bfc132c162f1beb4/saiti-0.32.8rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2449c79bda36130e007d63199e49688", "sha256": "ec6ecf17a98b1f68e1733e98015e605fa2c9d72df3627a463a9cdbd16e669f2d" }, "downloads": -1, "filename": "saiti-0.32.8rc1.tar.gz", "has_sig": false, "md5_digest": "c2449c79bda36130e007d63199e49688", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31944, "upload_time": "2019-05-31T07:13:08", "url": "https://files.pythonhosted.org/packages/a8/f3/1fb48738333911e1d80b223c5bdf782a286af61c7d76d27da51f3b51a8df/saiti-0.32.8rc1.tar.gz" } ], "0.32.9rc1": [ { "comment_text": "", "digests": { "md5": "e6604792e4717169a960ab8b8cda976e", "sha256": "7284ffb5e5f199fb80f132c991709c2b9d2a0e49361d04bccfef3e1afa1c9cc5" }, "downloads": -1, "filename": "saiti-0.32.9rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "e6604792e4717169a960ab8b8cda976e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36162, "upload_time": "2019-06-01T05:58:56", "url": "https://files.pythonhosted.org/packages/7c/1d/3411563b94dbc3d137ff6ea69fd13975c053299ed148c53873ba6bcf367b/saiti-0.32.9rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab1835eab3e3798e03794ff97ca8e7be", "sha256": "0ef754435750e01b2d104acf4a87b45e7be95a5b26b31f50a0f47dd45743267b" }, "downloads": -1, "filename": "saiti-0.32.9rc1.tar.gz", "has_sig": false, "md5_digest": "ab1835eab3e3798e03794ff97ca8e7be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32017, "upload_time": "2019-06-01T05:58:57", "url": "https://files.pythonhosted.org/packages/51/06/e88613fd36eb8218a20191141533020ea8d88bc7b4448590b5dabe2a55b2/saiti-0.32.9rc1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "48b346366ef7ac96173ac28c0e04eaab", "sha256": "c54781a121470e9fde4e789b7916a00c6fc417c7fba227fa7d81a3fa921c4daa" }, "downloads": -1, "filename": "saiti-0.32.11rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "48b346366ef7ac96173ac28c0e04eaab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 36163, "upload_time": "2019-06-01T06:33:43", "url": "https://files.pythonhosted.org/packages/dd/9d/e7f105e52179f15cba6cdce78cfc8d2826f7ee2ad2ab619544401eb5b163/saiti-0.32.11rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b993a4c25e9676c642fa6b9356648ff", "sha256": "7a8525b8244bfec1f5008bfe5e696e463a751a472317bc95d7635212ee8b30eb" }, "downloads": -1, "filename": "saiti-0.32.11rc1.tar.gz", "has_sig": false, "md5_digest": "9b993a4c25e9676c642fa6b9356648ff", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32010, "upload_time": "2019-06-01T06:33:45", "url": "https://files.pythonhosted.org/packages/e9/d4/bec61e9fca2f435c7200bf3a9c65f685535ff6dad78b609de2de1a0aee81/saiti-0.32.11rc1.tar.gz" } ] }