{ "info": { "author": "Kirit Saelensminde", "author_email": "kirit@felspar.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Slumber is a RESTful data connector that can be used to make proper\nRESTful data services from Django systems.\n\n|Build Status|\n\nTo install Slumber use:\n\n::\n\n pip install django_slumber\n\nTo install the current development version use:\n\n::\n\n pip install git+git://github.com/KayEss/django-slumber.git@develop\n\nUsing Slumber\n=============\n\nSlumber has two parts, the server and client side. A RESTful service can\nbe used by just adding the server side to an existing Django system. The\nclient side is useful where you want to connect to the data service from\nanother Python system, or even if you just want to decouple the\npersistence from the user interface layers within Django.\n\nThe Slumber server\n------------------\n\nIn order to start to use Slumber on the server side you simply need to\ninclude it in your ``urls.py`` with something like this:\n\n::\n\n (r'^slumber/', include('slumber.urls'))\n\nNote that slumber will not accept any anonymous requests. These will\nalways result in 401 responses. The simplest to configure option is to\nmake use of local IP based authentication. This is not recommended for\nproduction use, but is useful for development.\n\nThe Slumber data client\n-----------------------\n\nThe data client is to be found at ``slumber.client``. It must be\nconfigured to be told the location of the directory server.\n\n::\n\n SLUMBER_DIRECTORY='http://localhost:8000/slumber/'\n\nYou should also configure a URL prefix for local Slumber accesses. This\nis set as below in ``settings.py``. The value shown below is the\ndefault.\n\n::\n\n SLUMBER_LOCAL='http://localhost:8000/'\n\nIn order to fetch objects from the remote end you should import the\nclient and make use of it:\n\n::\n\n from slumber import client\n\n def do_something():\n pizza = client.slumber_test.Pizza.get(pk=1)\n assert pizza\n\nThe RemoteForeignKey model field\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe ``RemoteForeignKey`` model field is used where you want a foreign\nkey that points to an object on a different data service.\n\n``model_url``\n^^^^^^^^^^^^^\n\nControls whether Slumber will re-write URLs saved in the database to be\nrelative to the service that it is given. If the URL starts with the\nsame string as the URL for the specified service then Slumber will\nreplace that prefix with ``slumber://service/`` before putting the data\ninto the database and replace that with the service prefix when reading\nthe data from the database. This means that if you copy a database, for\nexample, from production to testing all of the URLs will come out\nagainst the correct services on the test server.\n\nThe model URL may be specified in the ``slumber:`` form so that the real\nURL will be calculated depending on the deployment configuration.\n\nSlumber services\n----------------\n\nServices are used when there are multiple RESTful services that all need\nto communicate together in order to provide a full system. Services are\nknown by name and a single Slumber client can talk to multiple services\nthrough the directory server.\n\nAll models in a particular Django project can be put into the same\nservice through the use of the SLUMBER\\_SERVICE setting:\n\n::\n\n SLUMBER_SERVICE = 'takeaway'\n\nThis will create a takeaway service that all of the models can be found\nwithin. Now to access a model from the client the service name also\nneeds to be used:\n\n::\n\n shopping_cart = slumber.client.takeaway.order.Cart.get(pk=1)\n\nAt least one of the projects must now be designated a Slumber directory\nand it is configured with the locations of all of the services (i.e. the\n``takeaway`` service running within the same project and the ``pizzas``\nservice running on another port on the same development machine):\n\n::\n\n SLUMBER_DIRECTORY = {\n 'takeaway': 'http://localhost:8000/slumber/takeaway/',\n 'pizzas': 'http://localhost:8001/slumber/pizza/',\n }\n\nNote that the directory must list itself. Even more important is that\nthis is an absolute URL!\n\nOn the ``pizza`` service we can now either repeat the exact same\ndirectory configuration, or have it point to the directory on the\n``takeaway`` service. I.e. one of the following configurations can be\nused:\n\n::\n\n SLUMBER_DIRECTORY = {\n 'takeaway': 'http://localhost:8000/slumber/takeaway/',\n 'pizzas': 'http://localhost:8001/slumber/pizza/',\n }\n\nor\n\n::\n\n SLUMBER_DIRECTORY = 'http://localhost:8000/slumber/'\n\nDjango application services\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSometimes it's useful to be able to put a Django application into a\nservice. There's a few ways of doing this. If it's a single application\nthat needs to be in a service then the application name can be given as\nthe location of a service in the ``SLUMBER_DIRECTORY``. For example:\n\n::\n\n SLUMBER_DIRECTORY = {\n 'auth': 'django.contrib.auth',\n 'pizzas': 'slumber_examples',\n }\n\nFor this to work the application name given in the service configuration\nmust exactly match the name that is in Django's ``INSTALLED_APPS``\nsetting. When used in this way the service will point directly to the\nDjango application mentioned.\n\n''NB'' The current implementation aliases the application to where it is\nexposed on the main service. This does expose the requested application,\nbut fails to remove the application from the main service applications.\nI.e. on the above example, both ``auth`` and ``pizzas`` will have all\ndjango.contrib.auth application exposed through the client.\n\nUsing a non Slumber Django project for the directory\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe Slumber directory doesn't even need to be Django. All that is needed\nis that the url that the directory points at returns JSON that describes\nwhere to find the services. The JSON returned for the above example\nshould look like:\n\n::\n\n {\n \"services\": {\n \"takeaway\": \"http://localhost:8000/slumber/takeaway/\",\n \"pizzas\": \"http://localhost:8001/slumber/pizza/\"\n }\n }\n\nSlumber operations\n------------------\n\nSlumber contains a number of default REST end points on the server side\n(called operations) which also have a client implementation (called a\nproxy). Slumber will expose the applications and the models that you\nhave in your Django project and currently provides operations at both\nthe model and instance level.\n\nWhen dealing with operations that create and modify data it's important\nto remember that each operation will run in its own transaction on the\nserver and cannot be rolled back once done.\n\ncreate (model)\n~~~~~~~~~~~~~~\n\nCreates a new instance of the model type on the slumber server. In order\nto use this the user must have the standard ``app.add_model``\npermission.\n\ndelete (instance)\n~~~~~~~~~~~~~~~~~\n\nUses a POST request to delete the instance. The user requires the\n``app.delete_model`` permission.\n\ndata (instance)\n~~~~~~~~~~~~~~~\n\nReturns the instance attributes and provides links to related data. Only\nauthenticated users may get instance data.\n\nCustomising Slumber data\n^^^^^^^^^^^^^^^^^^^^^^^^\n\nWhen Slumber loads the applications you have defined in your\n``settings.py`` it will also try to load a module called\n``slumber_server`` from the same place as your models. This can be used\nto customise how models appear on the Slumber server.\n\n::\n\n from models import Shop\n from slumber import configure\n\n configure(Shop,\n properties_ro = ['web_site'])\n\nThis will make a new read-only property ``web_site`` available in the\ndata about instances populated from the ``web_site`` property on that\nmodel.\n\nYou can also pass pass in extra configuration data that you wish to see\nin the slumber request for the service.\n\n::\n\n from models import Shop\n from slumber import configure\n\n configure({'shop': True})\n\nThe configuration item must be a ``dict`` and it will turn up in the\nservice response. For example, you might see something like:\n\n::\n\n {\n \"services\": {\n \"slumber_examples\": \"http://example.com/slumber/slumber_examples/\",\n },\n \"apps\": {\n \"slumber_examples\": \"/slumber/slumber_examples/slumber_examples/\",\n \"django.contrib.sites\": \"/slumber/slumber_examples/django/contrib/sites/\",\n \"django.contrib.contenttypes\": \"/slumber/slumber_examples/django/contrib/contenttypes/\",\n \"django.contrib.messages\": \"/slumber/slumber_examples/django/contrib/messages/\",\n \"django.contrib.admin\": \"/slumber/slumber_examples/django/contrib/admin/\",\n \"django.contrib.sessions\": \"/slumber/slumber_examples/django/contrib/sessions/\",\n \"django.contrib.auth\": \"/slumber/slumber_examples/django/contrib/auth/\",\n \"django.contrib.staticfiles\": \"/slumber/slumber_examples/django/contrib/staticfiles/\"\n },\n \"configuration\": {\n \"shop\": {\n \"shop\": true\n }\n }\n \"_meta\": {\n \"status\": 200,\n \"message\": \"OK\"\n }\n\nYou may have one per Django application that is contained within the\nservice.\n\nupdate (instance)\n~~~~~~~~~~~~~~~~~\n\nAllows the instance attributes to be changed. The user must have the\n``app.change_model`` permission.\n\nCustomising Slumber operations\n------------------------------\n\nNew operations can be added to a model through the configure call. This\nshould be placed in your ``slumber_server`` file (in\n``slumber_server.py`` in your application folder).\n\n::\n\n from slumber import configure\n\n configure(Pizza,\n operations_extra = [(OrderPizza, 'order')])\n\nYou need to a pass a list of binary tuples which contain the operation\nimplementation and the name of the operation.\n\nCustomising the Slumber client\n------------------------------\n\nOperations that you wish to expose on the client side can be added to a\nproxy that implements the binding in any way you choose. Proxies come in\ntwo types: model proxies and instance proxies.\n\nWhen the client creates a model instance to connect to a remote model it\nwill look for a user defined proxy class and use that as a mix-in super\nclass for the model type it builds. This allows you to place methods on\nthe proxy and have them used by your client code.\n\n::\n\n class ShopProxy(object):\n def has_shop_proxy(self):\n return True\n\nThis proxy can be set up by configuring it in your ``slumber_client.py``\nfile:\n\n::\n\n configure('/slumber_examples/Shop/',\n model_proxy = ShopProxy)\n\nFor the model URL we need to specify enough of the model URL that it\nwill be unique. Normally just the application and model name are needed,\nbut sometimes you will want to include service names if you want to have\nthe same model use different proxies depending on the service it's\nconnected to.\n\nNote that although this is a model proxy the method on the proxy is\nstill an instance method and not a class method or static.\n\nInstance proxies are done in exactly the same way, but the configuration\nis done via ``instance_proxy`` instead.\n\n::\n\n class PizzaProxy(object):\n def has_pizza_proxy(self):\n return True\n\n configure('/slumber_examples/Pizza/',\n instance_proxy = PizzaProxy)\n\nIf your proxy needs to find an operation URL then they will appear in\n``self._operations``, which is a dict keyed on the operation name given\non the server.\n\n::\n\n from slumber.connector.ua import get\n\n def Example(object):\n def proxy_operation(self):\n json = get(self._operations['operation-name'])\n\nThis would expect to find an operation name ``operation-name`` on the\nserver and will issue a GET against it.\n\nSlumber will automatically load the proxies for you when the client is\nfirst used. The packages that contain ``slumber_client`` modules will\nneed to be listed in the ``SLUMBER_CLIENT_APPS`` setting. I.e.:\n\n::\n\n SLUMBER_CLIENT_APPS = ['slumber_examples']\n\nThis will cause the client to do an import of\n``slumber_examples.slumber_client``.\n\nSlumber remote authentication and authorization\n-----------------------------------------------\n\nSlumber is also able to help you manage centralised authentication and\nauthorization across RESTful services. This allows you to make use of\n``django.contrib.auth`` on one service to handle permissions on another.\n\nIn order to make use of remote authentication you will need to add an\nauthentication backend. The default Django settings don't include\n``AUTHENTICATION_BACKENDS`` so you will need to add this. Typically you\nwill want to turn off Django's normal authentication back end.\n\n::\n\n AUTHENTICATION_BACKENDS = [\n 'slumber.connector.authentication.Backend',\n ]\n\nAny server can be used as the central store, but to get Slumber to make\nuse of it Slumber must be properly configured. Continuing our pizza\nexample from earlier and assuming that we have a Slumber server exposed\nat ``http://auth.example.com/slumber/`` we would configure our pizza\nservice as follows.\n\n::\n\n SLUMBER_SERVICE = 'pizzas'\n SLUMBER_DIRECTORY = {\n 'auth': 'http://auth.example.com/slumber/',\n 'pizzas': 'http://localhost:8000/'\n }\n\nNote that the service based configuration must be used and there must be\nan ``auth`` service. The ``auth`` service is allowed to be an alias onto\nanother location. For example, if we had an ``accounting`` service that\nwas to handle authentication and authorization then we could configure\nit using:\n\n::\n\n SLUMBER_SERVICE = 'accounting'\n\nTo use this as the ``auth`` service from elsewhere we would now need to\ngive the accounting URL as the ``auth`` location to other services.\nI.e.:\n\n::\n\n SLUMBER_DIRECTORY = {\n 'auth': 'http://accounting.example.com/slumber/accounting/',\n 'accounting': 'http://accounting.example.com/slumber/accounting/',\n 'pizzas': 'http://localhost:8000/'\n }\n\nIf Slumber needs to pass authenticated requests to another service then\nthe ``slumber.connector.middleware.ForwardAuthentication`` middleware\nneeds to be installed.\n\nCaching of requests\n-------------------\n\nSlumber includes some simple HTTP request caching within the client\nconnector. By default this caching is turned off for all models. It can\nbe enabled on a per model basis by adding proxies for the models and in\nthe instances and including a ``_CACHE_TTL`` attribute. This will cache\nthe GET responses for the number of seconds specified in the\ntime-to-live.\n\nIf you include your own GET requests to the user agent in a proxy then\nyou should remember to pass the cache TTL value:\n\n::\n\n ua.get(url, self._CACHE_TTL)\n\nSee the file ``slumber/connector/proxies.py`` for examples on the User\nobject.\n\nDoing development\n=================\n\n*This project uses git flow. Don't forget to do ``git flow init -d``*\n(i.e. use defaults for all options).\n\nFirst you will want to create virtual environments to run the tests in.\nThere is a helper script in ``test-projects`` for this.\n\n::\n\n test-projects/make-virtual-environments\n\nIn order to use this you will need virtualenv and virtualenv-wrapper.\n\nOnce the virtual environments are created the tests can be run using the\n``runtests`` script.\n\n::\n\n ./runtests\n\nNote that you do not need to be in a virtual environment when you run\nthis script. It will switch between the required virtual environments\nautomatically when the tests are run.\n\n.. |Build Status| image:: https://travis-ci.org/KayEss/django-slumber.png?branch=develop\n :target: https://travis-ci.org/KayEss/django-slumber", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/KayEss/django-slumber", "keywords": "django rest data server client", "license": "Boost Software License - Version 1.0 - August 17th, 2003", "maintainer": null, "maintainer_email": null, "name": "django_slumber", "package_url": "https://pypi.org/project/django_slumber/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django_slumber/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/KayEss/django-slumber" }, "release_url": "https://pypi.org/project/django_slumber/0.8.2/", "requires_dist": null, "requires_python": null, "summary": "RESTful data connector for Django", "version": "0.8.2" }, "last_serial": 1675582, "releases": { "0.4.10": [ { "comment_text": "", "digests": { "md5": "7aed809654053c7c1059dddbf9ad9a63", "sha256": "bf350658313462785f1f7da56f857968bd79f32acbead957013f8fb525b9dc68" }, "downloads": -1, "filename": "django_slumber-0.4.10.tar.gz", "has_sig": false, "md5_digest": "7aed809654053c7c1059dddbf9ad9a63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37810, "upload_time": "2012-03-27T06:45:32", "url": "https://files.pythonhosted.org/packages/f1/02/0d3e2a801f0a83e5ce4bccb1ea96987d08fdf40966ce4fe8bb7c2d3a5e2b/django_slumber-0.4.10.tar.gz" } ], "0.4.4": [], "0.4.5": [ { "comment_text": "", "digests": { "md5": "37b1474c5072d3b2807961bb224707af", "sha256": "771582311b9a6ab6c073476d71a069ce26542405c8b85100b8791d04dfc15bcf" }, "downloads": -1, "filename": "django_slumber-0.4.5.tar.gz", "has_sig": false, "md5_digest": "37b1474c5072d3b2807961bb224707af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26746, "upload_time": "2011-12-29T02:09:25", "url": "https://files.pythonhosted.org/packages/f0/db/0a28272dd3f231d004170f34819954e3ed9449612bcfba6500482ad9d7b2/django_slumber-0.4.5.tar.gz" } ], "0.4.5.1": [ { "comment_text": "", "digests": { "md5": "19a72ba5762fa819a21138e3b8d5a9b8", "sha256": "15a6724c693de9932884cbff7f088395172986736bacc92999cc7abb56292cc1" }, "downloads": -1, "filename": "django_slumber-0.4.5.1.tar.gz", "has_sig": false, "md5_digest": "19a72ba5762fa819a21138e3b8d5a9b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28938, "upload_time": "2011-12-29T04:03:29", "url": "https://files.pythonhosted.org/packages/9c/1a/aa115196b1b8c1f4b8a9a14b4a6ac0a3e8275b19c536dedb22ea62756ff6/django_slumber-0.4.5.1.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "e39f55f2bbdf087bb6370561ca24f3e1", "sha256": "60ce6159189cd1e1e1440722381cc45bb29268c8ea269bb6fe6dda8f069af2cb" }, "downloads": -1, "filename": "django_slumber-0.4.6.tar.gz", "has_sig": false, "md5_digest": "e39f55f2bbdf087bb6370561ca24f3e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30357, "upload_time": "2012-01-21T03:33:29", "url": "https://files.pythonhosted.org/packages/55/b6/473d1278aeb4177a878e759a7b31552ccf23c8d30e5644a38b47bcb450ff/django_slumber-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "d7f6c2b47f6de4f9d0ff40c65a758da8", "sha256": "0937ccfb65764d7a74ff4385df5d3c9ab799013c06e9012aa92026b7eca3b101" }, "downloads": -1, "filename": "django_slumber-0.4.7.tar.gz", "has_sig": false, "md5_digest": "d7f6c2b47f6de4f9d0ff40c65a758da8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31818, "upload_time": "2012-02-20T02:54:39", "url": "https://files.pythonhosted.org/packages/75/c9/6b57e4d93885700f4c5f3a7a9db44e9594f14cd75ebb008e65de45b8cbe5/django_slumber-0.4.7.tar.gz" } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "80d4799fa62869c97ae8cee2a27d10d2", "sha256": "ae46b63ba8cdc5cdfb33be962c974a17c17980acfadb68bea35fc945f8cb3a6f" }, "downloads": -1, "filename": "django_slumber-0.4.8.tar.gz", "has_sig": false, "md5_digest": "80d4799fa62869c97ae8cee2a27d10d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36725, "upload_time": "2012-02-24T03:32:55", "url": "https://files.pythonhosted.org/packages/ac/15/3bb591f63034bd8a15e27587146a8b4cd6499adc62d2acd7480eef630db0/django_slumber-0.4.8.tar.gz" } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "81560b098795c8c14cb9a51a23305994", "sha256": "38ae19f93282cc839306e22be4e0b7399a58ad3b684a03840589b99a98585fe3" }, "downloads": -1, "filename": "django_slumber-0.4.9.tar.gz", "has_sig": false, "md5_digest": "81560b098795c8c14cb9a51a23305994", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36934, "upload_time": "2012-02-24T03:39:43", "url": "https://files.pythonhosted.org/packages/5d/d4/b13e5fbd499ee13a51a1ee7198739c4a86f988b2f1b9238b6ea5775bcad8/django_slumber-0.4.9.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "0e8a801b971bd80adabcb0e9dc5979d2", "sha256": "52c7fce7c14cc84ee98850f8996da8d407af8fb73712df3cf44ce6673124cc19" }, "downloads": -1, "filename": "django_slumber-0.5.0.tar.gz", "has_sig": false, "md5_digest": "0e8a801b971bd80adabcb0e9dc5979d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39626, "upload_time": "2012-04-07T05:52:15", "url": "https://files.pythonhosted.org/packages/83/db/96b3525087c8a70a512624922f28560aacd51d7121dbb8ef75a782688e1e/django_slumber-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "f148f010a0ed4c783730914ab3ce5ea7", "sha256": "06ecb1aad0b1e4994d256dd85061d8ba24d6182767e63a75058f7137670b42e5" }, "downloads": -1, "filename": "django_slumber-0.5.1.tar.gz", "has_sig": false, "md5_digest": "f148f010a0ed4c783730914ab3ce5ea7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45052, "upload_time": "2012-04-13T12:13:32", "url": "https://files.pythonhosted.org/packages/d0/47/9f3a36ff21c99ef812323451755bd8835fa2f1a9ef2423da47a4981b4691/django_slumber-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "28336e7c39a21e3f2043c5037bb56a4f", "sha256": "ce323cccf8af4494813a05bb0501578a1e48672c0bfda0d08af6a17064c90481" }, "downloads": -1, "filename": "django_slumber-0.5.2.tar.gz", "has_sig": false, "md5_digest": "28336e7c39a21e3f2043c5037bb56a4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44855, "upload_time": "2012-04-18T07:49:27", "url": "https://files.pythonhosted.org/packages/da/9b/8d21697da8d9e1fe32a4eab4b1e1858b9c30a589b47933528aafd361110a/django_slumber-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "69cd92e0c3c6b60e4fd29b7afe9f2492", "sha256": "8261c4cd2489a6a48a9690e48d864866aab83f8209891e96e235b2cab99bb618" }, "downloads": -1, "filename": "django_slumber-0.5.3.tar.gz", "has_sig": false, "md5_digest": "69cd92e0c3c6b60e4fd29b7afe9f2492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45351, "upload_time": "2012-04-29T12:56:06", "url": "https://files.pythonhosted.org/packages/80/f7/bfecba38907bd9d91a25146075696d8b2f23407396d82f0c6785b084d264/django_slumber-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "dedd747c48d375473c81669c00eeebad", "sha256": "2724bd96fe5335fcd00d0ad98fe424514c14780dd603f2e10c6008aff88871d4" }, "downloads": -1, "filename": "django_slumber-0.5.4.tar.gz", "has_sig": false, "md5_digest": "dedd747c48d375473c81669c00eeebad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45367, "upload_time": "2012-05-08T13:57:29", "url": "https://files.pythonhosted.org/packages/2c/3e/817147e21bb1e54c5362b5963305239433e314cfe7093850cdfefa83c680/django_slumber-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "c42b1897bd6e2f1b7397787624d265e2", "sha256": "c60f09c6896e31f03e5751f36f9b0dbe07880a45ee0dcf0cb9ee26f61127f1fa" }, "downloads": -1, "filename": "django_slumber-0.5.5.tar.gz", "has_sig": false, "md5_digest": "c42b1897bd6e2f1b7397787624d265e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34577, "upload_time": "2012-05-12T03:10:48", "url": "https://files.pythonhosted.org/packages/33/6f/f295d8f12abf3074a9d529b40a1b882c67f42339e6d50282b68de757072d/django_slumber-0.5.5.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "8d014acb3ae4a459b0df5d93d7eddc7a", "sha256": "ca192b7f756b0b1ca085163bb04af32c044315515cfef5c98770b29245c60248" }, "downloads": -1, "filename": "django_slumber-0.5.6.tar.gz", "has_sig": false, "md5_digest": "8d014acb3ae4a459b0df5d93d7eddc7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34588, "upload_time": "2012-05-14T13:42:14", "url": "https://files.pythonhosted.org/packages/d1/4e/ad1cea8851de09bf920568c2b804651ba6fef085a95db75d418e6dc36f60/django_slumber-0.5.6.tar.gz" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "5b0e70c4878f69941b2f8a583fe99405", "sha256": "7abd8b3d56e70c567451a7c07996700625ddc49ffacdbe5dbb5c2982f656393c" }, "downloads": -1, "filename": "django_slumber-0.5.7.tar.gz", "has_sig": false, "md5_digest": "5b0e70c4878f69941b2f8a583fe99405", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34582, "upload_time": "2012-05-15T14:26:33", "url": "https://files.pythonhosted.org/packages/9c/ff/e13caf3aad4141a5a144a9baa1ce417024649189aa580d94a369bd23941b/django_slumber-0.5.7.tar.gz" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "9926423ae8646dcfb2f4fe0634e1c924", "sha256": "29453d6d74c0c540c5ef985737704e06debbf84a9e76d747a5da584046c9bce2" }, "downloads": -1, "filename": "django_slumber-0.5.8.tar.gz", "has_sig": false, "md5_digest": "9926423ae8646dcfb2f4fe0634e1c924", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45982, "upload_time": "2012-05-16T04:30:56", "url": "https://files.pythonhosted.org/packages/b5/25/acebbb10807e6dc8a3281da2279ec6cbac32657dbab4ed353a9310204bdd/django_slumber-0.5.8.tar.gz" } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "27876d44e054727aed80645fd01f0165", "sha256": "d93682407ec5b4d7e0693f726e3d1026b0dc72764d9f5e50dc95952e562299bc" }, "downloads": -1, "filename": "django_slumber-0.5.9.tar.gz", "has_sig": false, "md5_digest": "27876d44e054727aed80645fd01f0165", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46483, "upload_time": "2012-05-21T05:08:30", "url": "https://files.pythonhosted.org/packages/8b/f9/b3555a061edceacd6a52ec1c909ec8112f5764ca029519123f3b94b7d5af/django_slumber-0.5.9.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "85925c4fbd24bd6d7942f00f1738235f", "sha256": "19981fd464ae98e31d871a50ec33a6b7e00d25def8f77bdb87fd0f5cb5a9a5d5" }, "downloads": -1, "filename": "django_slumber-0.6.0.tar.gz", "has_sig": false, "md5_digest": "85925c4fbd24bd6d7942f00f1738235f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46662, "upload_time": "2012-05-30T06:34:06", "url": "https://files.pythonhosted.org/packages/e0/07/1d266d12dcf4c62512620838787d859d5431c776f2e4e6d77ee9711f0337/django_slumber-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "3b4e5711de2013e7243ea2b5fdf8ae74", "sha256": "d5adb352f0e420963d10b554049c7bd2dfe37c130bc6f6e2d2897a6d87071b0c" }, "downloads": -1, "filename": "django_slumber-0.6.1.tar.gz", "has_sig": false, "md5_digest": "3b4e5711de2013e7243ea2b5fdf8ae74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46646, "upload_time": "2012-05-30T14:51:27", "url": "https://files.pythonhosted.org/packages/a6/a2/1a84c142d915ec1ab56a9819ca85840601ca3b40a0571588cb722628af83/django_slumber-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "4f1c668c8aa3698fc8679a0bd52cd7b5", "sha256": "9ee8df2e0c1aa4258a3208e41a58d0e2dc5fe7841f46f550debe0420f4f773e1" }, "downloads": -1, "filename": "django_slumber-0.6.2.tar.gz", "has_sig": false, "md5_digest": "4f1c668c8aa3698fc8679a0bd52cd7b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48020, "upload_time": "2012-06-01T14:49:01", "url": "https://files.pythonhosted.org/packages/2a/14/ce348d8d40ac7305a9355ecfc73d1a4d901bc8cb314cc8131afeda3656cc/django_slumber-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "6a92001f31ada2f8f834e67884806856", "sha256": "88860bdc4ab8985490797f3cde63afbe64a7cc5d67934d278b9d309da06ee851" }, "downloads": -1, "filename": "django_slumber-0.6.3.tar.gz", "has_sig": false, "md5_digest": "6a92001f31ada2f8f834e67884806856", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48576, "upload_time": "2012-06-07T11:31:10", "url": "https://files.pythonhosted.org/packages/78/ff/1c52bcaa5cbc1057d34f96d5f6f6a0ea38fd620a1a6e8586fd5135dd9a3b/django_slumber-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "e0491e90f308d30fa9c7c4273b5f39d4", "sha256": "890ebfdea182fcc974b8417a0c31aa474acf5865b6302ceb91862d6aaf2aed36" }, "downloads": -1, "filename": "django_slumber-0.6.4.tar.gz", "has_sig": false, "md5_digest": "e0491e90f308d30fa9c7c4273b5f39d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48777, "upload_time": "2012-06-16T07:33:12", "url": "https://files.pythonhosted.org/packages/5d/6d/72f55af72e54af2f5ee92fd11b9ae4323a2b1232c86bb2e7798b84343b85/django_slumber-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "2f01f63aa47de813052d0a5f5bf30ba8", "sha256": "c888ff51edb338960e09ba64b65a1595d3bcc62251d71bfdfb6acf4e75b43103" }, "downloads": -1, "filename": "django_slumber-0.6.5.tar.gz", "has_sig": false, "md5_digest": "2f01f63aa47de813052d0a5f5bf30ba8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49080, "upload_time": "2012-06-29T06:15:55", "url": "https://files.pythonhosted.org/packages/33/44/acf8c39bfe3e203cdd33a5055e69d7c63a0733c9ccbf71efea34fa150dde/django_slumber-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "fab30004c97222880a59fbafe51f6e63", "sha256": "769d490b076171b8c25cbcaccaa6791e2c448b4a1fc9010394fb08a09e720499" }, "downloads": -1, "filename": "django_slumber-0.6.6.tar.gz", "has_sig": false, "md5_digest": "fab30004c97222880a59fbafe51f6e63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44713, "upload_time": "2012-07-17T10:35:35", "url": "https://files.pythonhosted.org/packages/34/e0/c03ae723b9a2e06c6a1e9b155f3f3dfc8776bca00104fde263251e365ec7/django_slumber-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "63152c21535eed81221c121b0ab1abca", "sha256": "569cf7fb86c1692a6544508b55d4e2a958e5df9e7f7718f194b3b3b1e0fdb85b" }, "downloads": -1, "filename": "django_slumber-0.6.7.tar.gz", "has_sig": false, "md5_digest": "63152c21535eed81221c121b0ab1abca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44835, "upload_time": "2012-08-06T09:39:13", "url": "https://files.pythonhosted.org/packages/21/de/f4c934e3bf8ad1d9d978146c2453e59a9f8fb2abba2fcec3a24cc34bc05d/django_slumber-0.6.7.tar.gz" } ], "0.6.8": [ { "comment_text": "", "digests": { "md5": "a309df5b4de4572ead18a47f7ab9865e", "sha256": "5b75d15a71bfab4e7d92033e12c8b6f879850098a742aa332b5e6775fb794c20" }, "downloads": -1, "filename": "django_slumber-0.6.8.tar.gz", "has_sig": false, "md5_digest": "a309df5b4de4572ead18a47f7ab9865e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49343, "upload_time": "2012-08-07T13:43:50", "url": "https://files.pythonhosted.org/packages/46/00/af2f875f024601d5fc18bb7aa4dba348ed080be29e7602278b42b7e2c2c6/django_slumber-0.6.8.tar.gz" } ], "0.6.9": [ { "comment_text": "", "digests": { "md5": "0b8de91bd020615668bc9cb732f5e9cd", "sha256": "6fcd7472f6eb77be5a2ea24dfa4bc53ab817ad47e0a0aed6492b57a0212b7ecd" }, "downloads": -1, "filename": "django_slumber-0.6.9.tar.gz", "has_sig": false, "md5_digest": "0b8de91bd020615668bc9cb732f5e9cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45098, "upload_time": "2012-10-04T11:17:36", "url": "https://files.pythonhosted.org/packages/d2/84/b152400eae549cd70f1b7d0e1306a91ed7f4e66434d6319871d6ef1deffa/django_slumber-0.6.9.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "a10232cef4bb0fedb8b00b21b072d473", "sha256": "6a4b41ccc5ed4cc79f70b933ca92761c485af6f261626e61b9c823adc6bc69f1" }, "downloads": -1, "filename": "django_slumber-0.7.0.tar.gz", "has_sig": false, "md5_digest": "a10232cef4bb0fedb8b00b21b072d473", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49716, "upload_time": "2013-02-18T05:07:26", "url": "https://files.pythonhosted.org/packages/f7/92/14d112eb47c6da3c23176b8aba7b149ed42b7d80dd588056e6055ec21c35/django_slumber-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "1269f3fff0b6dea0a33cd10416fb8f85", "sha256": "fd57500e0f65bbe25c28ac041feb89707ce3a5b4683abbec6195570be7dd2a61" }, "downloads": -1, "filename": "django_slumber-0.7.1.tar.gz", "has_sig": false, "md5_digest": "1269f3fff0b6dea0a33cd10416fb8f85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39219, "upload_time": "2013-04-18T07:08:11", "url": "https://files.pythonhosted.org/packages/5e/86/b0add76f45cd97ec3c8a6f1d39dee490e5521f5b95da44c9c8789a4d89cd/django_slumber-0.7.1.tar.gz" } ], "0.7.1.1": [ { "comment_text": "", "digests": { "md5": "577eb5da4fa458f6724283b8c34afd38", "sha256": "25ff6b94fe337caba0a665e4e2484499033f9f1b3c3df7dcf465dd35ac9b7087" }, "downloads": -1, "filename": "django_slumber-0.7.1.1.tar.gz", "has_sig": false, "md5_digest": "577eb5da4fa458f6724283b8c34afd38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46624, "upload_time": "2013-04-20T03:46:41", "url": "https://files.pythonhosted.org/packages/78/33/089b19a8a1817f7fb944bd3e39b6920efaa747134eb6a6c613082a6cd439/django_slumber-0.7.1.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "7ef43e8ea249f46e5fc9a45202efb77d", "sha256": "99e05fcca1b6c92cee97b6b99ee407302c94ab4194c57569742cf7d1f9f89d62" }, "downloads": -1, "filename": "django_slumber-0.7.2.tar.gz", "has_sig": false, "md5_digest": "7ef43e8ea249f46e5fc9a45202efb77d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46657, "upload_time": "2013-06-05T06:58:03", "url": "https://files.pythonhosted.org/packages/be/06/5b3a2d06aff81f71b4e28fc4e42bbfb032baff66e714419488192fb34ad8/django_slumber-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "eccf026f1f91339d79ca51ef0752c0a3", "sha256": "d65aa773076fc0ef31020675a9748a33e093152fc1627eb5dceb2bc9440a44e9" }, "downloads": -1, "filename": "django_slumber-0.7.3.tar.gz", "has_sig": false, "md5_digest": "eccf026f1f91339d79ca51ef0752c0a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46895, "upload_time": "2013-09-18T07:23:53", "url": "https://files.pythonhosted.org/packages/1d/25/57ac525cc58d2b13292acca81d0dd806ddad86fc54d83c00549e0cc83df7/django_slumber-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "c6bbb350aebedef5b1d017ebcd1657de", "sha256": "e83ff7da0c0c8a374b066f1b479437d151056495c34e7d43d7c75847a39b6857" }, "downloads": -1, "filename": "django_slumber-0.7.4.tar.gz", "has_sig": false, "md5_digest": "c6bbb350aebedef5b1d017ebcd1657de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46935, "upload_time": "2013-09-25T04:15:08", "url": "https://files.pythonhosted.org/packages/19/3b/6459be2f1ee412df4f666e033de3bcf51605fa8f1a000d3b5d32d6ecf9a8/django_slumber-0.7.4.tar.gz" } ], "0.7.5": [ { "comment_text": "", "digests": { "md5": "c575d4daeed152f4d8b61c3b8791f4d2", "sha256": "d26b8a53cc027005a7ade25232887a41f8ca2b0ccb8d9db7b664163a4480a3a4" }, "downloads": -1, "filename": "django_slumber-0.7.5.tar.gz", "has_sig": false, "md5_digest": "c575d4daeed152f4d8b61c3b8791f4d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46762, "upload_time": "2013-10-28T10:19:55", "url": "https://files.pythonhosted.org/packages/cd/ed/ef38ca8cc8580a4b22c71fdc5d6bd69cee63a1c63450c1bf0ff524695c7b/django_slumber-0.7.5.tar.gz" } ], "0.7.6": [ { "comment_text": "", "digests": { "md5": "863dad64936a8a6318de32f701627b28", "sha256": "7ce21761502388fffe460618f883ace24e35f445223bdada5e47d4cdd6bc285e" }, "downloads": -1, "filename": "django_slumber-0.7.6.tar.gz", "has_sig": false, "md5_digest": "863dad64936a8a6318de32f701627b28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47200, "upload_time": "2013-11-05T05:41:26", "url": "https://files.pythonhosted.org/packages/ec/53/ab6ff27b373b44c7159be86fedab12a779465719196f5cbdf6abbf18627b/django_slumber-0.7.6.tar.gz" } ], "0.7.7": [ { "comment_text": "", "digests": { "md5": "dd8cad4900de3350425ec4595f254043", "sha256": "32dd56843a33f5c24a8d3587f80d41f626c03ad048dc4869818d9b3dd0133a38" }, "downloads": -1, "filename": "django_slumber-0.7.7.tar.gz", "has_sig": false, "md5_digest": "dd8cad4900de3350425ec4595f254043", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48055, "upload_time": "2013-11-13T09:28:18", "url": "https://files.pythonhosted.org/packages/63/16/07f831af53f56b8478b2570a3722f89fc93a4f3e86ccd13eceac00b04aff/django_slumber-0.7.7.tar.gz" } ], "0.7.9": [ { "comment_text": "", "digests": { "md5": "4aad5d1b293126deeadb83c2548ecdc5", "sha256": "503c484ee191933296a4a484383663eb34103c5f7b7b8841fc97f568b68e65f3" }, "downloads": -1, "filename": "django_slumber-0.7.9.tar.gz", "has_sig": false, "md5_digest": "4aad5d1b293126deeadb83c2548ecdc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53731, "upload_time": "2014-01-24T05:24:21", "url": "https://files.pythonhosted.org/packages/9b/f5/f7f2acb33aa66bfe2f57647972c68857ef7f5d2cb7be32c7ed2b17931e88/django_slumber-0.7.9.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "8db1016e1896cd91613e721e7c2af38c", "sha256": "598ad21fc44401874ccc4930a11d5b60e13fc7023deffc852a8d3bb6c4dafacc" }, "downloads": -1, "filename": "django_slumber-0.8.tar.gz", "has_sig": false, "md5_digest": "8db1016e1896cd91613e721e7c2af38c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54603, "upload_time": "2014-09-24T08:24:27", "url": "https://files.pythonhosted.org/packages/15/10/b5d693d45d6ac420530cd22aeb963a82de4609cb8b3d07f219fa6d897336/django_slumber-0.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "f578701bb46f8036af4a96b9a9a55d7b", "sha256": "a6702f096b48a7b1ed571db656a03e1b050e5dd4b46eba0c2df97c7c2c576a01" }, "downloads": -1, "filename": "django_slumber-0.8.1.tar.gz", "has_sig": false, "md5_digest": "f578701bb46f8036af4a96b9a9a55d7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55756, "upload_time": "2015-04-11T04:37:43", "url": "https://files.pythonhosted.org/packages/0a/52/594db3e89ce5e5b2040b7083d6fd6f36fbbf2538a1b507a5f4170ab5e9f0/django_slumber-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "fe964402dcef6cb65dc130e91f63f6c6", "sha256": "e07cd592c5761c2774e40ced3ecb744a3906e122a33d7145c2bef0070aeb40ba" }, "downloads": -1, "filename": "django_slumber-0.8.2.tar.gz", "has_sig": false, "md5_digest": "fe964402dcef6cb65dc130e91f63f6c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56299, "upload_time": "2015-08-13T05:51:53", "url": "https://files.pythonhosted.org/packages/1e/87/774d1bea39e23ba06f63e95fb4bb5b78550651c25b5f970281d2c8197537/django_slumber-0.8.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fe964402dcef6cb65dc130e91f63f6c6", "sha256": "e07cd592c5761c2774e40ced3ecb744a3906e122a33d7145c2bef0070aeb40ba" }, "downloads": -1, "filename": "django_slumber-0.8.2.tar.gz", "has_sig": false, "md5_digest": "fe964402dcef6cb65dc130e91f63f6c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56299, "upload_time": "2015-08-13T05:51:53", "url": "https://files.pythonhosted.org/packages/1e/87/774d1bea39e23ba06f63e95fb4bb5b78550651c25b5f970281d2c8197537/django_slumber-0.8.2.tar.gz" } ] }