`__.\n\n.. image:: https://img.shields.io/pypi/v/django-spurl.svg\n :target: https://pypi.python.org/pypi/django-spurl/\n\n.. image:: https://img.shields.io/pypi/dm/django-spurl.svg\n :target: https://pypi.python.org/pypi/django-spurl/\n\n.. image:: https://img.shields.io/github/license/j4mie/django-spurl.svg\n :target: https://pypi.python.org/pypi/django-spurl/\n\n.. image:: https://img.shields.io/travis/j4mie/django-spurl.svg\n :target: https://travis-ci.org/j4mie/django-spurl/\n\nInstallation\n------------\n\nEither checkout ``spurl`` from GitHub, or install using pip:\n\n.. code:: shell\n\n pip install django-spurl\n\nAdd ``spurl`` to your ``INSTALLED_APPS``:\n\n.. code:: python\n\n INSTALLED_APPS = (\n ...\n 'spurl',\n )\n\nFinally, whenever you want to use Spurl in a template, you need to load\nits template library:\n\n.. code:: html+django\n\n {% load spurl %}\n\nUsage\n-----\n\nSpurl is **not** a replacement for Django's built-in ``{% url %}``\ntemplate tag. It is a general-purpose toolkit for manipulating URL\ncomponents in templates. You can use it alongside ``{% url %}`` if you\nlike (see below).\n\nSpurl provides a single template tag, called (surprisingly enough),\n``spurl``. You call it with a set of ``key=value`` keyword arguments,\nwhich are described fully below.\n\nTo show some of the features of Spurl, we'll go over a couple of simple\nexample use cases.\n\nAdding query parameters to URLs\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSay you have a list of external URLs in your database. When you create\nlinks to these URLs in a template, you need to add a\n``referrer=mysite.com`` query parameter to each. The simple way to do\nthis might be:\n\n.. code:: html+django\n\n {% for url, title in list_of_links %}\n {{ title }}\n {% endfor %}\n\nThe problem here is that you don't know in advance if the URLs stored in\nyour database *already* have query parameters. If they do, you'll\ngenerate malformed links like\n``http://www.example.com?foo=bar?referrer=mysite.com``.\n\nSpurl can fix this. Because it knows about the components of a URL, it\ncan add parameters onto an existing query, if there is one.\n\n.. code:: html+django\n\n {% for url, title in list_of_links %}\n {{ title }}\n {% endfor %}\n\nNote that **when you pass a literal string to Spurl, you have to wrap it\nin double quotes**. If you don't, Spurl will assume it's a variable name\nand try to look it up in the template's context.\n\nSSL-sensitive external URLs.\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nSuppose your site needs to display a gallery of images, the URLs of\nwhich have come from some third-party web API. Additionally, imagine\nyour site needs to run both in secure and non-secure mode - the same\ncontent is available at both ``https`` or ``http`` URLs (depending on\nwhether a visitor is logged in, say). Some browsers will complain loudly\n(displaying \"Mixed content warnings\" to the user) if the page being\ndisplayed is ``https`` but some of the assets are ``http``. Spurl can\nfix this.\n\n.. code:: html+django\n\n {% for image_url in list_of_image_urls %}\n
\n {% endfor %}\n\nThis will take the image URL you supply and replace the scheme component\n(the ``http`` or ``https`` bit) with the correct version, depending on\nthe return value of ``request.is_secure()``. Note that the above assumes\nyou're using a ``RequestContext`` so that ``request`` is available in\nyour template.\n\nUsing alongside ``{% url %}``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNotice that Spurl's functionality doesn't overlap with Django's built-in\n``{% url %}`` tag. Spurl doesn't know about your urlconf, and doesn't do\nany URL reversing. In fact, Spurl is mostly useful for manipulating\n**external** URLs, rather than URLs on your own site. However, you can\neasily use Spurl with ``{% url %}`` if you need to. You just have to use\nthe ``as`` keyword to put your reversed URL in a template variable, and\nthen pass this to Spurl. As it's a relative path (rather than a full\nURL) you should pass it using the ``path`` argument. For example, say\nyou want to append some query parameters to a URL on your site:\n\n.. code:: html+django\n\n {% url your_url_name as my_url %}\n Click here!\n\nThere is another way to use Spurl with ``{% url %}``, see *Embedding\ntemplate tags* below.\n\nAvailable arguments\n~~~~~~~~~~~~~~~~~~~\n\nBelow is a full list of arguments that Spurl understands.\n\nbase\n^^^^\n\nIf you pass a ``base`` argument to Spurl, it will parse its contents and\nuse this as the base URL upon which all other arguments will operate. If\nyou *don't* pass a ``base`` argument, Spurl will generate a URL from\nscratch based on the components that you pass in separately.\n\nscheme\n^^^^^^\n\nSet the scheme component of the URL. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com\" scheme=\"ftp\" %}\n\nThis will return ``ftp://example.com``\n\nSee also: ``scheme_from``, below.\n\nhost\n^^^^\n\nSet the host component of the URL. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/some/path/\" host=\"google.com\" %}\n\nThis will return ``http://google.com/some/path/``\n\nSee also: ``host_from``, below.\n\nauth\n^^^^\n\nHandle HTTP Basic authentication, username and password can be passed in\nURL. Example:\n\n.. code:: html+django\n\n {% spurl base=\"https://example.com\" auth=\"user:pass\" %}\n\nThis will return ``https://user:pass@example.com``\n\npath\n^^^^\n\nSet the path component of the URL. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/some/path/\" path=\"/different/\" %}\n\nThis will return ``http://example.com/different/``\n\nSee also: ``path_from``, below.\n\nadd\\_path\n^^^^^^^^^\n\nAppend a path component to the existing path. You can add multiple\n``add_path`` calls, and the results of each will be combined. Example:\n\n.. code:: html+django\n\n {% spurl base=STATIC_URL add_path=\"javascript\" add_path=\"lib\" add_path=\"jquery.js\" %}\n\nThis will return ``http://cdn.example.com/javascript/lib/jquery.js``\n(assuming ``STATIC_URL`` is set to ``http://cdn.example.com``)\n\nSee also: ``add_path_from``, below.\n\nfragment\n^^^^^^^^\n\nSet the fragment component of the URL. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com\" fragment=\"myfragment\" %}\n\nThis will return ``http://example.com/#myfragment``\n\nSee also: ``fragment_from``, below.\n\nport\n^^^^\n\nSet the port component of the URL. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/some/path/\" port=\"8080\" %}\n\nThis will return ``http://example.com:8080/some/path/``\n\nSee also: ``port_from``, below.\n\nquery\n^^^^^\n\nSet the query component of the URL. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/\" query=\"foo=bar&bar=baz\" %}\n\nThis will return ``http://example.com/?foo=bar&bar=baz``\n\nThe ``query`` argument can also be passed a dictionary from your\ntemplate's context.\n\n.. code:: python\n\n # views.py\n def my_view(request):\n my_query_params = {'foo': 'bar', 'bar': 'baz'}\n return render(request, 'path/to/template.html', {'my_query_params': my_query_params})\n\n.. code:: html+django\n\n \n {% spurl base=\"http://example.com/\" query=my_query_params %}\n\nThis will return ``http://example.com/?foo=bar&bar=baz``\n\nFinally, you can pass individual template variables to the query. To do\nthis, Spurl uses Django's template system. For example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/\" query=\"foo={{ variable_name }}\" %}\n\nSee also: ``query_from``, below.\n\nadd\\_query\n^^^^^^^^^^\n\nAppend a set of parameters to an existing query. If your base URL might\nalready have a query component, this will merge the existing parameters\nwith your new ones. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/?foo=bar\" add_query=\"bar=baz\" %}\n\nThis will return ``http://example.com?foo=bar&bar=baz``\n\nYou can add multiple ``add_query`` calls, and the results of each will\nbe combined:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/\" add_query=\"foo=bar\" add_query=\"bar=baz\" %}\n\nThis will return ``http://example.com?foo=bar&bar=baz``\n\nLike the ``query`` argument above, the values passed to ``add_query``\ncan also be dictionaries, and they can contain Django template\nvariables.\n\nSee also: ``add_query_from``, below.\n\nset\\_query\n^^^^^^^^^^\n\nAppends a set of parameters to an existing query, overwriting existing\nparameters with the same name. Otherwise uses the exact same syntax as\n``add_query``.\n\nSee also: ``set_query_from``, below.\n\ntoggle\\_query\n^^^^^^^^^^^^^\n\nToggle the value of one or more query parameters between two possible\nvalues. Useful when reordering list views. Example:\n\n.. code:: html+django\n\n {% spurl base=request.get_full_path toggle_query=\"sort=ascending,descending\" %}\n\nIf the value of ``request.get_full_path()`` doesn't have a ``sort``\nparameter, one will be added with a value of ``ascending`` (the first\nitem in the list is the default). If it already has a ``sort``\nparameter, and it is currently set to ``ascending``, it will be set to\n``descending``. If it's already set to ``descending``, it will be set to\n``ascending``.\n\nYou can also specify the options as a dictionary, mapping the parameter\nname to a two-tuple containing the values to toggle. Example:\n\n.. code:: python\n\n # views.py\n\n SORT_PARAM = 'sort'\n ASCENDING = 'ascending'\n DESCENDING = 'descending'\n\n def my_view(request):\n\n if request.GET.get(SORT_PARAM, ASCENDING) == DESCENDING:\n object_list = MyModel.objects.order_by('-somefield')\n else:\n object_list = MyModel.objects.order_by('somefield')\n\n return render(request, 'path/to/template.html', {\n 'object_list': object_list,\n 'sort_params': {SORT_PARAM: (ASCENDING, DESCENDING)},\n })\n\n.. code:: html+django\n\n \n Reverse order\n\nremove\\_query\\_param\n^^^^^^^^^^^^^^^^^^^^\n\nRemove a query parameter from an existing query:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/?foo=bar&bar=baz\" remove_query_param=\"foo\" %}\n\nThis will return ``http://example.com?bar=baz``\n\nAgain, you can add multiple ``remove_query_param`` calls, and the\nresults will be combined:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/?foo=bar&bar=baz\" remove_query_param=\"foo\" remove_query_param=\"bar\" %}\n\nThis will return ``http://example.com/``\n\nYou can also remove parameters with specific values:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/?foo=bar&bar=baz&foo=baz\" remove_query_param=\"foo\" remove_query_param=\"foo=baz\" %}\n\nThis will return ``http://example.com/?bar=baz``\n\nFinally, you can pass individual template variables to the\n``remove_query_param`` calls. To do this, Spurl uses Django's template\nsystem. For example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/?foo=bar&bar=baz\" remove_query_param=\"{{ variable_name }}\" %}\n\nsecure\n^^^^^^\n\nControl whether the generated URL starts with ``http`` or ``https``. The\nvalue of this argument can be a boolean (``True`` or ``False``), if\nyou're using a context variable. If you're using a literal argument\nhere, it must be a quoted string. The strings ``\"True\"`` or ``\"on\"``\n(case-insensitive) will be converted to ``True``, any other string will\nbe converted to ``False``. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/\" secure=\"True\" %}\n\nThis will return ``https://example.com/``\n\nautoescape\n^^^^^^^^^^\n\nBy default, Spurl will escape its output in the same way as Django's\ntemplate system. For example, an ``&`` character in a URL will be\nrendered as ``&``. You can override this behaviour by passing an\n``autoescape`` argument, which must be either a boolean (if passed from\na template variable) or a string. The strings ``\"True\"`` or ``\"on\"``\n(case-insensitive) will be converted to ``True``, any other string will\nbe converted to ``False``.\n\nAdded bonus: ``_from`` parameters\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAs well as those listed above, Spurl provides a family of parameters for\n*combining* URLs. Given a base URL to start with, you can copy a\ncomponent from another URL. These arguments expect to be passed a full\nURL (or anything that can be understood by ``URLObject.parse``). This\nURL will be parsed, and then the component in question will be extracted\nand combined with the base URL.\n\nBelow is a full list of the available ``_from`` methods. They have\nidentical semantics to their counterparts above (except they expect a\nfull URL, not just a URL component).\n\n- ``query_from``\n- ``add_query_from``\n- ``set_query_from``\n- ``scheme_from``\n- ``host_from``\n- ``path_from``\n- ``add_path_from``\n- ``fragment_from``\n- ``port_from``\n\nExample:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com/foo/bar/?foo=bar path_from=\"http://another.com/something/?bar=foo\" %}\n\nThis will return ``http://example.com/something/?foo=bar``\n\nBuilding a URL without displaying it\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nLike Django's ``{% url %}`` tag, Spurl allows you to insert the\ngenerated URL into the template's context for later use. Example:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com\" secure=\"True\" as secure_url %}\n The secure version of the url is {{ secure_url }}
\n\nEmbedding template tags\n~~~~~~~~~~~~~~~~~~~~~~~\n\nAs mentioned above, Spurl uses Django's template system to individually\nparse any arguments which can be passed strings. This allows the use of\nsyntax such as:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com\" add_query=\"foo={{ bar }}\" %}\n\nThis works fine for variable and filters, but what if we want to use\nother template tags *inside* our Spurl tag? We can't nest ``{%`` and\n``%}`` tokens inside each other, because Django's template parser would\nget very confused. Instead, we have to escape the inner set of tag\nmarkers with backslashes:\n\n.. code:: html+django\n\n {% spurl base=\"http://example.com\" add_query=\"next={\\% url home %\\}\" %}\n\nNote that any tags or filters loaded in your template are automatically\navailable in the nested templates used to render each variable. This\nmeans we can do:\n\n.. code:: html+django\n\n {% load url from future %}\n {% spurl base=\"{\\% url 'home' %\\}\" %}\n\nBe careful with your quotation marks! If you use double-quotes to\nsurround the nested template, you have to use single quotes inside it.\n\n**Warning!** This functionality only exists to serve the most complex of\nuse cases, and is extremely magical (and probably a bad idea). You may\nprefer to use:\n\n.. code:: html+django\n\n {% url \"home\" as my_url %}\n {% spurl base=my_url %}\n\nDevelopment\n-----------\n\nTo contribute, fork the repository, make your changes, add some tests,\ncommit, push, and open a pull request.\n\nHow to run the tests\n~~~~~~~~~~~~~~~~~~~~\n\nSpurl is tested with `nose `__. Clone the\nrepository, then run ``pip install -r requirements.txt`` to install nose\nand Django into your virtualenv. Then, simply type ``nosetests`` to find\nand run all the tests.\n\n(Un)license\n-----------\n\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any means.\n\nIn jurisdictions that recognize copyright laws, the author or authors of\nthis software dedicate any and all copyright interest in the software to\nthe public domain. We make this dedication for the benefit of the public\nat large and to the detriment of our heirs and successors. We intend\nthis dedication to be an overt act of relinquishment in perpetuity of\nall present and future rights to this software under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to http://unlicense.org/\n\nArtwork credit\n--------------\n\nSuperman ASCII art comes from http://ascii.co.uk/art/superman\n\n\n\nChangelog\n---------\n\n0.6.6\n~~~~~\n\n\n* Added support for an except clause to remove all but specifed query vars.\n\n0.6.5\n~~~~~\n\n\n* Added support for Django 2.x and dropped support for older and\n non-LTS version of Django.\n\n0.6.4\n~~~~~\n\n\n* Getting ready for Django 1.10 release.\n* Dropped support for Django 1.3 and older.\n\n0.6.3\n~~~~~\n\n\n* Django 1.9 compatible (Albert Koch)\n\n0.6.2\n~~~~~\n\n\n* Add support for template variables to ``remove_query_param``.\n* Handle auth parameters to be able to add username:password to URLs.\n\n0.6.1\n~~~~~\n\n\n* Python 3 compatible!\n\n0.6\n~~~\n\n\n* Upgrade URLObject dependency to 2.0\n\n0.5\n~~~\n\n\n* Fix typos in changelog.\n* Add family of arguments (\\ ``_from``\\ ) for combining URLs.\n* Add ``toggle_query`` argument.\n\n0.4\n~~~\n\n\n* Upgrade URLObject dependency to 0.6.0\n* Add ``remove_query_param`` argument.\n* Add support for template tags embedded within argument values.\n* Extensive refactoring.\n\n0.3\n~~~\n\n\n* Add ``set_query`` argument.\n\n0.2\n~~~\n\n\n* Add ``as`` argument to insert generated URL into template context.\n\n0.1\n~~~\n\n\n* Initial release.\n",
"description_content_type": "",
"docs_url": null,
"download_url": "https://github.com/j4mie/django-spurl/zipball/master",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/j4mie/django-spurl",
"keywords": "",
"license": "Public Domain",
"maintainer": "",
"maintainer_email": "",
"name": "django-spurl",
"package_url": "https://pypi.org/project/django-spurl/",
"platform": "",
"project_url": "https://pypi.org/project/django-spurl/",
"project_urls": {
"Download": "https://github.com/j4mie/django-spurl/zipball/master",
"Homepage": "http://github.com/j4mie/django-spurl"
},
"release_url": "https://pypi.org/project/django-spurl/0.6.6/",
"requires_dist": null,
"requires_python": "",
"summary": "A Django template library for manipulating URLs.",
"version": "0.6.6"
},
"last_serial": 5002720,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "0b4a087315ec439a7159146eab84d642",
"sha256": "bd52a171f88b2302c505acc83d67fbc6afbb0e96c1b18a8209c1d622a596b02b"
},
"downloads": -1,
"filename": "django-spurl-0.1.tar.gz",
"has_sig": false,
"md5_digest": "0b4a087315ec439a7159146eab84d642",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7847,
"upload_time": "2011-07-29T10:44:19",
"url": "https://files.pythonhosted.org/packages/90/71/808b98dd38f542bf88f1d2522a4a03b0c9038b974cc72d534cbf48e00523/django-spurl-0.1.tar.gz"
}
],
"0.2": [
{
"comment_text": "",
"digests": {
"md5": "f1e684bd0344acb0bbacf253ed7818bd",
"sha256": "31fb3e91d4ceffcca83e3d10fbafe878d1aabe7e42d82112e43ce59b143beba0"
},
"downloads": -1,
"filename": "django-spurl-0.2.tar.gz",
"has_sig": false,
"md5_digest": "f1e684bd0344acb0bbacf253ed7818bd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7966,
"upload_time": "2011-08-08T17:49:03",
"url": "https://files.pythonhosted.org/packages/e3/36/c48d407070db92ab163ab625b952610cd3f00cb63f4f5fe30708271f8a3a/django-spurl-0.2.tar.gz"
}
],
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "cc79756aa6a7f2c1b427f7079c4440d4",
"sha256": "7acca5f48b11972c1ea60d1031ff37897f50c777de8dd43a1ec5681e742e3b4a"
},
"downloads": -1,
"filename": "django-spurl-0.3.tar.gz",
"has_sig": false,
"md5_digest": "cc79756aa6a7f2c1b427f7079c4440d4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8315,
"upload_time": "2011-08-18T11:30:58",
"url": "https://files.pythonhosted.org/packages/4f/4a/8dc3d8efdfd520007c23a040ab58bd207421b600a612386c228ec32988e8/django-spurl-0.3.tar.gz"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "87fcd90e2d44630472e6e433dccb3903",
"sha256": "29169efeb29ea8fa1c5045173d30e00d10df1120130de1894b3a670a39cf9ec4"
},
"downloads": -1,
"filename": "django-spurl-0.4.tar.gz",
"has_sig": false,
"md5_digest": "87fcd90e2d44630472e6e433dccb3903",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9901,
"upload_time": "2011-12-06T18:57:40",
"url": "https://files.pythonhosted.org/packages/5d/45/5b97ac1a9dfe96c2f0d1f35f2fdd539e72ceb1b27e8f503240cdb91a0b2a/django-spurl-0.4.tar.gz"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "c2e7eacd0263710fa8ce92145662628f",
"sha256": "0af454da0a7b308fbe86aae718da310a63081558755f0b3399bb55034824d577"
},
"downloads": -1,
"filename": "django-spurl-0.5.tar.gz",
"has_sig": false,
"md5_digest": "c2e7eacd0263710fa8ce92145662628f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11365,
"upload_time": "2011-12-14T15:20:30",
"url": "https://files.pythonhosted.org/packages/c7/1c/e854e98ab0a46b73a732ddf3f55593b7e4cd7ccfb0058579d14bd920f69a/django-spurl-0.5.tar.gz"
}
],
"0.6": [
{
"comment_text": "",
"digests": {
"md5": "5c24543471128dcb1a3dbc2582381ea2",
"sha256": "a53cb8fb7e03e3bb9ab0a98f35a3f1fd6aa05d8ff2d3bebdd468ead03f1082a1"
},
"downloads": -1,
"filename": "django-spurl-0.6.tar.gz",
"has_sig": false,
"md5_digest": "5c24543471128dcb1a3dbc2582381ea2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11389,
"upload_time": "2012-02-23T11:17:49",
"url": "https://files.pythonhosted.org/packages/b0/fa/6fc6e9ccaa8c5dac02afb9509fb9bf30eb98ff254607eb5a84c01e310d7d/django-spurl-0.6.tar.gz"
}
],
"0.6.1": [
{
"comment_text": "",
"digests": {
"md5": "d517bf99f031782cfd93975586c58af3",
"sha256": "d441a94b2417b4525b5d7072535cfeff0d27f9b99394c9d69bbc3403308e93df"
},
"downloads": -1,
"filename": "django-spurl-0.6.1.tar.gz",
"has_sig": true,
"md5_digest": "d517bf99f031782cfd93975586c58af3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14163,
"upload_time": "2015-07-14T13:12:03",
"url": "https://files.pythonhosted.org/packages/46/45/6c85cbfd395751339d0aed1327f3b62e905108c209768d9d51866c678f5d/django-spurl-0.6.1.tar.gz"
}
],
"0.6.2": [
{
"comment_text": "",
"digests": {
"md5": "5d6a4c6e4686edffb08a6f0983501028",
"sha256": "a524530e92c746b4f70a05695504e215e799d74127ae152423abb3f135fbd30a"
},
"downloads": -1,
"filename": "django_spurl-0.6.2-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "5d6a4c6e4686edffb08a6f0983501028",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 19860,
"upload_time": "2015-09-17T04:34:58",
"url": "https://files.pythonhosted.org/packages/5b/e4/38f76c3de23d90fe0af47a3df8afa49ca3c7b1203119b8d4056545237a47/django_spurl-0.6.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d605a5a9b9162d9459a1bdfb612fa5fd",
"sha256": "dab24c512a71a433df5aa0a0a07f36818c8e2d9f5f5ffcc05c92a2c4008e8a42"
},
"downloads": -1,
"filename": "django-spurl-0.6.2.tar.gz",
"has_sig": true,
"md5_digest": "d605a5a9b9162d9459a1bdfb612fa5fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14722,
"upload_time": "2015-09-17T04:34:49",
"url": "https://files.pythonhosted.org/packages/78/22/40b0cadd7a8ed666c70102c826367dc0c9424280eff5e4a0b4d3a4c68005/django-spurl-0.6.2.tar.gz"
}
],
"0.6.3": [
{
"comment_text": "",
"digests": {
"md5": "3d8796346d74087cba1b85840c573734",
"sha256": "b0f243e1b25c27a16e44377948f2c9642ef542028409f3caa3d963133adbb555"
},
"downloads": -1,
"filename": "django_spurl-0.6.3-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "3d8796346d74087cba1b85840c573734",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 20082,
"upload_time": "2015-12-17T03:55:26",
"url": "https://files.pythonhosted.org/packages/2a/72/d9a16a072206093e8d1012f9f3946fc7637742b678861ae29c90160def31/django_spurl-0.6.3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7aab6dd6b7f9127c1c9af1654a55c4d5",
"sha256": "9a71773e9f1bec0b46b01993ca058d308b545b158146000fbc594a0b73e8eeee"
},
"downloads": -1,
"filename": "django-spurl-0.6.3.tar.gz",
"has_sig": true,
"md5_digest": "7aab6dd6b7f9127c1c9af1654a55c4d5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15007,
"upload_time": "2015-12-17T03:54:50",
"url": "https://files.pythonhosted.org/packages/de/12/4a69ae6ba52dd3b172c783f4d3aacceb6d9e69a7e7617a73e465ae1b073f/django-spurl-0.6.3.tar.gz"
}
],
"0.6.4": [
{
"comment_text": "",
"digests": {
"md5": "d3c692692e45c5c332f4875b2f988d89",
"sha256": "95e8cb68e9de9744c085e95394ca97be9516da78244e81bd5c474d7b6851e097"
},
"downloads": -1,
"filename": "django_spurl-0.6.4-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "d3c692692e45c5c332f4875b2f988d89",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 20162,
"upload_time": "2015-12-26T05:31:29",
"url": "https://files.pythonhosted.org/packages/99/02/e01489e7b09f5b1a38fd2fd5f0dd63b68956584aa87268e568892082debd/django_spurl-0.6.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4c7a0c326b736f3757a040159b76d858",
"sha256": "acc161f1242c2ea3746e700a015796d24f44ba811aedb0d69945e6524774b92f"
},
"downloads": -1,
"filename": "django-spurl-0.6.4.tar.gz",
"has_sig": true,
"md5_digest": "4c7a0c326b736f3757a040159b76d858",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15076,
"upload_time": "2015-12-26T05:31:19",
"url": "https://files.pythonhosted.org/packages/57/ac/d1ddaa73c5ea1ece38b6daee69ac2276915c958ba4fc3b9fb48512cc7fc8/django-spurl-0.6.4.tar.gz"
}
],
"0.6.5": [
{
"comment_text": "",
"digests": {
"md5": "e2cb0a2a422cf9d7dc70f124f4df7b9d",
"sha256": "5ba47f1fcc44af6f0ca808db97ea5eb265622c0daef619d4b3d1f6c83566c1b8"
},
"downloads": -1,
"filename": "django_spurl-0.6.5-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e2cb0a2a422cf9d7dc70f124f4df7b9d",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 13132,
"upload_time": "2018-05-09T08:15:58",
"url": "https://files.pythonhosted.org/packages/04/ba/35ecf431dd0d8b637282000959bdba81e1981515facb0bea328126d7eb06/django_spurl-0.6.5-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2dc0f0868a6b97fc472e2cba25ff5339",
"sha256": "d41b151090b09ffc32a60d39b8888945c23eded8e6d8b0bd2922ed61a073edb8"
},
"downloads": -1,
"filename": "django-spurl-0.6.5.tar.gz",
"has_sig": false,
"md5_digest": "2dc0f0868a6b97fc472e2cba25ff5339",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15150,
"upload_time": "2018-05-09T08:15:55",
"url": "https://files.pythonhosted.org/packages/9c/47/7a875ad6b946e9ed8afa748d58c280239b1fc4f7cc5998bf5b55081b37b3/django-spurl-0.6.5.tar.gz"
}
],
"0.6.6": [
{
"comment_text": "",
"digests": {
"md5": "95a31cfdae49f99ba377462bb46d7af4",
"sha256": "b89800e846aa026b7d17fbde9491fb623193d3a8acff87236d6e3b775e382845"
},
"downloads": -1,
"filename": "django_spurl-0.6.6-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "95a31cfdae49f99ba377462bb46d7af4",
"packagetype": "bdist_wheel",
"python_version": "3.7",
"requires_python": null,
"size": 14025,
"upload_time": "2019-03-29T11:16:36",
"url": "https://files.pythonhosted.org/packages/ba/98/56b2a9f5646e50e6cd9b1a418c83fa5536f5ca50908332bbc42f6a572dee/django_spurl-0.6.6-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fa7cc635f099f227a6cf1d829146c75f",
"sha256": "caec02d16e2ec46c4c97060362a631e7b9f07d680c5724839bf09b918b2da7b0"
},
"downloads": -1,
"filename": "django-spurl-0.6.6.tar.gz",
"has_sig": true,
"md5_digest": "fa7cc635f099f227a6cf1d829146c75f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17103,
"upload_time": "2019-03-29T11:16:33",
"url": "https://files.pythonhosted.org/packages/49/f7/2e2f32f0cce7dc03b464e3cea2e10b7e737c51d6c8df81bcd47518958633/django-spurl-0.6.6.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "95a31cfdae49f99ba377462bb46d7af4",
"sha256": "b89800e846aa026b7d17fbde9491fb623193d3a8acff87236d6e3b775e382845"
},
"downloads": -1,
"filename": "django_spurl-0.6.6-py2.py3-none-any.whl",
"has_sig": true,
"md5_digest": "95a31cfdae49f99ba377462bb46d7af4",
"packagetype": "bdist_wheel",
"python_version": "3.7",
"requires_python": null,
"size": 14025,
"upload_time": "2019-03-29T11:16:36",
"url": "https://files.pythonhosted.org/packages/ba/98/56b2a9f5646e50e6cd9b1a418c83fa5536f5ca50908332bbc42f6a572dee/django_spurl-0.6.6-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fa7cc635f099f227a6cf1d829146c75f",
"sha256": "caec02d16e2ec46c4c97060362a631e7b9f07d680c5724839bf09b918b2da7b0"
},
"downloads": -1,
"filename": "django-spurl-0.6.6.tar.gz",
"has_sig": true,
"md5_digest": "fa7cc635f099f227a6cf1d829146c75f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17103,
"upload_time": "2019-03-29T11:16:33",
"url": "https://files.pythonhosted.org/packages/49/f7/2e2f32f0cce7dc03b464e3cea2e10b7e737c51d6c8df81bcd47518958633/django-spurl-0.6.6.tar.gz"
}
]
}