The Pythonic Archive Kit
Project description
PAK: Picklable and Encrypted Recursive Namespace
PAK is a simple, recursive namespace that can be pickled and encrypted.
Installation
pip install pythonic_archive_kit
if you wish to use the full implementation, you can run:
pip install pythonic_archive_kit[encryption]
Updating
pip install --upgrade pythonic_archive_kit
Requirements
Optionally the cryptography
package can be installed to use the full implementation.
pip install cryptography
Usage
The PAK
class provides a way to create a recursive namespace that can be pickled and encrypted.
Classes
PAK
class PAK(SimpleNamespace):
"""This is the core of the PAK system. It is a recursive namespace that can be pickled and encrypted."""
# ...
Methods
save(data, path, password=None)
def save(data, path, password=None):
"""Save a PAK file to disk."""
# ...
load(path, password=None, create=True)
def load(path, password=None, create=True):
"""Load a PAK file from disk. If create is True, a new PAK file will be created if one does not exist."""
# ...
open_pak(path, password=None, create=True)
@contextlib.contextmanager
def open_pak(path, password=None, create=True):
"""Open a PAK file from disk. If create is True, a new PAK file will be created if one does not exist. Saves the PAK file on exit."""
# ...
Examples
Importing
from pythonic_archive_kit import save_pak, load_pak, open_pak
This will import the standard interface. If cryptography
is installed, this will use the main PAK implementation.
If cryptography
is not installed, this will use the fallback MiniPAK implementation.
### RPG Save Data
Here's an example of using PAK to save and load player data for an RPG game:
```py
# Save player data
with open_pak("player_data.pak") as player_data:
player_data.stats.level = 10
player_data.inventory.gold = 500
player_data.inventory.items = ["sword", "shield"]
# Load player data
with open_pak("player_data.pak") as player_data:
print(player_data.stats.level) # Output: 10
Project Management
PAK can also be used for managing project data:
# Save project data
with open_pak("project_data.pak") as project:
project.name = "My Awesome Project"
project.tasks = ["design", "implementation", "testing"]
# Load project data
with open_pak("project_data.pak") as project:
print(project.name) # Output: My Awesome Project
Personal Notes
Even for personal note-taking, PAK can be useful:
# Save personal notes
with open_pak("personal_notes.pak") as notes:
notes.journal.day1 = "Visited the park"
notes.reminders = ["Buy groceries", "Call mom"]
# Load personal notes
with open_pak("personal_notes.pak") as notes:
print(notes.journal.day1) # Output: Visited the park
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pythonic_archive_kit-1.0.9.tar.gz
(15.4 kB
view hashes)
Built Distribution
Close
Hashes for pythonic_archive_kit-1.0.9.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4cec045ddd8c1887aa78917f85adafdf2a69a1d15c7586d699510bcc2173be2f |
|
MD5 | ce6bdf6356bc6730c282eefa8f395873 |
|
BLAKE2b-256 | 11bf34f5169954b58d3742db748cb5243758794643765b174da1aacf28111d14 |
Close
Hashes for pythonic_archive_kit-1.0.9-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b95dd9b5cd668a76c840fa1dd76183bf6e425e613cc2e0b9dc21851d5b9afe27 |
|
MD5 | c9f4daedf84c9c1d28d2fda68d6887bf |
|
BLAKE2b-256 | 9b7e86e34b7d1121aafb3de6d1e4c005de929defe03f9213871223d2473e6397 |