Simple Djanngo module to anonymize production data for safe usage on none production environments
Project description
django-anonymous
Simple Django module to anonymize production data for safe usage on non-production environments.
Installation
pip install django-anonymous
Usage
In your app create a file anon.py:
from django_anonymous import Anonymizer, Faker, register
from .model import YourModel
@register(YourModel)
class YourModelAnonymizer(Anonymizer):
# You can give any callable, Faker is a small wrapper around the `faker` library.
email = Faker("email", unique=True)
# You can also use any static value
first_name = "Anon"
Run the anonymizer
python manage.py anonymize
Custom QuerySet
You can set a custom QuerySet to filter out some objects
from django_anonymous import Anonymizer, Faker, register
from .model import YourModel
@register(YourModel)
class YourModelAnonymizer(Anonymizer):
email = Faker("email", unique=True)
def get_queryset(self):
return super().get_queryset().filter(is_staff=True)
Faker seed
Default it will use the object id as seed, to generate the same data for every run.
You can disable this by overriding the get_object_seed and return falsy value.
from django_anonymous import Anonymizer, Faker, register
from .model import YourModel
@register(YourModel)
class YourModelAnonymizer(Anonymizer):
email = Faker("email", unique=True)
def get_object_seed(self, obj):
return None
Settings for Anonymizer
Per Anonymizer you can set the select chunk size and update batch size. Default it will not anonymize a field that has no value.
from django_anonymous import Anonymizer, Faker, register
from .model import YourModel
@register(YourModel)
class YourModelAnonymizer(Anonymizer):
SELECT_CHUNK_SIZE = 100
UPDATE_BATCH_SIZE = 25
ANONYMIZE_EMPTY_FIELD = False
email = Faker("email", unique=True)
Inspired by
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django-anonymous-0.4.0.tar.gz.
File metadata
- Download URL: django-anonymous-0.4.0.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc652560497be7f429ba1930b8a4afd1f4686c7f0d0d96b56e8f4d186ea48bdb
|
|
| MD5 |
c421f76b0a242fee8362e585263a33f2
|
|
| BLAKE2b-256 |
77d38b3ebd295cdd40464cd13749acfa96de6b1776da63c95491e3fd0490f542
|
File details
Details for the file django_anonymous-0.4.0-py3-none-any.whl.
File metadata
- Download URL: django_anonymous-0.4.0-py3-none-any.whl
- Upload date:
- Size: 18.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3b330d8a0e5b5b483b67b1758283f6119276c9689657c92e20a28810c80c65
|
|
| MD5 |
4f27574604ba0fcecd27f2ee58eedae2
|
|
| BLAKE2b-256 |
7f4551253872cfe0823861cc7cbbdbe159374c9ca566f4f7cd898dbbe5d95e27
|