{ "info": { "author": "UNCOVER TRUTH Inc.", "author_email": "develop@uncovertruth.co.jp", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Web Environment", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "==============\nDjango Horizon\n==============\n\n.. image:: https://travis-ci.org/uncovertruth/django-horizon.svg?branch=master\n :target: https://travis-ci.org/uncovertruth/django-horizon\n\n.. image:: https://api.codacy.com/project/badge/Grade/6f4ba73576904beaa41d68f40970bda9\n :target: https://www.codacy.com/app/develop_2/django-horizon?utm_source=github.com&utm_medium=referral&utm_content=uncovertruth/django-horizon&utm_campaign=Badge_Grade\n\n.. image:: https://codebeat.co/badges/74f07702-68ed-47e7-91e6-9088b0532342\n :target: https://codebeat.co/projects/github-com-uncovertruth-django-horizon-master\n\n.. image:: https://www.codefactor.io/repository/github/uncovertruth/django-horizon/badge\n :target: https://www.codefactor.io/repository/github/uncovertruth/django-horizon\n\n.. image:: https://codecov.io/gh/uncovertruth/django-horizon/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/uncovertruth/django-horizon\n\n.. image:: https://readthedocs.org/projects/django-horizon/badge/?version=latest\n :target: http://django-horizon.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/uncovertruth/django-horizon/shield.svg\n :target: https://pyup.io/repos/github/uncovertruth/django-horizon/\n :alt: Updates\n\n.. image:: https://pyup.io/repos/github/uncovertruth/django-horizon/python-3-shield.svg\n :target: https://pyup.io/repos/github/uncovertruth/django-horizon/\n :alt: Python 3\n\n.. image:: https://img.shields.io/pypi/v/django-horizon.svg\n :target: https://pypi.python.org/pypi/django-horizon\n\n\nPurpose\n-------\n\nSimple database sharding (horizontal partitioning) library for Django applications.\n\n\n* Free software: MIT license\n* Documentation: https://django-horizon.readthedocs.io.\n* Inspired by django-sharding_. Thank you so much for your cool solution :)\n\n.. _django-sharding: https://github.com/JBKahn/django-sharding\n\n\n.. image:: https://raw.githubusercontent.com/uncovertruth/django-horizon/master/docs/_static/logo.jpg\n :alt: Logo\n\n\nFeatures\n--------\n\n* Shard (horizontal partitioning) by some ForeignKey_ field like user account.\n\n.. _ForeignKey: https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey\n\nInstallation\n------------\n\nTo install Django Horizon, run this command in your terminal:\n\n.. code-block:: console\n\n $ pip install django-horizon\n\nThis is the preferred method to install Django Horizon, as it will always install the most recent stable release.\n\nIf you don't have `pip`_ installed, this `Python installation guide`_ can guide\nyou through the process.\n\n.. _pip: https://pip.pypa.io\n.. _Python installation guide: http://docs.python-guide.org/en/latest/starting/installation/\n\nUsage\n-----\n\nSetup\n^^^^^\n\nAdd database router configuration in your ``settings.py``:\n\nHorizontal database groups and a metadata store\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n.. code-block:: python\n\n HORIZONTAL_CONFIG = {\n 'GROUPS': {\n 'group1': { # The name of database horizontal partitioning group\n 'DATABASES': {\n 1: {\n 'write': 'member1-primary',\n 'read': ['member1-replica-1', 'member1-replica-2'], # Pick randomly by router\n },\n 2: {\n 'write': 'member2-primary',\n 'read': ['member2-replica'],\n },\n 3: {\n 'write': 'a3', # Used by 'read' too\n },\n },\n 'PICKABLES': [2, 3], # Group member keys to pick new database\n },\n },\n 'METADATA_MODEL': 'app.HorizontalMetadata', # Metadata store for horizontal partition key and there database\n }\n\nDatabase router\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n.. code-block:: python\n\n DATABASE_ROUTERS = (\n 'horizon.routers.HorizontalRouter',\n ...\n )\n\nExample models\n^^^^^^^^^^^^^^\n\nHorizontal partitioning by user\n\nMetadata store\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n.. code-block:: python\n\n from horizon.models import AbstractHorizontalMetadata\n\n class HorizontalMetadata(AbstractHorizontalMetadata):\n pass\n\nIn the example, metadata store save followings.\n\n- ``group``: Group name for horizontal partitioning.\n- ``key``: Determines the distribution of the table's records among the horizontal partitioning group.\n- ``index``: Choosed database index in horizontal partitioning groups.\n\nSharded model\n\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n.. code-block:: python\n\n from django.conf import settings\n\n from horizon.manager import HorizontalManager # For Django<1.10\n from horizon.models import AbstractHorizontalModel\n\n\n class SomeLargeModel(AbstractHorizontalModel):\n user = models.ForeignKey(\n settings.AUTH_USER_MODEL,\n on_delete=models.DO_NOTHING,\n db_constraint=False, # May be using anothor database\n )\n ...\n\n objects = HorizontalManager() # For Django<1.10\n\n class Meta(object):\n horizontal_group = 'group1' # Group name\n horizontal_key = 'user' # Field name to use group key\n\nIn many cases use UUIDField_ field for ``id``.\nThe ``AbstractHorizontalModel`` uses UUIDField_ as a them id field in default.\n\n.. _UUIDField: https://docs.djangoproject.com/en/dev/ref/models/fields/#uuidfield\n\nUsing a model\n\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n.. code-block:: python\n\n from django.contrib.auth import get_user_model\n\n\n user_model = get_user_model()\n user = user_model.objects.get(pk=1)\n\n # Get by foreign instance\n SomeLargeModel.objects.filter(uses=user)\n\n # Get by foreign id\n SomeLargeModel.objects.filter(uses_id=user.id)\n\nModel limitations\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n* ``django.db.utils.IntegrityError`` occured when not specify horizontal key field to filter\n\n .. code-block:: python\n\n SomeLargeModel.objects.all()\n\n* Cannot lookup by foreign key field, cause there are other (like ``default``) database\n\n .. code-block:: python\n\n list(user.somelargemodel_set.all())\n\n\n=======\nHistory\n=======\n\n1.1.2 (2018-11-15)\n------------------\n\n* Update ``_create_object_from_params`` to new interface\n* Add support for Django 2.1\n* Add support for Python 3.7\n\n1.1.1 (2018-08-03)\n------------------\n\n* Migrate to ``QuerySet`` as a mixin\n\n1.1.0 (2018-03-30)\n------------------\n\n* Drop support for Django 1.9, 1.10\n\n1.0.0 (2018-02-02)\n------------------\n\n* Add support for Django 2.0\n* Drop support for Django 1.8\n\n0.0.1 (2017-05-22)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/uncovertruth/django-horizon", "keywords": "django-horizon,django,sharding,horizontal partitioning,database", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "django-horizon", "package_url": "https://pypi.org/project/django-horizon/", "platform": "", "project_url": "https://pypi.org/project/django-horizon/", "project_urls": { "Homepage": "https://github.com/uncovertruth/django-horizon" }, "release_url": "https://pypi.org/project/django-horizon/1.1.2/", "requires_dist": [ "Django (>=1.11)" ], "requires_python": "", "summary": "Simple database sharding (horizontal partitioning) library for Django applications.", "version": "1.1.2" }, "last_serial": 4489158, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b50cdeea3bee0d05f06bba11a5f46f1e", "sha256": "795f1a713650b423d1d94d720dae69f5eac23a86cd2d93886990cbf6f306c2d3" }, "downloads": -1, "filename": "django_horizon-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b50cdeea3bee0d05f06bba11a5f46f1e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11636, "upload_time": "2017-05-22T11:30:06", "url": "https://files.pythonhosted.org/packages/e6/4f/c3918bcb1c226da0b858d681a8ebd3c5feea5dbdefacf99647b1410174af/django_horizon-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93eb68d3ce2ced2ffe31c9ed4ef21212", "sha256": "05b1bb5efeabecadce3560e172bb847f6ef8d1c06ad7a3830f77a4838eee4fd9" }, "downloads": -1, "filename": "django-horizon-0.0.1.tar.gz", "has_sig": false, "md5_digest": "93eb68d3ce2ced2ffe31c9ed4ef21212", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 239707, "upload_time": "2017-05-22T11:30:09", "url": "https://files.pythonhosted.org/packages/43/09/a4432b2c54112b11f7b68b9716442c450aea339b6f963d7e94c0ed0621d5/django-horizon-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0aaeb94238cc0248677d11d373fc3015", "sha256": "663ccdf9cc78fa5ce79e9a422b94da55389e318ffe99947f6c6463588be22a1c" }, "downloads": -1, "filename": "django_horizon-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0aaeb94238cc0248677d11d373fc3015", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11723, "upload_time": "2017-05-24T13:53:45", "url": "https://files.pythonhosted.org/packages/51/01/d7904a3fe54214e1af9f9225ddf25626a03153a941b46d8450610b0dd759/django_horizon-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c581345fdd1363d1d924cfd6a194660", "sha256": "447ef03b761579c7ff97251d87a52e5338f8dfef4d07bd462c0fdc4fcb276780" }, "downloads": -1, "filename": "django-horizon-0.0.2.tar.gz", "has_sig": false, "md5_digest": "7c581345fdd1363d1d924cfd6a194660", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 239928, "upload_time": "2017-05-24T13:53:47", "url": "https://files.pythonhosted.org/packages/31/a4/d3a4dcb2d395f44508fc60c2b01276dc3c36157cd509356cc29de7355a8c/django-horizon-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "8023d6c2392913d7397a365fc7dcbf8d", "sha256": "7691ac6ce9f87e8942c897d131f7512dd22a2d0b169ebd18aca575de6e1ca005" }, "downloads": -1, "filename": "django_horizon-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8023d6c2392913d7397a365fc7dcbf8d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12020, "upload_time": "2017-05-26T04:19:13", "url": "https://files.pythonhosted.org/packages/52/75/05e7822c44dacc1dadcc28937c3c69edbaff2dc79bd6273a98a609aa61e6/django_horizon-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce8ae8abde1c94ea4e9010f099d2a90f", "sha256": "dc02e58d1c9f7ca6a63f3358c6cedbbc0ffee38716130b65d96ccbd3cb50283c" }, "downloads": -1, "filename": "django-horizon-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ce8ae8abde1c94ea4e9010f099d2a90f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 240206, "upload_time": "2017-05-26T04:19:15", "url": "https://files.pythonhosted.org/packages/90/b9/a201b3a91978798e2f9123cde9ef784d16f4c0109be32bf147648aaa6e07/django-horizon-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "d2bb12ca499440f464563090e3e42d1f", "sha256": "8a7ed4c1554e00ff087954f2e1d0d84544e1e5721efeb5eb6f04cfc3ed026527" }, "downloads": -1, "filename": "django_horizon-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d2bb12ca499440f464563090e3e42d1f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12044, "upload_time": "2017-05-28T13:21:12", "url": "https://files.pythonhosted.org/packages/d7/df/801a37ca14cb7de91f7ec149d70e0da56c642cf416d059a07d0039431882/django_horizon-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3dcdc672adf18d80609f7153b27ebd92", "sha256": "acc1d0b4559913eafa51dcdf18120653011067d5ee8c38a53de2c080789ca292" }, "downloads": -1, "filename": "django-horizon-0.0.4.tar.gz", "has_sig": false, "md5_digest": "3dcdc672adf18d80609f7153b27ebd92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 240227, "upload_time": "2017-05-28T13:21:14", "url": "https://files.pythonhosted.org/packages/ca/96/491999326746a5e410a74ef3b7c27f825a10260c2870f7277677a9b6ee0f/django-horizon-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "99ac2d59231aee74b59f5e8785d4741f", "sha256": "06adca4e22f849f078c0f6a3a9674f1dcf04db00997f74c8bafb84a7000066aa" }, "downloads": -1, "filename": "django_horizon-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "99ac2d59231aee74b59f5e8785d4741f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12199, "upload_time": "2017-06-01T08:37:26", "url": "https://files.pythonhosted.org/packages/f1/d5/41944789b02850f60d12cdf81f5082f87828cfa48d24cdd229ecba403c0a/django_horizon-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b809fbb16cca0d9a42a9bcac6c1deac5", "sha256": "083da56425c7b5668604a763af95ecb257e2d0ac7f99f02a675dd31860f300e3" }, "downloads": -1, "filename": "django-horizon-0.0.5.tar.gz", "has_sig": false, "md5_digest": "b809fbb16cca0d9a42a9bcac6c1deac5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 240333, "upload_time": "2017-06-01T08:37:28", "url": "https://files.pythonhosted.org/packages/2b/2b/8a4209732f6656bfbfc367ada887d416d104cbdd4d6d2b9fdc7f8f400996/django-horizon-0.0.5.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "b3696fa6a8e16637683614bb4bc37718", "sha256": "0b71f74b4d5da6bfff060ecf4e2de794e35b13453e3a0a5dd9a74a9a1a88f815" }, "downloads": -1, "filename": "django_horizon-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b3696fa6a8e16637683614bb4bc37718", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12782, "upload_time": "2017-06-03T11:16:16", "url": "https://files.pythonhosted.org/packages/d2/6f/9ee3a41a8933bd9bda8bb04620ac11c1acd5cd7847482440c93792aee1fa/django_horizon-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "053f90fba301770a858d1ccd1ff0601d", "sha256": "4cc8abc581ae5e49678e11922f5991489af095727f9f4678e1101e9688e90c4d" }, "downloads": -1, "filename": "django-horizon-0.1.0.tar.gz", "has_sig": false, "md5_digest": "053f90fba301770a858d1ccd1ff0601d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 240726, "upload_time": "2017-06-03T11:16:18", "url": "https://files.pythonhosted.org/packages/f7/23/a8b69d3a0021803fd8149957490e515cb18f98d84f589b662acd29b947be/django-horizon-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f05c14e1fd30c2cd2e773d4ec12faf3b", "sha256": "6be652cf2ac634c29d81f969b7d40b929a188440d5a88f15e1e3fdbd8d88e889" }, "downloads": -1, "filename": "django_horizon-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f05c14e1fd30c2cd2e773d4ec12faf3b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12761, "upload_time": "2017-06-03T14:12:13", "url": "https://files.pythonhosted.org/packages/a6/7e/6fe58e9fc3232b89d9915688fbc0cf13749f30e43e351b81fb24ba44e310/django_horizon-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe64793ff1643be6c2005faf9031cf65", "sha256": "be62cfa865734b998c3b646b77c487fddcfbfa9c2346604ff17cda210135b9f9" }, "downloads": -1, "filename": "django-horizon-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fe64793ff1643be6c2005faf9031cf65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 240712, "upload_time": "2017-06-03T14:12:15", "url": "https://files.pythonhosted.org/packages/dd/08/a4f0b51305e66ba03b7e299ab446deaa16fc05a3106bcc57c42a169b4137/django-horizon-0.1.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "f93896de6da82b18202b2a5d1e1e7c8b", "sha256": "a2568a2fdca330500f33887fa4c1e6fa0e0efca56e94a90f902525f928ab49e1" }, "downloads": -1, "filename": "django_horizon-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f93896de6da82b18202b2a5d1e1e7c8b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13210, "upload_time": "2018-02-02T12:39:13", "url": "https://files.pythonhosted.org/packages/df/83/08f2330322aa74b72bcf20ab252657894a862c2c256d4b0b429d8e401022/django_horizon-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7143ab4004fcbf6ba00a3e824001319", "sha256": "86be47c6cf00fbcc336bbc846eca2a29d3102cec189e9a2f172c9534215aab1e" }, "downloads": -1, "filename": "django-horizon-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e7143ab4004fcbf6ba00a3e824001319", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 239471, "upload_time": "2018-02-02T12:39:15", "url": "https://files.pythonhosted.org/packages/2a/61/a405caecd71fd40dc19b3aa5d7c48bdf119dc23fd1c30b2039a525a394fc/django-horizon-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "35c82ac4cf94042d4bf594655b0f6877", "sha256": "8eb12f89216cdebd75cb85f2f7f70ad218d4a8ff6d1e1fad5d5b4ca4e02dc913" }, "downloads": -1, "filename": "django_horizon-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "35c82ac4cf94042d4bf594655b0f6877", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13215, "upload_time": "2018-03-30T10:32:10", "url": "https://files.pythonhosted.org/packages/46/4e/5a267c80767baada0261b94e4e63067970b8728fb4b829168c8ae85c3673/django_horizon-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "787511ea1b2087731648da7e29fcd42f", "sha256": "609d61c3766f3838eab78386c9973694704341ffd2a66a4a0e8ccfc9e3094edb" }, "downloads": -1, "filename": "django-horizon-1.1.0.tar.gz", "has_sig": false, "md5_digest": "787511ea1b2087731648da7e29fcd42f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 239513, "upload_time": "2018-03-30T10:32:11", "url": "https://files.pythonhosted.org/packages/fa/7c/d0a75d17af8ff03e6aea65c90f1d20a0ceb89c0e045ca17cb198e04e4891/django-horizon-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "d7a5d88717b97df9a20e7ab9dcc1be48", "sha256": "cb45ac346e5dbfdba3ff6f1d836f4f73adc47ff400a243cd594de1e6ad1fd862" }, "downloads": -1, "filename": "django_horizon-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d7a5d88717b97df9a20e7ab9dcc1be48", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9634, "upload_time": "2018-08-03T07:26:35", "url": "https://files.pythonhosted.org/packages/40/aa/b2af8fd038eb22d5b9af96c57c63026ccc5b844b7e41337207a481c600da/django_horizon-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46c8c7de2215d3680739173784d31eaa", "sha256": "84bc29e23307fa33701b8b47418b00f6c906149c368872c91de7a7bd6aba8ca3" }, "downloads": -1, "filename": "django-horizon-1.1.1.tar.gz", "has_sig": false, "md5_digest": "46c8c7de2215d3680739173784d31eaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 239436, "upload_time": "2018-08-03T07:26:36", "url": "https://files.pythonhosted.org/packages/d2/7e/86325785de2396fd36c8598ece5db1f2798e9a5a29db4e1f0d8da6f8e8c3/django-horizon-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "a166ac399d8f922f5115018416621ee2", "sha256": "b3a2d266c49a5fd0b8d87c130835c072d1adeb3a7f8c0155ab70ae9a9a254edc" }, "downloads": -1, "filename": "django_horizon-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a166ac399d8f922f5115018416621ee2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10942, "upload_time": "2018-11-15T10:06:42", "url": "https://files.pythonhosted.org/packages/fe/1f/5a1020a856f87374d130c2c81ac3ae7816c2e222df0ce96e2b00999704eb/django_horizon-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56ff245b6ebba7f220a1e888b512d2d3", "sha256": "2f29e9052438764f76e629d88cb7257f36ba40dc62681b42532ecf998fd5bce8" }, "downloads": -1, "filename": "django-horizon-1.1.2.tar.gz", "has_sig": false, "md5_digest": "56ff245b6ebba7f220a1e888b512d2d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 239639, "upload_time": "2018-11-15T10:06:44", "url": "https://files.pythonhosted.org/packages/a7/8a/103c4ac0eb0143fe89cadcf0c117e3116090785f62b150de8de0e09fc752/django-horizon-1.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a166ac399d8f922f5115018416621ee2", "sha256": "b3a2d266c49a5fd0b8d87c130835c072d1adeb3a7f8c0155ab70ae9a9a254edc" }, "downloads": -1, "filename": "django_horizon-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a166ac399d8f922f5115018416621ee2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10942, "upload_time": "2018-11-15T10:06:42", "url": "https://files.pythonhosted.org/packages/fe/1f/5a1020a856f87374d130c2c81ac3ae7816c2e222df0ce96e2b00999704eb/django_horizon-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56ff245b6ebba7f220a1e888b512d2d3", "sha256": "2f29e9052438764f76e629d88cb7257f36ba40dc62681b42532ecf998fd5bce8" }, "downloads": -1, "filename": "django-horizon-1.1.2.tar.gz", "has_sig": false, "md5_digest": "56ff245b6ebba7f220a1e888b512d2d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 239639, "upload_time": "2018-11-15T10:06:44", "url": "https://files.pythonhosted.org/packages/a7/8a/103c4ac0eb0143fe89cadcf0c117e3116090785f62b150de8de0e09fc752/django-horizon-1.1.2.tar.gz" } ] }