Skip to main content

Simple Djanngo module to anonymize production data for safe usage on none production environments

Project description

django-anonymous

CI codecov License: GPL v3 PyPI version

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

django-anonymous-0.4.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

django_anonymous-0.4.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

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

Hashes for django-anonymous-0.4.0.tar.gz
Algorithm Hash digest
SHA256 bc652560497be7f429ba1930b8a4afd1f4686c7f0d0d96b56e8f4d186ea48bdb
MD5 c421f76b0a242fee8362e585263a33f2
BLAKE2b-256 77d38b3ebd295cdd40464cd13749acfa96de6b1776da63c95491e3fd0490f542

See more details on using hashes here.

File details

Details for the file django_anonymous-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_anonymous-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a3b330d8a0e5b5b483b67b1758283f6119276c9689657c92e20a28810c80c65
MD5 4f27574604ba0fcecd27f2ee58eedae2
BLAKE2b-256 7f4551253872cfe0823861cc7cbbdbe159374c9ca566f4f7cd898dbbe5d95e27

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page