Skip to main content

Scrub

A Python library for cleaning sensitive data for production and normalizing data for testing.

>>> from scrub import scrub_headers
>>> sensitive_headers = {
        "x-api-key": "--key--",
        "x-date": "--filtered--",
        "Set-Cookie": "--filtered--",
    }
>>> scrubber = scrub_headers(sensitive_headers)
>>> scrubber({
        "x-api-key": "3faf",
        "x-date": "Oct 18 2001",
        "Set-Cookie": "secret=3faf00",
        "Accept": "application/json",
    })
{
    'Accept': 'application/json',
    'Set-Cookie': '--filtered--',
    'x-api-key': '--key--',
    'x-date': '--filtered--'
}
>>>

Quick Start

Install using pip/pipenv/etc. (we recommend poetry for sane dependency management):

$ poetry add --dev scrub

Import a scrubber that you need:

from scrub import scrub_headers scrub_body, scrub_request

Available Scrubbers

scrub_headers

Scrubs HTTP headers, or more generally a plain python dict. Initialize with a key replacements dict:

{
    "x-api-key": "--key--",
    "x-date": "--filtered--",
    "Set-Cookie": "--filtered--",
}

scrub_body

Scrubs HTTP body, or more generally any piece of text. Initialize with content matching replacement dict:

{
    "<Secret>.*</Secret>": "<Secret>{}</Secret>".format(
        base64.b64encode(b"--filtered--").decode()
    ),
    "{.*}": "{}",
}

scrub_request

Scrubs a requests request. Give it headers and body scrubbers, or identity function if you don't want to replace anything there.

from scrub import scrub_request
scrubber = scrub_request(headerscrubber, lambda x: x)

scrubber(req)

Thanks:

To all Contributors - you make this happen, thanks!

Copyright

Copyright (c) 2018 @jondot. See LICENSE for further details.

Metadata

Release files for scrub 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scrub 0.1.2
File Size Uploaded
scrub-0.1.2.tar.gz 2.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for scrub 0.1.2
File Interpreter ABI Platform
scrub-0.1.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 5.7 kB

Release files / scrub-0.1.2.tar.gz

Download URL scrub-0.1.2.tar.gz
Size 2.6 kB
Tags Source
SHA-256 checksum
How to use checksums
22ea8b5400b3db78da78c3c3323c44d68373786322dfb2b12608b2652f993657
BLAKE2b-256 checksum
How to use checksums
114bb8b531376040f4ebe9b301cb833ab5d7b1781510ff2bc3556941fe057c64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.5 CPython/3.7.0 Darwin/17.5.0

Release files / scrub-0.1.2-py2.py3-none-any.whl

Download URL scrub-0.1.2-py2.py3-none-any.whl
Size 3.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
c7ba8e0bd8c331da7eae4d36446f4eceafaae998f4bc3dc59ece86e9a7e26945
BLAKE2b-256 checksum
How to use checksums
d9940f14f878435766786bc5c987cfe804c9b748c1b1a059963141c4272b029a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.5 CPython/3.7.0 Darwin/17.5.0

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page