Skip to main content

A human-readable and secure XML-based alternative to pickle.

Project description

License PyPi File Extension

pklxml

pklxml, short for Python Pickle Extensible Markup Language Library, is a Python module and as a human-readable alternative to Pickle. Instead of saving data as a binary .pkl file, it saves data as an XML-based file called .pklxml. This makes it a lot more safer. The module uses the LXML module to parse .pklxml (XML) files.

The reason why I wanted to make this module is so that we (as humans) can see what has been actually saved. Currently, I have to open .pkl files with Qt Creator to decode the binary and usually, with (no) success.

Example programme

List and dictionary example code

from pklxml import dump, load

data = {'name': 'Alice', 'age': 30}
dump(data, 'data.pklxml')

try:
  data = load('data.pklxml')
  print(data)
except OSError:
  data = {}

Class example code

from pklxml import dump, load

# Define a simple class (normally this would be in a separate module)
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# Register the class somewhere importable if needed
# For now, let's pretend it's in 'example_class' for deserialization
Person.__module__ = "examples.example_class"

# Create an instance
alice = Person("Alice", 30)

# Serialize to XML
pklxml.dump(alice, "examples/output_basic.pklxml")

# Deserialize from XML
try:
    restored = pklxml.load("examples/output_basic.pklxml")
    print(f"Restored: {restored.__class__.__name__}({restored.name}, {restored.age})")
except OSError as e:
    print("Failed to load .pklxml file:", e)

Contribute

Contribute to this repository if you can! Star my repository! Thanks!

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

pklxml-0.2.2.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

pklxml-0.2.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file pklxml-0.2.2.tar.gz.

File metadata

  • Download URL: pklxml-0.2.2.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pklxml-0.2.2.tar.gz
Algorithm Hash digest
SHA256 9fa05082ce2eb78829704f0016f1a4ddf51eda2d1cda28eb6b535acac91a7b4e
MD5 963a73ae7c6086d0c815b6b4e77422c2
BLAKE2b-256 9c5478521312cebe335676ac1e9aa6e9f5ae490c6086834fba7b59c5b2dbf29c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pklxml-0.2.2.tar.gz:

Publisher: python-publish.yml on RAPTOR7762/pklxml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pklxml-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pklxml-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pklxml-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c9c3cf1e8fac49f070474122af47415aec07b2c94f05580adef2ba46eb43c9fb
MD5 fcef175e09b443f4e3cded86b9be0bee
BLAKE2b-256 b3bd05bdeb5391148c22a81b2a298c60109c5e326251393d88f1190229ed8c85

See more details on using hashes here.

Provenance

The following attestation bundles were made for pklxml-0.2.2-py3-none-any.whl:

Publisher: python-publish.yml on RAPTOR7762/pklxml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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