DuniterPy, évolution de la bibliothèque Python

Merci du retour ! Effectivement il y a un gros problème sur le build dans gitlab :

Le build seul fonctionne en local sur mon dépôt, je vais tester le build du déploiement de test cette après midi.

En attendant NE PAS UTILISER CETTE VERSION, attendre la 0.55.1.

2 Likes

La version 0.55.1 est disponible ! La version 0.55.0 a été supprimé du dépôt officiel Pypi car non fonctionnelle.

Le changelog reste inchangé et se trouve plus haut.

v0.55.1 (19th July 2019)

  • #102: wheel build does not longer include duniterpy sub-folders
  • Trigger release only on master not on tag as protected environment variables are not shared with pipelines started on a tag
  • Fix Makefile: rebuild not working
4 Likes

Un message a été scindé en un nouveau sujet : Utilisation des conditions dans DuniterPy

DuniterPy version 0.56.0 est sortie !

La grande nouveauté est le support de WS2P !
Vous allez pouvoir vous connecter à un serveur Duniter en WS2P comme ci vous étiez un véritable nœud Duniter ! De quoi faire des automates en Python basés sur les événements WS2P…

Attention : la connexion par websocket a changée ! Reportez-vous aux exemples du dossier examples pour voir comment on se connecte en BMA et en WS2P en websocket.

La documentation automatique que personne ne lit est ici…

v0.56.0 (20th January 2020)

Code

  • #58, !84: Introduce WS2P API support: BREAK BACKWARD COMPATIBILITY:
    • bma.ws: now websocket connections use the special WSConnection class and async, check examples.
    • Add two examples, a helper to retrieve the WS2P API from BMA.
  • #113, !89: Blocks signature verification is correctly handled now, differently from other documents.
  • #112, !88: fix Unlock.from_inline() error on a newly created Unlock
  • !87: Typos in Block: noonce −> nonce, hash
  • !82: Use sys.exit() instead of exit()
  • !79:
    • Move tools out of the helper folder
    • Dedicate the helper folder to helpers
    • Introduce output_available() helper to check if an output is available

Dependencies

  • !91: fix the attrs/attr dependency

Build

  • #107, !81: Enhance version definition in setup.py

CI/CD

  • !78: Release on PyPI only on tags

Documentation

  • #101, !80: Publish auto-documentation on GitLab Pages
  • #106, !83: Migrate the README back to markdown, reword and update it.
  • !77: Improve v0.55.0 and add v0.55.1 changelog
  • !92: Add v0.56.0 changelog

8 Likes

Ouuuuh c’est nice ça :slight_smile: Super boulot vit !!

2 messages ont été scindés en un nouveau sujet : Requêtes tx sur WS2P avec DuniterPy

DuniterPy 0.57.0 est sortie !

Pour l’installer, c’est simple :

pip3 install --user --upgrade

Ou modifiez votre fichier requirements.txt pour pip:

duniterpy==0.57.*

Nouveautés

  • Authentification à partir d’un fichier Scuttlebutt .ssb/secret
  • Authentification à partir d’un fichier d’identifiants
  • Nouvelle commande BMA : client(bma.wot.requirements_of_pending, minsig)
  • La classe HeadV2 hérite maintenant des classes précédentes (contient les propriétés de toutes les versions précédentes Head, HeadV0, HeadV1). Attention, cela brise la compatibilité avec l’ancienne classe !

Correctifs

  • Correctif bug sur le champ software_version des messages WS2Pv1 pas accepté si un mot clé suivait la version (1.7.21-beta est maintenant accepté)
  • Correctif bug de bma.blockhain.revoked qui appellait l’url /blockchain/with/excluded

CHANGELOG

v0.57.0 (2nd April 2020)

Code

Enhancements

  • #123 Implement authentication from Scuttlebutt .ssb/secret file
  • #77 Implement authentication from credentials file
  • #122, !99 Implement /wot/requirements-of-pending command support in BMA api
  • #120, !98 HeadV2, HeadV1, HeadV0 and Head classes now each inherit from previous class BREAK BACKWARD COMPATIBILITY

Fixes

  • #119, !96 software_version field in WS2Pv1 messages now accept a string after patch number (1.7.21-beta accepted)
  • #114, !100 Fix bma.blockhain.revoked command class calling /blockchain/with/excluded url

Documentation

  • #104 add CONTRIBUTE.md file with release workflow

CI/CD

  • #66, !93 Migrate to Poetry (build and development environment)

  • Thanks @vit, @Moul

4 Likes

T’as implémenté scuttlebutt ?? Génial ! Je te fais un don illico !

Super @vit !!
@Moul , est-ce que la mise à jour se propage à silkaj?

Je suppose que cela change quelque chose à astroport/natools.py at master - astroport - P2Git @tuxmain ?

Venez en parler sur ScuttleButt,

Vous recevrez sûrement des LOVE par mon Journal :wink:

Je modifie natools.py pour qu’il accepte tous les formats autorisés par DuniterPy.

2 Likes

Il y a une raison technique derrière ce choix ?

La raison a été discutée entre le développeur de Sakia qui avait un besoin et le développeur de Duniterpy qui lui a demandé la même chose. Les deux personnes étant les mêmes, une synergie s’est naturellement créée. :wink:

3 Likes

Et quel était ce besoin ? ^^

Sortie de DuniterPy v0.58.0

Annonce (fr)

Il s’agit de la dernière version majeur avec le support de Python v3.5.
Pas de bénéfice direct pour l’utilisateur final. Contient principalement des améliorations sur l’environnement de développement, la CI/CD, des mises à jour de dépendances, l’amélioration des examples.

Announcement (en)

Last major release with Python 3.5 support
No profit for the end-user. Contains mostly DevEnv, CI/CD, dependencies updates, examples improvements.

Changelog

v0.58.0 (10th September 2020)

Note: This is the last major release with Python v3.5 support.
As Python 3.5 security fixes are dropped on September 13th of 2020.

CI/CD

  • #127: Change deprecated keyword in .gitlab-ci.yml
  • #124: Fix publish_doc job not working

Dependencies

  • !107: Fix pylint v2.6.0 new checks
  • Update black to v20.8b1, format code
  • !102: Update base58 to v2
  • !102: Update Sphinx to v3

Examples

  • !104: Rework send membership and identity documents examples

Documentation

  • !102: Add Repology’s packaging status to the Readme
  • !103: Rename file to CONTRIBUTING.md to be recognised by GitLab

3 Likes

v0.60.0 (26th September 2020)

  • #60, !106: Drop Python v3.5 support
  • #86, !106: Scrypt: migrate from pylibscrypt to hashlib.scrypt from the standard Python 3.6 lib
  • #111, !111: Clearly define the copyright and license statements
  • #68, !106: Package in Debian Bullseye v11

4 Likes

DuniterPy supporte maintenant GVA et GVASUB !

Un exemple est fourni :

v0.61.0 (30th November 2020)

  • #59 add GVA query support and example
  • #137 add GVAEndpoint and GVASUBEndpoint classes
  • fix bug in API.reverse_url
  • Readme: Update dependencies list
  • Upgrade to Poetry v1.1.x
  • Fix regex to update the documentation version
  • fix bug in pylint on examples
  • Add v0.58.1 and v0.60.1 changelogs

7 Likes

Yes j’ai vue ça !

Moi je continue mon micro-client GVA tout en apprenant python, je me demandais justement si je devais passer des choses en async en comparant avec duniterpy, puis j’ai vue ton dernier post à ce sujet ^^

Je vais continuer mes tests isolés mais si je suis satisfait de ce que j’ai fait et que ce n’est toujours pas le cas d’ici là, je veux bien tenter d’intégrer ça dans duniterpy sur une nouvelle branche, maintenant que la mécanique est simplifié.

Faudrait que je compare avec ce qui a été fait en BMA pour bien cerner comment ça doit être intégré.
Sinon je continue mon truc dans mon coin, ça me dérange pas ça m’occupe ^^

2 Likes

Pour info, la version sans asyncio 1.0.0a (qui va peut-être changer de numéro et arriver plus tôt) supporte aussi GVA et GVASUB.

La différence entre asyncio et thread mérite une formation en visio tellement c’est important à connaître pour ne pas recopier bêtement des tutos en pensant que c’est asynchrone alors que pas du tout. Dans DuniterPy, un seul exemple est asynchrone malgré le fait que tous les exemples doivent utiliser la syntaxe asyncio pour se servir de DuniterPy…

GVASUB est implémenté en aveugle et non testé réellement. L’avantage d’utiliser DuniterPy est la possibilité de charger le schéma complet de l’api depuis le serveur, également de valider la syntaxe de la requête graphQL, et enfin de valider la requête par rapport au schéma. Ce qui est très difficile sans une bibliothèque cliente graphQL.

Ton travail sera précieux si on fait avec GVA comme avec BMA, une couche d’abstraction qui évite d’apprendre l’api. Il permettra d’avoir le format des requêtes graphQL.

4 Likes

Salut à tous,

J’ai une question de grand débutant: Est-ce que DuniterPy est compatible micropython?

Merci!

Aucune idée. Désolé, il faut que tu fasses le test.

1 Like