{ "info": { "author": "Stormpath, Inc.", "author_email": "python@stormpath.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "django-stormpath\n================\n\nSimple, scalable, user authentication for Django (powered by `Stormpath `_).\n\n.. image:: https://img.shields.io/pypi/v/django-stormpath.svg\n :alt: stormpath Release\n :target: https://pypi.python.org/pypi/django-stormpath\n\n.. image:: https://img.shields.io/pypi/dm/django-stormpath.svg\n :alt: stormpath Downloads\n :target: https://pypi.python.org/pypi/django-stormpath\n\n.. image:: https://api.codacy.com/project/badge/Grade/1c14c778d4e24604b48814144db18024\n :alt: stormpath-django Code Quality\n :target: https://www.codacy.com/app/r/stormpath-django\n\n.. image:: https://img.shields.io/travis/stormpath/stormpath-django.svg\n :alt: stormpath-django Build\n :target: https://travis-ci.org/stormpath/stormpath-django\n\n.. image:: https://coveralls.io/repos/github/stormpath/stormpath-django/badge.svg?branch=master\n :alt: stormpath-django Coverage\n :target: https://coveralls.io/github/stormpath/stormpath-django?branch=master\n\n.. note::\n This is a beta release, if you run into any issues, please file a report on\n our `Issue Tracker `_.\n\n\nMeta\n----\n\nThis library provides user account storage, authentication, and authorization\nwith `Stormpath `_.\n\nThis library works with Python 2.7.x and Python 3.3+. It supports Django versions 1.6+.\n\n.. note::\n This library will NOT work on Google App Engine due to incompatibilities\n with the\n `requests `_\n package :(\n\n\nInstallation\n------------\n\nTo install the library, you'll need to use `pip `_:\n\n.. code-block:: console\n\n $ pip install django-stormpath\n\n\nHow it Works\n------------\n\ndjango-stormpath provides an ``AUTHENTICATION_BACKEND`` which is used to\ncommunicate with the Stormpath REST API.\n\nWhen a user tries to log in, and Stormpath is used as the authentication\nbackend, django-stormpath always asks the Stormpath service if the user's\ncredentials (*username or email and password*) are correct. Password hashes are\nalways stored in Stormpath, and not locally.\n\nIf a user's credentials are valid, there are two possible scenarios:\n\n1. User doesn't exist in Django's database (*PostgreSQL, MySQL, Oracle etc.*).\n In this case, a user will be created in the local Django user database with\n their username, password, email, first name, and last name identical to the\n Stormpath user's. Then this user will be authenticated.\n\n2. User exists in Django's database. In this case, if a user's information has\n changed on Stormpath, the Django user's fields are updated accordingly.\n After this, the user will be authenticated.\n\n.. note::\n An account on Stormpath can be disabled, enabled, locked and unverified.\n When a user is created or updated, the ``is_active`` field is set to\n ``True`` if the Stormpath account is enabled and ``False`` otherwise.\n For a Stormpath user to be able to log into the Django admin interface\n it must specify the ``is_superuser`` and ``is_staff`` properties in the\n Stormpath Account's customData resource.\n\n\nUsage\n-----\n\nFirst, you need to add ``django_stormpath`` to your ``INSTALLED_APPS`` setting\nin ``settings.py``:\n\n.. code-block:: python\n\n INSTALLED_APPS = (\n # ...,\n 'django_stormpath',\n )\n\nNext, you need to add the Stormpath backend into ``AUTHENTICATION_BACKENDS``:\n\n.. code-block:: python\n\n AUTHENTICATION_BACKENDS = (\n # ...\n 'django_stormpath.backends.StormpathBackend',\n )\n\nAfter that's done, you'll also need to tell Django to use Stormpath's user\nmodel:\n\n.. code-block:: python\n\n AUTH_USER_MODEL = 'django_stormpath.StormpathUser'\n\nYou can read more about how Django's custom user model works `here _`.\n\nLastly, you need to specify your Stormpath credentials: your API key and secret,\nas well as your Stormpath Application URL.\n\nFor more information about these things, please see the official\n`guide `_.\n\nTo specify your Stormpath credentials, you'll need to add the following settings\nto your ``settings.py``:\n\n.. code-block:: python\n\n STORMPATH_ID = 'yourApiKeyId'\n STORMPATH_SECRET = 'yourApiKeySecret'\n STORMPATH_APPLICATION = 'https://api.stormpath.com/v1/applications/YOUR_APP_UID_HERE'\n\nOnce this is done, you're ready to get started! The next thing you need to do\nis to sync your database and apply any migrations:\n\n.. code-block:: console\n\n $ python manage.py migrate\n\nAnd that's it! You're now ready to get started =)\n\n\nExample: Creating a User\n------------------------\n\nTo pragmatically create a user, you can use the following code:\n\n.. code-block:: python\n\n from django.contrib.auth import get_user_model\n\n UserModel = get_user_model()\n UserModel.objects.create(\n email = 'john.doe@example.com',\n given_name = 'John',\n surname = 'Doe',\n password = 'password123!'\n )\n\nThe above example just calls the ``create_user`` method:\n\n.. code-block:: python\n\n UserModel.objects.create_user('john.doe@example.com', 'John', 'Doe', 'Password123!')\n\nTo create a super user, you can use ``manage.py``:\n\n.. code-block:: console\n\n $ python manage.py createsuperuser --username=joe --email=joe@example.com\n\nThis will set ``is_admin``, ``is_staff`` and ``is_superuser`` to ``True`` on\nthe newly created user. All extra parameters like the aforementioned flags are\nsaved on Stormpath in the Accounts customData Resource and can be inspected\noutside of Django. This just calls the ``UserModel.objects.create_superuser`` method\nbehind the scenes.\n\nOnce you're all set up you can use the ``StormpathUser`` model just as you would the normal\ndjango user model to form relationships within your models:\n\n class Book(models.Model):\n author = models.ForeignKey(settings.AUTH_USER_MODEL)\n\n\n.. note::\n When doing the initial ``migrate`` call (or ``manage.py createsuperuser``)\n an Account is also created on Stormpath. Every time the ``save`` method\n is called on the UserModel instance it is saved/updated on Stormpath as\n well. This includes working with the Django built-in admin interface.\n\n\nID Site\n-------\n\nIf you'd like to not worry about building your own registration and login\nscreens at all, you can use Stormpath's new `ID site feature\n`_. This is a hosted login\nsubdomain which handles authentication for you automatically.\n\nTo make this work in Django, you need to specify a few settings:\n\n.. code-block:: python\n\n AUTHENTICATION_BACKENDS = (\n # ...\n 'django_stormpath.backends.StormpathIdSiteBackend',\n )\n\n # This should be set to the same URI you've specified in your Stormpath ID\n # Site dashboard. NOTE: This URL must be *exactly* the same as the one in\n # your Stormpath ID Site dashboard (under the Authorized Redirect URLs input\n # box).\n STORMPATH_ID_SITE_CALLBACK_URI = 'http://localhost:8000/handle-callback/stormpath/\n\n # The URL you'd like to redirect users to after they've successfully logged\n # into their account.\n LOGIN_REDIRECT_URL = '/redirect/here'\n\nLastly, you've got to include some URLs in your main ``urls.py`` as well:\n\n.. code-block:: python\n\n url(r'', include('django_stormpath.urls')),\n\nAn example of how to use the available URL mappings can be found `here\n`_.\n\n\nSocial Login\n------------\n\nDjango Stormpath supports social login as well. Currently supported Providers are: Google, Github, Linkedin and Facebook.\nFirst thing that you need to do is add `StormpathSocialBackend` to the list of allowed authentication backends\nin your settings file:\n\n.. code-block:: python\n\n AUTHENTICATION_BACKENDS = (\n # ...\n 'django_stormpath.backends.StormpathSocialBackend',\n )\n\nAfter that you can enable each provider with the following settings:\n\n.. code-block:: python\n\n STORMPATH_ENABLE_GOOGLE = True\n STORMPATH_ENABLE_FACEBOOK = True\n STORMPATH_ENABLE_GITHUB = True\n STORMPATH_ENABLE_LINKEDIN = True\n\n STORMPATH_SOCIAL = {\n 'GOOGLE': {\n 'client_id': os.environ['GOOGLE_CLIENT_ID'],\n 'client_secret': os.environ['GOOGLE_CLIENT_SECRET'],\n },\n 'FACEBOOK': {\n 'client_id': os.environ['FACEBOOK_CLIENT_ID'],\n 'client_secret': os.environ['FACEBOOK_CLIENT_SECRET']\n },\n 'GITHUB': {\n 'client_id': os.environ['GITHUB_CLIENT_ID'],\n 'client_secret': os.environ['GITHUB_CLIENT_SECRET']\n },\n 'LINKEDIN': {\n 'client_id': os.environ['LINKEDIN_CLIENT_ID'],\n 'client_secret': os.environ['LINKEDIN_CLIENT_SECRET']\n },\n }\n\n\nAnd that's it! Now if you navigate to \"https://yourdjangoapp.com/social-login/google/\" for each provider respectively,\nyou will be redirected to that provider for authentication. If you are authenticated succesffully you will be redirected back\nto your django app and logged in automatically. Stormpath django also creates a directory for each social provider automatically\nso you don't need to worry about it.\n\n.. note::\n Please note that the callback URL's for each provider are listed in django stormpath's urls.py file.\n You will need to use these callback urls and set them as redirect URI's when configuring each provider\n in their respecive dashboards. For intance the callback URL for Google is: \"https://yourdjangoapp.com/social-login/google/callback\".\n\n.. note::\n Note that for OAuth2 to work we need to be using HTTPS.\n For django to work correctly with HTTPS please set the following settings:\n\n SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')\n SESSION_COOKIE_SECURE = True\n CSRF_COOKIE_SECURE = True\n\n\nCaching\n-------\n\nThe best kind of websites are fast websites. ``Django-Stormpath`` includes\nbuilt-in support for caching. You can currently use either:\n\n- A local memory cache (*default*).\n- A `memcached `_ cache.\n- A `redis `_ cache.\n\nAll can be easily configured using configuration variables.\n\nThere are several configuration settings you can specify to control caching\nbehavior. You need to add the ``STORMPATH_CACHE_OPTIONS`` to your Django\nproject's settings file.\n\nHere's an example which shows how to enable caching with redis::\n\n from stormpath.cache.redis_store import RedisStore\n\n STORMPATH_CACHE_OPTIONS = {\n 'store': RedisStore,\n 'store_opts': {\n 'host': 'localhost',\n 'port': 6379\n }\n }\n\nHere's an example which shows how to enable caching with memcached::\n\n from stormpath.cache.memcached_store import MemcachedStore\n\n STORMPATH_CACHE_OPTIONS = {\n 'store': MemcachedStore,\n 'store_opts': {\n 'host': 'localhost',\n 'port': 11211\n }\n }\n\nIf no cache is specified, the default, ``MemoryStore``, is used. This will\ncache all resources in local memory.\n\nFor a full list of options available for each cache backend, please see the\nofficial `Caching Docs `_\nin our Python library.\n\n\nCopyright and License\n---------------------\n\nCopyright © 2014 Stormpath, inc. You may use and/or modify this library\nunder the terms of Apache License version 2.0. Please see the\n`LICENSE `_\nfile for details.\n\n\nChange Log\n----------\n\nAll library changes, in descending order.\n\n\nVersion 1.1.0\n*************\n\n**Released August 12, 2016.**\n\n- Dropping Python 3.3 support since Django doesn't support it in 1.10.\n- Supporting Python 3.5.\n- Dropping support for Django 1.6 / 1.7, since they are EOL by Django.\n- Fixing broken tests.\n- Adding coverage reporting.\n- Renaming management task ``sync_account`` -> ``sync_accounts_from_stormpath``.\n- Adding option to ``sync_accounts_from_stormpath`` to sync Stormpath Groups in\n addition to accounts.\n- Various code cleanup.\n\n\nVersion 1.0.7\n*************\n\n**Released August 10, 2016.**\n\n- Supporting new Django management command: ``sync_accounts```. This will\n synchronize all remote Stormpath Accounts with the local Django database.\n This helps developers keep things in sync (like in the Django admin). Thanks\n to `Peter Novotnak `_ for the PR!\n- Fixing some old, incorrect setup docs.\n\n\nVersion 1.0.6\n*************\n\n**Released February 18, 2016.**\n\n- Version bump for Stormpath dependency.\n- Fixing error handling issues which now work better with underlying Python\n library fixes.\n- Refactoring our ID site callback handling to use our new Python bindings.\n\n\nVersion 1.0.5\n*************\n\n**Released November 13, 2015.**\n\n- Version bump for Stormpath dependency.\n\n\nVersion 1.0.4\n*************\n\n**Released November 2, 2015.**\n\n- Removing Python 3.2 support. Nobody uses it (*buggy release*).\n- Raising a proper ``DoesNotExist`` exception when a Resource 404 is returned\n from the Stormpath API.\n- Updating docs to reflect what versions of Django we support (*1.6+*).\n- Allowing users to update a user's password by working around the data\n mirroring issue with Django.\n- Supporting the ``check_password`` Django API, thanks to an awesome pull\n request from `smcoll `_.\n- Fixing email verification bug.\n- Adding get-or-create support.\n- Updating stormpath dependency.\n\n\nVersion 1.0.3\n*************\n\n**Released on June 18, 2015.**\n\n- Updating ID site docs slightly.\n- Fixing Travis CI builds.\n- Upgrading to the latest Stormpath release.\n\n\nVersion 1.0.2\n*************\n\n**Released on May 12, 2015.**\n\n- Improving Travis CI builds so that tests are run against Django 1.6.x, 1.7.x,\n and 1.8.x. This will help flush out Django version issues (*hopefully!*).\n- Fixing old migration issue. This should make all new ``migrate`` commands run\n successfully regardless of database used.\n- Supporting ``User.first_name`` and ``User.last_name`` per Django's\n conventions. This makes our user model play nice with third party Django apps\n =)\n\n\nVersion 1.0.1\n*************\n\n**Released on April 30, 2015.**\n\n- Adding missing migrations. This fixes issues when running ``migrate`` on a\n new Postgres database.\n- Making the built-in ``delete()`` method remove both copies of the account.\n\n\nVersion 1.0.0\n*************\n\n**Released on April 18, 2015.**\n\n- Fixing issue with ``StormpathPermissionsMixin`` by replacing it with the\n built-in ``PermissionsMixin`` that Django provides. Thanks again,\n `@davidmarquis `_!\n- The above change is a **breaking** change -- so users of earlier versions of\n django-stormpath are encouraged to stay on their current release unless they\n want to manually handle the database migrations. This breakage is *very rare*\n for our libraries, but was necessary in this case to fix the underlying\n library issues.\n- Updating broken test case for the new release.\n\n\nVersion 0.0.7\n*************\n\n**Released on April 15, 2015.**\n\n- Fixing documentation issue in the README -- we had an incorrect code sample\n setting up urlpatterns. Thanks `@espenak `_ for\n the find!\n- Adding a `StormpathUserManager.delete()` method. This makes it possible to\n 'cleanly' delete users from both Django and Stormpath.\n- Fixing Group permission editing. Thanks `@davidmarquis `_!\n- Fixing bug with maintaining the username field when editing user objects.\n Thanks again, `@davidmarquis `_!\n- Adding in missing dependency: ``requests_oauthlib``. This is required for our\n ID site functionality to work, but was missing.\n\n\nVersion 0.0.6\n*************\n\n**Released on February 11, 2015.**\n\n- PEP-8 fixing imports, and making things python 3 compatible (thanks\n @rtrajano)!\n\n\nVersion 0.0.5\n*************\n\n**Released on February 5, 2015.**\n\n- Adding support for social login.\n- Various test fixes.\n- PEP-8.\n\n\nVersion 0.0.4\n*************\n\n**Released on January 19, 2015.**\n\n- Fixing incompatible arguments being passed from django-rest-framework-jwt to\n ``StormpathBackend.authenticate()``.\n- Changing unexpected behaviors (*no return value*) of\n ``StormpathuserManager.create()``.\n\nAll fixes thanks to `@skolsuper `_!\n\n\nVersion 0.0.3\n*************\n\n**Released on December 9, 2014.**\n\n- Adding cache support.\n- Fixing docs.\n- Adding docs on caching.\n- Adding support for ID site.\n\n\nVersion 0.0.2\n*************\n\n**Released on November 26, 2014.**\n\n- Fixing README stuff :(\n\n\nVersion 0.0.1\n*************\n\n**Released on November 26, 2014.**\n\n- First release!\n", "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/stormpath/stormpath-django", "keywords": null, "license": "Apache", "maintainer": null, "maintainer_email": null, "name": "django-stormpath", "package_url": "https://pypi.org/project/django-stormpath/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-stormpath/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/stormpath/stormpath-django" }, "release_url": "https://pypi.org/project/django-stormpath/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "Stormpath integration for Django.", "version": "1.1.0" }, "last_serial": 2278446, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "74143def82283159298354e0c0016578", "sha256": "d32b83b9490fc617755c5e114f9fc458e3bf002c75012aabab89a4b8a8b95646" }, "downloads": -1, "filename": "django-stormpath-0.0.1.tar.gz", "has_sig": false, "md5_digest": "74143def82283159298354e0c0016578", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9594, "upload_time": "2014-11-26T17:39:45", "url": "https://files.pythonhosted.org/packages/b9/88/539ae1756c238db4bb82579d2dc5bcec908e98207d893df7dad23cfc8c0d/django-stormpath-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "69f7be6275130dff2659edc8fdb6375a", "sha256": "6bd66113afa04f1cf9124976ecc5cfca0659a48b6ab92f443cd42c126d2703c0" }, "downloads": -1, "filename": "django-stormpath-0.0.2.tar.gz", "has_sig": false, "md5_digest": "69f7be6275130dff2659edc8fdb6375a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9608, "upload_time": "2014-11-26T17:47:19", "url": "https://files.pythonhosted.org/packages/d8/3d/f133f3ad834dd237ae33220c2b6a9fd572cab18506f44a1e7005a61bb0a5/django-stormpath-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "0478bb16b1302cff5683e79eaae65f64", "sha256": "90b6453f6fd2dfd4627be2540c551091b9d7e693ab37b09487e92e61e59da568" }, "downloads": -1, "filename": "django-stormpath-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0478bb16b1302cff5683e79eaae65f64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10467, "upload_time": "2014-12-09T19:21:42", "url": "https://files.pythonhosted.org/packages/57/9e/a78c7b3fdf8d7976ebd0a8ac923fefab71a4cbf9b2a4ea2a381cde3ea755/django-stormpath-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "409d898b82badabeeb1f57e02961cec3", "sha256": "186811f551706955825ed58d585a4be9c7f45ed123663074fce473e4502e04b9" }, "downloads": -1, "filename": "django-stormpath-0.0.4.tar.gz", "has_sig": false, "md5_digest": "409d898b82badabeeb1f57e02961cec3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10654, "upload_time": "2015-01-19T19:39:38", "url": "https://files.pythonhosted.org/packages/45/65/9d729b4668f1537112a7b27d029f2342e8804e62adc9ef773acd9dc5317d/django-stormpath-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "a256249deedce1edeea0fe9e126da88e", "sha256": "d7623ade7b0ebbfd180a250795046b3f3114076e709e2176e347a6ea43c7276d" }, "downloads": -1, "filename": "django-stormpath-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a256249deedce1edeea0fe9e126da88e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13381, "upload_time": "2015-02-06T01:30:34", "url": "https://files.pythonhosted.org/packages/80/88/4d83e9a5be3a19aac02952b267b9e3a189e0ad39280303ee14239ca75cdd/django-stormpath-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "3af4873ba300bb0798d9186035b8e128", "sha256": "eab92de5c16e2a87d8498fdab0303c8062157a8e5653bc9cd43b424f4087bc86" }, "downloads": -1, "filename": "django-stormpath-0.0.6.tar.gz", "has_sig": false, "md5_digest": "3af4873ba300bb0798d9186035b8e128", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13519, "upload_time": "2015-02-11T20:00:41", "url": "https://files.pythonhosted.org/packages/38/cf/477b2f45d4f960286abbc8bd6ab885becea43318b332ac45a2d544a5f98e/django-stormpath-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "df91da38ba0121d911797aececaa4a2e", "sha256": "db6e6d614adca78b1d6b7f3901dca74958eff92c5d61f53d9614b193689473be" }, "downloads": -1, "filename": "django-stormpath-0.0.7.tar.gz", "has_sig": false, "md5_digest": "df91da38ba0121d911797aececaa4a2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14472, "upload_time": "2015-04-15T23:36:47", "url": "https://files.pythonhosted.org/packages/b1/8e/39fee119d6e6715b7349056f81c31f25e6e7a9b25df1a73501c6afee1167/django-stormpath-0.0.7.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "09f15faadccbe007775d3d9b01f923a9", "sha256": "ac28d0f311d2b7bc5a0a2ed36966f9a3a3e50d6d7748dff611eb7bf5f5dea22f" }, "downloads": -1, "filename": "django-stormpath-1.0.0.tar.gz", "has_sig": false, "md5_digest": "09f15faadccbe007775d3d9b01f923a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14700, "upload_time": "2015-04-19T00:34:47", "url": "https://files.pythonhosted.org/packages/f6/3a/f29739d4723f2037abbb51485595c25c79b53741ab995aa0b79b0b86c892/django-stormpath-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d57799a302dc25aa0152de1899b568c6", "sha256": "bccec8876156f20d87096368f735ac95466caba6da9b2075c8341097da01b72f" }, "downloads": -1, "filename": "django-stormpath-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d57799a302dc25aa0152de1899b568c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15491, "upload_time": "2015-04-30T17:55:11", "url": "https://files.pythonhosted.org/packages/76/f9/45629f5b72907a988404db4483ee4bfa465f86271a2533be5428084fb906/django-stormpath-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "26d94cdafc0faac35e9cbb7a72ed91f4", "sha256": "55c56d3ea0aec0ca5091bc48f320f29c01f84bdf71b10c524174d742f11abd94" }, "downloads": -1, "filename": "django_stormpath-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26d94cdafc0faac35e9cbb7a72ed91f4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15950, "upload_time": "2015-05-12T23:39:49", "url": "https://files.pythonhosted.org/packages/64/3a/f5a136253592d1c59b221294cc22b924a2e116cf19e3227181a5632ba5bf/django_stormpath-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ffa32ba564a136262b406b6dac3e03d9", "sha256": "da45068801efa4dbefdfa6b474bd6cbc962b4fbdc2662e144ca45b05a8a9f614" }, "downloads": -1, "filename": "django-stormpath-1.0.2.tar.gz", "has_sig": false, "md5_digest": "ffa32ba564a136262b406b6dac3e03d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15967, "upload_time": "2015-05-12T23:39:46", "url": "https://files.pythonhosted.org/packages/c8/16/434d33b04e51777be21bce455bf1f6bd38a2ce3cca430f54cc82e38f7741/django-stormpath-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "103cfa9d8b6da64eee9d751f2de15f6a", "sha256": "73cd0bc2c54e99a8c2221cdd444d11eeb65a9df05718db2f6e2ba0b9017f7719" }, "downloads": -1, "filename": "django_stormpath-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "103cfa9d8b6da64eee9d751f2de15f6a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17575, "upload_time": "2015-06-18T21:04:37", "url": "https://files.pythonhosted.org/packages/e5/d3/3e99a6ad4122b0bca08f6d121ad1c72208441eb72a32b079ceba7e3a3dea/django_stormpath-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1cb6b9fafd9364367c308772cbc7f98", "sha256": "94d82f9085f08ee9f77da78859123fc505f775b2edd5b16fe5cbc5a93d0be805" }, "downloads": -1, "filename": "django-stormpath-1.0.3.tar.gz", "has_sig": false, "md5_digest": "a1cb6b9fafd9364367c308772cbc7f98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17095, "upload_time": "2015-06-18T21:04:34", "url": "https://files.pythonhosted.org/packages/f4/6e/5a0497baa39db2f7a2682f2de96f33ae087febbbc1c6de9d2bd727ab9a8c/django-stormpath-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "c4464c703f85719077cb11996348cb58", "sha256": "11a178795a60894e43d29cee1824d4bf9dcb3c685a1be6070fc30818c3b76713" }, "downloads": -1, "filename": "django_stormpath-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c4464c703f85719077cb11996348cb58", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19974, "upload_time": "2015-11-02T23:41:22", "url": "https://files.pythonhosted.org/packages/c5/63/78b322fd5730b5fc571aca01b621fdcba8c2b5301092c815659254ce77e3/django_stormpath-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b03fa6632ffea5e1f2d5a1ebbfdd259", "sha256": "239dcee3453e81eb8b0fe33184a37e59a53e8a5fa771bbd5aeb4d405bb22ef4a" }, "downloads": -1, "filename": "django-stormpath-1.0.4.tar.gz", "has_sig": false, "md5_digest": "2b03fa6632ffea5e1f2d5a1ebbfdd259", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18333, "upload_time": "2015-11-02T23:41:27", "url": "https://files.pythonhosted.org/packages/1b/19/b8a6095e269ca2863e79881efd6a4893ee93b3666e8adc7d6f4128a9c4c3/django-stormpath-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "f89d4baf7d52f713e74ecead0cbc65a4", "sha256": "7d89e3b89311095178a92991c769362897a5d6070d935f93a94df441a357d1e2" }, "downloads": -1, "filename": "django_stormpath-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f89d4baf7d52f713e74ecead0cbc65a4", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20058, "upload_time": "2015-11-13T19:40:05", "url": "https://files.pythonhosted.org/packages/2f/01/cc4dceacbce1ef99c6d9a2ca8c4b3c03f281a42a3d18ac658da8e33eb4a8/django_stormpath-1.0.5-py2.py3-none-any.whl" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "afe6afa38479bc9674fb5aef952c8683", "sha256": "f171442c3ba49c642af6c537c013cf24cb9e024a3a75f03f1103c7531ba36ef9" }, "downloads": -1, "filename": "django_stormpath-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "afe6afa38479bc9674fb5aef952c8683", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20069, "upload_time": "2016-02-18T23:31:53", "url": "https://files.pythonhosted.org/packages/38/f1/65498e68f2d99f487ced0920516ba26fb17d1384249741ef0e024524ee3e/django_stormpath-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc038619e07a5e1f346760ffcabf947d", "sha256": "09335049c67188543e0358f5a0aa91a934da2fc5da39d16abae5c22944969483" }, "downloads": -1, "filename": "django-stormpath-1.0.6.tar.gz", "has_sig": false, "md5_digest": "bc038619e07a5e1f346760ffcabf947d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18495, "upload_time": "2016-02-18T23:31:48", "url": "https://files.pythonhosted.org/packages/b7/4a/e36933da5ac5f9bdae885b072068d8e1fbbb3fc89ac9d7ab67d6637b79da/django-stormpath-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "bf1c5ca28b511d0e0dd55e133b7e2059", "sha256": "2893240562a1b25865b62b0ff9bd11f02279b4883e1805a7bcf30297427bd451" }, "downloads": -1, "filename": "django_stormpath-1.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf1c5ca28b511d0e0dd55e133b7e2059", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 21407, "upload_time": "2016-08-11T06:31:36", "url": "https://files.pythonhosted.org/packages/e4/55/8fa2b0bd7cc1011104a3810ae555eae811730c30b97ec5bb0b412651a4b8/django_stormpath-1.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "759214116b38f4c5ca5f612036d0d978", "sha256": "b5e42a22e9bb8c6dcd8b7a8c6b5bfdba95fd3b3224defdd2fdbc1e1150786c91" }, "downloads": -1, "filename": "django-stormpath-1.0.7.tar.gz", "has_sig": false, "md5_digest": "759214116b38f4c5ca5f612036d0d978", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19101, "upload_time": "2016-08-11T06:31:33", "url": "https://files.pythonhosted.org/packages/02/d2/0286d713de3e8950fa5ed2dd998e698bd54d28a940db83903937dae60e6d/django-stormpath-1.0.7.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "cabe189e4127c800c34b8b215bf0cb88", "sha256": "891d2be641a5d3d8f7974f688463cd5c28b9d6fdb0645827d68a5038b8635ab9" }, "downloads": -1, "filename": "django_stormpath-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cabe189e4127c800c34b8b215bf0cb88", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 22403, "upload_time": "2016-08-12T17:06:00", "url": "https://files.pythonhosted.org/packages/08/7a/52370ef8c56b93362dc13da2f6508bad2bcebd4f6249e56b25fb488c4738/django_stormpath-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e457dedd72edd1c056a45292990b7fb7", "sha256": "9003eec49ca7f54467b0d653633b9c4add7ccea4a6238ab868b92d697eabd689" }, "downloads": -1, "filename": "django-stormpath-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e457dedd72edd1c056a45292990b7fb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19488, "upload_time": "2016-08-12T17:05:58", "url": "https://files.pythonhosted.org/packages/19/49/05048cef2014a967944258c7fa875c3269669a8fa46ff7948d5d1f997743/django-stormpath-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cabe189e4127c800c34b8b215bf0cb88", "sha256": "891d2be641a5d3d8f7974f688463cd5c28b9d6fdb0645827d68a5038b8635ab9" }, "downloads": -1, "filename": "django_stormpath-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cabe189e4127c800c34b8b215bf0cb88", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 22403, "upload_time": "2016-08-12T17:06:00", "url": "https://files.pythonhosted.org/packages/08/7a/52370ef8c56b93362dc13da2f6508bad2bcebd4f6249e56b25fb488c4738/django_stormpath-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e457dedd72edd1c056a45292990b7fb7", "sha256": "9003eec49ca7f54467b0d653633b9c4add7ccea4a6238ab868b92d697eabd689" }, "downloads": -1, "filename": "django-stormpath-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e457dedd72edd1c056a45292990b7fb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19488, "upload_time": "2016-08-12T17:05:58", "url": "https://files.pythonhosted.org/packages/19/49/05048cef2014a967944258c7fa875c3269669a8fa46ff7948d5d1f997743/django-stormpath-1.1.0.tar.gz" } ] }