Système de sérialisation de données
Project description
zpp_store
Informations
Outil de sérialisation d'objet Python. Il peut prendre en charge:
- les formats classiques: str, int, float, bool, type, none, complex, bytes, decimal
- les formats structurés: list, dict, tuple, array, bytearray, frozenset
- les formats io: BytesIO, StringIO, TextIOWrapper, BufferedReader
- les objets: Class, datetime, function, builtin function
Le fichier de sortie peut-être soit un yaml, soit un fichier binaire; et celui-ci peut être chiffré avec un mot de passe. Le système fonctionne comme un coffre dans lequel on peut stocker plusieurs données et utilise le système clé/valeur pour identifier les données.
Il intègre également un outil pour stocker des données sous forme de Class pour les structurer et faciliter leurs manipulations.
Prérequis
- Python 3
Installation
pip install zpp_store
Utilisation
Initialisation du connecteur
Le store est accessible de deux façons:
- En initialisant le store dans une variable
import zpp_store
vault = zpp_store.Store()
- Ou avec la méthode with
import zpp_store
with zpp_store.Store() as vault:
'''Traitement'''
La Classe Store peut prendre plusieurs arguments:
- filename: pour spécifier le fichier de sortie Si le fichier de sortie n'est pas précisé, le résultat restera dans le stockage de la classe. Il sera alors possible de récupérer le résultat avec la méthode get_content()
- protected: pour spécifier si le fichier doit être chiffré (si le mot de passe n'est pas spécifié. Un prompt demandera le mot de passe)
- password: pour spécifier le mot de passe pour le chiffrement (active protected)
- format: pour spécifier le format de sortie. zpp_store.Formatstore.to_yaml, zpp_store.Formatstore.to_binary ou zpp_store.Formatstore.to_dict. Attention, le format to_dict n'accepte pas la sortie dans un fichier.
Sérialisation de données
Pour sérialiser des données, il suffit d'appeler la classe Store et d'utiliser la méthode push avec comme paramètre le nom de la clé à utiliser et la donnée à sérialiser.
import zpp_store
class Person:
def __init__(self, name, age, city):
self.name = name
self.age = age
self.city = city
new_person = Person("Bob", 35, "Paris")
with zpp_store.Store() as vault:
vault.push("utilisateur_bob", new_person)
Désérialisation de données
Pour désérialiser des données, il suffit d'appeler la classe Store et d'utiliser la méthode pull avec comme paramètre le nom de la clé à récupérer.
import zpp_store
class Person:
def __init__(self, name, age, city):
self.name = name
self.age = age
self.city = city
with zpp_store.Store() as vault:
new_person = vault.pull("utilisateur_bob")
Suppression de données
Il est possible de supprimer des données avec la méthode erase() en précisant en paramètre la clé.
import zpp_store
with zpp_store.Store() as vault:
vault.erase("utilisateur_bob")
La méthode retournera alors True si une donnée a été supprimée, sinon False.
Structuration de données
Il est possible de structurer un dictionnaire pour le transformer en DataStore et pour nous permettre de manipuler ces données comme une Class avec a.b.c Pour cela, il nous suffit d'appeler la méthode structure() avec comme argument le dictionnaire
import zpp_store
dict_data = {"Bonjour": "Hello world", "Data": {"insert": True, "false": True}}
data = zpp_store.structure(dict_data)
Le dictionnaire devient alors un zpp_store.structure.DataStore
Pour permettre de contrôler la modification, le DataStore permet de récupérer un hash du contenu avec la méthode get_hash()
import zpp_store
dict_data = {"Bonjour": "Hello world", "Data": {"insert": True, "false": True}}
data = zpp_store.structure(dict_data)
hash_dict = data.get_hash()
Déstructuration de données
Pour récupérer un dictionnaire à partir d'un DataStore, il suffit d'appeler la méthode destructure().
import zpp_store
data = zpp_store.destructure(datastore)
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
File details
Details for the file zpp_store-0.1.2.tar.gz
.
File metadata
- Download URL: zpp_store-0.1.2.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: nexus/0.5.0 CPython/3.10.6 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94c3083fae504b36a670612bf527e9b9f738bda83a7b7074900dad3e2880c3a9 |
|
MD5 | a9b990d48b3947960445894c77535324 |
|
BLAKE2b-256 | 141eabe12fbc3c00bd61845dd8b5b6f79ba9bcd6842739d6522a212a6c881e58 |
File details
Details for the file zpp_store-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: zpp_store-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: nexus/0.5.0 CPython/3.10.6 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3087ae9aa7d452d2361027b014633c9dbe157b9be5dece5cf48681526b6a394e |
|
MD5 | af333f8a96d09cf7e2bac20dd03833a9 |
|
BLAKE2b-256 | 2251b1f7b9f48f6c7e54053c3e2f6d0a192a8ebfb679aa04878198a841a58eba |