{ "info": { "author": "ChanTsune", "author_email": "yshegou@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Framework :: Django :: 3.0", "Framework :: Django :: 3.1", "Framework :: Django :: 3.2", "Framework :: Django :: 4.0", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10" ], "description": "# Django-Boost\n\nDjango Boost is a collection of custom extensions for the Django Framework.\n\n[![PyPI - License](https://img.shields.io/pypi/l/django_boost)](https://pypi.org/project/django-boost/)\n[![Build Status](https://travis-ci.org/ChanTsune/django-boost.svg?branch=master)](https://travis-ci.org/ChanTsune/django-boost)\n[![Documentation Status](https://readthedocs.org/projects/django-boost/badge/?version=latest)](https://django-boost.readthedocs.io/en/latest/?badge=latest)\n[![PyPI](https://img.shields.io/pypi/v/django_boost)](https://pypi.org/project/django-boost/)\n[![PyPI - Wheel](https://img.shields.io/pypi/wheel/django_boost)](https://pypi.org/project/django-boost/)\n[![Downloads](https://pepy.tech/badge/django-boost)](https://pepy.tech/project/django-boost)\n\n## Documentation\n\nYou can view documentation online at:\n\n[https://django-boost.readthedocs.io/en/latest/](https://django-boost.readthedocs.io/en/latest/)\n\nOr you can look at the docs/ directory in the repository.\n\n## Getting It\n\n```bash\npip install django-boost\n```\n\nor\n\n```bash\ngit clone https://github.com/ChanTsune/Django-Boost.git\n\npython setup.py install\n```\n\n## Installing It\n\nTo enable django_boost in your project you need to add it to INSTALLED_APPS in your projects settings.py file:\n\n```py\nINSTALLED_APPS = [\n ...\n 'django_boost',\n ...\n]\n```\n\n## Brief introduction\n\n### EmailUser\n\n`settings.py`\n\n```py\nAUTH_USER_MODEL = 'django_boost.EmailUser'\n```\n\nReplace Django default user model\nUse email address instead of username when logging in\n\n### AbstractEmailUser\n\n```py\nfrom django.db import models\nfrom django_boost.models import AbstractEmailUser\n\nclass CustomUser(AbstractEmailUser):\n is_flozen = models.BoolField(default=False)\n homepage = models.URLField()\n\n```\n\nAvailable when you want to add a field to EmailUser\n\n### UUIDModelMixin\n\n```py\nfrom django.db import models\nfrom django_boost.models import UUIDModelMixin\n\nclass Stock(UUIDModelMixin):\n name = models.CharField(max_length=128)\n count = models.IntegerField()\n```\n\nMixins that replace `id` from `AutoField` to `UUIDField`\n\n### TimeStampModelMixin\n\n```py\nfrom django.db import models\nfrom django_boost.models.mixins import TimeStampModelMixin\n\nclass Stock(TimeStampModelMixin):\n name = models.CharField(max_length=128)\n count = models.IntegerField()\n```\n\nThe fields `posted_at` and `updated_at` are added.\n\n```py\nposted_at = models.DateTimeField(auto_now_add=True)\nupdated_at = models.DateTimeField(auto_now=True)\n```\n\n### ColorCodeField\n\n```py\nfrom django.db import models\nfrom django_boost.models.fields import ColorCodeField\n\nclass MyModel(models.Model):\n color = ColorCodeField()\n\n```\n\nSave hexadecimal color code string including #.\nIf you specify `upper=True`, the saved text will be capitalized.\nOn the other hand, specifying `lower=True` will make the saved string lower case.\nYou can not specify both at the same time.\nIf neither is set, the string is saved without any changes.\nDefault is `upper=False`,`lower=Flase`.\n\n### SplitDateTimeField\n\n```py\nfrom django.db import models\nfrom django_boost.models.fields import SplitDateTimeField\n\nclass MyModel(models.Model):\n date = SplitDateTimeField()\n```\n\nA little convenient DateTimeField.\n\n`SplitDateTimeField` is the form_class of `django.models.db.DateTimeField` replaced with `django.forms.SplitDateTimeField`.\n\nInternal DB field is the same as `django.models.db.DateTimeField`.\n\n### AutoOneToOneField\n\n```py\nfrom django.db import models\nfrom django_boost.models.fields import AutoOneToOneField\n\nclass UserProfile(models.Model):\n user = AutoOneToOneField(User, primary_key=True, related_name='profile')\n home_page = models.URLField(max_length=255, blank=True)\n```\n\n### RedirectCorrectHostnameMiddleware\n\n`settings.py`\n\n```py\n\nMIDDLEWARE = [\n 'django_boost.middleware.RedirectCorrectHostnameMiddleware', # django_boost\n 'django.middleware.security.SecurityMiddleware',\n 'django.contrib.sessions.middleware.SessionMiddleware',\n ...\n]\n\n...\n\nCORRECT_HOST = 'sample.com'\n\n```\n\nRedirect all access to the domain specified in `CORRECT_HOST`\n\nIt is not redirected when `DEBUG = True`\n\nThis is useful when migrating domains\n\nOriginally it should be done with server software such as nginx and apache, but it is useful when the setting is troublesome or when using services such as heroku\n\n### HttpStatusCodeExceptionMiddleware\n\n`settings.py`\n\n```py\nMIDDLEWARE = [\n 'django_boost.middleware.HttpStatusCodeExceptionMiddleware', # django_boost\n 'django.middleware.security.SecurityMiddleware',\n 'django.contrib.sessions.middleware.SessionMiddleware',\n ...\n]\n```\n\nIt is necessary to use the `HttpStatusCode exceptions` described later.\n\n### HttpStatusCode Exceptions\n\nProvides exceptions for other status codes as well as Django's standard `Http404` exception\n\n```py\nfrom django.http import JsonResponse\nfrom django_boost.http import Http400, Http415\n\ndef view(request):\n if request.content_type != 'application/json':\n raise Http415\n return JsonResponse({\"message\":\"ok\"})\n\n```\n\nThis Middleware is required when using `HttpStatusCodeExceptionMiddleware`\n\n### User Agent in Template context\n\n```py\nTEMPLATES = [\n {\n 'BACKEND': 'django.template.backends.django.DjangoTemplates',\n 'DIRS': [],\n 'APP_DIRS': True,\n 'OPTIONS': {\n 'context_processors': [\n 'django.template.context_processors.debug',\n 'django.template.context_processors.request',\n 'django.contrib.auth.context_processors.auth',\n 'django.contrib.messages.context_processors.messages',\n 'django_boost.context_processors.user_agent', # django boost\n ],\n },\n },\n]\n```\n\nWhen given a user agent like `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36`, provide the following context to the template\n\n```py\n{'user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',\n'browser': 'Chrome',\n'device': 'Other',\n'is_bot': False,\n'is_email_client': False,\n'is_mobile': False,\n'is_pc': True,\n'is_tablet': False,\n'is_touch_capable': False,\n'os': 'Mac OS X'}\n```\n\nThese information is obtained using [user-agents](https://github.com/selwin/python-user-agents)\n\n### AllowContentTypeMixin\n\nRestrict the content type of http request.\n\n```py\nfrom django.views.generic import TemplateView\nfrom django_boost.views.mixins import AllowContentTypeMixin\n\nclass PostView(AllowContentTypeMixin, TemplateView):\n allowed_content_types = [\"application/xml\"]\n template_name = \"path/to/template\"\n\n```\n\nRestrict request based on `Content-Type` of http header.\n\nIf the content type is not allowed, http415 response will be returned.\nYou can disable restrictions by specifying `strictly = False`\n\n### LimitedTermMixin\n\n```py\nfrom datetime import datetime\nfrom django.views.generic import TemplateView\nfrom django_boost.views.mixins import LimitedTermMixin\n\nclass LimitedTermMixin(LimitedTermMixin, TemplateView):\n template_name = ''\n start_datetime = datetime(year=2019, month=1, day=1)\n end_datetime = datetime(year=2019, month=12, day=31)\n\n```\n\nRestrict the period of access.\n`start_datetime` specifies the date and time when access will be available, and `end_datetime` with the last date and time when access is available.\n\nYou can change the date and time that can be accessed dynamically by overriding the `get_start_datetime` and `get_end_datetime` methods, respectively.\n\nYou can specify the exception class to be thrown when the condition accessible to `exception_class` is not met.\nThe default is the `Http404` exception.\n\n### DynamicRedirectMixin\n\nYou can control the redirect destination with `next=~` in the URL query string like `LoginView`.\n\n```py\nfrom django.views,generic import FormView\nfrom django_boost.views.mixins import DynamicRedirectMixin\n\nclass MyFormView(DynamicRedirectMixin, FormView):\n redirect_field_name = 'next' # default is 'next'\n ...\n```\n\nYou can change the query string parameter name by changing `redirect_field_name`.\n\n### UserAgentMixin\n\n```py\nfrom django_boost.views.generic import TemplateView\nfrom django_boost.views.mixins import UserAgentMixin\n\nclass SameView(UserAgentMixin, TemplateView):\n template_name = \"default_template\"\n pc_template_name = \"pc_template.html\"\n tablet_template_name = \"tablet_template.html\"\n mobile_template_name = \"mobile_template.html\"\n```\n\nAssign `user_agent` attribute to `self.request` and switch the template file to be displayed by user agent.\n\nIf the user agent can not be determined, the template specified in `template_name` will be used.\n`pc_template_name`,`tablet_template_name`,`mobile_template_name` has no arms, but `template_name` is required.\n\n### JsonRequestMixin\n\nA specialized mixin for `AllowContentTypeMixin` for json.\n\n```py\nfrom django.views.generic import TemplateView\nfrom django_boost.views.mixins import JsonRequestMixin\n\nclass PostView(JsonRequestMixin, TemplateView):\n template_name = \"path/to/template\"\n\n def get_context_data(self,**kwargs):\n posted_data = self.json\n # {\"send\" : \"from client\"}\n return posted_data\n```\n\nYou can access the dictionary object parsed from the Json string sent by the client in `self.json`\n\nIf you use for the purpose of API `JsonView` below is recommended.\n\n### JsonResponseMixin\n\nReturns the response in Json format\n\n```py\nfrom django.views.generic import TemplateView\nfrom django_boost.views.mixins import JsonResponseMixin\n\nclass JsonResponseView(JsonResponseMixin, TemplateView):\n extra_context = {\"context\" : \"...\"}\n\n def get_context_data(self,**kwargs):\n context = {}\n context.update(super().get_context_data(**kwargs))\n return context\n\n```\n\nThe usage of `extra_context` and `get_context_data` is basically the same as `TemplateView`.\nThe difference is that `TemplateView` is passed directly to the template context, whereas `JsonResponseMixin` is a direct response.\n\nSpecify `strictly = True` if you want to limit the Content-Type to Json only.\n\nIf you use for the purpose of API `JsonView` below is recommended.\n\n### MatchedObjectGetMixin\n\nObject of the condition that matches the form input content.\nOr mixin to add a method to get the queryset.\n\n```py\nfrom django import forms\nfrom django_boost.forms.mixins import MatchedObjectGetMixin\nfrom .models import Customer\n\nclass CustomerForm(MatchedObjectGetMixin, forms.ModelForm):\n class Meta:\n models = Customer\n fields = ('name', )\n field_lookup = {'name' : 'name__startswith'} # filter lookup kwargs\n```\n\nSet `field_lookup` to set detailed search conditions.\n\n```py\nfrom django.views.generic import FormView\nfrom .forms import CustomerForm\n\nclass CustomerSearchView(FormView):\n template_name = \"form.html\"\n form_class = CustomerForm\n\n def form_valid(self,form):\n object = form.get_object() # get matched model object\n object_list = form.get_list() # get matched models objects queryset\n\n```\n\n`MatchedObjectMixin` provides `get_object` and `get_list` methods, each of which returns a `model object` or `queryset` that matches the form input content.\n\n### RelatedModelInlineMixin\n\nMixin that treat two related `Model`'s as a single `Model`.\n\n```py\nclass ModelA(models.Model):\n text = models.TextField(...)\n\n\nclass ModelB(models.Model):\n name = models.CharField(...)\n model_a = models.OneToOneField(to=ModelA, ...)\n```\n\n```py\nclass ModelBForm(RelatedModelInlineMixin, forms.ModelForm):\n inline_fields = {'model_a': ('text',)}\n\n class Meta:\n model = ModelB\n fields = ('name', )\n```\n\n### GenericView\n\n#### Extended Views\n\n```py\nfrom django_boost.views.generic import View\n\nclass YourView(View):\n\n def setup(self, request, *args, **kwargs):\n super().setup(request, *args, **kwargs)\n ## some process before view process\n\n ## For example, add attribute to view class\n\n def after_view_process(self, request, response, *args, **kwargs):\n super().after_view_process(request, response, *args, **kwargs)\n ## some process after view process\n\n ## For example, add http headers to the response\n\n return response\n\n```\n\ndjango_boost generic view (\n`CreateView`, `DeleteView`, `DetailView`, `FormView`, `ListView`, `TemplateView`, `UpdateView`, `View`) classes has `setup` and `after_view_process` method, These are called before and after processing of View respectively. `setup` method is same as the method added in Django 2.2 .\n\n#### ModelCRUDViews\n\nProvides easy creation of CRUDViews linked to model.\n\n`views.py`\n\n```py\nfrom django_boost.views.generic import ModelCRUDViews\n\nclass CustomerViews(ModelCRUDViews):\n model = Customer\n```\n\n`urls.py`\n\n```py\nfrom django.urls import path, include\nfrom . import views\n\nurlpatterns = [\n path('views/',include(views.CustomerViews().urls)),\n]\n```\n\nIn the template you can use as follows.\n\n```html+django\n{% url 'customer:list' %}\n{% url 'customer:create' %}\n{% url 'customer:detail' %}\n{% url 'customer:update' %}\n{% url 'customer:delete' %}\n```\n\nThe name of the URL is defined under the namespace of the lower-cased model class name.\n\n### Path Converters\n\n```py\nfrom django_boost.urls import register_boost_converters\n\nregister_boost_converters()\n```\n\nAdd `hex`, `oct`, `bin`, `hex_str`,`oct_str`and `bin_str` to path converter keyword.\n\n```py\nfrom django.urls import path\nfrom django_boost.urls import register_boost_converters\n\nregister_boost_converters()\n\nurlpatterns = [\n path('bin/', ~~),\n path('oct/', ~~),\n path('hex/', ~~),\n]\n```\n\n`bin` match `[01]+`,`oct` match `[0-7]+`, `hex` match `[0-9a-fA-F]`\nThese are passed as `int` type to the python program.\n\nKeywords that end with `_str` are passed as `str` type to python program.\n\n### Shortcut Functions\n\n```py\nfrom django_boost.shortcuts import (\n get_list_or_default, get_list_or_exception,\n get_object_or_default, get_object_or_exception)\n\nmy_model = MyModel.objects.get(id=1)\nget_object_or_default(MyModel, default=my_model, id=2)\n\nget_object_or_exception(MyModel, exception=Exception, id=2)\n\n```\n\nThese behave like `get_object_or_404`\n\n### UrlSet\n\nIf URLs corresponding to multiple models are described in one `urls.py`, it may be redundant.\nAs below.\n\n```python\nfrom django.urls import path\n\nfrom . import views\n\nurlpatterns = [\n path('modelA/', views.ModelAListView.as_view(), name='modelA_list'),\n path('modelA/create/', views.ModelACreateView.as_view(), name='modelA_create'),\n path('modelA//', views.ModelADetailView.as_view(), name='modelA_detail'),\n path('modelA//update/', views.ModelAUpdateView.as_view(), name='modelA_update'),\n path('modelA//delete/', views.ModelADeleteView.as_view(), name='modelA_delete'),\n path('modelB/', views.ModelBListView.as_view(), name='modelB_list'),\n path('modelB/create/', views.ModelBCreateView.as_view(), name='modelB_create'),\n path('modelB//', views.ModelBDetailView.as_view(), name='modelB_detail'),\n path('modelB//update/', views.ModelBUpdateView.as_view(), name='modelB_update'),\n path('modelB//delete/', views.ModelBDeleteView.as_view(), name='modelB_delete'),\n]\n```\n\nOriginally it would be desirable to split the file, but doing so can lead to poor code outlook, due to the increase in files.\n\nIn such cases, you can use `UrlSet`.\n\nWhen the above code is rewritten using `UrlSet`, it becomes as follows.\n\n```python\nfrom django.urls import path, include\nfrom django_boost.urls import UrlSet\n\nfrom . import views\n\nclass ModelAUrlSet(UrlSet):\n app_name = \"ModelA\"\n urlpatterns = [\n path('', views.ModelAListView.as_view(), name='list'),\n path('create/', views.ModelACreateView.as_view(), name='create'),\n path('/', views.ModelADetailView.as_view(), name='detail'),\n path('/update/', views.ModelAUpdateView.as_view(), name='update'),\n path('/delete/', views.ModelADeleteView.as_view(), name='delete'),\n ]\n\nclass ModelBUrlSet(UrlSet):\n app_name = \"ModelB\"\n urlpatterns = [\n path('', views.ModelBListView.as_view(), name='list'),\n path('create/', views.ModelBCreateView.as_view(), name='create'),\n path('/', views.ModelBDetailView.as_view(), name='detail'),\n path('/update/', views.ModelBUpdateView.as_view(), name='update'),\n path('/delete/', views.ModelBDeleteView.as_view(), name='delete'),\n ]\n\nurlpatterns = [\n path('modelA/', include(ModelAUrlSet)),\n path('modelB/', include(ModelBUrlSet)),\n]\n```\n\nURLs are grouped for easy reading.\n\n### Admin Site Utilities\n\nEasily register Models to Django admin site.\n\n```py\nfrom your_app import models\nfrom django_boost.admin.sites import register_all\n\nregister_all(models)\n```\n\nRegister all models defined in `models.py` in Django admin site.\n\nCustom admin classes are also available.\n\n```py\nfrom your_app import models\nfrom your_app import admin\nfrom django_boost.admin.sites import register_all\n\nregister_all(models, admin_class=admin.CustomAdmin)\n```\n\n### Template Tags\n\nMake Python built-in functions available in DjangoTemplate.\nSome non-built-in functions are also provided as filters. An example is `isiterable` filter.\n\n#### Load filters\n\n```html+django\n{% load boost %}\n```\n\n##### isiterable\n\nisiterable filter returns True if it filters repeatable objects, and False otherwise.\n\n```html+django\n{% load boost %}\n\n{% if object|isiterable %}\n {% for i in object %}\n

{{ i }}

\n {% endfor %}\n{% else %}\n

{{ object }}

\n{% endif %}\n\n```\n\n#### literal\n\nPython literal from string.\nUsing backend `ast.literal_eval`.\n\n```html+django\n{% load boost %}\n\n{% literal \"[1, 2, 3]\" as list %}\n\n{% for i in list %}\n

{{ i }}

\n{% endfor %}\n```\n\n#### URL Utility\n\n```html+django\n{% load boost_url %}\n```\n\n##### urlencode\n\nURL encode the filtered string.\nYou can specify non-conversion characters in the argument.\n\n```html+django\n{% load boost_url %}\n\n{{ url | urlencode }}\n\n{{ url | urlencode:'abc' }}\n\n```\n\n##### urldecode\n\nThe reverse of `urlencode`.\n\n```html+django\n{% load boost_url %}\n\n{{ url | urldecode }}\n```\n\n##### replace_parameters\n\nReplace the query string of the current page URL with the argument.\n\n```html+django\n{% load boost_url %}\n\n{# case of current page's query string is `?id=2`#}\n{% replace_parameters request 'id' 1 'age' 20 %}\n\n{# The result of replacing is `?id=1&age=20` #}\n\n```\n\nUseful for pagination.\n\n#### Queryset Utility\n\n```html+django\n{% load boost_query %}\n```\n\nMake the query set methods available in the template.\n\n`filter`, `exclude`, `order_by` are available.\n\nIf you use the LogicalDeletionMixin, you can also use `alive` and `dead`\n\n```html+django\n{% qureyset|filter:\"field=value\"%}\n\n{% qureyset|exclude:\"field=value\"%}\n\n{% qureyset|order_by:\"field\"%}\n\n{# If it inherits LogicalDeletionMixin. #}\n\n{% qureyset|alive %}\n\n{% qureyset|dead %}\n\n```\n\n## utilty functions\n\n### loop utils\n\n#### Django Template like forloop\n\n```py\nfrom django_boost.utils import loop\n\nfor forloop, item in loop([1, 2, 3, 4, 5]):\n forloop.counter0\n forloop.counter\n forloop.revcounter0\n forloop.revcounter\n forloop.first\n forloop.last\n```\n\nProvides Django Template loops to Python programs.\n\n#### loopfirst\n\nYield True when the first element of the given iterator object, False otherwise.\n\n```py\nfrom django_boost.utils.functions import loopfirst\n\n\nfor is_first, v in loopfirst(range(5)):\n print(is_first, v)\n\n# True 0\n# False 1\n# False 2\n# False 3\n# False 4\n```\n\n#### looplast\n\nYield True when the last element of the given iterator object, False otherwise.\n\n```py\nfrom django_boost.utils.functions import looplast\n\n\nfor is_last, v in looplast(range(5)):\n print(is_last, v)\n\n# False 0\n# False 1\n# False 2\n# False 3\n# True 4\n```\n\n#### loopfirstlast\n\nA function combining `firstloop` and `lastloop`.\n\nYield True if the first and last element of the iterator object, False otherwise.\n\n```py\nfrom django_boost.utils.functions import loopfirstlast\n\n\nfor first_or_last, v in loopfirstlast(range(5)):\n print(first_or_last, v)\n\n# True 0\n# False 1\n# False 2\n# False 3\n# True 4\n```\n\n### Commands\n\n#### adminsitelog\n\n```bash\npython manage.py adminsitelog\n```\n\nView and delete Admin Site logs.\n\n##### view all logs\n\n```bash\npython manage.py adminsitelog\n```\n\n```bash\nid| action | detail | user | time\n6 | Deleted | Customer object (8) | admin | 2019-08-19 14:56:29.609940+00:00\n7 | Added | Customer object (11) | admin | 2019-08-20 16:12:38.902129+00:00\n8 | Changed | Customer object (4) - Changed color. | admin | 2019-08-20 16:12:45.653693+00:00\n```\n\n##### filter logs\n\n```bash\npython manage.py adminsitelog --filter \"action_time>=2019-8-01\" --exclude \"id=6\"\n```\n\n```bash\nid | action | detail | user | time\n7 | Added | Customer object (11) | admin | 2019-08-20 16:12:38.902129+00:00\n8 | Changed | Customer object (4) - Changed color. | admin | 2019-08-20 16:12:45.653693+00:00\n```\n\n##### delete all logs\n\n```bash\npython manage.py adminsitelog --delete\n```\n\nIt is also possible to delete only the logs narrowed down by `--filter` and `--exclude`.\n\n#### support_heroku\n\n```bash\npython manage.py support_heroku\n```\n\nCreate heroku config files.\n`Procfile`,`runtime.txt`,`requirements.txt`\n\nFor more details.\n\n```bash\npython manage.py support_heroku -h\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ChanTsune/Django-Boost", "keywords": "django extension", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-boost", "package_url": "https://pypi.org/project/django-boost/", "platform": "any", "project_url": "https://pypi.org/project/django-boost/", "project_urls": { "Homepage": "https://github.com/ChanTsune/Django-Boost" }, "release_url": "https://pypi.org/project/django-boost/2.0/", "requires_dist": [ "Django (>=3.0)", "user-agents (>=2.0)" ], "requires_python": "", "summary": "Django Extension library", "version": "2.0", "yanked": false, "yanked_reason": null }, "last_serial": 12660305, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "52d26215b88560787bc2c89069d08473", "sha256": "5a35980fd97b47883be361482ad4b9040c69842ffe0e918228b9e1731fa6e0a0" }, "downloads": -1, "filename": "django_boost-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "52d26215b88560787bc2c89069d08473", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23611, "upload_time": "2019-07-03T07:53:20", "upload_time_iso_8601": "2019-07-03T07:53:20.326237Z", "url": "https://files.pythonhosted.org/packages/14/1c/cf6fecc8ad72826174b9c2ad7f92145c798ba22c7603e3bf40c836ec1076/django_boost-1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "69a328e426c7be11421115e9d32b6cb4", "sha256": "f6ccf524dc950ac54002ad0fd95a218933ed6e6b9e025317721709f7e9e78553" }, "downloads": -1, "filename": "django_boost-1.0.tar.gz", "has_sig": false, "md5_digest": "69a328e426c7be11421115e9d32b6cb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23212, "upload_time": "2019-07-03T07:53:22", "upload_time_iso_8601": "2019-07-03T07:53:22.358175Z", "url": "https://files.pythonhosted.org/packages/35/c7/59d980107dde332ea3a0e3b144e9a0d508643dd0e3284b8ad9664f9b278a/django_boost-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1": [ { "comment_text": "", "digests": { "md5": "ba053059c57f9d8380baa0a454a297e0", "sha256": "c4970019d12d536add058f3d2b17b6b3f04ae49ee1c2759dbd4ffa95e62c2996" }, "downloads": -1, "filename": "django_boost-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ba053059c57f9d8380baa0a454a297e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28652, "upload_time": "2019-09-10T06:54:19", "upload_time_iso_8601": "2019-09-10T06:54:19.035879Z", "url": "https://files.pythonhosted.org/packages/48/c8/f55bc6b4dcd2a3074c7170950379ee72f292edbb36a5ed6e1f61f62b9412/django_boost-1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "016a2aa5c83b3a7843275c226bb3bed9", "sha256": "8833a4723d1e32a48d98f5880e0d59e1f1de9a1c2c07e4488b8a4c176893c4e6" }, "downloads": -1, "filename": "django_boost-1.1.tar.gz", "has_sig": false, "md5_digest": "016a2aa5c83b3a7843275c226bb3bed9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27757, "upload_time": "2019-09-10T06:54:21", "upload_time_iso_8601": "2019-09-10T06:54:21.075809Z", "url": "https://files.pythonhosted.org/packages/bb/cb/1055290b21bb60139f9152d830d2a5a1433c8e83cffb6c7563a84ac00936/django_boost-1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "743f0596fd2153235c619db3868cd901", "sha256": "4eb87cca2f2b3c7abfb841c5c5b2b22cd9e9695db377e6be778f1910a274485c" }, "downloads": -1, "filename": "django_boost-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "743f0596fd2153235c619db3868cd901", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29167, "upload_time": "2019-09-23T14:32:15", "upload_time_iso_8601": "2019-09-23T14:32:15.890447Z", "url": "https://files.pythonhosted.org/packages/79/8b/cee69c5302b4a48f772d3ee5b8fc0eafe4150eab9e65cee650859169bb14/django_boost-1.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "79ed7cf73f2cc97b3d99e8b587542837", "sha256": "006ebf65463f03eebdfb4ffa1621e02d4459a2d7e5a35cff1245aee6f94caa58" }, "downloads": -1, "filename": "django_boost-1.1.1.tar.gz", "has_sig": false, "md5_digest": "79ed7cf73f2cc97b3d99e8b587542837", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27996, "upload_time": "2019-09-23T14:32:18", "upload_time_iso_8601": "2019-09-23T14:32:18.394784Z", "url": "https://files.pythonhosted.org/packages/b8/bd/9500eb3c83a18b3ce20032901dc75a296279ba52dc3cf6564422848a80d5/django_boost-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "90e42dd82fa68510c85eb4d44d29447b", "sha256": "ee71bf72a58f26a8b2a96d7c945ad9fe60e817e9a7e4e78e6b4153cc0940da53" }, "downloads": -1, "filename": "django_boost-1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "90e42dd82fa68510c85eb4d44d29447b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36858, "upload_time": "2019-10-02T04:28:24", "upload_time_iso_8601": "2019-10-02T04:28:24.169731Z", "url": "https://files.pythonhosted.org/packages/6f/1c/4cb2c5c7ed0acfa748cd834d3d4a43132d855b6b710d92b5e01057db0a57/django_boost-1.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "78a54f50a6103df11dd50521968521fe", "sha256": "2ed4ffc962bd119248127c7353f2401e9b4ba67bc2d22f8465dc7d1beabc255c" }, "downloads": -1, "filename": "django_boost-1.1.2.tar.gz", "has_sig": false, "md5_digest": "78a54f50a6103df11dd50521968521fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32826, "upload_time": "2019-10-02T04:28:26", "upload_time_iso_8601": "2019-10-02T04:28:26.566782Z", "url": "https://files.pythonhosted.org/packages/a3/97/d17245a311659bb3647055a9f9e8476316f405ed4c7683fc2146b07e5946/django_boost-1.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2": [ { "comment_text": "", "digests": { "md5": "9732b65756abb08b5c0288ed79c3e30e", "sha256": "67a5ffdd3be9148ba66f4cfc94ece8c69e00fec98a5c82ed974dbe4b5e69c2e4" }, "downloads": -1, "filename": "django_boost-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9732b65756abb08b5c0288ed79c3e30e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 37573, "upload_time": "2019-10-17T07:37:21", "upload_time_iso_8601": "2019-10-17T07:37:21.838786Z", "url": "https://files.pythonhosted.org/packages/23/8a/dc7679b1aa4bcfa0e30fdeedfb359c35f0e3621ac3837f6fd8dbc9ea4ca7/django_boost-1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "68b1420f5b6b671f40e14f17c0abb753", "sha256": "c1c5d012d5454eed4ada3fbc434f5671f71d90bc2af2574c41af92499dcd6c81" }, "downloads": -1, "filename": "django_boost-1.2.tar.gz", "has_sig": false, "md5_digest": "68b1420f5b6b671f40e14f17c0abb753", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35352, "upload_time": "2019-10-17T07:37:25", "upload_time_iso_8601": "2019-10-17T07:37:25.000104Z", "url": "https://files.pythonhosted.org/packages/b7/ec/1f63fdad1dbcda4a663d058c97dabf3152cd92fe0bd942ce8aab223d529c/django_boost-1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "6db90f7aff96d635658d76f60764b7fb", "sha256": "3c5a4897a4203baff6288fa51b41bd9144c55baa5e2b017c659284a86e120083" }, "downloads": -1, "filename": "django_boost-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6db90f7aff96d635658d76f60764b7fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 37909, "upload_time": "2019-10-30T01:12:39", "upload_time_iso_8601": "2019-10-30T01:12:39.687664Z", "url": "https://files.pythonhosted.org/packages/12/44/aa091d2bc76203596f45be3f9be1662c73ba48ba70b9331ac177259e6da5/django_boost-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "974c84f39a399e06195731cb88a0d510", "sha256": "e2f6a329b47d068dd9afb59c656ef8317aac1b7643af7215cfd8a344bd3db880" }, "downloads": -1, "filename": "django_boost-1.2.1.tar.gz", "has_sig": false, "md5_digest": "974c84f39a399e06195731cb88a0d510", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35195, "upload_time": "2019-10-30T01:12:41", "upload_time_iso_8601": "2019-10-30T01:12:41.691765Z", "url": "https://files.pythonhosted.org/packages/6a/8e/508e5f70e40635925ad78c56963f48ca9a8931b17cb927ba289c1c970a31/django_boost-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "9df3bc17b48da9fc73c0be53b13354d0", "sha256": "61c8e813a8d91154659ec12a8aeadee28c7c2b1adc1564d69bad45f66cfd0514" }, "downloads": -1, "filename": "django_boost-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9df3bc17b48da9fc73c0be53b13354d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39637, "upload_time": "2019-11-10T02:56:28", "upload_time_iso_8601": "2019-11-10T02:56:28.418564Z", "url": "https://files.pythonhosted.org/packages/71/c3/cf1c7109ab6580a084b9b30f850bdf97763c38d082208e6c014d7bb840fb/django_boost-1.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "439d7003cb267f286e4ad6dc126ec8e9", "sha256": "e00b90a90566d66e341717ebd46cbceb79e9a61d8d055f9e9abe537a2c50fb36" }, "downloads": -1, "filename": "django_boost-1.2.2.tar.gz", "has_sig": false, "md5_digest": "439d7003cb267f286e4ad6dc126ec8e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36314, "upload_time": "2019-11-10T02:56:30", "upload_time_iso_8601": "2019-11-10T02:56:30.800680Z", "url": "https://files.pythonhosted.org/packages/e7/60/c384026a7e04f6030a0322418f3841a9d0bbf22185ce14826436cf627d86/django_boost-1.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "dbcffd81ec727c59edd81275aeeca2e8", "sha256": "14602dff13aad6f40a1a3d6f38ffce0a1bc02078b36100f2342897a1cd94c5cd" }, "downloads": -1, "filename": "django_boost-1.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "dbcffd81ec727c59edd81275aeeca2e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 199851, "upload_time": "2019-12-01T15:39:20", "upload_time_iso_8601": "2019-12-01T15:39:20.412517Z", "url": "https://files.pythonhosted.org/packages/61/b3/06023c35abb24c4dda274a30293463c6a4fd25af9e59b1da2daae331cb2e/django_boost-1.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "52247ec1496cd0a9e1a3143726928466", "sha256": "054ef88a4cba02ac32ac5bc2a4ae149a421536dfa483466542addd33dfe51709" }, "downloads": -1, "filename": "django_boost-1.2.3.tar.gz", "has_sig": false, "md5_digest": "52247ec1496cd0a9e1a3143726928466", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63381, "upload_time": "2019-12-01T15:39:22", "upload_time_iso_8601": "2019-12-01T15:39:22.458098Z", "url": "https://files.pythonhosted.org/packages/f7/50/089962ca44b3b593e62283a7d822157138c3c8f2e726f346be42aa3274f6/django_boost-1.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3": [ { "comment_text": "", "digests": { "md5": "a38aabffd69dec86b8f63b8d1521b885", "sha256": "9f075c5f6b0ef6cb4ad703239e02624fe7b7b35e99651bb9fea4f4b78b0742ca" }, "downloads": -1, "filename": "django_boost-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a38aabffd69dec86b8f63b8d1521b885", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 202651, "upload_time": "2020-01-29T09:59:06", "upload_time_iso_8601": "2020-01-29T09:59:06.833235Z", "url": "https://files.pythonhosted.org/packages/38/12/e37e42bc78b92f0de7b3ada33a0880ca27268c64914fc888064debb66db6/django_boost-1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c3ad846a4794da630ff00e802ee2f487", "sha256": "b835c3416196f04af9de0aa6224118bd641ac69ff71422b5c2f75d500328c378" }, "downloads": -1, "filename": "django_boost-1.3.tar.gz", "has_sig": false, "md5_digest": "c3ad846a4794da630ff00e802ee2f487", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65321, "upload_time": "2020-01-29T09:59:23", "upload_time_iso_8601": "2020-01-29T09:59:23.618210Z", "url": "https://files.pythonhosted.org/packages/46/11/1c669928ad75767ced414556ed93a3bf0e1063dd9d8561f545c571e14374/django_boost-1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4": [ { "comment_text": "", "digests": { "md5": "a5bab420e43fd4c324048c2dd5590229", "sha256": "0420bfe361f57e84476bab008b35f4b73bb737e3528695e0b08a756d7cb6e1d4" }, "downloads": -1, "filename": "django_boost-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "a5bab420e43fd4c324048c2dd5590229", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 207516, "upload_time": "2020-02-15T14:47:31", "upload_time_iso_8601": "2020-02-15T14:47:31.888812Z", "url": "https://files.pythonhosted.org/packages/a1/5a/853db91f0464ec3acc86cd3d73bb6415c47b1a3cc96de1e17ef666b41727/django_boost-1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b4f8ee92ccf1cd3e19b22ed825b95094", "sha256": "599281062c66bd2d25c47248c808cb0f3e18d558b995663a1c185f5cf3aa4eeb" }, "downloads": -1, "filename": "django_boost-1.4.tar.gz", "has_sig": false, "md5_digest": "b4f8ee92ccf1cd3e19b22ed825b95094", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66705, "upload_time": "2020-02-15T14:47:34", "upload_time_iso_8601": "2020-02-15T14:47:34.385657Z", "url": "https://files.pythonhosted.org/packages/93/3a/2c3062f5c272a3d1c0b59108913c9fdd5a51b2772d4ae55dc0f1672bf45a/django_boost-1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "3a0568cdf306301459e238933bd1b573", "sha256": "8bbbfbbf68353ae9f7382fa73fa040f672f98cd42b400c33376e9497bbe8d9de" }, "downloads": -1, "filename": "django_boost-1.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3a0568cdf306301459e238933bd1b573", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 207811, "upload_time": "2020-03-04T13:53:18", "upload_time_iso_8601": "2020-03-04T13:53:18.831832Z", "url": "https://files.pythonhosted.org/packages/87/51/feccaf5aef9895aea7710aa0b15b60066a3dda893cf7c49f4e5f679af4f9/django_boost-1.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6e76027e446e31a7348c1e1731829311", "sha256": "b9ecff60ee15f7fe43e75b1c167ff50edda3e715a614917c67f0204f6df956ed" }, "downloads": -1, "filename": "django_boost-1.4.1.tar.gz", "has_sig": false, "md5_digest": "6e76027e446e31a7348c1e1731829311", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67090, "upload_time": "2020-03-04T13:53:21", "upload_time_iso_8601": "2020-03-04T13:53:21.085263Z", "url": "https://files.pythonhosted.org/packages/0d/3d/69c430b97815fe40515ea2989102a3349771abe4832f7c778c62fd3d0f69/django_boost-1.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "41d3498d1d3ed95031147f44d372bbc6", "sha256": "aa5fecbda54ca2d9d27449e0d69daee9e58c1420fd817ee2313700da1fc120ca" }, "downloads": -1, "filename": "django_boost-1.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "41d3498d1d3ed95031147f44d372bbc6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 207821, "upload_time": "2020-03-14T16:51:30", "upload_time_iso_8601": "2020-03-14T16:51:30.592070Z", "url": "https://files.pythonhosted.org/packages/aa/f8/013e4fce3f3bf30b60cae6daf9a49b536e69fa27c7c214cdc06cb0b23ad2/django_boost-1.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "58cd65cd09787ac5ffd4a6e2bf1868d9", "sha256": "3bef7d80fe57a2016b0ab353b697ad70a73b5b639805ff3861590fa2b307d029" }, "downloads": -1, "filename": "django_boost-1.4.2.tar.gz", "has_sig": false, "md5_digest": "58cd65cd09787ac5ffd4a6e2bf1868d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67109, "upload_time": "2020-03-14T16:51:32", "upload_time_iso_8601": "2020-03-14T16:51:32.730916Z", "url": "https://files.pythonhosted.org/packages/af/bc/1e5e520623a0482465ab7198d2609ef56dc6c19c0c0285c790e20984bfdb/django_boost-1.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5": [ { "comment_text": "", "digests": { "md5": "641d05bbe7336db7295a403bb475a69f", "sha256": "07085151532adc78748e71a2918c9a249bf8bf18e6b58db92506fd017a1b6349" }, "downloads": -1, "filename": "django_boost-1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "641d05bbe7336db7295a403bb475a69f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 209405, "upload_time": "2020-03-28T07:46:09", "upload_time_iso_8601": "2020-03-28T07:46:09.515022Z", "url": "https://files.pythonhosted.org/packages/a8/2b/5c8e5827becbde742637192f686d024a72e82a628852b6ff31488e9b6c20/django_boost-1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "607d956cb525255909b50d643ecadafb", "sha256": "80ec96a10a839e16996b5157629a145e5f5694717c22e924447e424b72ae68b7" }, "downloads": -1, "filename": "django_boost-1.5.tar.gz", "has_sig": false, "md5_digest": "607d956cb525255909b50d643ecadafb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67999, "upload_time": "2020-03-28T07:46:12", "upload_time_iso_8601": "2020-03-28T07:46:12.957871Z", "url": "https://files.pythonhosted.org/packages/ac/53/996459e191e5971cbc688802f5ef7b03f8ebe95f70a370f99b121718a489/django_boost-1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "b5f6648f7f8918f0d42916a7a1849c12", "sha256": "3edae03ac8ab4fe52c23005d6f757888d44f8df5773af5b0400183b27096c32b" }, "downloads": -1, "filename": "django_boost-1.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b5f6648f7f8918f0d42916a7a1849c12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 210554, "upload_time": "2020-04-19T09:20:21", "upload_time_iso_8601": "2020-04-19T09:20:21.853434Z", "url": "https://files.pythonhosted.org/packages/87/70/bf0463dc8822c770ed64e18c2ba7e84d58544b0663ba0d65a8a32b32abce/django_boost-1.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6982d06504365f224aa3a9ec5ad5e8d2", "sha256": "e68d5673191d338d68d611d98015412cdbf24221e2ba572dafe7e9d3518fc845" }, "downloads": -1, "filename": "django_boost-1.5.1.tar.gz", "has_sig": false, "md5_digest": "6982d06504365f224aa3a9ec5ad5e8d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68428, "upload_time": "2020-04-19T09:20:23", "upload_time_iso_8601": "2020-04-19T09:20:23.612341Z", "url": "https://files.pythonhosted.org/packages/69/5c/c6c9dbda4f2329531773c613148f26abc764a196e0a1df17844d50145f8b/django_boost-1.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "a5687953396e551c3e3793f452f6345f", "sha256": "f04ab56a3394be200d2606744f11e57e1c427bf317d283675ab9401ae7eefe24" }, "downloads": -1, "filename": "django_boost-1.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a5687953396e551c3e3793f452f6345f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 224885, "upload_time": "2020-05-23T04:48:37", "upload_time_iso_8601": "2020-05-23T04:48:37.734314Z", "url": "https://files.pythonhosted.org/packages/2e/1a/4627745aeb7f88da8b4246f452118711085998e1733bcfd2e654c5ab91cf/django_boost-1.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0d700f36a1d460e2d016bbedb0e068ac", "sha256": "c584d9d88475de2f9c34a8bf1c73957be072b6305074bd56f1c7416f9aec2cd3" }, "downloads": -1, "filename": "django_boost-1.5.2.tar.gz", "has_sig": false, "md5_digest": "0d700f36a1d460e2d016bbedb0e068ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73381, "upload_time": "2020-05-23T04:48:40", "upload_time_iso_8601": "2020-05-23T04:48:40.547358Z", "url": "https://files.pythonhosted.org/packages/46/89/743427bfcfb2a234afd4a223cd2ad5a21a208df8d7dd7e870063421fedd4/django_boost-1.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6": [ { "comment_text": "", "digests": { "md5": "765e11c8be7c4eb59309f7da70d969e1", "sha256": "27c6c9dabe54bf0fa0c792a4e5761ba3384b60162e4363466dcb83b9240f219c" }, "downloads": -1, "filename": "django_boost-1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "765e11c8be7c4eb59309f7da70d969e1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 228302, "upload_time": "2020-07-08T07:36:18", "upload_time_iso_8601": "2020-07-08T07:36:18.909131Z", "url": "https://files.pythonhosted.org/packages/a4/6b/4c642748c3f793890b77f9312ccadd605380903c63c33ee9952b55a1809e/django_boost-1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b2f9ea73405d59615ae52f757946e109", "sha256": "e92fbfee77dd6437bc83afd839c1aa7e57e8c8db224c9ba7d35782e63b8b6a74" }, "downloads": -1, "filename": "django_boost-1.6.tar.gz", "has_sig": false, "md5_digest": "b2f9ea73405d59615ae52f757946e109", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75597, "upload_time": "2020-07-08T07:36:20", "upload_time_iso_8601": "2020-07-08T07:36:20.562680Z", "url": "https://files.pythonhosted.org/packages/e2/7c/7684c4551375b5ec91cd2986acf48ff91fb487f8b0747d027948554dcc8b/django_boost-1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "c963d7f0f44653edfcd4e3004151b20b", "sha256": "f51f5930a068d990cb4c179aabab0bf2c9665c1431ca201307604c3bba771a4a" }, "downloads": -1, "filename": "django_boost-1.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c963d7f0f44653edfcd4e3004151b20b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 229465, "upload_time": "2020-07-18T09:40:58", "upload_time_iso_8601": "2020-07-18T09:40:58.760242Z", "url": "https://files.pythonhosted.org/packages/2f/8b/e6d6036e71b504ef550a321e04a8184a6c4db225c811a1b916e2bd149679/django_boost-1.6.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "603697f9ce30b69c4a1aad219296bb1f", "sha256": "1459a9d788de2446a5daf1805b26cab40b9a554041e7514f857ff064293fa0a3" }, "downloads": -1, "filename": "django_boost-1.6.1.tar.gz", "has_sig": false, "md5_digest": "603697f9ce30b69c4a1aad219296bb1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76484, "upload_time": "2020-07-18T09:41:00", "upload_time_iso_8601": "2020-07-18T09:41:00.850782Z", "url": "https://files.pythonhosted.org/packages/b8/9f/044a6c3793e48cef378d758e9530771632d6100a40abfe74212d3ca77e2a/django_boost-1.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "1ff7177a9390f15f7a9e208d3ddccd7a", "sha256": "9ac356965de92b5140961a0b50df7066ae7fa8c08c96d98406981ebd987b886f" }, "downloads": -1, "filename": "django_boost-1.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1ff7177a9390f15f7a9e208d3ddccd7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 229424, "upload_time": "2020-08-01T02:24:17", "upload_time_iso_8601": "2020-08-01T02:24:17.906563Z", "url": "https://files.pythonhosted.org/packages/63/85/efd0030d9acf8083baf122fcb90ae22900fc95f8d13c58a3e346762d8fcd/django_boost-1.6.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a8a4ca050a0596f58bcd44f633f0872f", "sha256": "75f1c1631b0f728cf649c57b5b186ebe248c6e3dd7408cddb759983848a70b77" }, "downloads": -1, "filename": "django_boost-1.6.2.tar.gz", "has_sig": false, "md5_digest": "a8a4ca050a0596f58bcd44f633f0872f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76416, "upload_time": "2020-08-01T02:24:19", "upload_time_iso_8601": "2020-08-01T02:24:19.800855Z", "url": "https://files.pythonhosted.org/packages/1b/52/33e6624c56b557a0fc527da369b9b8cacf33cd481d8c6d8dcb1105fd5655/django_boost-1.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7": [ { "comment_text": "", "digests": { "md5": "95f0267910066ad87ead5353c4054d70", "sha256": "74e718a4b2a3cae06ac3b25ef6ededa7d615db2f04e65d202c3eb6eb977c942d" }, "downloads": -1, "filename": "django_boost-1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "95f0267910066ad87ead5353c4054d70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 229544, "upload_time": "2020-09-24T01:29:54", "upload_time_iso_8601": "2020-09-24T01:29:54.898425Z", "url": "https://files.pythonhosted.org/packages/7a/17/4e1eba4b044316fb7a71638ece94dafb4d953b983c0b3763dd769d072179/django_boost-1.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "590f276c9a6e92a1d1806daaf0652910", "sha256": "f12606276dfa57a7aec6911b36243de17a63d45eaffd46da7fbe100098e914eb" }, "downloads": -1, "filename": "django_boost-1.7.tar.gz", "has_sig": false, "md5_digest": "590f276c9a6e92a1d1806daaf0652910", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76519, "upload_time": "2020-09-24T01:29:56", "upload_time_iso_8601": "2020-09-24T01:29:56.855145Z", "url": "https://files.pythonhosted.org/packages/c0/55/83cd9cb8709b0e47feeca34c19b40cc12eaea88990db347fff1eef586e91/django_boost-1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "f8973d2151d8ed7c7ec6fd8a1fa2998c", "sha256": "07548f6c31a8a7fd20da6c3b6c5178e430fdc7aee85ddd514767e73d376bdd55" }, "downloads": -1, "filename": "django_boost-1.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f8973d2151d8ed7c7ec6fd8a1fa2998c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 229682, "upload_time": "2020-10-09T03:41:32", "upload_time_iso_8601": "2020-10-09T03:41:32.953392Z", "url": "https://files.pythonhosted.org/packages/08/0a/8fb855677ed657588cfec785588b8294b55a86f8ded1734c9357c54b5ce9/django_boost-1.7.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1649b441fba09ee3940df7484409d821", "sha256": "ffffb976e5ea517dece92016c3cb1af334fa609aa6b0f5b166651cd11e41432c" }, "downloads": -1, "filename": "django_boost-1.7.1.tar.gz", "has_sig": false, "md5_digest": "1649b441fba09ee3940df7484409d821", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76454, "upload_time": "2020-10-09T03:41:34", "upload_time_iso_8601": "2020-10-09T03:41:34.724248Z", "url": "https://files.pythonhosted.org/packages/b6/81/eae15f96e1bdb954d800a1dfc42e4725825fef81a4a9482543cac7eeab2a/django_boost-1.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "44817db9b6adc933f9cd09203137bca0", "sha256": "b2460f8613920cdb309cb5c27a0a18d8fb83812f6019c6bb2218f82b33a67ea3" }, "downloads": -1, "filename": "django_boost-1.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "44817db9b6adc933f9cd09203137bca0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 229689, "upload_time": "2020-12-13T01:09:05", "upload_time_iso_8601": "2020-12-13T01:09:05.251702Z", "url": "https://files.pythonhosted.org/packages/46/5c/6e0b1a27dc99a6162886309b80b0d380974bc7bbf90eda64c1a6042b0ba7/django_boost-1.7.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cc968f5dfc53a9671661f98617ba66d2", "sha256": "ca80641314f75446ba815ed9632c64ede025c72bc18ec59af89abce97769a65f" }, "downloads": -1, "filename": "django_boost-1.7.2.tar.gz", "has_sig": false, "md5_digest": "cc968f5dfc53a9671661f98617ba66d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83189, "upload_time": "2020-12-13T01:09:06", "upload_time_iso_8601": "2020-12-13T01:09:06.778785Z", "url": "https://files.pythonhosted.org/packages/39/d8/3b56ac34c20d2846749aab8db69e0c97da4d8b1b03ab33125de8597c019d/django_boost-1.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0": [ { "comment_text": "", "digests": { "md5": "e4d94e03c1a8f49de9c8b54b980de35c", "sha256": "266c22a5a7bdae480cfdc337b11073e1e906521a4f9c5b3dbb7e15bfeb916065" }, "downloads": -1, "filename": "django_boost-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e4d94e03c1a8f49de9c8b54b980de35c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 232343, "upload_time": "2022-01-23T13:15:11", "upload_time_iso_8601": "2022-01-23T13:15:11.777139Z", "url": "https://files.pythonhosted.org/packages/78/ec/0164271dc3dec96cd257c5a559d5ba2cd138c0149cbc797106fdbe274059/django_boost-2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "738aed0fe934c36142cd8cd3cb5ff47b", "sha256": "6d6c2d7c34d54cfdbb6232d755967eabaaf8db5395bc003637e87a7f0e329016" }, "downloads": -1, "filename": "django_boost-2.0.tar.gz", "has_sig": false, "md5_digest": "738aed0fe934c36142cd8cd3cb5ff47b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82855, "upload_time": "2022-01-23T13:15:13", "upload_time_iso_8601": "2022-01-23T13:15:13.481717Z", "url": "https://files.pythonhosted.org/packages/0d/94/44d997e735955e1fc812836b305449e8cc3350f9dd014c7abc11a3d48dac/django_boost-2.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e4d94e03c1a8f49de9c8b54b980de35c", "sha256": "266c22a5a7bdae480cfdc337b11073e1e906521a4f9c5b3dbb7e15bfeb916065" }, "downloads": -1, "filename": "django_boost-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e4d94e03c1a8f49de9c8b54b980de35c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 232343, "upload_time": "2022-01-23T13:15:11", "upload_time_iso_8601": "2022-01-23T13:15:11.777139Z", "url": "https://files.pythonhosted.org/packages/78/ec/0164271dc3dec96cd257c5a559d5ba2cd138c0149cbc797106fdbe274059/django_boost-2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "738aed0fe934c36142cd8cd3cb5ff47b", "sha256": "6d6c2d7c34d54cfdbb6232d755967eabaaf8db5395bc003637e87a7f0e329016" }, "downloads": -1, "filename": "django_boost-2.0.tar.gz", "has_sig": false, "md5_digest": "738aed0fe934c36142cd8cd3cb5ff47b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82855, "upload_time": "2022-01-23T13:15:13", "upload_time_iso_8601": "2022-01-23T13:15:13.481717Z", "url": "https://files.pythonhosted.org/packages/0d/94/44d997e735955e1fc812836b305449e8cc3350f9dd014c7abc11a3d48dac/django_boost-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }