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
Built Distribution
Close
Hashes for pythonic_archive_kit-1.0.12.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bdf4fc32424c3fe798240db3f26246e901ae9b7276f6246734522ab2073e4ef |
|
MD5 | 03ad46a49cba2988df01dae478d094fc |
|
BLAKE2b-256 | 3047a5e02324650d9dbe3b71595fbb1ae9ba099a0c47713f2a62cb62e320a6d1 |
Close
Hashes for pythonic_archive_kit-1.0.12-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee403b3a1511be262743e9b020722fa145a271d39835f1833cfcf076a4dd52de |
|
MD5 | 3967b10e2f1d18051a997c0ab4bcea1f |
|
BLAKE2b-256 | 66147c03b87cec69ec572a5a46d3486895ebee99239a25a4cb61bdbb49c32927 |