{ "info": { "author": "Ivan Zakrevsky", "author_email": "ivzak@yandex.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "============================================\nAscetic, a lightweight Python datamapper ORM\n============================================\n\nAscetic exists as a super-lightweight datamapper ORM (Object-Relational Mapper) for Python.\n\n* Home Page: https://bitbucket.org/emacsway/ascetic\n* Docs: https://ascetic.readthedocs.io/\n* Browse source code (canonical repo): https://bitbucket.org/emacsway/ascetic/src\n* GitHub mirror: https://github.com/emacsway/ascetic\n* Get source code (canonical repo): ``git clone https://bitbucket.org/emacsway/ascetic.git``\n* Get source code (mirror): ``git clone https://github.com/emacsway/ascetic.git``\n* PyPI: https://pypi.python.org/pypi/ascetic\n\nAscetic ORM based on \"`Data Mapper `_\" pattern.\nIt also supports \"`Active Record `_\" pattern, but only as a wrapper, the model class is fully free from any service logic.\nAscetic ORM follows the `KISS principle `_.\nHas automatic population of fields from database (see the example below) and minimal size.\nYou do not have to specify the columns in the class. This follows the `DRY `_ principle. \nAscetic ORM as small as possible.\n\nInside ascetic.contrib (currently under development) you can find the next solutions:\n\n- multilingual\n- polymorphic relations\n- polymorphic models (supports for \"`Single Table Inheritance `_\", \"`Concrete Table Inheritance `_\" and \"`Class Table Inheritance `_\" aka Django \"`Multi-table inheritance `_\")\n- \"Materialized Path\" implementation to handle tree structures\n- versioning (which stores only diff, not content copy)\n\nAll extensions support composite primary/foreign keys.\n\n\"`Identity Map `__\" has SERIALIZABLE isolation level by default.\n\nWhat Ascetic ORM does not?\nAscetic ORM does not make any data type conversions (use connection features like `this `__), and does not has \"`Unit of Work `__\".\nI recommend using a `Storm ORM `__, if you need these features.\n\nAscetic ORM is released under the MIT License (see LICENSE file for details).\n\nThis project is currently under development, and not stable.\nIf you are looking for stable KISS-style ORM, pay attention to `Storm ORM `__.\n\n\nPostgreSQL Example\n===================\n\nUsing these tables:\n\n::\n\n CREATE TABLE ascetic_tests_models_author (\n id serial NOT NULL PRIMARY KEY,\n first_name VARCHAR(40) NOT NULL,\n last_name VARCHAR(40) NOT NULL,\n bio TEXT\n );\n CREATE TABLE books (\n id serial NOT NULL PRIMARY KEY,\n title VARCHAR(255),\n author_id integer REFERENCES ascetic_tests_models_author(id) ON DELETE CASCADE\n );\n\nYou can configure in one the following ways:\n\n\\1. Put in your PYTHONPATH file ascetic_settings.py with your settings.\nSee file ascetic/settings.py for more details.\n\n\\2. Define settings module in evironment variable ASCETIC_SETTINGS.\n\n\\3. Call ascetic.settings.configure(), for example::\n\n import ascetic.settings.configure\n ascetic.settings.configure({\n 'DATABASES': {\n 'default': {\n 'engine': \"postgresql\",\n 'user': \"devel\",\n 'database': \"devel_ascetic\",\n 'password': \"devel\",\n 'debug': True,\n 'initial_sql': \"SET NAMES 'UTF8';\",\n }\n }\n })\n \nWe setup our objects like so:\n\n::\n\n from ascetic.model import Model\n from ascetic.mappers import get_mapper\n from ascetic.relations import ForeignKey, OneToMany\n\n class Author(Model):\n class Mapper(object):\n defaults = {'bio': 'No bio available'}\n validations = {'first_name': (\n lambda v: len(v) > 1 or \"Too short first name\",\n lambda self, key, value: value != self.last_name or \"Please, enter another first name\",\n )}\n\n class Book(Model):\n author = ForeignKey(Author, related_name='books')\n\n class Mapper(object):\n db_table = 'books'\n\nNow we can create, retrieve, update and delete entries in our database.\nCreation\n\n::\n\n james = Author(first_name='James', last_name='Joyce')\n get_mapper(Author).save(james) # Datamapper way\n\n u = Book(title='Ulysses', author_id=james.id)\n u.save() # Use ActiveRecord wrapper\n\n\nRetrieval\n==========\n\n::\n\n a = Author.get(1)\n a.first_name # James\n a.books # Returns list of author's books\n\n # Returns a list, using LIMIT based on slice\n a = Author.q[:10] # LIMIT 0, 10\n a = Author.q[20:30] # LIMIT 20, 10\n\n\nUpdating\n=========\n\n::\n\n a = Author.get(1)\n a.bio = 'What a crazy guy! Hard to read but... wow!'\n a.save()\n\n\nDeleting\n=========\n\n::\n\n a.delete()\n\n\n`SQLBuilder `_ integration\n===============================================================================\n\n::\n\n object_list = Book.q.tables(\n (Book.s & Author.s).on(Book.s.author_id == Author.s.id)\n ).where(\n (Author.s.first_name != 'James') & (Author.s.last_name != 'Joyce')\n )[:10]\n\nQuery object based on `sqlbuilder.smartsql `_, see `more info `_.\n\n\nSignals support\n================\n\n* pre_init\n* post_init\n* pre_save\n* post_save\n* pre_delete\n* post_delete\n* class_prepared\n\n\nMore info\n=========\n\nSee more info in docs: https://ascetic.readthedocs.io/\n\n\nWeb\n====\n\nYou can use Ascetic ORM with lightweight web-frameworks, like `wheezy.web `_, `Bottle `_, `Tornado `_, `pysi `_, etc.\n\n\nGratitude\n==========\n\n| Forked from `https://github.com/lucky/autumn `_\n| Thanks to `Jared Kuolt (lucky) `_\n\n\nOther projects\n===============\n\nSee also:\n\n* `Storm `_ (properties from class) - excellent and simple ORM!\n* Article (in English) \"`Why I prefer Storm ORM for Python `_\"\n* Article (in Russian) \"`\u041f\u043e\u0447\u0435\u043c\u0443 \u044f \u0432\u044b\u0431\u0438\u0440\u0430\u044e Storm ORM \u0434\u043b\u044f Python `_\"\n* Article (in English) \"`Implementation of Repository pattern for browser\u2019s JavaScript `_\"\n* Article (in Russian) \"`\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 Repository \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u043c JavaScript `_\"\n* `SQLAlchemy `_ (scheme from class or database, see \"`autoload `__\" option)\n* `Openorm `_ (lightweight datamapper), `miror `__\n* `SQLObject `_ (scheme from class or database, see \"fromDatabase\" option)\n* `Peewee `_ (scheme from class)\n* `Bazaar ORM `_\n* `Twistar `_ (scheme from database), provides asynchronous DB interaction\n* `Activemodel `_ (scheme from database)\n* `ActiveRecord `_ like ORM under 200 lines (scheme from database)\n* `A Query Language extension for Python `_: Query files, objects, SQL and NoSQL databases with a built-in query language\n* `simpleql `_ SQL table using nothing but Python to build the query\n* `Generator expressions `__ for database requests (Python recipe)\n* `Object Relational Mappers (ORMs) `_\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/emacsway/ascetic", "keywords": "ORM Database DataMapper SQL", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "ascetic", "package_url": "https://pypi.org/project/ascetic/", "platform": "", "project_url": "https://pypi.org/project/ascetic/", "project_urls": { "Homepage": "https://bitbucket.org/emacsway/ascetic" }, "release_url": "https://pypi.org/project/ascetic/0.7.2.40/", "requires_dist": null, "requires_python": "", "summary": "Lightweight python datamapper ORM (Object-relational mapper).", "version": "0.7.2.40" }, "last_serial": 3440015, "releases": { "0.7.2.15": [ { "comment_text": "", "digests": { "md5": "d9a73612f97588fdfb1c7c93cbde3db6", "sha256": "1f89ae891a7891fd33759fde1b35479d4bde5614117d84eb464036192c576b55" }, "downloads": -1, "filename": "ascetic-0.7.2.15.tar.gz", "has_sig": false, "md5_digest": "d9a73612f97588fdfb1c7c93cbde3db6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34528, "upload_time": "2015-09-05T09:59:50", "url": "https://files.pythonhosted.org/packages/82/bd/d62fd8b523c21386fff457ec79fd7ec8bd4337ace90d74979208f0969d05/ascetic-0.7.2.15.tar.gz" } ], "0.7.2.16": [ { "comment_text": "", "digests": { "md5": "81fdcec7c7f1c8fe52f6be7f0d914432", "sha256": "a729328eb75e131ed6d6f65d565eee6a224b1750b167933ceb813d8e1121fe80" }, "downloads": -1, "filename": "ascetic-0.7.2.16.tar.gz", "has_sig": false, "md5_digest": "81fdcec7c7f1c8fe52f6be7f0d914432", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34583, "upload_time": "2015-09-05T21:36:51", "url": "https://files.pythonhosted.org/packages/57/6b/cb7c9086c6191494029d2a7a2d889e0b7e658f47d4da3fd2252721c7070f/ascetic-0.7.2.16.tar.gz" } ], "0.7.2.17": [ { "comment_text": "", "digests": { "md5": "1f914f567f32cc7047426abdde8dfe1e", "sha256": "a1966472babf8f48d991634514f3a2b8a0e9fe2a796618626ce038c275c03183" }, "downloads": -1, "filename": "ascetic-0.7.2.17.tar.gz", "has_sig": false, "md5_digest": "1f914f567f32cc7047426abdde8dfe1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34415, "upload_time": "2015-09-07T00:52:14", "url": "https://files.pythonhosted.org/packages/df/8c/c47ddf805a92594efbfd42538da94ba4d5a0afb8195f7c13ab810fe7cc45/ascetic-0.7.2.17.tar.gz" } ], "0.7.2.18": [ { "comment_text": "", "digests": { "md5": "81ea1dcf2ddb9f80eb613572bd60dfec", "sha256": "00b92241091ca8f9a4d595c2c9c88f03c6064ba4e612f16ce5ab326b6df0a70a" }, "downloads": -1, "filename": "ascetic-0.7.2.18.tar.gz", "has_sig": false, "md5_digest": "81ea1dcf2ddb9f80eb613572bd60dfec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34455, "upload_time": "2015-09-10T22:47:14", "url": "https://files.pythonhosted.org/packages/c4/57/b49bc165db7c6239ef2d4eb01b8ab941000e759dfe5c1511226b7b9e62cf/ascetic-0.7.2.18.tar.gz" } ], "0.7.2.19": [ { "comment_text": "", "digests": { "md5": "e1aa9820381a80761daf53018fde9950", "sha256": "60d6161b99a5197bf0a78d167734a47c9e4184fdb805349ba24cff155fd27d54" }, "downloads": -1, "filename": "ascetic-0.7.2.19.tar.gz", "has_sig": false, "md5_digest": "e1aa9820381a80761daf53018fde9950", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34919, "upload_time": "2015-09-11T16:12:54", "url": "https://files.pythonhosted.org/packages/2f/2f/7a71dfc872437135f18bafb483229655feb452850d5d40eef359af288e65/ascetic-0.7.2.19.tar.gz" } ], "0.7.2.20": [ { "comment_text": "", "digests": { "md5": "efc2216f83c7dee9314a530e8042ae1f", "sha256": "d5d85dbfbb11a95ae52c585bb1930bed74646018790e5fb556d87dbbef59bdf0" }, "downloads": -1, "filename": "ascetic-0.7.2.20.tar.gz", "has_sig": false, "md5_digest": "efc2216f83c7dee9314a530e8042ae1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34923, "upload_time": "2015-09-16T18:59:43", "url": "https://files.pythonhosted.org/packages/26/c5/7919207b127e8337f58eb7a449e45ee48c87f6609495e0acc33545d03609/ascetic-0.7.2.20.tar.gz" } ], "0.7.2.21": [ { "comment_text": "", "digests": { "md5": "54b1f0990ae11479891dc5da6d26d907", "sha256": "143f040c55e2fbd88671e00211e6b6b6711312d299975950e19b18c05b8ab2f1" }, "downloads": -1, "filename": "ascetic-0.7.2.21.tar.gz", "has_sig": false, "md5_digest": "54b1f0990ae11479891dc5da6d26d907", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35092, "upload_time": "2015-09-16T22:10:46", "url": "https://files.pythonhosted.org/packages/5c/f5/fa05c1458820919cfdca4d777f93e91a0a0ca6e4ee089b5aca5b226ee930/ascetic-0.7.2.21.tar.gz" } ], "0.7.2.22": [ { "comment_text": "", "digests": { "md5": "644343820b0da916eb7956770140c4f7", "sha256": "b7efe7a6643c71cc8f6cdfa6b2accae31efac9c23e0a1e6d07496f2939093f87" }, "downloads": -1, "filename": "ascetic-0.7.2.22.tar.gz", "has_sig": false, "md5_digest": "644343820b0da916eb7956770140c4f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35295, "upload_time": "2015-09-18T00:47:09", "url": "https://files.pythonhosted.org/packages/8b/2f/c26e66caba1d01385741103df3ae9e33c41f7ba5386dbc31429bc560aea9/ascetic-0.7.2.22.tar.gz" } ], "0.7.2.23": [ { "comment_text": "", "digests": { "md5": "758c2eb688e04798953468612e107e9a", "sha256": "39b856a2b419659fa2f412cc1c294f2019d4caef79357b432439139cf8f52847" }, "downloads": -1, "filename": "ascetic-0.7.2.23.tar.gz", "has_sig": false, "md5_digest": "758c2eb688e04798953468612e107e9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35378, "upload_time": "2015-09-20T00:49:09", "url": "https://files.pythonhosted.org/packages/e7/56/19aaacc70afcea161070a0ea95563b40f1f660157880c74c0a802daa768a/ascetic-0.7.2.23.tar.gz" } ], "0.7.2.24": [ { "comment_text": "", "digests": { "md5": "3782616312c79d04d594163c0a3f49a8", "sha256": "2c1132173b1aa4f0296fcc57c50658beb15b0be78b06be1fc7aabd0c0199a68d" }, "downloads": -1, "filename": "ascetic-0.7.2.24.tar.gz", "has_sig": false, "md5_digest": "3782616312c79d04d594163c0a3f49a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35262, "upload_time": "2015-10-04T01:24:02", "url": "https://files.pythonhosted.org/packages/db/f4/a603b2d7478b7568f494dd6593c73985cbf960b99936a19406da37533855/ascetic-0.7.2.24.tar.gz" } ], "0.7.2.25": [ { "comment_text": "", "digests": { "md5": "90a3a5695b6867cf938c7bfe53b52239", "sha256": "c9b83da484b9025b67b2cda1d48453470403ec72e67bb61d4d8837856beccac6" }, "downloads": -1, "filename": "ascetic-0.7.2.25.tar.gz", "has_sig": false, "md5_digest": "90a3a5695b6867cf938c7bfe53b52239", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35221, "upload_time": "2015-10-16T14:29:10", "url": "https://files.pythonhosted.org/packages/8f/0e/9c09ed7578634b19ec86378a244bc59232275fabbff39208fbe79c9802f8/ascetic-0.7.2.25.tar.gz" } ], "0.7.2.26": [ { "comment_text": "", "digests": { "md5": "a207b90ba4a3d4b77efefeebcd56ff6f", "sha256": "f8eb82a53666f6bdebf45afef32ce6451c257e06ee162f36ea4789ef2ed0e5fc" }, "downloads": -1, "filename": "ascetic-0.7.2.26.tar.gz", "has_sig": false, "md5_digest": "a207b90ba4a3d4b77efefeebcd56ff6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35677, "upload_time": "2015-11-02T15:17:35", "url": "https://files.pythonhosted.org/packages/fb/f8/2e7a35c2d2d6d38e62115ecd51fd3e48f548137de27091fcd383dae93490/ascetic-0.7.2.26.tar.gz" } ], "0.7.2.27": [ { "comment_text": "", "digests": { "md5": "de22ee3e4e897cf9b23e760ac3bf0e43", "sha256": "b7c93c7929e3ebe5eaf1bbb12a247fabc6c0cf5af2c86acceb5573c329ae37d8" }, "downloads": -1, "filename": "ascetic-0.7.2.27.tar.gz", "has_sig": false, "md5_digest": "de22ee3e4e897cf9b23e760ac3bf0e43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31966, "upload_time": "2015-12-15T23:04:27", "url": "https://files.pythonhosted.org/packages/c3/7f/ae1c8577958c564e46f62455c6ab41608e633f0b4261ebd38dc43947984b/ascetic-0.7.2.27.tar.gz" } ], "0.7.2.28": [ { "comment_text": "", "digests": { "md5": "f5e45930c60c1924d1d987249f42c54a", "sha256": "6830c6c4432e51bdaf5941710d342f55856d457b36d1156f83883cd75bca538b" }, "downloads": -1, "filename": "ascetic-0.7.2.28.tar.gz", "has_sig": false, "md5_digest": "f5e45930c60c1924d1d987249f42c54a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32683, "upload_time": "2015-12-26T03:29:49", "url": "https://files.pythonhosted.org/packages/cc/9f/16da9d0fc83ad7debad9394a0653171892a5bd3a5aa067e8b7cf898880b4/ascetic-0.7.2.28.tar.gz" } ], "0.7.2.29": [ { "comment_text": "", "digests": { "md5": "3ba5155852ca28773709e620b53fda39", "sha256": "2c6ba93f2ee4344c239b6c566e9d12ee85eb2dc5a76b084fddbfbc53a5f90ed0" }, "downloads": -1, "filename": "ascetic-0.7.2.29.tar.gz", "has_sig": false, "md5_digest": "3ba5155852ca28773709e620b53fda39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32998, "upload_time": "2016-05-11T11:58:20", "url": "https://files.pythonhosted.org/packages/aa/0e/96599743a3e28d798addbe9e2a26c9bd003310764b47ec1666309910c4bd/ascetic-0.7.2.29.tar.gz" } ], "0.7.2.30": [ { "comment_text": "", "digests": { "md5": "8384e345d2a20b1605bf40157ff0f107", "sha256": "91fd8d3a24fcf5b00c1c0b93968d02fb9a72e06688e06c4a0c217ac1a3f69450" }, "downloads": -1, "filename": "ascetic-0.7.2.30.tar.gz", "has_sig": false, "md5_digest": "8384e345d2a20b1605bf40157ff0f107", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32994, "upload_time": "2016-05-11T13:01:39", "url": "https://files.pythonhosted.org/packages/9c/08/fab63c95432425b490567dadaea88af7cfdc9ece0361d9c379b3e26e6e7b/ascetic-0.7.2.30.tar.gz" } ], "0.7.2.31": [ { "comment_text": "", "digests": { "md5": "3efcb539406f8f406f57fb289a262ee8", "sha256": "402e05370859c96ff7b9eccde719b4d8a9e89b3cf04d54b105be0aa77dcb0c37" }, "downloads": -1, "filename": "ascetic-0.7.2.31.tar.gz", "has_sig": false, "md5_digest": "3efcb539406f8f406f57fb289a262ee8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33014, "upload_time": "2016-05-11T19:47:05", "url": "https://files.pythonhosted.org/packages/e0/be/1e09cc0cea70d0e78c2cae9e1bbf5990fdca2e7fb385b31ca7cff79dff82/ascetic-0.7.2.31.tar.gz" } ], "0.7.2.33": [ { "comment_text": "", "digests": { "md5": "101be2815dddcd42921cea354048b935", "sha256": "0901b1844b0cad83694463f25e354e438adc0e3a6e797c3dd76a11b88bfb6f38" }, "downloads": -1, "filename": "ascetic-0.7.2.33.tar.gz", "has_sig": false, "md5_digest": "101be2815dddcd42921cea354048b935", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38714, "upload_time": "2017-03-26T02:43:16", "url": "https://files.pythonhosted.org/packages/d5/b4/e4358cf9f10b8f65b39a1405fd868350679c5686b68834414cc2ee645a06/ascetic-0.7.2.33.tar.gz" } ], "0.7.2.34": [ { "comment_text": "", "digests": { "md5": "1d59a497e4833dc75a5f010c11d0dfd4", "sha256": "a9cb8b6bd65365a39bb25e62dee6df73ac4d43f65dd3d20c2483932880b43a59" }, "downloads": -1, "filename": "ascetic-0.7.2.34.tar.gz", "has_sig": false, "md5_digest": "1d59a497e4833dc75a5f010c11d0dfd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38233, "upload_time": "2017-03-26T08:28:52", "url": "https://files.pythonhosted.org/packages/c0/f6/3188bfac5a6426cef00b2959fd2c8b451cbb02973f2b7776c9dbf104fa2d/ascetic-0.7.2.34.tar.gz" } ], "0.7.2.35": [ { "comment_text": "", "digests": { "md5": "39be6a67a6648d7c711cf62e7e35242b", "sha256": "9687b883fa91a19dcf6a1d08d01cb17e0b62a673f292d4ca7a52ac9534cf4d20" }, "downloads": -1, "filename": "ascetic-0.7.2.35.tar.gz", "has_sig": false, "md5_digest": "39be6a67a6648d7c711cf62e7e35242b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38383, "upload_time": "2017-07-26T03:51:54", "url": "https://files.pythonhosted.org/packages/47/ca/ea0c8ef3a85f2a28c1e5347438bf3b8084e8f667b6bb5dbdfc0020214600/ascetic-0.7.2.35.tar.gz" } ], "0.7.2.36": [ { "comment_text": "", "digests": { "md5": "fa8034c3ed73086728b3387da5966638", "sha256": "f2a139f482e98b7ad60c4fb83d1e57db2a962e47317b5d3a531c5190aca5d1db" }, "downloads": -1, "filename": "ascetic-0.7.2.36.tar.gz", "has_sig": false, "md5_digest": "fa8034c3ed73086728b3387da5966638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38398, "upload_time": "2017-07-28T03:43:44", "url": "https://files.pythonhosted.org/packages/6f/18/b94e51e96b5ae77523307cd372a1c0950703d4c3c831240302c07675ad57/ascetic-0.7.2.36.tar.gz" } ], "0.7.2.37": [ { "comment_text": "", "digests": { "md5": "9db2ce12a8ba525cd0bf12caa9689694", "sha256": "7c8a4fa359df278f6645ef6c87edc2c5ed9432ed078abda13bff73cc70056674" }, "downloads": -1, "filename": "ascetic-0.7.2.37.tar.gz", "has_sig": false, "md5_digest": "9db2ce12a8ba525cd0bf12caa9689694", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38429, "upload_time": "2017-10-25T00:24:37", "url": "https://files.pythonhosted.org/packages/73/4c/f9df8f1c33b1c2b03c6242e16b2b1db47fc589d71962bd31778003f147e9/ascetic-0.7.2.37.tar.gz" } ], "0.7.2.38": [ { "comment_text": "", "digests": { "md5": "1251abc49f21d74fc71ba072f9952a7c", "sha256": "7b279395bf872cd6460f4fa779685d032c903e8c9709cc6286aefbdfc88015c0" }, "downloads": -1, "filename": "ascetic-0.7.2.38.tar.gz", "has_sig": false, "md5_digest": "1251abc49f21d74fc71ba072f9952a7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38934, "upload_time": "2017-11-20T03:47:54", "url": "https://files.pythonhosted.org/packages/78/b7/5a934c4ad9dc22b7fe4c89727971cfdad6c5186774f43d321e3c36588c9e/ascetic-0.7.2.38.tar.gz" } ], "0.7.2.39": [ { "comment_text": "", "digests": { "md5": "4395e7b609a71ab5929a2623f039a337", "sha256": "abf0e77e359e843dbbee48c5d505172f4cdf162b71735c9acdf776a30201021c" }, "downloads": -1, "filename": "ascetic-0.7.2.39.tar.gz", "has_sig": false, "md5_digest": "4395e7b609a71ab5929a2623f039a337", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39696, "upload_time": "2017-11-20T22:28:02", "url": "https://files.pythonhosted.org/packages/cf/22/5a83e295151e6b087c4722494b72c97d4bfdbe529f01930900e719a78488/ascetic-0.7.2.39.tar.gz" } ], "0.7.2.40": [ { "comment_text": "", "digests": { "md5": "50d752cca178a420b7b8c59abd3d4940", "sha256": "b313297f1c3377b628155586e093c220cd8a1dfc6c6c7b7aa3e871b0a4f3abe9" }, "downloads": -1, "filename": "ascetic-0.7.2.40.tar.gz", "has_sig": false, "md5_digest": "50d752cca178a420b7b8c59abd3d4940", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40611, "upload_time": "2017-12-24T04:48:52", "url": "https://files.pythonhosted.org/packages/f9/1f/b99e21acfc7620b2f5189ab1319240aa10483e0bfa5927e7c6afb993840d/ascetic-0.7.2.40.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "50d752cca178a420b7b8c59abd3d4940", "sha256": "b313297f1c3377b628155586e093c220cd8a1dfc6c6c7b7aa3e871b0a4f3abe9" }, "downloads": -1, "filename": "ascetic-0.7.2.40.tar.gz", "has_sig": false, "md5_digest": "50d752cca178a420b7b8c59abd3d4940", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40611, "upload_time": "2017-12-24T04:48:52", "url": "https://files.pythonhosted.org/packages/f9/1f/b99e21acfc7620b2f5189ab1319240aa10483e0bfa5927e7c6afb993840d/ascetic-0.7.2.40.tar.gz" } ] }