Aller au contenu
Business Agile
Réalisations
Open source · Bibliothèque Python pour bases de données en graphe · août 2025

Neontology

Contributions fusionnées dans un OGM Python pour Neo4j et Memgraph.

En chiffres

pull requests fusionnées3
fichiers retypés selon la PEP 58515
version PyPI qui publie ces contributions2.2

Neontology est une bibliothèque Python open source, publiée par Ontolocy sous licence MIT. Elle permet de décrire des nœuds et des relations sous forme de classes Pydantic, puis de les enregistrer et de les relire dans une base de données en graphe comme Neo4j ou Memgraph. Ce n'est pas ma bibliothèque : j'y contribue parce que je l'utilise sur des projets de graphes de connaissances.

Le projet en détail

Quand une fonctionnalité m'a manqué, je l'ai écrite pour le projet plutôt que de la contourner dans mon propre code. En août 2025, j'ai proposé la recherche par propriétés dans match_nodes : le filtre est traduit en requête exécutée par la base, au lieu de rapatrier tous les nœuds pour les trier ensuite en Python. La pull request couvrait le moteur, son adaptation aux couches supérieures, plus de 400 lignes de tests et la documentation. Elle a été fusionnée, puis étendue à get_count dans une seconde contribution, fusionnée quelques jours plus tard.

Plus tôt, en février 2025, j'avais modernisé le typage de quinze fichiers selon la PEP 585, qui remplace les génériques du module typing par ceux des collections standard. Ces trois contributions sont publiées sur PyPI dans les versions 2.2 de Neontology, et le journal des modifications officiel remercie mon compte pour le filtrage.

Contribuer en amont a un intérêt direct pour mes clients : le code qui tourne chez eux repose sur une version publique, maintenue et relue par d'autres, et non sur un correctif local que personne ne suit. Dans le même esprit, j'ai publié sur GitLab une petite bibliothèque de pagination pour FastAPI, fastapi-object-pagination, qui renvoie le même format de page pour une base SQL ou une base en graphe.

Ce qui a été fait

  1. 01

    Recherche par propriétés dans match_nodes, exécutée côté base (pull request #61)

  2. 02

    Filtrage étendu à get_count (pull request #62)

  3. 03

    Typage modernisé selon la PEP 585 sur quinze fichiers (pull request #45)

  4. 04

    Plus de 400 lignes de tests et la documentation fournies avec la fonctionnalité

  5. 05

    Contribution citée dans le journal des modifications officiel

Questions fréquentes

Qu'est-ce que Neontology ?

Une bibliothèque Python open source, éditée par Ontolocy sous licence MIT, qui permet de décrire des nœuds et des relations en classes Pydantic et de les enregistrer dans Neo4j ou Memgraph.

Qu'a apporté Business Agile à Neontology ?

La recherche par propriétés dans match_nodes et get_count (pull requests #61 et #62, fusionnées en août 2025) et la modernisation du typage selon la PEP 585 (pull request #45, fusionnée en février 2025).

Pourquoi contribuer à une bibliothèque plutôt que la contourner ?

Parce qu'un correctif fusionné en amont est maintenu et relu par la communauté. Le code livré au client repose alors sur une version publique, et non sur une modification locale qu'il faudrait porter à chaque mise à jour.

Autres réalisations

Un projet ? Parlons-en cette semaine.

Un brief court, une réponse sous 48 h, une estimation ferme après cadrage.

Décrire mon projet