Interface geneanet

Bonjour,

J’ai commencé à écrire un gramplet d’interface avec geneanet.

Vous pouvez y jeter un œil en ajoutant mon projet https://raw.githubusercontent.com/jmichault/gramps-kromprogramoj/gramps60 dans le gestionnaire de plugins, puis en installant le gramplet PersonGN.
L’extension est compatible avec gramps 5.2 et gramps 6.0.
Une fois l’extension installée, vous pouvez ajouter le gramplet «Geneanet» sur la vue Individus.

Attention : sauvegardez votre base ou utilisez une base de test, c’est une extension en début de développement !

Pour l’instant, il permet :

  • de faire une recherche simple
  • d’importer un parent, conjoint ou enfant manquant

Les données importées se limitent à :

  • le nom et le prénom
  • les évènements individuels
  • les sources
  • les notes (en option, désactivé par défaut)

Attention : l’import des lieux depuis geneanet est un vrai casse-tête, donc après avoir fait un import, vérifiez les lieux pour les corriger.

Petite démonstration :
Supposons que l’on ait un Louis Martin né vers 1810 à Marseille-en-Beauvaisis :

En cliquant sur le bouton «Chercher», une interrogation du site geneanet est lancée.
Patientez pendant le chargement :


Le résultat de la recherche s’affiche :

Si les résultats ne vous conviennent pas, vous pouvez modifier les critères et relancer la recherche avec le bouton «Exécuter».
Si l’une des lignes vous semble intéressante, cliquez dessus :

Vous pouvez alors :

  • Cliquer sur le lien en vert (en bas à droite), ce qui ouvrira la fiche geneanet dans votre navigateur internet.
  • Cliquer sur le bouton «Comparer» pour revenir dans le gramplet et comparer la fiche gramps avec la fiche geneanet :


Si vous voyez des individus présents dans geneanet et absents gramps (parent, conjoint, ou enfant), vous pouvez cocher la case correspondante, puis lancer l’import avec un clic droit :

Patientez un peu :

Et les fiches sélectionnées sont importées :

4 Likes

Bonsoir Jean
pour l installation aucun probleme. par contre le gramplet ne se charge pas.
quand je regarde la sortie console je vois
2025-05-27 21:10:01.758: WARNING: _manager.py: line 328: Plugin error (from ‘PersonGN’): cannot import name ‘builder’ from ‘google.protobuf.internal’ (/usr/lib64/python3.13/site-packages/google/protobuf/internal/init.py)
et effectivement il n y a pas de fichier builder.py dans ce repertoire.
voici la version de protobuf utilise
pip show protobuf
Name: protobuf
Version: 3.19.6
Summary: Protocol Buffers
Home-page: Protocol Buffers Documentation
Author:
Author-email:
License: 3-Clause BSD License
Location: /usr/lib64/python3.13/site-packages
Requires:
Required-by: google-api-core, googleapis-common-protos, grpcio-status

bon manifestement il faut une version 5 de protobuf mais sur la fedora la version est la version 3.
Ce que je ne comprends pas trop c’est que si j installe une version 5 en mode user avec pip celle ci n 'est manifestement pas utilise.
va falloir que je creuse

bon pour une raison inconnue mon gramps ne chargeait pas mon sys.path local.
une fois cela corrige j’ai pu utiliser le protobuf version 5.
le gramplet se charge le test commence :slight_smile:

mon premier retour.
Cela fonctionne vraiment tres bien pour les fonctions implementées.
Ce qui manque vraiment ( mais bon il faut savoir etre patient ) c’est la possibilite de écompleter un individu deja present dans la base.
Sinon quelques petites remarques.
Cela serait bien d’avoir la source pour les evenements ajoutes et pas seulement pour l individus.
pour la source avoir le lien url de l’arbre geneanet dans information de publication.
Et rajouter la date du jour pour la citation. En effet un ite geneanet cela change et donc je pense que c’est important d’avoir la date ou l on a consulte cet arbre.
Concernant les lieux vu la galere de les gerer je me demande si cela ne serait pas mieux de ne pas essayer de creer la hierarchie. Comme de toutes facons il faut les reprendre apres l importation si on ne crée qu’un lieu sans hiérarchie si celui ci existe dans la base il suffirra de le fusionner.
Au final je suis vraiment très impressionné
Bravo

1 Like

Petite mise à jour pour tenir compte d’une partie de tes remarques :

  • ajout d’une citation sur tous les évènements, avec en note de citation la date d’import :

et en attribut, le lien vers la fiche geneanet

  • la source a en attribut le lien vers l’arbre geneanet :

  • la citation de l’individu a elle aussi la date d’import dans la note de citation, et le lien internet en attribut.

Et aussi une petite précision que j’avais oubliée : le gramplet fonctionne aussi bien en version 5.2 qu’en version 6.0 de gramps. Par contre je n’ai pas testé sous windows.

1 Like

Et on trouve où la version qui fonctionne en v5.2 ?
Je l’installerai sur w11

Edit: J’ai trouvé par contre une fois installé où est ce qu’il est ? Pas dans la liste des gramplets ?

Edit 2: Ah ! Geneanet, je cherchais PersonGN :grinning_face: J’ai fait toutes les bourdes, c’est bon là !!

Bon ça ne se lance pas (j’ai bien l’onglet Geneanet parmi les gramplets mais il est vide) et j’ai les erreurs suivantes sur la console:

dependeco protobuf ne trovita aŭ < 4.21.1
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Collecting protobuf
  Downloading protobuf-6.31.1-py3-none-any.whl.metadata (593 bytes)
Downloading protobuf-6.31.1-py3-none-any.whl (168 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 168.7/168.7 kB 1.1 MB/s eta 0:00:00
Installing collected packages: protobuf
Successfully installed protobuf-6.31.1
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Collecting protobuf
  Using cached protobuf-6.31.1-py3-none-any.whl.metadata (593 bytes)
Using cached protobuf-6.31.1-py3-none-any.whl (168 kB)
Installing collected packages: protobuf
Successfully installed protobuf-6.31.1
Traceback (most recent call last):
  File "C:\Program Files\GrampsAIO64-5.2.2\gramps\gen\plug\_manager.py", line 274, in load_plugin
    _module = self.import_plugin(pdata)
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\GrampsAIO64-5.2.2\gramps\gen\plug\_manager.py", line 308, in import_plugin
    module = __import__(pdata.mod_name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\patri\AppData\Local\gramps\gramps52\plugins\PersonGN\PersonGN.py", line 68, in <module>
    import geneanet
  File "C:\Users\patri\AppData\Local\gramps\gramps52\plugins\PersonGN\geneanet.py", line 27, in <module>
    from geneanet_pb import api_saisie_read_pb2, api_saisie_write_pb2, api_app_pb2, api_stats_pb2
  File "C:\Users\patri\AppData\Local\gramps\gramps52\plugins\PersonGN\geneanet_pb\api_saisie_read_pb2.py", line 23, in <module>
    Person.RegisterExtension(_FICHEPERSON.extensions_by_name['person'])
    ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'Person' has no attribute 'RegisterExtension'
WARNING: Error loading gramplet 'Geneanet Gramplet': skipping content
ERROR: Unhandled exception
Traceback (most recent call last):
  File "C:\Program Files\GrampsAIO64-5.2.2\gramps\gui\widgets\grampletbar.py", line 478, in __page_added
    gramplet.set_orientation(self.orientation)
  File "C:\Program Files\GrampsAIO64-5.2.2\gramps\gui\widgets\grampletbar.py", line 693, in set_orientation
    self.pui.set_orientation(orientation)
    ^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'set_orientation'

*** Remove ui
*** Add ui
*** Update ui
*** Remove ui
*** Add ui
*** Update ui
*** Remove ui
*** Add ui
*** Update ui
*** Remove ui
*** Add ui
*** Update ui
*** Remove ui
*** Remove ui
*** Add ui
*** Remove ui
*** Remove ui
*** Remove ui
*** Remove ui
*** Remove ui
*** Add ui
*** Add ui
*** Add ui
*** Add ui
*** Add ui
*** Update ui
*** Remove ui
*** Remove ui
*** Remove ui
*** Add ui
*** Remove ui
*** Remove ui
*** Remove ui
*** Remove ui
*** Remove ui
*** Add ui
*** Add ui
*** Add ui
*** Add ui
*** Add ui
*** Update ui
*** Remove ui
*** Add ui
*** Update ui

Moi, j’ai la même erreur sur linux que ce soit en 5.2 ou en 6.0

Bonsoir à tous,
j’ai pu travailler un peu sur mon gramplet.

Je crois avoir trouvé le problème rencontré par Patrice et Serge : j’avais compilé les fichiers protobuf avec une vieille version du compilateur protoc. Du coup les fichiers python générés étaient devenus incompatibles avec les versions récentes de protobuf, sauf si les librairies protobuf cython étaient installées. J’ai recompilé avec la dernière version de protoc.

De plus j’ai changé la gestion des lieux :
J’essaie de trouver la hiérarchie mais je ne la crée pas si elle n’existe pas.
Exemple : si le lieu généanet est «Bordeaux, Gironde, Aquitaine, France», et que France et Aquitaine existent mais pas Gironde, je vais créer le lieu «Bordeaux,Gironde» en Aquitaine.
De plus à la fin de l’import si des lieux ont été créés, j’affiche un avertissement avec la liste des lieux créés.

Note : j’ai changé le titre de l’extension en «Gramplet Geneanet», plus parlant. (le nom interne reste PersonGN)

Je l’ai a nouveau téléchargé mais il ne s’affiche pas dans la liste des gramplet.

Pour info: Dans le répertoire la directory pycache n’y est pas presente