{ "info": { "author": "Federico Capoano", "author_email": "f.capoano@cineca.it", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP", "Topic :: System :: Networking" ], "description": "django-netjsonconfig\n====================\n\n.. image:: https://travis-ci.org/openwisp/django-netjsonconfig.svg\n :target: https://travis-ci.org/openwisp/django-netjsonconfig\n\n.. image:: https://coveralls.io/repos/openwisp/django-netjsonconfig/badge.svg\n :target: https://coveralls.io/r/openwisp/django-netjsonconfig\n\n.. image:: https://requires.io/github/openwisp/django-netjsonconfig/requirements.svg?branch=master\n :target: https://requires.io/github/openwisp/django-netjsonconfig/requirements/?branch=master\n :alt: Requirements Status\n\n.. image:: https://badge.fury.io/py/django-netjsonconfig.svg\n :target: http://badge.fury.io/py/django-netjsonconfig\n\n------------\n\nConfiguration manager for embedded devices, implemented as a reusable django-app.\n\nBased on the `NetJSON`_ format and the `netjsonconfig`_ library.\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/adhoc-interface.png\n :alt: adhoc interface\n\n------------\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/preview.png\n :alt: preview\n\n------------\n\n.. contents:: **Table of Contents**:\n :backlinks: none\n :depth: 3\n\n------------\n\nCurrent features\n----------------\n\n* **configuration management** for embedded devices supporting different firmwares:\n - `OpenWRT `_\n - `OpenWISP Firmware `_\n - support for additional firmware can be added by `specifying custom backends <#netjsonconfig-backends>`_\n* **configuration editor** based on `JSON-Schema editor `_\n* **advanced edit mode**: edit `NetJSON`_ *DeviceConfiguration* objects for maximum flexibility\n* **configuration templates**: reduce repetition to the minimum\n* **configuration context**: reference ansible-like variables in the configuration\n* **template tags**: tag templates to automate different types of auto-configurations (eg: mesh, WDS, 4G)\n* **simple HTTP resources**: allow devices to automatically download configuration updates\n* **VPN management**: easily create VPN servers and clients\n\nProject goals\n-------------\n\n* automate configuration management for embedded devices\n* allow to minimize repetition by using templates\n* provide base logic that can be extended by third-party apps (see\n `Extending django-netjsonconfig <#extending-django-netjsonconfig>`_)\n* provide ways to support more firmwares by adding custom backends\n* keep the core as simple as possible\n\nDeploy it in production\n-----------------------\n\nAn automated installer is available at `ansible-openwisp2 `_.\n\nDependencies\n------------\n\n* Python 2.7 or Python >= 3.4\n* OpenSSL\n\nInstall stable version from pypi\n--------------------------------\n\nInstall from pypi:\n\n.. code-block:: shell\n\n pip install django-netjsonconfig\n\nInstall development version\n---------------------------\n\nInstall tarball:\n\n.. code-block:: shell\n\n pip install https://github.com/openwisp/django-netjsonconfig/tarball/master\n\nAlternatively you can install via pip using git:\n\n.. code-block:: shell\n\n pip install -e git+git://github.com/openwisp/django-netjsonconfig#egg=django-netjsonconfig\n\nIf you want to contribute, install your cloned fork:\n\n.. code-block:: shell\n\n git clone git@github.com:/django-netjsonconfig.git\n cd django-netjsonconfig\n python setup.py develop\n\nSetup (integrate in an existing django project)\n-----------------------------------------------\n\nAdd ``django_netjsonconfig``, ``django.contrib.admin``, ``sortedm2m`` and ``reversion`` to\n``INSTALLED_APPS`` in the following order:\n\n.. code-block:: python\n\n INSTALLED_APPS = [\n # other apps\n 'openwisp_utils.admin_theme',\n 'django_netjsonconfig',\n # ensure the django admin comes after django-netjsonconfig\n 'django.contrib.admin',\n 'sortedm2m',\n 'reversion' # optional, can be removed if not needed\n # ...\n ]\n\nAdd the controller URLs to your main ``urls.py``:\n\n.. code-block:: python\n\n urlpatterns = [\n # ... other urls in your project ...\n\n # controller URLs\n # used by devices to download/update their configuration\n # keep the namespace argument unchanged\n url(r'^', include('django_netjsonconfig.controller.urls', namespace='controller')),\n # common URLs\n # shared among django-netjsonconfig components\n # keep the namespace argument unchanged\n url(r'^', include('django_netjsonconfig.urls', namespace='netjsonconfig')),\n ]\n\nThen run:\n\n.. code-block:: shell\n\n ./manage.py migrate\n\nInstalling for development\n--------------------------\n\nInstall sqlite:\n\n.. code-block:: shell\n\n sudo apt-get install sqlite3 libsqlite3-dev openssl libssl-dev\n\nInstall your forked repo:\n\n.. code-block:: shell\n\n git clone git://github.com//django-netjsonconfig\n cd django-netjsonconfig/\n python setup.py develop\n\nInstall test requirements:\n\n.. code-block:: shell\n\n pip install -r requirements-test.txt\n\nCreate database:\n\n.. code-block:: shell\n\n cd tests/\n ./manage.py migrate\n ./manage.py createsuperuser\n\nLaunch development server:\n\n.. code-block:: shell\n\n ./manage.py runserver\n\nYou can access the admin interface at http://127.0.0.1:8000/admin/.\n\nRun tests with:\n\n.. code-block:: shell\n\n ./runtests.py\n\nSettings\n--------\n\n``NETJSONCONFIG_BACKENDS``\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+-----------------------------------------------+\n| **type**: | ``tuple`` |\n+--------------+-----------------------------------------------+\n| **default**: | .. code-block:: python |\n| | |\n| | ( |\n| | ('netjsonconfig.OpenWrt', 'OpenWRT'), |\n| | ('netjsonconfig.OpenWisp', 'OpenWISP'), |\n| | ) |\n+--------------+-----------------------------------------------+\n\nAvailable configuration backends. For more information, see `netjsonconfig backends\n`_.\n\n``NETJSONCONFIG_VPN_BACKENDS``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+----------------------------------------------------------------+\n| **type**: | ``tuple`` |\n+--------------+----------------------------------------------------------------+\n| **default**: | .. code-block:: python |\n| | |\n| | ( |\n| | ('django_netjsonconfig.vpn_backends.OpenVpn', 'OpenVPN'), |\n| | ) |\n+--------------+----------------------------------------------------------------+\n\nAvailable VPN backends for VPN Server objects. For more information, see `OpenVPN netjsonconfig backend\n`_.\n\nA VPN backend must follow some basic rules in order to be compatible with *django-netjsonconfig*:\n\n* it MUST allow at minimum and at maximum one VPN instance\n* the main *NetJSON* property MUST match the lowercase version of the class name,\n eg: when using the ``OpenVpn`` backend, the system will look into\n ``config['openvpn']``\n* it SHOULD focus on the server capabilities of the VPN software being used\n\n``NETJSONCONFIG_DEFAULT_BACKEND``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+----------------------------------+\n| **type**: | ``str`` |\n+--------------+----------------------------------+\n| **default**: | ``NETJSONCONFIG_BACKENDS[0][0]`` |\n+--------------+----------------------------------+\n\nThe preferred backend that will be used as initial value when adding new ``Config`` or\n``Template`` objects in the admin.\n\nThis setting defaults to the raw value of the first item in the ``NETJSONCONFIG_BACKENDS`` setting,\nwhich is ``netjsonconfig.OpenWrt``.\n\nSetting it to ``None`` will force the user to choose explicitly.\n\n``NETJSONCONFIG_DEFAULT_VPN_BACKEND``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+--------------------------------------+\n| **type**: | ``str`` |\n+--------------+--------------------------------------+\n| **default**: | ``NETJSONCONFIG_VPN_BACKENDS[0][0]`` |\n+--------------+--------------------------------------+\n\nThe preferred backend that will be used as initial value when adding new ``Vpn`` objects in the admin.\n\nThis setting defaults to the raw value of the first item in the ``NETJSONCONFIG_VPN_BACKENDS`` setting,\nwhich is ``django_netjsonconfig.vpn_backends.OpenVpn``.\n\nSetting it to ``None`` will force the user to choose explicitly.\n\n``NETJSONCONFIG_REGISTRATION_ENABLED``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+-------------+\n| **type**: | ``bool`` |\n+--------------+-------------+\n| **default**: | ``True`` |\n+--------------+-------------+\n\nWhether devices can automatically register through the controller or not.\n\nThis feature is enabled by default.\n\nAutoregistration must be supported on the devices in order to work, see `openwisp-config automatic\nregistration `_ for more information.\n\n``NETJSONCONFIG_CONSISTENT_REGISTRATION``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+-------------+\n| **type**: | ``bool`` |\n+--------------+-------------+\n| **default**: | ``True`` |\n+--------------+-------------+\n\nWhether devices that are already registered are recognized when reflashed or reset, hence keeping\nthe existing configuration without creating a new one.\n\nThis feature is enabled by default.\n\nAutoregistration must be enabled also on the devices in order to work, see `openwisp-config\nconsistent key generation `_\nfor more information.\n\n``NETJSONCONFIG_SHARED_SECRET``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+------------------+\n| **type**: | ``str`` |\n+--------------+------------------+\n| **default**: | ``\"\"`` |\n+--------------+------------------+\n\nA secret key which must be used by devices to perform `automatic registration\n`_.\n\nThis key MUST be explicitly set in production (if ``settings.DEBUG is False``), otherwise\nan ``ImproperlyConfigured`` exception will be raised on startup.\n\n``NETJSONCONFIG_CONTEXT``\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+------------------+\n| **type**: | ``dict`` |\n+--------------+------------------+\n| **default**: | ``{}`` |\n+--------------+------------------+\n\nAdditional context that is passed to the default context of each ``Config`` object.\n\nEach ``Config`` object gets the following attributes passed as configuration variables:\n\n* ``id``\n* ``key``\n* ``name``\n* ``mac_address``\n\n``NETJSONCONFIG_CONTEXT`` can be used to define system-wide configuration variables.\n\nFor more information, see `netjsonconfig context: configuration variables\n`_.\n\n``NETJSONCONFIG_DEFAULT_AUTO_CERT``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+---------------------------+\n| **type**: | ``bool`` |\n+--------------+---------------------------+\n| **default**: | ``True`` |\n+--------------+---------------------------+\n\nThe default value of the ``auto_cert`` field for new ``Template`` objects.\n\nThe ``auto_cert`` field is valid only for templates which have ``type``\nset to ``VPN`` and indicates whether a new x509 certificate should be created\nautomatically for each configuration using that template.\n\nThe automatically created certificates will also be removed when they are not\nneeded anymore (eg: when the VPN template is removed from a configuration object).\n\n``NETJSONCONFIG_CERT_PATH``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+---------------------------+\n| **type**: | ``str`` |\n+--------------+---------------------------+\n| **default**: | ``/etc/x509`` |\n+--------------+---------------------------+\n\nThe filesystem path where x509 certificate will be installed when\ndownloaded on routers when ``auto_cert`` is being used (enabled by default).\n\n``NETJSONCONFIG_COMMON_NAME_FORMAT``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n+--------------+------------------------------+\n| **type**: | ``str`` |\n+--------------+------------------------------+\n| **default**: | ``{mac_address}-{name}`` |\n+--------------+------------------------------+\n\nDefines the format of the ``common_name`` attribute of VPN client certificates that are automatically\ncreated when using VPN templates which have ``auto_cert`` set to ``True``.\n\nExtending django-netjsonconfig\n------------------------------\n\n*django-netjsonconfig* provides a set of models, admin classes and generic views which can be imported,\nextended and reused by third party apps.\n\nTo extend *django-netjsonconfig*, **you MUST NOT** add it to ``settings.INSTALLED_APPS``,\nbut you must create your own app (which goes into ``settings.INSTALLED_APPS``), import the\nbase classes from django-netjsonconfig and add your customizations.\n\nIn order to help django find the static files and templates of *django-netjsonconfig*,\nyou need to perform the steps described below.\n\n1. Add ``EXTENDED_APPS``\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdd the following to your ``settings.py``:\n\n.. code-block:: python\n\n EXTENDED_APPS = ('django_netjsonconfig', 'django_x509',)\n\n2. Add ``openwisp_utils.staticfiles.DependencyFinder``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdd ``openwisp_utils.staticfiles.DependencyFinder`` to\n``STATICFILES_FINDERS`` in your ``settings.py``:\n\n.. code-block:: python\n\n STATICFILES_FINDERS = [\n 'django.contrib.staticfiles.finders.FileSystemFinder',\n 'django.contrib.staticfiles.finders.AppDirectoriesFinder',\n 'openwisp_utils.staticfiles.DependencyFinder',\n ]\n\n3. Add ``openwisp_utils.loaders.DependencyLoader``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdd ``openwisp_utils.loaders.DependencyLoader`` to ``TEMPLATES`` in your ``settings.py``:\n\n.. code-block:: python\n\n TEMPLATES = [\n {\n 'BACKEND': 'django.template.backends.django.DjangoTemplates',\n 'OPTIONS': {\n 'loaders': [\n 'django.template.loaders.filesystem.Loader',\n 'django.template.loaders.app_directories.Loader',\n 'openwisp_utils.loaders.DependencyLoader',\n ],\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 ],\n },\n }\n ]\n\nExtending models\n~~~~~~~~~~~~~~~~\n\nThis example provides an example of how to extend the base models of\n*django-netjsonconfig* by adding a relation to another django model named `Organization`.\n\n.. code-block:: python\n\n # models.py of your custom ``config`` app\n from django.db import models\n from sortedm2m.fields import SortedManyToManyField\n from taggit.managers import TaggableManager\n\n from django_netjsonconfig.base.config import AbstractConfig, TemplatesVpnMixin\n from django_netjsonconfig.base.tag import AbstractTaggedTemplate, AbstractTemplateTag\n from django_netjsonconfig.base.template import AbstractTemplate\n from django_netjsonconfig.base.vpn import AbstractVpn, AbstractVpnClient\n\n # the model ``organizations.Organization`` is omitted for brevity\n # if you are curious to see a real implementation, check out django-organizations\n # https://github.com/bennylope/django-organizations\n\n class OrganizationMixin(models.Model):\n organization = models.ForeignKey('organizations.Organization')\n\n class Meta:\n abstract = True\n\n\n class Config(OrganizationMixin, TemplatesVpnMixin, AbstractConfig):\n templates = SortedManyToManyField('config.Template',\n related_name='config_relations',\n blank=True)\n vpn = models.ManyToManyField('config.Vpn',\n through='config.VpnClient',\n related_name='vpn_relations',\n blank=True)\n\n def clean(self):\n # your own validation logic here...\n pass\n\n class Meta(AbstractConfig.Meta):\n abstract = False\n\n\n class TemplateTag(AbstractTemplateTag):\n class Meta(AbstractTemplateTag.Meta):\n abstract = False\n\n\n class TaggedTemplate(AbstractTaggedTemplate):\n tag = models.ForeignKey('config.TemplateTag',\n related_name='%(app_label)s_%(class)s_items',\n on_delete=models.CASCADE)\n\n class Meta(AbstractTaggedTemplate.Meta):\n abstract = False\n\n\n class Template(OrganizationMixin, AbstractTemplate):\n tags = TaggableManager(through='config.TaggedTemplate', blank=True)\n vpn = models.ForeignKey('config.Vpn', blank=True, null=True)\n\n def clean(self):\n # your own validation logic here...\n pass\n\n class Meta(AbstractTemplate.Meta):\n abstract = False\n\n\n class Vpn(OrganizationMixin, AbstractVpn):\n class Meta(AbstractVpn.Meta):\n abstract = False\n\n\n class VpnClient(AbstractVpnClient):\n config = models.ForeignKey('config.Config', on_delete=models.CASCADE)\n vpn = models.ForeignKey('config.Vpn', on_delete=models.CASCADE)\n cert = models.OneToOneField('django_x509.Cert',\n on_delete=models.CASCADE,\n blank=True,\n null=True)\n\n class Meta(AbstractVpnClient.Meta):\n abstract = False\n\nExtending the admin\n~~~~~~~~~~~~~~~~~~~\n\nFollowing the previous ``Organization`` example, you can avoid duplicating the admin\ncode by importing the base admin classes and registering your models with.\n\n.. code-block:: python\n\n # admin.py of your app\n # these are your custom models, they must be imported before the abstract admin classes\n from .models import Config, Template, Vpn\n\n from django.contrib import admin\n from django_netjsonconfig.base.admin import (AbstractConfigAdmin,\n AbstractConfigForm,\n AbstractTemplateAdmin,\n AbstractVpnAdmin,\n AbstractVpnForm,\n BaseForm)\n\n\n class ConfigForm(AbstractConfigForm):\n class Meta(AbstractConfigForm.Meta):\n model = Config\n\n\n class ConfigAdmin(AbstractConfigAdmin):\n form = ConfigForm\n\n\n class TemplateForm(BaseForm):\n class Meta(BaseForm.Meta):\n model = Template\n\n\n class TemplateAdmin(AbstractTemplateAdmin):\n form = TemplateForm\n\n\n class VpnForm(AbstractVpnForm):\n class Meta(AbstractVpnForm.Meta):\n model = Vpn\n\n\n class VpnAdmin(AbstractVpnAdmin):\n form = VpnForm\n\n\n admin.site.register(Config, ConfigAdmin)\n admin.site.register(Template, TemplateAdmin)\n admin.site.register(Vpn, VpnAdmin)\n\nExtending controller views\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf your use case doesn't vary a lot from the base one, you may also want\nto try to reuse the controller views:\n\n.. code-block:: python\n\n # your_config_app.controller.views\n from ..models import Config # this is your custom model\n from django_netjsonconfig.controller.generics import (\n BaseChecksumView,\n BaseDownloadConfigView,\n BaseRegisterView,\n BaseReportStatusView\n )\n\n\n class ChecksumView(BaseChecksumView):\n model = Device\n\n\n class DownloadConfigView(BaseDownloadConfigView):\n model = Device\n\n\n class ReportStatusView(BaseReportStatusView):\n model = Device\n\n\n class RegisterView(BaseRegisterView):\n model = Device\n\n\n checksum = ChecksumView.as_view()\n download_config = DownloadConfigView.as_view()\n report_status = ReportStatusView.as_view()\n register = RegisterView.as_view()\n\nController URLs\n~~~~~~~~~~~~~~~\n\nIf you are not making drastic changes to the controller views, you can avoid duplicating the URL\nlogic by using the ``get_controller_urls`` function. Put this in your controller ``urls.py``:\n\n.. code-block:: python\n\n # your_config_app.controller.urls\n from django_netjsonconfig.utils import get_controller_urls\n from . import views\n\n urlpatterns = get_controller_urls(views)\n\nExtending AppConfig\n~~~~~~~~~~~~~~~~~~~\n\nYou may want to reuse the ``AppConfig`` class of *django-netjsonconfig* too:\n\n.. code-block:: python\n\n from django_netjsonconfig.apps import DjangoNetjsonconfigApp\n\n\n class MyOwnConfig(DjangoNetjsonconfigApp):\n name = 'yourapp.config'\n label = 'config'\n\n def __setmodels__(self):\n from .models import Config, VpnClient # these are your custom models\n self.config_model = Config\n self.vpnclient_model = VpnClient\n\nReal world extensions of django-netjsonconfig\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nFor full working examples of django proejcts which extend *django-netjsonconfig*, see:\n\n- `openwisp/openwisp-controller `_\n- `innovationgarage/extendnetjson_project `_\n\nScreenshots\n-----------\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/configuration-ui.png\n :alt: configuration item\n\n------------\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/bridge.png\n :alt: bridge\n\n------------\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/radio.png\n :alt: radio\n\n------------\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/wpa-enterprise.png\n :alt: wpa enterprise\n\n------------\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/preview.png\n :alt: preview\n\n------------\n\n.. image:: https://raw.githubusercontent.com/openwisp/django-netjsonconfig/master/docs/images/adhoc-interface.png\n :alt: adhoc interface\n\nContributing\n------------\n\n1. Announce your intentions in the `OpenWISP Mailing List `_\n2. Fork this repo and install it\n3. Follow `PEP8, Style Guide for Python Code`_\n4. Write code\n5. Write tests for your code\n6. Ensure all tests pass\n7. Ensure test coverage does not decrease\n8. Document your changes\n9. Send pull request\n\n.. _PEP8, Style Guide for Python Code: http://www.python.org/dev/peps/pep-0008/\n.. _NetJSON: http://netjson.org\n.. _netjsonconfig: http://netjsonconfig.openwisp.org\n\nChangelog\n---------\n\nSee `CHANGES `_.\n\nLicense\n-------\n\nSee `LICENSE `_.\n\nSupport\n-------\n\nSee `OpenWISP Support Channels `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/openwisp/django-netjsonconfig/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://netjson.org", "keywords": "django,netjson,openwrt,networking,openwisp", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "django-netjsonconfig", "package_url": "https://pypi.org/project/django-netjsonconfig/", "platform": "Platform Indipendent", "project_url": "https://pypi.org/project/django-netjsonconfig/", "project_urls": { "Download": "https://github.com/openwisp/django-netjsonconfig/releases", "Homepage": "http://netjson.org" }, "release_url": "https://pypi.org/project/django-netjsonconfig/0.8.1/", "requires_dist": [ "django (<2.1,>=1.11)", "django-model-utils", "jsonfield", "six", "netjsonconfig (<0.7.0,>=0.6.2)", "django-sortedm2m (<1.6,>=1.5.0)", "django-reversion (<2.1,>=2.0.6)", "django-x509 (<0.5.0,>=0.4.0)", "django-taggit (<0.23.0,>=0.22.2)", "openwisp-utils (<0.3,>=0.2)" ], "requires_python": "", "summary": "Configuration manager for embedded devices, implemented as a reusable django-app", "version": "0.8.1" }, "last_serial": 4053969, "releases": { "0.3.1": [ { "comment_text": "", "digests": { "md5": "df4dca51a8e40c19e55e254c2c7991bb", "sha256": "a73fa9be7709acd4afffd5e697d5f11bf0ad7879b768b5e25a0aa86523e15fb3" }, "downloads": -1, "filename": "django_netjsonconfig-0.3.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "df4dca51a8e40c19e55e254c2c7991bb", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 203970, "upload_time": "2016-04-19T13:24:32", "url": "https://files.pythonhosted.org/packages/36/8f/a0ab64790ca2f299ac8d4924cc267e065e9f868f3327ca0e88dd4223b125/django_netjsonconfig-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67311f721c27ee2a20389a6798610743", "sha256": "bbf15a19343c2bca31a2d8d67376402371eac2f30089d43f0cdff7e03a3d3bc5" }, "downloads": -1, "filename": "django-netjsonconfig-0.3.1.tar.gz", "has_sig": true, "md5_digest": "67311f721c27ee2a20389a6798610743", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73674, "upload_time": "2016-04-19T13:24:08", "url": "https://files.pythonhosted.org/packages/35/38/898c44e155cf867cb88f8662bed6bf2ca4ad4b7d3972b1b9134c6cfe2655/django-netjsonconfig-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "4a033c784f3ed44dffdfdfe1ad312bde", "sha256": "076b36239f00d90e9648df739181d046b7062f7265fe263f87ff01d113d042ac" }, "downloads": -1, "filename": "django_netjsonconfig-0.3.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4a033c784f3ed44dffdfdfe1ad312bde", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 77790, "upload_time": "2016-06-21T14:12:25", "url": "https://files.pythonhosted.org/packages/6b/e2/2aaf8ce31703c6c19fbd3ceeca91a3e02ed4f941eab4aac5ec9f0b41e9c1/django_netjsonconfig-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2147db745f1ce10df66911e72ae2bb17", "sha256": "9498c5114bd9a2f24cfec3a2eaedb6340e61af5229a0279c59f73d4579416b4c" }, "downloads": -1, "filename": "django-netjsonconfig-0.3.2.tar.gz", "has_sig": true, "md5_digest": "2147db745f1ce10df66911e72ae2bb17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 483768, "upload_time": "2016-06-21T14:12:19", "url": "https://files.pythonhosted.org/packages/46/3d/8eb66b478749623314f69a37794492076372b99e037c1f324feff225468f/django-netjsonconfig-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "6c4413d45f3d722d58917aac3902e081", "sha256": "acacf31022528fba24ddd22961290cfb88c6fb912791b975aee5cb8d4febb037" }, "downloads": -1, "filename": "django_netjsonconfig-0.3.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "6c4413d45f3d722d58917aac3902e081", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 77925, "upload_time": "2016-08-24T13:27:24", "url": "https://files.pythonhosted.org/packages/35/1e/f6a93e464df8b5908f41ca4b834367bfe4afeb74fcabc8d79f5672fb477c/django_netjsonconfig-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0525667e9591e858eef54764cb15aaf2", "sha256": "0f64d4945a0b37f283cdb29e88935574d174cc26ff941b8e79bbc7440e27c2ce" }, "downloads": -1, "filename": "django-netjsonconfig-0.3.3.tar.gz", "has_sig": true, "md5_digest": "0525667e9591e858eef54764cb15aaf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 483716, "upload_time": "2016-08-24T13:27:20", "url": "https://files.pythonhosted.org/packages/be/0e/e4412d072b3901ca482dfc09847e291de67b080520082f88cffd805ca9ad/django-netjsonconfig-0.3.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "fa480f8a36511f9b221417093a1af8df", "sha256": "e417ff38226bd2e65ae96bbf6bc9ce4234f5a783267677bf742c9b3bcbed8ea9" }, "downloads": -1, "filename": "django_netjsonconfig-0.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "fa480f8a36511f9b221417093a1af8df", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 99496, "upload_time": "2016-09-20T14:03:14", "url": "https://files.pythonhosted.org/packages/b2/7c/453d396b88ee3a88a2fd8a6c2ebc1a7906e4c9e3d3c7dd20c0a61c46c9f8/django_netjsonconfig-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9a502df706533c409aea734e5c41a51", "sha256": "be0913f03c06cb6660cdf4a7bd9bf74737f097637e27340406867f0f88e0a822" }, "downloads": -1, "filename": "django-netjsonconfig-0.4.tar.gz", "has_sig": true, "md5_digest": "d9a502df706533c409aea734e5c41a51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 498125, "upload_time": "2016-09-20T14:03:10", "url": "https://files.pythonhosted.org/packages/c0/8e/22434a929584b26d2704e5d96891d766135338684bcc431c549c380d8aea/django-netjsonconfig-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e87edd9f69d58b4f1dac8e0fdf7c5d89", "sha256": "e51a094296227710dbc49d5274b4d4713ffcdd25e3f8889d0c17b9e0e1ff076e" }, "downloads": -1, "filename": "django_netjsonconfig-0.4.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e87edd9f69d58b4f1dac8e0fdf7c5d89", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 100247, "upload_time": "2016-09-22T13:47:36", "url": "https://files.pythonhosted.org/packages/55/28/6ed83fb83b2b63cd4b583d6ae7c2626eb4c40d138f1069925d9ab88e55c9/django_netjsonconfig-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ac53d05837f2b74fe8cae39bf6ba6cf", "sha256": "6ad106ff3acac0e0ac856359983cea4bf4f17def67251bc718178156f6e79561" }, "downloads": -1, "filename": "django-netjsonconfig-0.4.1.tar.gz", "has_sig": true, "md5_digest": "9ac53d05837f2b74fe8cae39bf6ba6cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 498483, "upload_time": "2016-09-22T13:47:33", "url": "https://files.pythonhosted.org/packages/a0/61/43b0266fdd5b72b6fc49b463df44632ce0805558e9a246c4b28481ce735b/django-netjsonconfig-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "3d515bfe3f4b3f9c98fcbeffd41d6f81", "sha256": "221993a8bff092aae7f6b749541f5341ebd4355362d15e57b9ec2062f60614ec" }, "downloads": -1, "filename": "django_netjsonconfig-0.4.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "3d515bfe3f4b3f9c98fcbeffd41d6f81", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 95022, "upload_time": "2016-12-29T14:20:38", "url": "https://files.pythonhosted.org/packages/18/ff/a2fb45f92dc5eb22a7b1e0b263a3e18462ebff5f6282748d6d59090a62df/django_netjsonconfig-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "47941f9e33f128ab7233b586b87ea8df", "sha256": "f0e0140e70af114ca141cbc5f5b1622c196533ae8d1d0bff476404ede4d6a9da" }, "downloads": -1, "filename": "django-netjsonconfig-0.4.2.tar.gz", "has_sig": true, "md5_digest": "47941f9e33f128ab7233b586b87ea8df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86927, "upload_time": "2016-12-29T14:20:35", "url": "https://files.pythonhosted.org/packages/ac/c8/9372b7156b65ad074b079e14740981ed930cf8026d686a30aa2df5b5b17b/django-netjsonconfig-0.4.2.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "65b0e17d922af34ec46c949ca7569f14", "sha256": "2b0452d1a4f5925e2807b8937eaf08e6d911d8f5eb7d52adc0b7d89be12c64f3" }, "downloads": -1, "filename": "django_netjsonconfig-0.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "65b0e17d922af34ec46c949ca7569f14", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 112493, "upload_time": "2017-01-13T15:32:09", "url": "https://files.pythonhosted.org/packages/aa/38/80c76aec21ba3ababff008c32628b2ec3b18d3357033c9a5d847435651d1/django_netjsonconfig-0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fd0c9ff7b38d96ea31099413432394f", "sha256": "b8795894bcef04d796f95622c4bd71f48beaeaa3e92ff40a07d6b436f164620a" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.tar.gz", "has_sig": true, "md5_digest": "7fd0c9ff7b38d96ea31099413432394f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92461, "upload_time": "2017-01-13T15:32:06", "url": "https://files.pythonhosted.org/packages/d7/e3/f13c4d16f63aacbe691eb0fd120b50e82bdb6bd6ed52a05c32e62954557b/django-netjsonconfig-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "e227d6e757bdce38193888414099e91d", "sha256": "e9025ebe72fb41521c02fd7edfa80367e899a0665d3322571233eedba83c76a5" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e227d6e757bdce38193888414099e91d", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 150573, "upload_time": "2017-02-01T10:01:27", "url": "https://files.pythonhosted.org/packages/95/ea/ecdee115b3ba30cf25b73fba2d9570f69a288b53c19a7d798e2dba8f5619/django_netjsonconfig-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c514f3f3c676a3f8595158af88bb5bf", "sha256": "70057db1aa033798c38f45b6a2db98edf5d975ef399cb6bb9cf53bef8c54b6ec" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.1.tar.gz", "has_sig": true, "md5_digest": "5c514f3f3c676a3f8595158af88bb5bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 134577, "upload_time": "2017-02-01T10:01:24", "url": "https://files.pythonhosted.org/packages/1f/d6/de91622c43400e9c3ec66dced8ceb2652ca68a002017fa375c19b698ac29/django-netjsonconfig-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "804f72daea15b37fafcc84f09cba73fe", "sha256": "f673c4af15d5df4125fffd78ed2c631c6b6c961ecad7366414c0068d9a668cc2" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "804f72daea15b37fafcc84f09cba73fe", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 152366, "upload_time": "2017-02-14T10:29:59", "url": "https://files.pythonhosted.org/packages/ad/83/6020a9f13e951f1b2a857f10e2980cdb52f4825ce8fa69331fba090fc54a/django_netjsonconfig-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f4cd67ada6525f607627ac1eb4d2e00", "sha256": "955a3e4b97fd70644aec56bd490ca083db6b28b6aa0571ca65059233185a5184" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.2.tar.gz", "has_sig": true, "md5_digest": "3f4cd67ada6525f607627ac1eb4d2e00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 136759, "upload_time": "2017-02-14T10:29:55", "url": "https://files.pythonhosted.org/packages/e5/11/be0693d6faecad02ac9357fca381807c1a0b7e522aac903e3ad77fdf0f0c/django-netjsonconfig-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "aee70cf634561331241f71b6e47fac17", "sha256": "11ccf3c90ea6f406582c084a6d95a5a4bd6423f7b3c1f694a0d16ef23a140d05" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "aee70cf634561331241f71b6e47fac17", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 152669, "upload_time": "2017-02-15T13:30:29", "url": "https://files.pythonhosted.org/packages/af/14/b3cad082ec486692a3b0d31fa424bb3bb1d386d6184a62023f10a10ec99f/django_netjsonconfig-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b4d9f4ab3a7279987da3a19965457f2", "sha256": "241a5efe2ca287efc7b830867b21be42297830a8d44186203c2db64dba15ae86" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.3.tar.gz", "has_sig": true, "md5_digest": "0b4d9f4ab3a7279987da3a19965457f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137074, "upload_time": "2017-02-15T13:30:27", "url": "https://files.pythonhosted.org/packages/c8/8c/042f6a73e91af28fd333410b3c5974e92c9ad91b0197925e7aaa0e9c381a/django-netjsonconfig-0.5.3.tar.gz" } ], "0.5.3.post1": [ { "comment_text": "", "digests": { "md5": "2b22029d0d9b30211f7bce9eaa798070", "sha256": "2a02c8e7066511ae04ce0cbb075ee42a9e678d39aa179adbc8481e11bf0b55d7" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.3.post1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2b22029d0d9b30211f7bce9eaa798070", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 143783, "upload_time": "2017-02-15T14:01:26", "url": "https://files.pythonhosted.org/packages/13/bd/2f6529c5b97956f9b4cac879d8276c71daf6ec18c79a9fe3f003ecfa69e1/django_netjsonconfig-0.5.3.post1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c6176b2964e89c3f317357517fdf0371", "sha256": "7e2107acc5bab5792d8832af61f6a50b1254a19ba08366024438d23473d6464f" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.3.post1.tar.gz", "has_sig": true, "md5_digest": "c6176b2964e89c3f317357517fdf0371", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137483, "upload_time": "2017-02-15T14:01:23", "url": "https://files.pythonhosted.org/packages/ea/00/bf1dcf3af9a3b4388bb26ae584985905331feaae1df0de48eaf7f5cc4a6a/django-netjsonconfig-0.5.3.post1.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "d891e5ae4e5ca2870f742c61f1835eea", "sha256": "856f25698a4a9b682b65d755268b8a76a4aa9e79beb679997e6ecdccfb46b2e7" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d891e5ae4e5ca2870f742c61f1835eea", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 143740, "upload_time": "2017-03-07T16:16:19", "url": "https://files.pythonhosted.org/packages/5c/39/bf9cbd48e23bc61560ca45f13dd84e50256555e1cfa0110784467a94aac2/django_netjsonconfig-0.5.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17a42231cf814a4f05a50dbcd3d332bb", "sha256": "cb2700431fcb0670c33a230fee723e934142aeb1b828285c280232a5ebce6e62" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.4.tar.gz", "has_sig": true, "md5_digest": "17a42231cf814a4f05a50dbcd3d332bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 137609, "upload_time": "2017-03-07T16:16:16", "url": "https://files.pythonhosted.org/packages/1a/9e/2d88ab4e58f5af429e7b0df385f63d15bda7b1c704e7ea3d51331c200803/django-netjsonconfig-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "727ccd416b3db749b57b801fe72c156f", "sha256": "1a6ac628e86d6c146a1aeadd17824ec0d2b8d56daac947b3c319488cb38b6459" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "727ccd416b3db749b57b801fe72c156f", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 410450, "upload_time": "2017-03-09T18:00:31", "url": "https://files.pythonhosted.org/packages/14/83/b7fa76308058f409600832bef5b49e232f2d1b35737073128c26f4ef9cd2/django_netjsonconfig-0.5.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db81431736898ee1ec9fff71d1907df5", "sha256": "c3f5a39a247876d34c2f281e43f7c7160f04fa5a5fd3052a06b856db706254f9" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.5.tar.gz", "has_sig": true, "md5_digest": "db81431736898ee1ec9fff71d1907df5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 400005, "upload_time": "2017-03-09T18:00:28", "url": "https://files.pythonhosted.org/packages/be/45/0b9ba79b2071bddacc8c772c6a5cf5fb2e96fe934b857cc98eaa4a2df2e5/django-netjsonconfig-0.5.5.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "f3672585a5e14e1c1c306e63c211f276", "sha256": "aacf19b5b25ae95c9cb1cfc154a6681bf8f81a0e74065f5928063376fc19c658" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f3672585a5e14e1c1c306e63c211f276", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 410512, "upload_time": "2017-03-15T17:58:18", "url": "https://files.pythonhosted.org/packages/fc/ea/447afcbad1d3113717e3061b1f386baa485c3522bae2d7184911545c8f17/django_netjsonconfig-0.5.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1bbca48aba94a84267295a010035670", "sha256": "eae06f7eb258c7ae85c14be79c264e132ed3a4ba372fe95586040b8bddccd563" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.6.tar.gz", "has_sig": true, "md5_digest": "f1bbca48aba94a84267295a010035670", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 400178, "upload_time": "2017-03-15T17:58:15", "url": "https://files.pythonhosted.org/packages/06/69/772b3106139b5516681f86f94dbcd940270be37684715f813cb13bb6eb8d/django-netjsonconfig-0.5.6.tar.gz" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "815a9b253db726a9bf6667aa6749f559", "sha256": "36dd4c4164611784cd32206c8c45ab2b8420ca46166ed84ebf41120962ac4cfc" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "815a9b253db726a9bf6667aa6749f559", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 411226, "upload_time": "2017-03-28T13:05:40", "url": "https://files.pythonhosted.org/packages/0c/87/e208c9fa578091b05b518ab2958d826022ab160d3f68949098385ff516d3/django_netjsonconfig-0.5.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa6a698ed92e10a16fbce4791202e377", "sha256": "b7df43bb0066c30dde4fced5c6887442eac96aa494aad882bc0999470eacf6e4" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.7.tar.gz", "has_sig": true, "md5_digest": "aa6a698ed92e10a16fbce4791202e377", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 400983, "upload_time": "2017-03-28T13:05:36", "url": "https://files.pythonhosted.org/packages/59/a8/5492509bbfee716e6ee326d1371f387f7b3feadf57d0670d30f500b4def6/django-netjsonconfig-0.5.7.tar.gz" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "e420ac4b09486af5de4e2b29f19dabcc", "sha256": "766248c46fc6fff9eb05a5aa76b54db8cae8d73065422f3fb031b723b5ce60e6" }, "downloads": -1, "filename": "django_netjsonconfig-0.5.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e420ac4b09486af5de4e2b29f19dabcc", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 412256, "upload_time": "2017-04-21T16:16:28", "url": "https://files.pythonhosted.org/packages/94/bb/767a17e9b12ede30743f42cf24c4646f16d64d9976812a09b7fcec93d5d9/django_netjsonconfig-0.5.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65b4cd7444f414d34f8b1a8de62126f2", "sha256": "93a1145f79ac7124cf9b461a15fda4cd2ef2e0c0bab272821bfacd32feb4aba1" }, "downloads": -1, "filename": "django-netjsonconfig-0.5.8.tar.gz", "has_sig": true, "md5_digest": "65b4cd7444f414d34f8b1a8de62126f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 401133, "upload_time": "2017-04-21T16:16:23", "url": "https://files.pythonhosted.org/packages/82/52/fe4719b92277f83174ca125a5f1606834aae8da9697e654e3d0c0bd2c7e2/django-netjsonconfig-0.5.8.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "e93ed7176ec20532c8559874bf57b183", "sha256": "be46cb270f2ab0fc3a73d08d6a148a4466a961ae267c0111ecd9707a4c814d0d" }, "downloads": -1, "filename": "django_netjsonconfig-0.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e93ed7176ec20532c8559874bf57b183", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 423872, "upload_time": "2017-05-24T20:19:46", "url": "https://files.pythonhosted.org/packages/d9/4f/a8d9463d0fd7996176f4d2b8b025cd097c47af77824821977ff54fb77d8c/django_netjsonconfig-0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1669e8afd29852e098fb2ade7372bc59", "sha256": "bfcf50af6050a615c03a575e889fe25de2a6f37783a6831c9fa7a4cff84152f8" }, "downloads": -1, "filename": "django-netjsonconfig-0.6.tar.gz", "has_sig": true, "md5_digest": "1669e8afd29852e098fb2ade7372bc59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 408334, "upload_time": "2017-05-24T20:19:43", "url": "https://files.pythonhosted.org/packages/9c/0b/75307e708bc15472bcb5840dab0184e5bc440d96d2709aec3f50ca710fa9/django-netjsonconfig-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "7e73925e50ce37709477ddf790c3115e", "sha256": "6ff48cff58ea7bdb216afbc49473afa4ace52ab74c077eb8429afc7ccfe2a423" }, "downloads": -1, "filename": "django_netjsonconfig-0.6.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7e73925e50ce37709477ddf790c3115e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 423934, "upload_time": "2017-06-01T11:03:43", "url": "https://files.pythonhosted.org/packages/7d/8a/12d68ac976ff7bcf9f7ce1df70864de045e1e9ea36ecc7d0a3af010faf3f/django_netjsonconfig-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7da9af03b7e873292126bac6aa079199", "sha256": "a4b6fd73a6f7de6b96c5ad7f354d4b7eb297caaafb9b7b4831b17e99f215275c" }, "downloads": -1, "filename": "django-netjsonconfig-0.6.1.tar.gz", "has_sig": true, "md5_digest": "7da9af03b7e873292126bac6aa079199", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 408413, "upload_time": "2017-06-01T11:03:39", "url": "https://files.pythonhosted.org/packages/eb/9a/50aa1070b2cdd6866f94de93b694dd6373e34c244f33d67f327da130801f/django-netjsonconfig-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "9edfcee0ccb3039f7b7982fe2d821a23", "sha256": "14d5f1921d69967731785d8ee9165b1a206801604ad246c386d6427be8dff2ed" }, "downloads": -1, "filename": "django_netjsonconfig-0.6.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "9edfcee0ccb3039f7b7982fe2d821a23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 384223, "upload_time": "2017-07-05T10:58:23", "url": "https://files.pythonhosted.org/packages/7a/c9/d1521d2258809e8ee3fbe5af7e97581f29e504e0fbb7646bdc0a9946f990/django_netjsonconfig-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9785a59abdbe8927c93315cdb6a1038c", "sha256": "b4df21e8aec5bbf4f76dc251a8df2276923e3763e8e505b03efa0c6527359eb1" }, "downloads": -1, "filename": "django-netjsonconfig-0.6.2.tar.gz", "has_sig": true, "md5_digest": "9785a59abdbe8927c93315cdb6a1038c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 366465, "upload_time": "2017-07-05T10:58:20", "url": "https://files.pythonhosted.org/packages/da/ab/798558119c4e8498dfa774c381d06d88a3c3b43c4a2e8a0ee1ea7b2f4d28/django-netjsonconfig-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "520374cda4fbafaca6e044af5af43f99", "sha256": "308ae175203e46bd1f5051dc90e897fdc6f3d3d8e18b9e1c7b323bbd43d741fc" }, "downloads": -1, "filename": "django_netjsonconfig-0.6.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "520374cda4fbafaca6e044af5af43f99", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 383432, "upload_time": "2017-07-10T16:01:13", "url": "https://files.pythonhosted.org/packages/6d/11/795b840bb4cc095fa5eea78f83e887af10bbb73b7a7778321a72935bdad3/django_netjsonconfig-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4969fe19aafc0726fe8a2f901dbe7f2c", "sha256": "7d6ef49fb61383385ba382d2f4975670e3ef74cc849e1d52df3bb6fd10d38107" }, "downloads": -1, "filename": "django-netjsonconfig-0.6.3.tar.gz", "has_sig": true, "md5_digest": "4969fe19aafc0726fe8a2f901dbe7f2c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 366398, "upload_time": "2017-07-10T16:01:10", "url": "https://files.pythonhosted.org/packages/36/73/5f021014e2fa6f9bf3058664282ded2adce6de5f44e97e4e71cce5de0154/django-netjsonconfig-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "a5c403a008246500ee431c3607185232", "sha256": "57d86e8ef19e2bf9de0b7160ad9487e47598ac9919fcbf741442eeade5b0942b" }, "downloads": -1, "filename": "django_netjsonconfig-0.6.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a5c403a008246500ee431c3607185232", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 383508, "upload_time": "2017-08-29T12:39:08", "url": "https://files.pythonhosted.org/packages/92/b8/797ce01d61fbd28804b258eb11938365cf9801abf873df81c37feee913d7/django_netjsonconfig-0.6.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "867e232eb6fa59fecdfbfb255ad4c26c", "sha256": "ac74093253b1604493e54d3a9c0faa6cade1a72c558ba600b5079e595e77d2d7" }, "downloads": -1, "filename": "django-netjsonconfig-0.6.4.tar.gz", "has_sig": true, "md5_digest": "867e232eb6fa59fecdfbfb255ad4c26c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 366542, "upload_time": "2017-08-29T12:39:05", "url": "https://files.pythonhosted.org/packages/c4/42/45e14bcfc31f9fa54439b83e0ebbc6d131870e75033bd2af7afefb443cdf/django-netjsonconfig-0.6.4.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "1a089f3cfbd7a662f0353425ca21ec97", "sha256": "1bb8d37daa0536a69bb627895c0187a36cc8d2b106ea62c3afaf80eeea827eab" }, "downloads": -1, "filename": "django_netjsonconfig-0.7-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "1a089f3cfbd7a662f0353425ca21ec97", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 383616, "upload_time": "2017-11-05T11:55:01", "url": "https://files.pythonhosted.org/packages/c6/8d/a9ca3e09068f0fbb7ef08e568a585703e024214bcd56b15820f7d1976aca/django_netjsonconfig-0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d418d7eba1bf68cc33400cdebe24ad3", "sha256": "21e772628e89d4fe5035acfe0fbd289789428ff010297b53586d9e721a424150" }, "downloads": -1, "filename": "django-netjsonconfig-0.7.tar.gz", "has_sig": true, "md5_digest": "2d418d7eba1bf68cc33400cdebe24ad3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 364849, "upload_time": "2017-11-05T11:55:04", "url": "https://files.pythonhosted.org/packages/b8/65/ad5843ad2e2d610ae3022cf65d727f814d462812c11abb8f3171b176b47c/django-netjsonconfig-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "d6739dab8699dae0480a2b43d131a467", "sha256": "475ca5c3fa7a875cd2e03c6db9bb7b9b92d9c5691cf8775ac0865ef699ea4bd2" }, "downloads": -1, "filename": "django_netjsonconfig-0.7.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d6739dab8699dae0480a2b43d131a467", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 383692, "upload_time": "2017-11-07T15:47:46", "url": "https://files.pythonhosted.org/packages/21/85/b26e23b98d2d9cd5c447fb7de44ac9025a2c7608c1d196295298d9469bbb/django_netjsonconfig-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f7561ae0ed5a6b32fadf7b27e108d4a", "sha256": "500e3f0fdbc06d94661b40de9b843c54609cc9131f8777c232dbfdac2f397e47" }, "downloads": -1, "filename": "django-netjsonconfig-0.7.1.tar.gz", "has_sig": true, "md5_digest": "4f7561ae0ed5a6b32fadf7b27e108d4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 366976, "upload_time": "2017-11-07T15:47:43", "url": "https://files.pythonhosted.org/packages/b0/a3/5307a74c11fcef2891ffecf09b4ea06a4662f720282d2193f4acc5f262b2/django-netjsonconfig-0.7.1.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "a010c1c43925dddb721cd435eaacd43a", "sha256": "3b1f25c33a27e627112055b1c74f1a9e24ce0b10d4f7d536530f02f38c20d32c" }, "downloads": -1, "filename": "django_netjsonconfig-0.8-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a010c1c43925dddb721cd435eaacd43a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 384998, "upload_time": "2018-02-19T12:13:55", "url": "https://files.pythonhosted.org/packages/d3/df/bd7cceddd4e54333921237eff521ceb08d0252b14a50b27ad3f7e6e832d4/django_netjsonconfig-0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ba24d4f694fbe9e78e97569793ba537", "sha256": "a2ce8d5d2f3eab1eef6f8cef2981222200474664331b31799997df97bd5c21b5" }, "downloads": -1, "filename": "django-netjsonconfig-0.8.tar.gz", "has_sig": true, "md5_digest": "1ba24d4f694fbe9e78e97569793ba537", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 365922, "upload_time": "2018-02-19T12:13:58", "url": "https://files.pythonhosted.org/packages/d9/7d/08dce6c52df86915eb744ee8467fb69549df0c30ec806b184a33017b929a/django-netjsonconfig-0.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "32c401f5544338aa1ecbc02ac3faefea", "sha256": "0f7177003cdd92ae9c87f14414fd03c091261a211311835bca948afda3c64709" }, "downloads": -1, "filename": "django_netjsonconfig-0.8.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "32c401f5544338aa1ecbc02ac3faefea", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 380363, "upload_time": "2018-07-12T11:31:49", "url": "https://files.pythonhosted.org/packages/cb/7f/ef265ee90ff5f8da8ce8978addec18e68ac568826a4532a96197350d9085/django_netjsonconfig-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9dd9faf546b9beb7e247f321245ed811", "sha256": "7ed4701a0723323be57955fc1351b1d8b6091a0940fed898faa31ffcf8592ce5" }, "downloads": -1, "filename": "django-netjsonconfig-0.8.1.tar.gz", "has_sig": true, "md5_digest": "9dd9faf546b9beb7e247f321245ed811", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 370133, "upload_time": "2018-07-12T11:31:52", "url": "https://files.pythonhosted.org/packages/10/bd/eca8bd5fc742dc04b0785493dc6a88481fdc60f9daa765477e72e7493831/django-netjsonconfig-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "32c401f5544338aa1ecbc02ac3faefea", "sha256": "0f7177003cdd92ae9c87f14414fd03c091261a211311835bca948afda3c64709" }, "downloads": -1, "filename": "django_netjsonconfig-0.8.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "32c401f5544338aa1ecbc02ac3faefea", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 380363, "upload_time": "2018-07-12T11:31:49", "url": "https://files.pythonhosted.org/packages/cb/7f/ef265ee90ff5f8da8ce8978addec18e68ac568826a4532a96197350d9085/django_netjsonconfig-0.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9dd9faf546b9beb7e247f321245ed811", "sha256": "7ed4701a0723323be57955fc1351b1d8b6091a0940fed898faa31ffcf8592ce5" }, "downloads": -1, "filename": "django-netjsonconfig-0.8.1.tar.gz", "has_sig": true, "md5_digest": "9dd9faf546b9beb7e247f321245ed811", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 370133, "upload_time": "2018-07-12T11:31:52", "url": "https://files.pythonhosted.org/packages/10/bd/eca8bd5fc742dc04b0785493dc6a88481fdc60f9daa765477e72e7493831/django-netjsonconfig-0.8.1.tar.gz" } ] }