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.

from django_anonymous import Anonymizer, Faker, register
from .model import YourModel


@register(YourModel)
class YourModelAnonymizer(Anonymizer):
    SELECT_CHUNK_SIZE = 100
    UPDATE_BATCH_SIZE = 25
    
    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.3.1.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_anonymous-0.3.1-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file django-anonymous-0.3.1.tar.gz.

File metadata

  • Download URL: django-anonymous-0.3.1.tar.gz
  • Upload date:
  • Size: 16.9 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.3.1.tar.gz
Algorithm Hash digest
SHA256 1eeae8eda594e2689c6fe8951b5f09476a5c83cfaedf21aa3e07ae0c4d1c4044
MD5 2c297c40594ffca9eeb393d933425b4c
BLAKE2b-256 56c08820277dc422b7e0762a54f9ef3eeb711b5fdb9ee5e90c3adb9a3d132f6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_anonymous-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7d10757e5975b3c8139bfca6828a65d2277272cfa3d5cac90c38d31b3335a3fa
MD5 2dcaad25c429535124d985972551bd45
BLAKE2b-256 57d39e3d40740f1b61115d32792e2ec279d3790b615d960628a3bbdc01975c20

See more details on using hashes here.

Supported by

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