Skip to main content

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.
  • compressed: pour activer la compression du store
  • cached: pour activer le cache pour les appels aux clés

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)

Possibilité de travailler avec des données hiérarchiques en séparant les clés par un point.

vault.push("config.app.data", "data_line")  #Ce qui donnera {"config": {"app": {"data": "data_line"}}}

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.

Liste des clés

Il est possible de lister l'ensemble des clés disponibles dans un store.

import zpp_store

with zpp_store.Store() as vault:
	print(vault.list()) # Affiche: ['app', 'app.config', 'app.users']

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)

Release files for zpp_store 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zpp_store 0.6.0
File Size Uploaded
zpp_store-0.6.0.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zpp_store 0.6.0
File Interpreter ABI Platform
zpp_store-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / zpp_store-0.6.0.tar.gz

Download URL zpp_store-0.6.0.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1945c7fba2de683f0677e9fc2a8869dcbcb4de0c2b12b465e08a79f489d98436
BLAKE2b-256 checksum
How to use checksums
f78f4b84c590428ead5abd21f21710f6260b8c20241fa95c15f6a0a59e8a51b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via nexus/0.5.0 CPython/3.13.11 Windows/11

Release files / zpp_store-0.6.0-py3-none-any.whl

Download URL zpp_store-0.6.0-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60809b41ddb3839c81dfce2f87ed3d8f9eca823041810a36b88c0ea2f98a3622
BLAKE2b-256 checksum
How to use checksums
72c0c36e07984ca8a7185f1fe0d90a1a4f21e984ae746b9f823be1f6694b8112
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via nexus/0.5.0 CPython/3.13.11 Windows/11

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page