Skip to main content

Library to anonymize JSON objects by creating placeholders for keys and values, while generating a reversible mapping to restore afterwards

Project description

Prompt-Horizon

Prompt-Horizon is a Python library that enables developers to anonymize JSON objects by creating placeholders for keys and values, while generating a reversible mapping to restore the original JSON data. The purpose of this library is to facilitate data sharing while preserving privacy and allowing for the de-anonymization of the data when required.

Note: I had the idea for this library when I was trying to find a way to obfuscate data objects such as JSON to include them as contextual information in prompts (hence the name).

Prompt-Horizon is not designed to specifically identify and anonymize PII (personally identifiable information) or other sensitive data within the JSON objects.


Installation

pip install prompt-horizon

Usage

Anonymize JSON


from prompt_horizon import anonymize

input_json = {
    "name": "John",
    "age": 30,
    "city": "New York",
    "favorites": ["pizza", "basketball"]
}

#This line will return the anonymized JSON object and the mapping object.
anonymized_json, map_object = anonymize(input_json)

Original JSON:

{
    "name": "John",
    "age": 30,
    "city": "New York",
    "favorites": ["pizza", "basketball"]
}

Anonymized JSON:

{
    "a1": "a2",
    "a3": "a4",
    "a5": "a6",
    "a7": ["a8", "a9"]
}

input and output file handling is supported

from prompt_horizon import anonymize

#This line will read the JSON data from "input.json", anonymize it, and save the anonymized JSON to "anonymized.json".
anonymized_json, map_object = anonymize("input.json", output_file_path="anonymized.json")

anonymize only the values

from prompt_horizon import anonymize

#This line will read the JSON data from "input.json" and anonymize only the values.
anonymized_json, map_object = anonymize("input.json", anonymize_keys=False)

De-anonymize JSON


from prompt_horizon import de_anonymize

#This line will return the de-anonymized JSON object, which should be the same as the original input JSON.
deanonymized_json = de_anonymize(anonymized_json, map_object=map_object)

input and output files are supported

from prompt_horizon import de_anonymize

#This will read the anonymized JSON data from "anonymized.json", the mapping object from "map_file.json", de-anonymize the JSON data, and save the de-anonymized JSON to "deanonymized.json".
deanonymized_json = de_anonymize("anonymized.json", map_file_path="map_file.json", output_file_path="deanonymized.json")

License

This project is licensed under the MIT License.

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

prompt-horizon-0.1.4.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

prompt_horizon-0.1.4-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file prompt-horizon-0.1.4.tar.gz.

File metadata

  • Download URL: prompt-horizon-0.1.4.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for prompt-horizon-0.1.4.tar.gz
Algorithm Hash digest
SHA256 2dd70a01e4aedcd7b68d117ccdea3218566320f2f57093ab10952cd149c0e300
MD5 1ac633e790be6c105a5efbabd1f5dd1f
BLAKE2b-256 497742d1be812fb6756e3fa9f517b4ec9fb8e0741e15773b0edf7361538f7915

See more details on using hashes here.

File details

Details for the file prompt_horizon-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: prompt_horizon-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for prompt_horizon-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 859cf37a3ded5f1e5777c40431419600065548c0a0b2ac3febf61c8846e0b1f6
MD5 4dece2a63720cc6fd5eddd25b14983bf
BLAKE2b-256 530e7f5d7fd07a0e25e537fe14ed207220018520c9dc79758f07338fce3607f2

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