DuniterPy, évolution de la bibliothèque python

duniterpy
python

#1

La version 0.50.0 est en phase de finalisation.

Elle brise la compatibilité avec les versions précédentes, mais pour le meilleur (simplicité des requêtes).

Je voulais juste signaler la dernière fonctionnalité ajoutée :

  • Signer un message avec ses identifiants Duniter.
  • Vérifier la signature d’un message avec une clef publique Duniter.
  • Chiffrer un message avec une clef publique Duniter.
  • Déchiffrer un message avec ses identifiants Duniter.

#2

Cool, c’est de belles avancées :blush:

Ça me fait penser que lorsque j’aurais fini WS2Pv2 je pourrais, si vous le souhaitez, faire une librairie dynamique importable dans python pour permettre de vérifier la signature des fiches de peer et head de WS2Pv2, Sakia en aura besoin.
Vous pouvez aussi décider de le refaire a la main en Python mais ça demande de manipuler du binaire et le code qui manipule les formats est déjà écrit en Rust donc ça représente peu de travail de l’enrober dans une librairie importable dans python, j’ai déjà un peu lu ici comment procéder :


#3

Breaking News!

La refonte de l’api Python DuniterPy en version 0.50.0 est terminée :

  • Tout le code a été reformaté (indentation, respect du code style de Python PEP8, etc)
  • Tout le code (sauf les tests qui n’en avaient pas vraiment besoin) est typé et vérifié avec l’utilitaire mypy
  • Tout le code est documenté dans les “docstrings” (que fait la fonction, à quoi correspondent les arguments).

Attention : la compatibilité avec les versions précédentes 0.40+ est brisée. Parfois volontairement pour un code plus simple à utiliser, parfois à cause du typage qui dévoilait des redondances ou des approximations.

Il reste une seule chose à faire, tester les exemples présents dans le dossier examples.

Je le ferai tranquillement dans les jours qui viennent, mais les Pythonitas (geeks Pythonistes) qui veulent tester la bête peuvent le faire aussi (sur Ğ1-test uniquement svp !) et me faire des retours.

Intégration dans Sakia

Un chantier assez important se profile pour mettre à jour Sakia avec DuniterPy 0.50.0.
Je suis pour l’instant la personne la plus à même de le faire, ayant été le géniteur de la nouvelle mouture de DuniterPy. Mais j’aimerais beaucoup que d’autres développeurs s’en occupent (en plus de moi, ou à ma place) à cause du travail nécessaire pour la version 0.60.0 de DuniterPy.

Vers la version 0.60.0 et au-délà !

La suite logique pour que DuniterPy continue à vivre et à rendre les services que l’on en attend est de préparer la version 0.60.0.

  • Ajout d’un client GVA (GraphQL Verification API). J’ai déjà fait une POC fonctionnelle et un embryon de schema.graphql.
  • Optionnel : ajout d’un client WS2Pv1 et/ou v2.

Merci à @moul pour la relecture de ce post, et à @canercandan et @inso pour leur travail énorme sur cette bibliothèque !


#4

Super vit ! Seras tu au RML12 ? (Je dis cela, mais je pourrais aussi vérifier sur le site…)


#5

Je ne sais vraiment pas. Je réfléchis à venir le 24 parce que tous les développeurs seront là et j’aimerais bien discuter avec vous IRL des grands axes de développement. Je vous tiens au courant… :wink:


#6

Pas besoin d’un client WS2Pv2, mais en revanche il faudra que les Clients soit en mesure de gérer les nouveaux formats de fiche de peer et head qui arriveront avec WS2Pv2, c’est tout le sens de mon intervention des rml12 que de donner aux développeurs des clients tous les outils pour s’adapter en amont :slight_smile:

Je pense donc que DuniterPy 0.60.0 devra inclure cela, je suis évidemment prêt à aider si c’est nécessaire, mais tu te rendras compte avec mon intervention que c’est un ajout assez simple :slight_smile:


#7

La bibliothèque python officielle pour Duniter est enfin sortie dans une version 0.50.0 complètement révisée et bien plus simple d’emploi !

Vous pouvez l’installer facilement avec pip :

pip3 install duniterpy

Si une version antérieure est installée :

pip3 install --upgrade duniterpy

Voir la page officielle sur le site PyPI :

Avertissement : cette version est incompatible avec Sakia 0.33.x. Vérifiez bien que vous ne mettez pas à jour une ancienne version utilisée par votre installation de Sakia.


#8

beau travail @vtexier ! Ca motive les RML, hein !? :slight_smile:

Je m’interroge sur ca :

Support Elasticsearch Duniter4j API

Tu l’utilise les noeuds Cesium+ pour quoi ? (simple curiosité)


#9

Mon but est de piloter en Python les API Duniter dédiées aux clients.
J’ai juste testé le fait que c’était possible et mis un exemple. Je n’avais pas d’idée d’utilisation en tête, peut-être que j’en aurai quand je me re-pencherai sur Sakia…


#10

Merci à @moul pour ses contributions sur Duniterpy.

J’ai découvert qu’il manquait d’autres commandes de l’api BMA. Je les ajoute cette semaine et ferai une release 0.51.0.


#11

Silkajement, il me manque :

"tx/history/" + pubkey + "/pending"