{ "info": { "author": "David Stensland", "author_email": "anonymizer@terite.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Topic :: Database", "Topic :: Software Development :: Testing" ], "description": "===================\n Django Anonymizer\n===================\n\nDownloads: http://pypi.python.org/pypi/django-anonymizer\n\nIntro\n=====\n\nThis app helps you anonymize data in a database used for development of a Django\nproject.\n\nIt is common practice in develpment to use a database that is very similar in\ncontent to the real data. The problem is that this can lead to having copies of\nsensitive customer data on development machines. This Django app helps by\nproviding an easy and customizable way to anonymize data in your models.\n\nThe basic method is to go through all the models that you specify, and generate\nfake data for all the fields specified. Introspection of the models will produce\nan anonymizer that will attempt to provide sensible fake data for each field,\nleaving you to tweak for your needs.\n\nPlease note that the methods provided may not be able to give full\nanonymity. Even if you anonymize the names and other details of your customers,\nthere may well be enough data to identify them. Relationships between records in\nthe database are not altered, in order to preserve the characteristic structure\nof data in your application, but this may leave you open to information leaks\nwhich might not be acceptable for your data. This application **should** be good\nenough for simpler policies like 'remove all real telephone numbers from the\ndatabase'.\n\nAn alternative approach to the problem of realistic amounts of test data for\ndevelopment/tests is to populate a database from scratch - see `django-poseur\n`_, `django-mockups\n`_, `django-eadred\n`_ and `django-autofixture\n`_. The disavantage of\nthat method is that the structure of the data - in terms of related models - can\nbe unrealistic.\n\nUsage\n=====\n\nQuick overview (see docs for more information, either in docs/ or on\n).\n\n* Install using setup.py or pip/easy_install.\n\n* Add 'anonymizer' to your ``INSTALLED_APPS`` setting.\n\n* Create some stub files for your anonymizers::\n\n ./manage.py create_anonymizers app_name1 [app_name2...]\n\n This will create a file ``anonymizers.py`` in each of the apps you specify.\n (It will not overwrite existing files).\n\n* Edit the generated ``anonymizers.py`` files, adjusting or deleting as\n necessary, using the functions in module ``anonymizer.replacers`` or\n custom functions.\n\n* Run the anonymizers::\n\n ./manage.py anonymize_data app_name1 [app_name2...]\n\n This will DESTRUCTIVELY UPDATE all your data. Make sure you only do this on a\n copy of your database, use at own risk, yada yada.\n\n* Note: your database may not actually delete the changed data from the disk\n when you update fields. For Postgresql you will need to VACUUM FULL to\n delete that data.\n\n And even then, your operating system may not delete the data from the\n disk. Properly getting rid of these traces is left as an excercise to the\n reader :-)\n\n\nTests\n=====\n\nTo run the test suite, do the following inside the folder containing this\nREADME::\n\n ./manage.py test anonymizers\n\nor::\n\n ./manage.py test anonymizers.tests\n\n\nVersion 0.5.1\n-------------\n\n* Added unicode compatibility for anonymizer.py files\n* Now with universal wheels\n* Added a new maintainer\n\nVersion 0.5\n-----------\n* Python 3 compatibility\n\nVersion 0.4\n-----------\n\n* Changed 'Anonymizer.attributes' to require every field to be listed. This is\n deal with the common security problem when a model is updated, but the\n Anonymizer is not updated.\n\n Fields that should not be anonymized should specify the special value \"SKIP\"\n as the 'replacer'.\n\n* attributes must now be a list of tuples, not a dictionary.\n\nVersion 0.3\n-----------\n\n* Support for ``DecimalField``.\n* Improved docs.\n* Added tests\n\nVersion 0.2\n-----------\n\n* Changed format of attributes from a dictionary to a list of 2-tuples\n (with backwards compatibility - previous format is deprecated).\n* Fixed small bug with names/usernames/emails sometimes not being generated in\n corresponding sets, due to fields with unique=True not being (reliably) set\n before other fields.\n* Added docs.\n\nVersion 0.1.2\n-------------\n\n* Changed 'varchar' field to do max_length introspection at runtime.\n This breaks the previous signature of the function.\n* Introduced 'replacers' module and new shortcuts.\n\nVersion 0.1.1\n-------------\n\n* Removed some debug code\n* Better handling of SlugField and skipped fields in introspection\n\nVersion 0.1\n-----------\n\nInitial release", "description_content_type": null, "docs_url": "https://pythonhosted.org/django-anonymizer/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/BetterWorks/django-anonymizer", "keywords": "django data database anonymize private", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-anonymizer", "package_url": "https://pypi.org/project/django-anonymizer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-anonymizer/", "project_urls": { "Homepage": "https://github.com/BetterWorks/django-anonymizer" }, "release_url": "https://pypi.org/project/django-anonymizer/0.5.1/", "requires_dist": [ "faker (>=0.0.4)", "Django (>=1.4)", "six (>=1.10.0)" ], "requires_python": "", "summary": "App to anonymize data in Django models.", "version": "0.5.1" }, "last_serial": 2124678, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "be61781f5076bec7b53e1c1734b67ffe", "sha256": "cb9b0291f5a96b2ef076978c2bc36d7eeb110675927e028d945e1cdbec1864f3" }, "downloads": -1, "filename": "django-anonymizer-0.1.tar.gz", "has_sig": false, "md5_digest": "be61781f5076bec7b53e1c1734b67ffe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7619, "upload_time": "2010-12-24T03:53:25", "url": "https://files.pythonhosted.org/packages/70/80/72de73e673b8b4570e6fa91fb66481c607538d0608ee970d7c567a63b4d4/django-anonymizer-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6eadeb6628b11ce6aaf1d2a63e736462", "sha256": "058ba8e5ef6361be61cfffb0dffa9441127ae9601cfd15bba39069129efc5fd2" }, "downloads": -1, "filename": "django-anonymizer-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6eadeb6628b11ce6aaf1d2a63e736462", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7647, "upload_time": "2010-12-24T04:11:05", "url": "https://files.pythonhosted.org/packages/2f/e3/0f0245cc80b5ba418b485fe1a23e3ffa15b33d660a53077eb70750fa3c3e/django-anonymizer-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1dbe61ec5fc1e907a8bf049d35d1c247", "sha256": "eba81cf241b6701b056e518a648261ea5ba8f36cf43ecdb4d4ec08712a8b97e5" }, "downloads": -1, "filename": "django-anonymizer-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1dbe61ec5fc1e907a8bf049d35d1c247", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8388, "upload_time": "2010-12-24T12:57:05", "url": "https://files.pythonhosted.org/packages/ea/53/789fed9ec7e3ebdc42056e7e14109f03b1d10b4553cc28198baeb73083f3/django-anonymizer-0.1.2.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "3826f4f53b80e87322a385237cf2b6a4", "sha256": "f53cddf0ad2f82b4fde66002eb34eb56b63aa92cc313fbe700c52557ec4b0ebb" }, "downloads": -1, "filename": "django-anonymizer-0.2.tar.gz", "has_sig": false, "md5_digest": "3826f4f53b80e87322a385237cf2b6a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17861, "upload_time": "2010-12-28T01:47:45", "url": "https://files.pythonhosted.org/packages/08/0f/800f8c5ace9f95dcb730b2448f86f5e31e3099802eb01336fccff57537fe/django-anonymizer-0.2.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "dc9f6f1605d7d75844368de51c14081f", "sha256": "3dea38def65747c3a0b590e099352ecd92237c7acee99079b49a8727b360e964" }, "downloads": -1, "filename": "django-anonymizer-0.4.tar.gz", "has_sig": false, "md5_digest": "dc9f6f1605d7d75844368de51c14081f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20770, "upload_time": "2012-09-19T23:09:23", "url": "https://files.pythonhosted.org/packages/34/d4/fc0286cffe3a75eadc961a2a2abd2a63502dc536a11cff06de4b6b43a731/django-anonymizer-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "c009b71c634be4198930f47875584479", "sha256": "229d1adccc672577a63f475f6ba1d4729089f6eb47a2861be3e1718ad9018dac" }, "downloads": -1, "filename": "django-anonymizer-0.5.tar.gz", "has_sig": false, "md5_digest": "c009b71c634be4198930f47875584479", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23095, "upload_time": "2014-03-22T19:03:03", "url": "https://files.pythonhosted.org/packages/b4/76/55b3386c0a44fc9a3bbe8291347c482ef5f712205f8b7371c52001a4923d/django-anonymizer-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "a2494e2fe06e1a68a83bac5f3808bff3", "sha256": "e21b50fac2607853152c5fd3216fe3725bde96badb5567319574a01567e3397e" }, "downloads": -1, "filename": "django_anonymizer-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a2494e2fe06e1a68a83bac5f3808bff3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16779, "upload_time": "2016-05-20T04:34:18", "url": "https://files.pythonhosted.org/packages/05/6e/da16d0984a28ad9c3ea258cc33ccf8131485ec7c3f3e08a90ff8e47285ef/django_anonymizer-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "714349000e2415f9ff5e1cef028b01bd", "sha256": "ad3e1265e6393055e9ed8c841380528d452a648bbd4ab7167d1d359accb6561b" }, "downloads": -1, "filename": "django-anonymizer-0.5.1.tar.gz", "has_sig": false, "md5_digest": "714349000e2415f9ff5e1cef028b01bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21841, "upload_time": "2016-05-20T04:34:23", "url": "https://files.pythonhosted.org/packages/61/bf/27115fcd3c8de07b8dcd78c1cf83a826ccc784bb1fd9346a4f1bbd1d1647/django-anonymizer-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a2494e2fe06e1a68a83bac5f3808bff3", "sha256": "e21b50fac2607853152c5fd3216fe3725bde96badb5567319574a01567e3397e" }, "downloads": -1, "filename": "django_anonymizer-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a2494e2fe06e1a68a83bac5f3808bff3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16779, "upload_time": "2016-05-20T04:34:18", "url": "https://files.pythonhosted.org/packages/05/6e/da16d0984a28ad9c3ea258cc33ccf8131485ec7c3f3e08a90ff8e47285ef/django_anonymizer-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "714349000e2415f9ff5e1cef028b01bd", "sha256": "ad3e1265e6393055e9ed8c841380528d452a648bbd4ab7167d1d359accb6561b" }, "downloads": -1, "filename": "django-anonymizer-0.5.1.tar.gz", "has_sig": false, "md5_digest": "714349000e2415f9ff5e1cef028b01bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21841, "upload_time": "2016-05-20T04:34:23", "url": "https://files.pythonhosted.org/packages/61/bf/27115fcd3c8de07b8dcd78c1cf83a826ccc784bb1fd9346a4f1bbd1d1647/django-anonymizer-0.5.1.tar.gz" } ] }