{ "info": { "author": "Simon Charette", "author_email": "charette.s@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.7", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "#############\ndjango-mutant\n#############\n\nDynamic model definition and alteration (evolving schemas).\n\n.. image:: https://travis-ci.org/charettes/django-mutant.svg?branch=master\n :target: https://travis-ci.org/charettes/django-mutant\n\n.. image:: https://coveralls.io/repos/charettes/django-mutant/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/charettes/django-mutant?branch=master\n\n********\nOverview\n********\n\n`Django`_ provides a great ORM and with the power of `migrations`_ one can easily perform schema alteration.\n\nHowever, some projects may require *runtime* schema alteration and that's what `django-mutant`_ provides.\n\nThe main concept was inspired by those projects:\n\n- Will Hardy `dynamic-models`_'s `documentation`_ and `talk`_.\n- And by `django-dynamo`_.\n\n.. _`Django`: https://www.djangoproject.com/\n.. _`migrations`: https://docs.djangoproject.com/en/stable/topics/migrations/\n.. _`django-mutant`: https://github.com/charettes/django-mutant\n.. _`dynamic-models`: https://github.com/willhardy/dynamic-models\n.. _`documentation`: http://dynamic-models.readthedocs.org/en/latest/index.html\n.. _`talk`: http://2011.djangocon.eu/talks/22/#talkvideo\n.. _`django-dynamo`: https://bitbucket.org/schacki/django-dynamo\n\n************\nInstallation\n************\n\n::\n\n pip install django-mutant\n\nMake sure ``'django.contrib.contenttypes'`` and ``'mutant'`` are in\nyour ``INSTALLED_APPS``\n\n::\n\n INSTALLED_APPS += ('django.contrib.contenttypes', 'mutant')\n\n\n**********************************************\nMigrating to django-mutant 0.2 and Django 1.7+\n**********************************************\n\nIf you used ``mutant`` with Django < 1.7 and are willing to migrate forward\nyou'll have to run the following steps in order to make sure you database\nschema is synchronized with Django's migration state.\n\n1. Fake the initial ``mutant`` migration.\n2. For every ``mutant.contrib`` application you installed make sure to fake\n their initial migration and run their following migration. For example,\n if you had the ``mutant.contrib.boolean`` application installed you want to\n run ``manage.py migrate boolean --fake 0001 && manage.py migrate boolean``\n\n\n**********\nResources\n**********\n- `DjangoCon Europe 2013 talk`_ about mutant and other dynamic model alternatives given by Juergen Schackmann.\n- `A getting started guide`_ with mutant guide by @integricho.\n\n.. _DjangoCon Europe 2013 talk: https://www.youtube.com/watch?v=67wcGdk4aCc\n.. _A getting started guide: http://integricho.github.io/2013/07/22/mutant-introduction/\n\n\n***************************\nGet in touch and contribute\n***************************\n\n>From now on I think the best way to contribute and get in touch is using github messaging system (issues and pull requests).", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/charettes/django-mutant", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-mutant", "package_url": "https://pypi.org/project/django-mutant/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-mutant/", "project_urls": { "Homepage": "https://github.com/charettes/django-mutant" }, "release_url": "https://pypi.org/project/django-mutant/0.2.1/", "requires_dist": [ "django (>=1.7)", "django-picklefield (>=0.3.2)", "django-polymodels (>=1.4.1)" ], "requires_python": "", "summary": "Dynamic model definition and alteration (evolving schemas)", "version": "0.2.1" }, "last_serial": 3289277, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "46332b2399f237e42c2ee04cbe1a4526", "sha256": "3a79a5fdad2af37768655add634720ccf5e2a6184a1f8b68110db139a42a5c48" }, "downloads": -1, "filename": "django-mutant-0.0.1.tar.gz", "has_sig": false, "md5_digest": "46332b2399f237e42c2ee04cbe1a4526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28757, "upload_time": "2012-02-29T06:43:52", "url": "https://files.pythonhosted.org/packages/87/9f/26bb6ae3875bb9c594f53d12a435ccc4c0ee155e6cb534cce8e5c9611ac9/django-mutant-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1f4c600b28f83d15430232018480fdfd", "sha256": "8bfadfae6c2315460a1760055fc562482acca238622f83e60fcbfc4cc29d771b" }, "downloads": -1, "filename": "django-mutant-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1f4c600b28f83d15430232018480fdfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35480, "upload_time": "2012-04-11T22:05:58", "url": "https://files.pythonhosted.org/packages/85/e9/4fcb143955f7c7fc1d1da3deab2b99d52d500bc0470f772b46cb9038c653/django-mutant-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a3f5aac5949f8d81466b12ff12036835", "sha256": "a4c41e4501f6ad9a4385a2768e8696448e9a6fe9a00ebd575cebfbbe5dbd3e5c" }, "downloads": -1, "filename": "django-mutant-0.0.3.tar.gz", "has_sig": false, "md5_digest": "a3f5aac5949f8d81466b12ff12036835", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40574, "upload_time": "2013-03-30T04:43:32", "url": "https://files.pythonhosted.org/packages/05/e1/33ea3663306b3d98045cbc425c66558dbb537ad93cafa4083cfc9bc2aafd/django-mutant-0.0.3.tar.gz" } ], "0.0.3.1": [ { "comment_text": "", "digests": { "md5": "68c6748aa35445f784eeb9afc2e87ead", "sha256": "b14719d3ba56a3c19d54c01eeab7fc74ac38699fe9f2b7d99cdc6b881bf1b8a0" }, "downloads": -1, "filename": "django-mutant-0.0.3.1.tar.gz", "has_sig": false, "md5_digest": "68c6748aa35445f784eeb9afc2e87ead", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40909, "upload_time": "2013-04-02T17:32:32", "url": "https://files.pythonhosted.org/packages/da/89/21e42f5ec0b30beb6f9048f72b95f11bfb5d31f1318af0df1f5cb8c4befe/django-mutant-0.0.3.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "ee4fa03422ee5ef5360b41cb2aefca32", "sha256": "650e472133704b29af7c36c69718e1e16ebb5f47f32a4aabaf70efe9ebc83531" }, "downloads": -1, "filename": "django-mutant-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ee4fa03422ee5ef5360b41cb2aefca32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39588, "upload_time": "2013-06-04T20:43:08", "url": "https://files.pythonhosted.org/packages/c8/54/2be667df49e3dbce19e61aebcdc62d666d86adf98ae04393a14cb1100f9d/django-mutant-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "79bf2effc3cb173bc8251339760ef351", "sha256": "6aa2dc083ad9e075cc8f4cbeea71f404adb9186e99fa09ab535497fe1f6ca4e0" }, "downloads": -1, "filename": "django-mutant-0.1.1.tar.gz", "has_sig": false, "md5_digest": "79bf2effc3cb173bc8251339760ef351", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41318, "upload_time": "2013-08-27T20:06:37", "url": "https://files.pythonhosted.org/packages/15/c5/8f3b15ab3e84e9c4c572393112d1c882b51985852a6ea15ec17bf4e900c2/django-mutant-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "795237592476cdf1db568c8983fbd738", "sha256": "67fdff44b129d2a764d2776a7b05494d18d22b89ae683776e49b62e518ad035c" }, "downloads": -1, "filename": "django-mutant-0.1.2.tar.gz", "has_sig": false, "md5_digest": "795237592476cdf1db568c8983fbd738", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47450, "upload_time": "2014-02-08T19:33:53", "url": "https://files.pythonhosted.org/packages/a4/d5/fb6228d10c51cce29561529901efb7014e4184c39540a20a28cb36bea0c5/django-mutant-0.1.2.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "d3288bb3a769053fd455c96bc0b49299", "sha256": "4a49cc1e38939c9e0737413493588fcf838d52bc4034e3685c73bd6671313a2a" }, "downloads": -1, "filename": "django_mutant-0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d3288bb3a769053fd455c96bc0b49299", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62687, "upload_time": "2016-01-03T20:09:51", "url": "https://files.pythonhosted.org/packages/cb/a8/3320b313f9f252e93aa04059a02ee3eb86e0bfbba0817b28985015a2663e/django_mutant-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7dfac8d16b734700915c9492857e99f", "sha256": "19fbc6e774572a88ccb278a8bff87560d67a88c4a92dd90da03cd1060c6c2409" }, "downloads": -1, "filename": "django-mutant-0.2.tar.gz", "has_sig": true, "md5_digest": "c7dfac8d16b734700915c9492857e99f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33980, "upload_time": "2016-01-03T20:09:58", "url": "https://files.pythonhosted.org/packages/52/34/61af0da45f786455aca0d3ada96021368ab8b7900189b7ac71dcd08918cb/django-mutant-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "bf3527ef8a9db6b2fab38f69d49c5705", "sha256": "cc2c9df893f0811e9116e47d5b524846c0caa3dbc03acf770a106ce2d413e847" }, "downloads": -1, "filename": "django_mutant-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "bf3527ef8a9db6b2fab38f69d49c5705", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65763, "upload_time": "2016-01-14T05:00:54", "url": "https://files.pythonhosted.org/packages/f8/15/b958803376429f2833369945636873c708de8ef517f0b7d68f614bdbdd28/django_mutant-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ef2915c4b92f426c5130674f98346cf", "sha256": "c49baac0a80bfd12de90c750fb087e8a4b38cc59661f2abd27fc711009c7d026" }, "downloads": -1, "filename": "django-mutant-0.2.1.tar.gz", "has_sig": true, "md5_digest": "8ef2915c4b92f426c5130674f98346cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35356, "upload_time": "2016-01-14T05:01:02", "url": "https://files.pythonhosted.org/packages/0c/68/b99247876388cf364b6980216792bdd448c52e001c0a814ca67788d85da8/django-mutant-0.2.1.tar.gz" } ], "0.3a1": [ { "comment_text": "", "digests": { "md5": "e0d1d7986fc8ead463d5ea418e5cdf42", "sha256": "a32f2a41d7b2855255eb638d21952d131bca1072a9166da4316a709237a4af7e" }, "downloads": -1, "filename": "django_mutant-0.3a1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "e0d1d7986fc8ead463d5ea418e5cdf42", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64837, "upload_time": "2016-06-03T06:44:22", "url": "https://files.pythonhosted.org/packages/0f/80/96182460fe7fd8019dcbce566d6dfe4437462caebef9b0608ec38e26d08b/django_mutant-0.3a1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f371ea22b850941855c77fca51f96a5b", "sha256": "e28da1583f772f0bc7ad0713a18acac0640f8cc379e1639ef05f0770c8cec698" }, "downloads": -1, "filename": "django-mutant-0.3a1.tar.gz", "has_sig": true, "md5_digest": "f371ea22b850941855c77fca51f96a5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34823, "upload_time": "2016-06-03T06:44:27", "url": "https://files.pythonhosted.org/packages/69/98/a1b623510c090b1d2d0e674883932963d88c36f07ad09d897ced310d70a9/django-mutant-0.3a1.tar.gz" } ], "0.3a2": [ { "comment_text": "", "digests": { "md5": "357ecc10b110ca588256ecac6f366643", "sha256": "de6040bd1d549a0817cd978b4893afe9e970313113389c15db1c2ee28409aaaf" }, "downloads": -1, "filename": "django_mutant-0.3a2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "357ecc10b110ca588256ecac6f366643", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 64926, "upload_time": "2016-06-09T03:50:21", "url": "https://files.pythonhosted.org/packages/d8/d4/b3c2c4b10ed6b7d305e9f7de7d411f47d893e8cdb4c2471c872de262f167/django_mutant-0.3a2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c58c66be6ece3737d680821f6335ec1d", "sha256": "f5cbe836dcd07c13cb3f578b33b10fb5a69b87611f43bbef3aefdfe88eae5c68" }, "downloads": -1, "filename": "django-mutant-0.3a2.tar.gz", "has_sig": true, "md5_digest": "c58c66be6ece3737d680821f6335ec1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34916, "upload_time": "2016-06-09T03:50:26", "url": "https://files.pythonhosted.org/packages/a3/9f/dfb014131fc29bfd2daaea6b24ed976ef915e7d02b6b17d56d01594d8259/django-mutant-0.3a2.tar.gz" } ], "0.3a3": [ { "comment_text": "", "digests": { "md5": "75586ca3f992f29da3fd0ac50c98989f", "sha256": "1d37e0ff61f08afc7163dccb4b78831f059f6cce456b5911b6eb26452d6cd6a9" }, "downloads": -1, "filename": "django_mutant-0.3a3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "75586ca3f992f29da3fd0ac50c98989f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65840, "upload_time": "2016-06-28T13:54:52", "url": "https://files.pythonhosted.org/packages/b9/9d/dcd5db8da337a3f635673e9bd31f2bed53b8bd4ed7eb4f20b8fe75036993/django_mutant-0.3a3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2875e15203204d1b52beff243ec09de", "sha256": "df9268ba1b2082637b10d31cd6be6b43b177c135e3e95c3c799bc83998567a4e" }, "downloads": -1, "filename": "django-mutant-0.3a3.tar.gz", "has_sig": true, "md5_digest": "b2875e15203204d1b52beff243ec09de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35352, "upload_time": "2016-06-28T13:54:58", "url": "https://files.pythonhosted.org/packages/b1/14/e2fef9d05f59bd19c87bc35f7c519731f6e7b66844f23d94196072615048/django-mutant-0.3a3.tar.gz" } ], "0.3a4": [ { "comment_text": "", "digests": { "md5": "fbf44f2e4b94005a10a40737c6bd708f", "sha256": "60f09dcd0974fcb257e7c75a833abc68adef442cd534dd4c9f1aa9f45c53aed6" }, "downloads": -1, "filename": "django_mutant-0.3a4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "fbf44f2e4b94005a10a40737c6bd708f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65801, "upload_time": "2017-01-21T07:32:28", "url": "https://files.pythonhosted.org/packages/bf/d1/5d43a2aed64312c5235518d6c03db525d58483dbe4c7e6d872fc72b0d1f7/django_mutant-0.3a4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "060f1afb081ce6d0f47c98dd9e85ad19", "sha256": "2846b7340a5c6b0b891e8bbe567f4d1372dc6a8e53c233bf2d105099cfc8b4be" }, "downloads": -1, "filename": "django-mutant-0.3a4.tar.gz", "has_sig": true, "md5_digest": "060f1afb081ce6d0f47c98dd9e85ad19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34964, "upload_time": "2017-01-21T07:32:32", "url": "https://files.pythonhosted.org/packages/bf/ec/92d9353627a41b906d5cb868a4e977e00fda9c27a9a5b70ebb4fdc669291/django-mutant-0.3a4.tar.gz" } ], "0.3a5": [ { "comment_text": "", "digests": { "md5": "689383704d62e73a608c81c817bcbfee", "sha256": "f651d78ab5e0d42389fe5a9773fb31efbf708260b73a50905dd415856e87157a" }, "downloads": -1, "filename": "django_mutant-0.3a5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "689383704d62e73a608c81c817bcbfee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65870, "upload_time": "2017-10-29T20:43:58", "url": "https://files.pythonhosted.org/packages/03/f1/0e46884a300bdf887d7c123f41b1b962215a4282343bc081c557ff06f6cf/django_mutant-0.3a5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "668069b695e8a937921e4662ea0591a4", "sha256": "3aa572a119f0ef488da78045240a627ef0e581ce5975ac36f77ceb99d867f2e6" }, "downloads": -1, "filename": "django-mutant-0.3a5.tar.gz", "has_sig": true, "md5_digest": "668069b695e8a937921e4662ea0591a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35031, "upload_time": "2017-10-29T20:44:00", "url": "https://files.pythonhosted.org/packages/11/5c/b2db86f5454b303f7ad3b5d635ffeb42561a864d499469754563fa7df6c1/django-mutant-0.3a5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bf3527ef8a9db6b2fab38f69d49c5705", "sha256": "cc2c9df893f0811e9116e47d5b524846c0caa3dbc03acf770a106ce2d413e847" }, "downloads": -1, "filename": "django_mutant-0.2.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "bf3527ef8a9db6b2fab38f69d49c5705", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 65763, "upload_time": "2016-01-14T05:00:54", "url": "https://files.pythonhosted.org/packages/f8/15/b958803376429f2833369945636873c708de8ef517f0b7d68f614bdbdd28/django_mutant-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ef2915c4b92f426c5130674f98346cf", "sha256": "c49baac0a80bfd12de90c750fb087e8a4b38cc59661f2abd27fc711009c7d026" }, "downloads": -1, "filename": "django-mutant-0.2.1.tar.gz", "has_sig": true, "md5_digest": "8ef2915c4b92f426c5130674f98346cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35356, "upload_time": "2016-01-14T05:01:02", "url": "https://files.pythonhosted.org/packages/0c/68/b99247876388cf364b6980216792bdd448c52e001c0a814ca67788d85da8/django-mutant-0.2.1.tar.gz" } ] }