{ "info": { "author": "Jonathan Eunice", "author_email": "jonathan.eunice@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "\n| |travisci| |version| |versions| |impls| |wheel| |coverage| |br-coverage|\n\n.. |travisci| image:: https://travis-ci.org/jonathaneunice/mementos.svg?branch=master\n :alt: Travis CI build status\n :target: https://travis-ci.org/jonathaneunice/mementos\n\n.. |version| image:: http://img.shields.io/pypi/v/mementos.svg?style=flat\n :alt: PyPI Package latest release\n :target: https://pypi.org/project/mementos\n\n.. |versions| image:: https://img.shields.io/pypi/pyversions/mementos.svg\n :alt: Supported versions\n :target: https://pypi.org/project/mementos\n\n.. |impls| image:: https://img.shields.io/pypi/implementation/mementos.svg\n :alt: Supported implementations\n :target: https://pypi.org/project/mementos\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/mementos.svg\n :alt: Wheel packaging support\n :target: https://pypi.org/project/mementos\n\n.. |coverage| image:: https://img.shields.io/badge/test_coverage-100%25-6600CC.svg\n :alt: Test line coverage\n :target: https://pypi.org/project/mementos\n\n.. |br-coverage| image:: https://img.shields.io/badge/branch_coverage-100%25-6600CC.svg\n :alt: Test branch coverage\n :target: https://pypi.org/project/mementos\n\nA quick way to make Python classes automatically memoize (a.k.a. cache) their\ninstances based on the arguments with which they are instantiated (i.e. args to\ntheir ``__init__``).\n\nIt's a simple way to avoid repetitively creating expensive-to-create objects,\nand to make sure objects that have a natural 'identity' are created only once.\nIf you want to be fancy, ``mementos`` implements the `Multiton\n`_ software pattern.\n\nUsage\n=====\n\nSay you have a class ``Thing`` that requires expensive computation to create, or\nthat should be created only once. Easy peasy::\n\n from mementos import mementos\n\n class Thing(mementos):\n\n def __init__(self, name):\n self.name = name\n\n ...\n\nThen ``Thing`` objects will be memoized::\n\n t1 = Thing(\"one\")\n t2 = Thing(\"one\")\n assert t1 is t2 # same instantiation args => same object\n\n\nUnder the Hood\n==============\n\nWhen you define a class ``class Thing(mementos)``, it looks like you're\nsubclassing the ``mementos`` class. Not really. ``mementos`` is a metaclass,\nnot a superclass. The full expression is equivalent to ``class\nThing(with_metaclass(MementoMetaclass, object))``, where ``with_metaclass`` and\n``MementoMetaclass`` are also provided by the ``mementos`` module. \n\nMetaclasses are not normal superclasses; instead they define how a class is\nconstructed. In effect, they define the mysterious ``__new__`` method that most\nclasses don't bother defining. In this case, ``mementos`` says in effect, \"hey,\nlook in the cache for this object before you create another one.\"\n\nIf you like, you can use the longer invocation with the full ``with_metaclass``\nspec, but it's not necessary unless you define your own memoizing functions.\nMore on that below.\n\nPython 2 vs. Python 3\n=====================\n\nPython 2 and 3 have different forms for specifying metaclasses.\nIn Python 2::\n\n from mementos import MementoMetaclass\n\n class Thing(object):\n\n __metaclass__ = MementoMetaclass # now I'm memoized!\n\n ...\n\nWhereas Python 3 uses::\n\n class Thing3(object, metaclass=MementoMetaclass):\n\n ...\n\n``mementos`` supports either of these. But Python 2 and Python 3 don't\nrecognize each other's syntax for metaclass specification, so straightforward\ncode for one won't even compile for the other. The ``with_metaclass()``\nfunction shown above is the way to go for cross-version compatibility. It's\nvery similar to that found in the ``six`` cross-version compatibility module.\n\nCareful with Call Signatures\n============================\n\n``MementoMetaclass`` caches on call signature, which can vary greatly in Python,\neven for logically identical calls. This is especially true if kwargs are used.\nE.g. ``def func(a, b=2): pass`` can be called ``func(1)``, ``func(1, 2)``,\n``func(a=1)``, ``func(1, b=2)``, or ``func(a=2, b=2)``. All of these resolve to\nthe same logical call--and this is just for two parameters! If there is more\nthan one keyword, they can be arbitrarily ordered, creating *many* logically\nidentical permutations.\n\nSo if you instantiate an object once, then again with a logically identical call\nbut using a different calling structure/signature, the object won't be created\nand cached just once--it will be created and cached multiple times.::\n\n o1 = Thing(\"lovely\")\n o2 = Thing(name=\"lovely\")\n assert o1 is not o2 # because the call signature is different\n\nThis may degrade performance, and can also create errors, if you're counting on\n``mementos`` to create just one object. So don't do that. Use a consistent\ncalling style, and it won't be a problem.\n\nIn most cases, this isn't an issue, because objects tend to be instantiated with\na limited number of parameters, and you can take care that you instantiate them\nwith parallel call signatures. Since this works 99% of the time and has a simple\nimplementation, it's worth the price of this inelegance.\n\nPartial Signatures\n==================\n\nIf you want only part of the initialization-time call signature (i.e. arguments\nto ``__init__``) to define an object's identity/cache key, there are two\napproaches. One is to use ``MementoMetaclass`` and design ``__init__`` without\nsuperfluous attributes, then create one or more secondary methods to add/set\nuseful-but-not-essential data. E.g.::\n\n class OtherThing(with_metaclass(MementoMetaclass, object)):\n\n def __init__(self, name):\n self.name = name\n self.color = None # unset for now\n self.weight = None\n\n def set(self, color=None, weight=None):\n self.color = color or self.color\n self.weight = weight or self.weight\n return self\n\n ot1 = OtherThing(\"one\").set(color='blue')\n ot2 = OtherThing(\"one\").set(weight='light')\n assert ot1 is ot2\n assert ot1.color == ot2.color == 'blue'\n assert ot1.weight == ot2.weight == 'light'\n\nOr you can just define your own memoizing metaclass, using the factory function\ndescribed below.\n\nVisiting the Factory\n====================\n\nThe first iteration of ``mementos`` defined a single metaclass. It's since been\nreimplemented as a parameterized meta-metaclass. Cool, huh? That basically means\nthat it defines a function, ``memento_factory()`` that, given a metaclass name\nand a function defining how cache keys are constructed, returns a corresponding\nmetaclass. ``MementoMetaclass`` is the only metaclass that the module\npre-defines, but it's easy to define your own memoizing metaclass.::\n\n from mementos import memento_factory, with_metaclass\n\n IdTracker = memento_factory('IdTracker',\n lambda cls, args, kwargs: (cls, id(args[0])) )\n\n class MyTracker(with_metaclass(IdTracker, object)):\n ...\n\n # object identity is the object id of first argument to __init__\n # (and there must be one, else the args[0] reference => IndexError)\n\nThe first argument to ``memento_factory()`` is the name of the metaclass being\ndefined. The second is a callable (e.g. lambda expression or function object)\nthat takes three arguments: a class object, an argument ``list``, and a keyword\narg ``dict``. Note that there is no ``*`` or ``**`` magic--args passed to the\nkey function have already been resolved into basic data structures.\n\nThe callable must return a globally-unique, hashable key for an object. This key\nwill be stored in the ``_memento_cache``, which is a simple ``dict``.\n\nWhen various arguments are used as the cache key/object identity, you may use a\n``tuple`` that includes the class and arguments you want to key off of. This can\nalso help debugging, should you need to examine the ``_memento_cache`` cache\ndirectly. But in cases like the ``IdTracker`` above, it's not mandatory that you\nkeep extra information around. The raw ``id(args[0])`` integer value would\nsuffice, as would a constructed string or other immutable, hashable value.\n\nIn cases where arguments are very flexible, or involve flexible data types,\na high-powered hashing function such as that provided by\n`SuperHash `_ might come in handy.\nE.g.::\n\n from superhash import superhash\n\n SuperHashMeta = memento_factory('SuperHashMeta',\n lambda cls, args, kwargs: (cls, superhash(args)) )\n\nFor the 1% edge-cases where multiple call variations must be\nconclusively resolved to a unique canonical signature, that can be done on a\ncustom basis (based on the specific args). Or in Python 2.7 and 3.x, the\n``inspect`` module's ``getcallargs()`` function can be used to create a generic\n\"call fingerprint\" that can be used as a key. (See the tests for example code.)\n\nNotes\n=====\n\n* See ``CHANGES.rst`` for the extended Change Log.\n\n* ``mementos`` is not to be confused with `memento\n `_, which does something completely\n different.\n\n* ``mementos`` was originally derived from `an ActiveState recipe\n `_\n by Valentino Volonghi. While the current implementation quite different and\n the scope much broader, the availability of that recipe was what enabled\n this module and the growing list of modules that depend on it. This is what\n open source evolution is all about. Thank you, Valentino!\n\n* It is safe to memoize multiple classes at the same time. They will all be\n stored in the same cache, but their class is a part of the cache key, so the\n values are distinct.\n\n* This implementation is *not* thread-safe, in and of itself. If you're in a\n multi-threaded environment, consider wrapping object instantiation in a\n lock.\n\n* Automated multi-version testing managed with `pytest\n `_, `pytest-cov\n `_,\n `coverage `_\n and `tox\n `_. Continuous integration testing\n with `Travis-CI `_.\n Packaging linting with `pyroma `_.\n\n* The author, `Jonathan Eunice `_\n or `@jeunice on Twitter `_ welcomes\n your comments and suggestions.\n\nInstallation\n============\n\nTo install or upgrade to the latest version::\n\n pip install -U mementos\n\nYou may need to prefix these with ``sudo`` to authorize\ninstallation. In environments without super-user privileges, you may want to\nuse ``pip``'s ``--user`` option, to install only for a single user, rather\nthan system-wide. Depending on your system configuration, you may also\nneed to use separate ``pip2`` and ``pip3`` programs to install for Python \n2 and 3 respectively. As a fall-back for cases where the releationship between\n``pip`` and the Python interpreter you want to run is unclear, you can\ninvoke ``pip`` as a module under a specific Python executable::\n\n python3.6 -m pip install -U mementos\n\nTesting\n=======\n\nTo run the module tests, use one of these commands::\n\n tox # normal run - speed optimized\n tox -e py27 # run for a specific version only (e.g. py27, py34)\n tox -c toxcov.ini # run full coverage tests\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/jeunice/mementos", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "mementos", "package_url": "https://pypi.org/project/mementos/", "platform": "", "project_url": "https://pypi.org/project/mementos/", "project_urls": { "Homepage": "https://bitbucket.org/jeunice/mementos" }, "release_url": "https://pypi.org/project/mementos/1.3.1/", "requires_dist": null, "requires_python": "", "summary": "Memoizing metaclass. Drop-dead simple way to create cached objects", "version": "1.3.1" }, "last_serial": 3926378, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "d277080f453339dc2d3a07a87947e964", "sha256": "da6ac31d25b98e1274a8c878f227672b13536a2a938c6e5613875811e728d960" }, "downloads": -1, "filename": "mementos-1.0.tar.gz", "has_sig": false, "md5_digest": "d277080f453339dc2d3a07a87947e964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8607, "upload_time": "2013-09-10T18:11:42", "url": "https://files.pythonhosted.org/packages/07/64/53fa0086af395bea58dec155413bd6af6e0cfed489b0142e968331d44904/mementos-1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "fa2e8d4198366798465258f297489e3e", "sha256": "cc0c9bbcb09af231b19b760485bb332a6ade35222eee8d6729d652af95563fdf" }, "downloads": -1, "filename": "mementos-1.0.zip", "has_sig": false, "md5_digest": "fa2e8d4198366798465258f297489e3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17943, "upload_time": "2013-09-10T18:11:40", "url": "https://files.pythonhosted.org/packages/75/f9/99f689935406da1bb235c84dd88ee9308657cce66a30f9aa9a1f0a9d9305/mementos-1.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3bc3d9f7e4798d3343a193560422c201", "sha256": "ca995b74c9db20fe527e626f8166b8cd17fb01c006ad09fce7d149385335cd54" }, "downloads": -1, "filename": "mementos-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3bc3d9f7e4798d3343a193560422c201", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8640, "upload_time": "2014-07-22T14:49:16", "url": "https://files.pythonhosted.org/packages/59/07/7e0514541d16f9fd9cff89e4fa0284f608f0d866f8ed379bd08c20706bd5/mementos-1.0.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "e4f322b7242b779638cec0a4dc1eea35", "sha256": "ae21c6a24dd3faba4af89307e9f6d3ae6d7ca0994167af6528d85c708d81b39e" }, "downloads": -1, "filename": "mementos-1.0.1.zip", "has_sig": false, "md5_digest": "e4f322b7242b779638cec0a4dc1eea35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17935, "upload_time": "2014-07-22T14:49:13", "url": "https://files.pythonhosted.org/packages/11/a8/58c8c170140a4e77386d528a42909205a20c232050d01507d2fe6692463f/mementos-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "72ac55ee5679ed107b8c79849e50f546", "sha256": "82849c49c10da88612f243306863bd4d07751e187c251ee0005bbdf8bfe8c44e" }, "downloads": -1, "filename": "mementos-1.0.2.tar.gz", "has_sig": false, "md5_digest": "72ac55ee5679ed107b8c79849e50f546", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9109, "upload_time": "2014-12-30T21:50:28", "url": "https://files.pythonhosted.org/packages/2a/79/f5fa37bc6c6796ebefbfe19352f0246b3ca3e5b7a6de258ce69e05230139/mementos-1.0.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "5bed8835cc2c915925966bb352a3a341", "sha256": "bcff38dc123e4f4969f22290b88484c20fa6487cf46450021979cae8ed5230ae" }, "downloads": -1, "filename": "mementos-1.0.2.zip", "has_sig": false, "md5_digest": "5bed8835cc2c915925966bb352a3a341", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18837, "upload_time": "2014-12-30T21:50:26", "url": "https://files.pythonhosted.org/packages/3d/54/e5e45ec4e6b46409c2cc06bb8fa24276836e9e0c7681ac39bf1f81f9d03a/mementos-1.0.2.zip" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "8a172989eebc73ff0ce252a9db58fbe3", "sha256": "5361a04ff32e5d192e910e1d8d3cec18a5a49fe1b76334cd7ebdec5822c78cad" }, "downloads": -1, "filename": "mementos-1.0.3.tar.gz", "has_sig": false, "md5_digest": "8a172989eebc73ff0ce252a9db58fbe3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9128, "upload_time": "2014-12-30T21:57:05", "url": "https://files.pythonhosted.org/packages/d3/e4/c5c734e88e163a6f86482306f447176798e082ce1d68a4f368478e4442a6/mementos-1.0.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "72471d3554da903b893d8eda1ee016cb", "sha256": "ae9381f68eb0874df9fd6758b317442aa60ac49dfe87f8d9e2563ba76abf7d92" }, "downloads": -1, "filename": "mementos-1.0.3.zip", "has_sig": false, "md5_digest": "72471d3554da903b893d8eda1ee016cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18867, "upload_time": "2014-12-30T21:57:02", "url": "https://files.pythonhosted.org/packages/35/a3/5d4e64887b3fb687358e345bfcf7b3ce5a4191d6d759a751ca4b03cdd9e8/mementos-1.0.3.zip" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "eefd424715cfcd6ba2bf6cce4f7e3674", "sha256": "6f83c2d86fa7de9d7fd8c86022b9b7f5b465d0e253bf46fa09e13ecbf9c3c059" }, "downloads": -1, "filename": "mementos-1.0.4.tar.gz", "has_sig": false, "md5_digest": "eefd424715cfcd6ba2bf6cce4f7e3674", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9329, "upload_time": "2015-05-14T20:01:43", "url": "https://files.pythonhosted.org/packages/f7/3f/954f7d10ca55b5670ef4cde01e267db19f7ec7ec9a6fe6bb77f7e8f905ba/mementos-1.0.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "888af2634afa1ef5605be0cb4efdafb3", "sha256": "1981931939abefe76a63b979ff51b4e4f15a100d27b39750d35a6bf257508b8d" }, "downloads": -1, "filename": "mementos-1.0.4.zip", "has_sig": false, "md5_digest": "888af2634afa1ef5605be0cb4efdafb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19292, "upload_time": "2015-05-14T20:01:38", "url": "https://files.pythonhosted.org/packages/e5/92/4755b1d3f0e218ff157171b11be696f076960b0d6bbfa8ec2a6ef41c3dc1/mementos-1.0.4.zip" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "04cbe46bca148c524159d85b34fc1fda", "sha256": "2a3431d8f69bb8a72b56f9f3784261d45079a35e5811d6dd1f9c973ab9386ced" }, "downloads": -1, "filename": "mementos-1.0.5.tar.gz", "has_sig": false, "md5_digest": "04cbe46bca148c524159d85b34fc1fda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9436, "upload_time": "2015-07-23T23:00:00", "url": "https://files.pythonhosted.org/packages/29/e8/1acd924554139c1470e50fd7f0d2182cc08c99d08aeb58bcc44df64eb9d9/mementos-1.0.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "d4292331964a949edb4e725d7d14e5d1", "sha256": "0765add24ae9ea654dee2383eeb6143bd3e7b4df7f1e95597d980596145f4841" }, "downloads": -1, "filename": "mementos-1.0.5.zip", "has_sig": false, "md5_digest": "d4292331964a949edb4e725d7d14e5d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19559, "upload_time": "2015-07-23T22:59:57", "url": "https://files.pythonhosted.org/packages/65/ba/b0aff0d464aa570f3b681a5c0eda2f39fa7fe3b31053fb9bb0c0e945e9fb/mementos-1.0.5.zip" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "0e6b7c5f7ab0a54c2e3a2f4cb1e8de5b", "sha256": "1374d4bda7791c817e5e107ada104f369d62072a93c07952be98265ee4ec0bde" }, "downloads": -1, "filename": "mementos-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e6b7c5f7ab0a54c2e3a2f4cb1e8de5b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10923, "upload_time": "2015-08-04T13:47:46", "url": "https://files.pythonhosted.org/packages/23/77/4a13fa5706a9f1cd441494664b0f32d6bee7b1d158421923def3669c87d3/mementos-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a5cb3db07bec88c3edde1bb2dac5a08", "sha256": "f72b83ef1629083d116d8f73f43979b3c1c03b4040fb6421afd60f3dbc81521f" }, "downloads": -1, "filename": "mementos-1.0.6.tar.gz", "has_sig": false, "md5_digest": "8a5cb3db07bec88c3edde1bb2dac5a08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10145, "upload_time": "2015-08-04T13:47:42", "url": "https://files.pythonhosted.org/packages/47/17/6cca2df6d00eefc3f476f7ef88f145322aefddff28eb6b05bbe895d812de/mementos-1.0.6.tar.gz" }, { "comment_text": "", "digests": { "md5": "e9d8b85b9a552d658aca20caaaec8cac", "sha256": "94c3b1902e328c1289f947b79891215f77bd6c3242d77de5fe306724dfc751a2" }, "downloads": -1, "filename": "mementos-1.0.6.zip", "has_sig": false, "md5_digest": "e9d8b85b9a552d658aca20caaaec8cac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20904, "upload_time": "2015-08-04T13:47:38", "url": "https://files.pythonhosted.org/packages/df/57/e9c0cc14abde9c84690c6967580238ae1b357cfd67ed3109ae1267dc7357/mementos-1.0.6.zip" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "e043d69c524b5daddb9c11cb9b232685", "sha256": "1f4566f10ac32d7c01334423dd71744869a76fd459baff73e551b863ee342cda" }, "downloads": -1, "filename": "mementos-1.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e043d69c524b5daddb9c11cb9b232685", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11215, "upload_time": "2015-08-18T14:22:58", "url": "https://files.pythonhosted.org/packages/5c/58/7e5e882f7bcc49497289f12ce629106d76578af27a67aeccb2169a93500e/mementos-1.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc09942ea3c2d7de378c4121c5de3482", "sha256": "3c4a9ef404394241f2d90a450cc1a68a80bdaccca27ce82114974d270202a930" }, "downloads": -1, "filename": "mementos-1.0.7.tar.gz", "has_sig": false, "md5_digest": "cc09942ea3c2d7de378c4121c5de3482", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9993, "upload_time": "2015-08-18T14:22:54", "url": "https://files.pythonhosted.org/packages/57/08/41d271d55e6daf23ec9561954dbdf6d384abf48dedc24d88998b5f55194e/mementos-1.0.7.tar.gz" }, { "comment_text": "", "digests": { "md5": "d818fe5b7646cb5f64a04be1daf72fdb", "sha256": "95d1b36b67d72a39228a35c09d0957ff3b8f07bfe06c6bb3b94858b3f626c246" }, "downloads": -1, "filename": "mementos-1.0.7.zip", "has_sig": false, "md5_digest": "d818fe5b7646cb5f64a04be1daf72fdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20631, "upload_time": "2015-08-18T14:22:51", "url": "https://files.pythonhosted.org/packages/80/a8/f2b83942d049c7c4112f4d56765a75623e7ad69ab85a85ffbca74be9f4bf/mementos-1.0.7.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "3dfb28166a0d839c8d8be1fbaf62addd", "sha256": "739075f56f7644ddcd6ca3fe3034da0723040b5898cdc52a38c5fceebb0e49fd" }, "downloads": -1, "filename": "mementos-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3dfb28166a0d839c8d8be1fbaf62addd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11213, "upload_time": "2015-08-18T14:23:43", "url": "https://files.pythonhosted.org/packages/41/bc/bf739414dc23a1ecde5518b32abbf0fe8c1f04695bc6a0210a1860dfe327/mementos-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14d3958989405e39c919b74be1087655", "sha256": "38725d7c484d05c8c661f69037dbf65040bda49785f04c6b01c57fa3e2f89092" }, "downloads": -1, "filename": "mementos-1.1.0.tar.gz", "has_sig": false, "md5_digest": "14d3958989405e39c919b74be1087655", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9993, "upload_time": "2015-08-18T14:23:38", "url": "https://files.pythonhosted.org/packages/9e/25/a56137c6ad4b2b14fce350817eafa3ad1d28f4a94d72dc64e9fe43b5ef28/mementos-1.1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "5143a57825c3414c65df76a3f5b4b905", "sha256": "116b716159a2831b740052dac071db7afbff4842826b3dcf1ef11f57197d3aff" }, "downloads": -1, "filename": "mementos-1.1.0.zip", "has_sig": false, "md5_digest": "5143a57825c3414c65df76a3f5b4b905", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20624, "upload_time": "2015-08-18T14:23:35", "url": "https://files.pythonhosted.org/packages/3b/ac/f3371539929aa46ed909822b3b3427847492ce326406c80079a2e1c7afd6/mementos-1.1.0.zip" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "c2c87487cbba9759b82a4c6ce8eb8c1a", "sha256": "2a5d14db7e57fce11028e6f0c62a4c391a38cc0300b33e889efbdd388f896d87" }, "downloads": -1, "filename": "mementos-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c2c87487cbba9759b82a4c6ce8eb8c1a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11202, "upload_time": "2015-08-18T15:58:45", "url": "https://files.pythonhosted.org/packages/fd/a0/905bb719c2a34d7b8af2643ac2e3e79e408de3c2cad81cefd0bd4a60e608/mementos-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5babfbe375fa379556e165ffbe377a17", "sha256": "abbd1d978904fcfc089aaa3fa1160c7c0d3aa41979b3c9b8a861b86ac101a1ab" }, "downloads": -1, "filename": "mementos-1.1.1.tar.gz", "has_sig": false, "md5_digest": "5babfbe375fa379556e165ffbe377a17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9986, "upload_time": "2015-08-18T15:58:39", "url": "https://files.pythonhosted.org/packages/05/79/12daa4df11f2017b5ddc5fb925e948be11651ed82986469a5ba4f75ba99e/mementos-1.1.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "0bf1e566e44061985908a19cdac09e52", "sha256": "06d842a7e1df3dcc145091080aa531f816c5fbae12a1268df7ef7a716b16019b" }, "downloads": -1, "filename": "mementos-1.1.1.zip", "has_sig": false, "md5_digest": "0bf1e566e44061985908a19cdac09e52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20609, "upload_time": "2015-08-18T15:58:35", "url": "https://files.pythonhosted.org/packages/0b/1b/4e3b21f50d9ea33dbcd24326e09def0833130d4d191c59878ce9ce07fdb7/mementos-1.1.1.zip" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "8d1c16cfe088d31eeee9dacb90685e3a", "sha256": "57106e16b0fd09a33f41c4ad228062d7b42f92bf25921aa49f9dbe4cce875a9f" }, "downloads": -1, "filename": "mementos-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d1c16cfe088d31eeee9dacb90685e3a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11486, "upload_time": "2015-08-23T22:06:12", "url": "https://files.pythonhosted.org/packages/54/45/f1a363bf80af7480f7b864b3ae604f14cff29b6ad8933ff7058b2324b54a/mementos-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfe39d926d96d9ec536ade9079b62a8b", "sha256": "400c1d5eb7eff2fd09c556ac14786c17320fd63906e4719563f5047ea40cc28d" }, "downloads": -1, "filename": "mementos-1.1.2.tar.gz", "has_sig": false, "md5_digest": "dfe39d926d96d9ec536ade9079b62a8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9984, "upload_time": "2015-08-23T22:06:00", "url": "https://files.pythonhosted.org/packages/39/e2/f6efb1da3dfeabebe5af28b2f1d18f1e2270763042b2691dfc6fd00c5b82/mementos-1.1.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "647e160371e6642c7d9adf83b3e99f6f", "sha256": "c640e5380c5fb203a6ac7d2bd92f8fedc0be0b6005adcdab834ef9f43645483d" }, "downloads": -1, "filename": "mementos-1.1.2.zip", "has_sig": false, "md5_digest": "647e160371e6642c7d9adf83b3e99f6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20863, "upload_time": "2015-08-23T22:05:55", "url": "https://files.pythonhosted.org/packages/e1/ee/2df194e948194a96d6f93a4238d78d142dcf06719eb5f5bf308392ba8da6/mementos-1.1.2.zip" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "c048254c00af9b1000899f7468d2cac6", "sha256": "34e332d8fd9b1699403af370eb61e60a4f8181be9f5e4bebff85d43b867085af" }, "downloads": -1, "filename": "mementos-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c048254c00af9b1000899f7468d2cac6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12138, "upload_time": "2015-08-24T15:42:34", "url": "https://files.pythonhosted.org/packages/66/07/6af985c456a0a38578e3ffbf298523710cb88a0d97e122d3af8ab24ad72f/mementos-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b235003b34b56b237938e5cfbff2fc5", "sha256": "e9ab4ccfc8f47b5ab122c24b5cee7d5cd93a1615e0c26aab1f106b6904ab27e4" }, "downloads": -1, "filename": "mementos-1.2.0.tar.gz", "has_sig": false, "md5_digest": "7b235003b34b56b237938e5cfbff2fc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10792, "upload_time": "2015-08-24T15:42:27", "url": "https://files.pythonhosted.org/packages/b2/a4/8196e10fdb7cf46bf0816943eebd3a476048339aa95e0faa8382c2dcf6c3/mementos-1.2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "9c1d8cd656ad161d806b2701ec213a08", "sha256": "4e516c0dcac38199cd195122c99f8040b33e8032e0440b3752dd4caf4c26a468" }, "downloads": -1, "filename": "mementos-1.2.0.zip", "has_sig": false, "md5_digest": "9c1d8cd656ad161d806b2701ec213a08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22702, "upload_time": "2015-08-24T15:42:23", "url": "https://files.pythonhosted.org/packages/f9/a3/8126cc1614fa9761736a217e59097c9c80fd67f5e8054a9ca48c9b908b78/mementos-1.2.0.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "46737e66e9d2db8a534c4147be03ff74", "sha256": "67aea8ca6290f5a73a51cb38d6d16725f6c7e21649d4e2818b5c3b11bac17679" }, "downloads": -1, "filename": "mementos-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46737e66e9d2db8a534c4147be03ff74", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12137, "upload_time": "2015-08-28T20:05:13", "url": "https://files.pythonhosted.org/packages/2f/52/d8ad8141b3fccbbcf7b56ba312a7dc9900528b2d7e7cabfca2783852fbdd/mementos-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b46dea113f9ea2753160c045c46316b", "sha256": "771decc503623ee1d2a656bc48c9f990033cbd496b9348e7cca136dad18f8b27" }, "downloads": -1, "filename": "mementos-1.2.1.tar.gz", "has_sig": false, "md5_digest": "8b46dea113f9ea2753160c045c46316b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10804, "upload_time": "2015-08-28T20:05:08", "url": "https://files.pythonhosted.org/packages/64/20/dda523db3338cd3475aecb2d5c524be0d5f6815d33bb79eb7216df343b7e/mementos-1.2.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "63c8cc5842b4f668fa90ac4873d5db36", "sha256": "4ae7a1cefaae9adc002d50ef853a73953f9af15d439409e26d59d09312fecc5d" }, "downloads": -1, "filename": "mementos-1.2.1.zip", "has_sig": false, "md5_digest": "63c8cc5842b4f668fa90ac4873d5db36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22700, "upload_time": "2015-08-28T20:05:03", "url": "https://files.pythonhosted.org/packages/32/b9/8f5804633bb14c688c29b3d628e76524de1374fdad87e1770b75fd99916c/mementos-1.2.1.zip" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "7cee14af8945eacb444de76e81aec35c", "sha256": "a6045d049fa1f7e488f53007d618b719af0b8f6c257d40a78edaddc37f94b681" }, "downloads": -1, "filename": "mementos-1.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7cee14af8945eacb444de76e81aec35c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12142, "upload_time": "2016-06-22T18:30:55", "url": "https://files.pythonhosted.org/packages/3b/cb/79b2ad72463177478c6e1fd87eae63bfd46411921186ef82a1126cc1b5b5/mementos-1.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de30d82cc83856c4a746b14bcdb1fb47", "sha256": "128d74c13459b29b57210de23d603a8810d10719983e62ef3853d2590453878c" }, "downloads": -1, "filename": "mementos-1.2.2.tar.gz", "has_sig": false, "md5_digest": "de30d82cc83856c4a746b14bcdb1fb47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10875, "upload_time": "2016-06-22T18:30:50", "url": "https://files.pythonhosted.org/packages/b1/e3/0a744a10f190f900a0c4911c58f36a0745e7ec10b85c3c2b4ebae50425d6/mementos-1.2.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "3f86e08f053111e889e83c1abd4fae74", "sha256": "c2540184d6834f265ffb951c226e307fac1d2d932052f1488e05f870485f188c" }, "downloads": -1, "filename": "mementos-1.2.2.zip", "has_sig": false, "md5_digest": "3f86e08f053111e889e83c1abd4fae74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22788, "upload_time": "2016-06-22T18:30:46", "url": "https://files.pythonhosted.org/packages/81/0a/7321bff289d81b04cc3da91d13c3067006af9564cfb7e01074de79ec58e4/mementos-1.2.2.zip" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "300740c08e346137b7dbd42dda4cdf8c", "sha256": "54baf65f509cfd7a3db10f057ac4ab323f971960a751ac94ba559e97df001520" }, "downloads": -1, "filename": "mementos-1.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "300740c08e346137b7dbd42dda4cdf8c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12110, "upload_time": "2017-01-23T18:21:02", "url": "https://files.pythonhosted.org/packages/03/a6/bb64db6e8384d1435d91394a2b73812c06c41e3649720d8bc35e2d45a07d/mementos-1.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3dc8b255bc30685a993fd5c8bbb6196a", "sha256": "d44b700d909227f92d6137047101baf1708f7b362b8ef218fc8bab7968f4e7d5" }, "downloads": -1, "filename": "mementos-1.2.3.zip", "has_sig": false, "md5_digest": "3dc8b255bc30685a993fd5c8bbb6196a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22708, "upload_time": "2017-01-23T18:20:58", "url": "https://files.pythonhosted.org/packages/0d/77/63f99c0a0c6830bf7b350fbd25fc32c24bde63365619004445931f4fa146/mementos-1.2.3.zip" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "12b056f78625275d3c52661649835f9e", "sha256": "4f790ac5d15d3e72dde8ac4f1e55e202568b4b55a8d6cfcee13957ce5b304e12" }, "downloads": -1, "filename": "mementos-1.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "12b056f78625275d3c52661649835f9e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12091, "upload_time": "2017-01-23T18:36:09", "url": "https://files.pythonhosted.org/packages/58/f8/151eef5819fb6150db16b51ac942c5f750a9e0684801e6e7068fb26531b5/mementos-1.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9bf025a3a6c019e2f00f335970e4f3d4", "sha256": "0f6577bffca89af2b622f560370a0813e7cff2ddc4874a0d0c71b3e16d543733" }, "downloads": -1, "filename": "mementos-1.2.4.zip", "has_sig": false, "md5_digest": "9bf025a3a6c019e2f00f335970e4f3d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22676, "upload_time": "2017-01-23T18:36:03", "url": "https://files.pythonhosted.org/packages/72/62/972fa1ee2cdec75e4812194930a4b046666d39295f2e94a23cf1f7b6baf9/mementos-1.2.4.zip" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "ab898f5da33c7af3ca7f9a7679de392a", "sha256": "2dcebb0c3f1411ed5cd94484388b22a17a90775969629cd6cd58121f0e4349c2" }, "downloads": -1, "filename": "mementos-1.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ab898f5da33c7af3ca7f9a7679de392a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12039, "upload_time": "2017-01-23T18:39:01", "url": "https://files.pythonhosted.org/packages/9d/72/1ba52a5274952d4a84149c0d592f49ba64e9e75af7f7edab863b07abb044/mementos-1.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4763107f2e79467f7d007df3c07f5d82", "sha256": "830a9aeb0221d8fc78a6206a77ebb55fea67060f5e98ff604e29b2c67ce953be" }, "downloads": -1, "filename": "mementos-1.2.5.zip", "has_sig": false, "md5_digest": "4763107f2e79467f7d007df3c07f5d82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22594, "upload_time": "2017-01-23T18:38:58", "url": "https://files.pythonhosted.org/packages/00/13/c9396baca3fc658c674b8c4e1292fce3f86306d4c4a854f002fbda592cbb/mementos-1.2.5.zip" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "de17b7ce326774a969ceadba0655c747", "sha256": "67a1040e04321ef1d2dad5418bd52a994663bb01d3bcc58cd352c21834224836" }, "downloads": -1, "filename": "mementos-1.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de17b7ce326774a969ceadba0655c747", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12110, "upload_time": "2017-01-31T21:59:48", "url": "https://files.pythonhosted.org/packages/42/9f/709ce267a1a758a7e0f684cb1a4aec1ac474fe59f549fb2324c157f8c0c5/mementos-1.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b330923904f66a4a1434365838aa90b", "sha256": "3b2b1457c749cb6cd08dd3334653c4f0359a740399399477e3667a1cacc47b46" }, "downloads": -1, "filename": "mementos-1.2.6.zip", "has_sig": false, "md5_digest": "2b330923904f66a4a1434365838aa90b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21454, "upload_time": "2017-01-31T21:59:44", "url": "https://files.pythonhosted.org/packages/f4/6b/dea47f3be72079a57c88913f2a0a86001fabd4da21dbd916f514c35563d0/mementos-1.2.6.zip" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "77c9844df1bf431661d264527d7c88a5", "sha256": "4d2f71d3ef9a1180e4372073646d11508ff8af223ef4be89f236b5017644d88e" }, "downloads": -1, "filename": "mementos-1.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "77c9844df1bf431661d264527d7c88a5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11936, "upload_time": "2017-05-31T17:32:11", "url": "https://files.pythonhosted.org/packages/57/61/296182cb860ed0b800da5a1ab9c5d4d84b7a3fbb6b266002b9d30bfc5dd3/mementos-1.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0ba7c69e6281ba0ea4b596fb0fe03ad", "sha256": "3791735d6147a2b5dd23822790777058ff1ea19fca063737cf2e092b0db63d4e" }, "downloads": -1, "filename": "mementos-1.2.7.zip", "has_sig": false, "md5_digest": "f0ba7c69e6281ba0ea4b596fb0fe03ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22320, "upload_time": "2017-05-31T17:32:08", "url": "https://files.pythonhosted.org/packages/3b/b0/fd9a6fd609c048509488800549141ea6fc8422a49a97fc75afa363e4c063/mementos-1.2.7.zip" } ], "1.2.8": [ { "comment_text": "", "digests": { "md5": "45b3abfbdafd15cfcc7e02808f2ca27f", "sha256": "fc982fcd6d025c87524682d9bd4df81f1c89777d327028006aef9ff9fd538a08" }, "downloads": -1, "filename": "mementos-1.2.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "45b3abfbdafd15cfcc7e02808f2ca27f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11902, "upload_time": "2017-05-31T17:34:37", "url": "https://files.pythonhosted.org/packages/16/ef/5993d81a6bfd816209a460a203b2941c97d479e7d27007349aca73d2b5ba/mementos-1.2.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41ceadb9ae7ecd9b451473efe87d320e", "sha256": "43c57c2b56a315ba7b740b6437e7fa92544fd6363e44fbdffaec87eb5b6334ba" }, "downloads": -1, "filename": "mementos-1.2.8.zip", "has_sig": false, "md5_digest": "41ceadb9ae7ecd9b451473efe87d320e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22270, "upload_time": "2017-05-31T17:34:34", "url": "https://files.pythonhosted.org/packages/0a/ee/d4841cf88fb2adefe7393486613ab9c67c92dc1efaaeb05af28d68a99dc5/mementos-1.2.8.zip" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "ba7129f3fd14ed530cf59b67a98e1cc7", "sha256": "d91349ff7e3dc369dda92e356c57ae4c61875fb43252cd7294413dc5cc652462" }, "downloads": -1, "filename": "mementos-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba7129f3fd14ed530cf59b67a98e1cc7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12060, "upload_time": "2018-06-02T23:58:39", "url": "https://files.pythonhosted.org/packages/d0/0e/4c6df56df2378066a0d504a511a76df3d1f718786bd66b7f59b761e3795c/mementos-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83064c3f638759d24e87315de31b5a73", "sha256": "6316bf2272416d0982d6ac6a5e5b26f0072bd6d58f052dda9c3f95ec6ee5882c" }, "downloads": -1, "filename": "mementos-1.3.0.zip", "has_sig": false, "md5_digest": "83064c3f638759d24e87315de31b5a73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22694, "upload_time": "2018-06-02T23:57:55", "url": "https://files.pythonhosted.org/packages/ab/fc/24ed331e8c10152281a707e5c957ee08b089e3b55400be9045e217c03b63/mementos-1.3.0.zip" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "2a570330f8421ed4b41cab6cda76f1af", "sha256": "fee20b2440a06657bb942b8d935f0c3d468b5ad58b07b33b609fd92fe864bc7f" }, "downloads": -1, "filename": "mementos-1.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a570330f8421ed4b41cab6cda76f1af", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12074, "upload_time": "2018-06-03T21:49:26", "url": "https://files.pythonhosted.org/packages/32/9f/44d24c854245214c1ace565aa8269b64d4ab189f4eb9783a2ac00c98072c/mementos-1.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46e7bb3db4ffbbbefabd6023a8052e49", "sha256": "e3574b3d16a1b3cbfd03e049701bedcfcff131ea5f93904563672221109f53e7" }, "downloads": -1, "filename": "mementos-1.3.1.zip", "has_sig": false, "md5_digest": "46e7bb3db4ffbbbefabd6023a8052e49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22693, "upload_time": "2018-06-03T21:49:24", "url": "https://files.pythonhosted.org/packages/48/0c/1287a95aa809b618ca2961509bb77d0e3e8ef984a99b52f72f1e76514e21/mementos-1.3.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2a570330f8421ed4b41cab6cda76f1af", "sha256": "fee20b2440a06657bb942b8d935f0c3d468b5ad58b07b33b609fd92fe864bc7f" }, "downloads": -1, "filename": "mementos-1.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2a570330f8421ed4b41cab6cda76f1af", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 12074, "upload_time": "2018-06-03T21:49:26", "url": "https://files.pythonhosted.org/packages/32/9f/44d24c854245214c1ace565aa8269b64d4ab189f4eb9783a2ac00c98072c/mementos-1.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46e7bb3db4ffbbbefabd6023a8052e49", "sha256": "e3574b3d16a1b3cbfd03e049701bedcfcff131ea5f93904563672221109f53e7" }, "downloads": -1, "filename": "mementos-1.3.1.zip", "has_sig": false, "md5_digest": "46e7bb3db4ffbbbefabd6023a8052e49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22693, "upload_time": "2018-06-03T21:49:24", "url": "https://files.pythonhosted.org/packages/48/0c/1287a95aa809b618ca2961509bb77d0e3e8ef984a99b52f72f1e76514e21/mementos-1.3.1.zip" } ] }