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.10.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4a5427a2b029078439cea101aa900e82a07b71c67567809bc38b4ac07658b53 |
|
MD5 | d43171b91bd64ae5a2da8f51853c0caf |
|
BLAKE2b-256 | 70502ee2bbae3c0c9c76f5ed3509dc0081a9a447d21229b1beb2d770536300fe |
Close
Hashes for pythonic_archive_kit-1.0.10-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 559ef56a5cb93e98fcd499aad7af78b88dff66f426d376f778fcb9a64c036372 |
|
MD5 | 297fd54fc364e64e77936847fd75455c |
|
BLAKE2b-256 | 50c38265b45e815a467b8940bfa870d9b6bee6ae3b87aca6f0cc44989e0f4e01 |