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")

Saving and loading the map


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.3.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.3-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: prompt-horizon-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 7af07a2d627bbe9d372501c342c77c5237fd419f3680b9e5d97244f38d629019
MD5 b3a80eeeae3369e1eed3f2ad6852d6dc
BLAKE2b-256 850678fd831d50a657291d3fda45b9ea1a9bd14adc21b11b48969263607e365f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: prompt_horizon-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c423ca10afe6ffbfa682c5b000704db133b57cc7f3d7e2459def811784516dad
MD5 7bdac2d9e2187972233db08ca54782ab
BLAKE2b-256 46824dd231c47b3b86c6978028f9b372c1e5f0dae93bb4a16143ab8d36fe6d91

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