Makros für Gramps?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • sonki
    Erfahrener Benutzer
    • 10.05.2018
    • 4693

    #16
    Ich kann mich zwar nicht erinnern, das ich diese Meldung bekommen habe, aber wer weiß an was das nun schon wieder liegt.
    Falls die Installation von pyicu via pip nicht klappt, kannst du ja mal versuchen es über whl (python wheel) zu installieren:


    Dort die richtige Version auswählen (python version und os bit system), runterladen und:
    python -m pip install pfad/zum/*.whl
    Слава Україні

    Kommentar

    • HKD
      Benutzer
      • 20.06.2010
      • 71

      #17
      Hallo,

      bei mir klappts einwandfrei, nachdem ich Python39 installiert und als Standardanwendung für .py-Dateien festgelegt habe. Hier meine Pfade:

      - os.environ['GRAMPS_RESOURCES'] = 'C:/Program Files/Gramps/GrampsAIO64-5.1.2/share'
      - sys.path.append(r'C:\Program Files\Gramps\GrampsAIO64-5.1.2')
      - db = sqlite.SQLite('D:/Ahnenforschung/_Gramps/GrampsDb512/Demo')

      HKD

      Kommentar

      • Oberschwabe
        Benutzer
        • 23.07.2016
        • 82

        #18
        Hallo,

        nach viel Rumprobieren und einer kompletten Neuinstallation meiner Python-Umgebung habe ich nun festgestellt, dass es bei mir doch funktioniert und ich die Fehlermeldung einfach ignorieren kann. Es kann so einfach sein ...

        Also habe ich jetzt mal ein wenig rumgebastelt und eine Funktion geschrieben, die eine CSV-Tabelle einliest. Geplant war damit zu Testzwecken die Fundstellen zu den Geburtseinträgen von 14 Kindern in einem Taufbuch anzulegen. Diese habe ich in Excel mit Namen, Jahrgang und Nummer des Eintrags erfasst und als CSV abgespeichert. Daraus sollten dann die Fundstellen im Format "Jahrgang 1872 Nr. 27 Maximilian Fensterle" erstellt werden.

        Da ich noch nicht herausgefunden habe wie das mit den Fundstellen funktioniert, habe ich zum Testen jetzt erstmal Quellen angelegt. Hier der Code:
        Code:
        import sys
        import os
        import sqlite3
        
        os.environ['GRAMPS_RESOURCES'] = 'C:/Program Files/GrampsAIO64-5.1.3/share'
        sys.path.append(r'C:\Program Files\GrampsAIO64-5.1.3')
        
        from gramps.plugins.db.dbapi import sqlite
        from gramps.gen.db.txn import DbTxn
        from gramps.gen.dbstate import DbState
        from gramps.gen.lib import Repository, Source, Citation
        
        
        def import_CSV(dateiname):  #Importiert nur eine gewünschte csv-Datei und gibt Liste von Listen zurück
               path = os.path.join(os.getcwd(),"CSVOrdner",dateiname)   # Pfad zu Datei
               with open(path,"r") as f:                                # Packt die Tabelle in eine Liste von Listen
                   tmp = f.read().strip().split("\n")
                   return [i.split(";")[0:5] for i in tmp[1:]]
                      
        daten = import_CSV("Fundstellen.csv")
        
        db = sqlite.SQLite('C:/Users/<username>/AppData/Roaming/gramps/grampsdb/5f8c6b11')
        
        for j in range(0, len(daten)):
            title = "Jahrgang " + daten[j][2] + " Nr. " + daten[j][3] +" "+ daten[j][0] +" "+ daten[j][1]
            source = Repository()
            source.set_title(title)
            transaction = DbTxn('msg', db)
            db.add_source(source, transaction)
            db.transaction_commit(transaction)
        
        db.close()
        Das funktioniert soweit prima. Nun möchte ich natürlich weiter herumspielen und analog zu "set_title" auch die anderen Felder ausfüllen. Gibt es irgendwo eine Dokumentation wo ich diese ganzen Funktionen finde? Insbesondere würde mich jetzt interessieren wie ich analog zu den Quellen Fundstellen erzeugen kann. Aus dem was ich im Internet finde, werde ich nicht so richtig schlau.

        Grüße
        Oberschwabe
        Zuletzt geändert von Oberschwabe; 03.11.2020, 15:13.

        Kommentar

        • sonki
          Erfahrener Benutzer
          • 10.05.2018
          • 4693

          #19
          Zitat von Oberschwabe Beitrag anzeigen
          Gibt es irgendwo eine Dokumentation wo ich diese ganzen Funktionen finde?
          Die API und alle Funktionen sind hier beschrieben - da muss man sich halt durchkämpfen:
          Слава Україні

          Kommentar

          • Oberschwabe
            Benutzer
            • 23.07.2016
            • 82

            #20
            Danke dir!

            Kommentar

            • 1975reinhard
              Erfahrener Benutzer
              • 30.10.2008
              • 324

              #21
              Datenmodell

              Hier noch eine gute Übersicht zum Datenmodell von Gramps:
              Forschungsgebiete:

              waldviertel-genealogie.jimdo.com/
              • NÖ (Waldviertel): Region Gmünd, Weitra, Schrems, Döllersheim

              suedmaehren-genealogie.jimdo.com/
              • Südmähren: Gebiet um Joslowitz

              traunviertel-genealogie.jimdo.com/
              • OÖ: Traunseeregion, Ampflwang, Ottnang,...

              http://sudeten-genealogie.jimdo.com/
              • Böhmen: Beneschau (bei Prag), Königgrätz, Nechanitz, Winterberg/Prachatitz
              • Schlesien: Gebiet um Wigstadtl
              • (Süd-)Mähren: Lispitz

              Kommentar

              • HKD
                Benutzer
                • 20.06.2010
                • 71

                #22
                ...und hier noch die Datenbankstruktur: https://www.gramps-project.org/wiki/...s_SQL_Database

                HKD

                Kommentar

                • Andre_J
                  Erfahrener Benutzer
                  • 20.06.2019
                  • 1900

                  #23
                  Zitat von HKD Beitrag anzeigen
                  ...und hier noch die Datenbankstruktur: https://www.gramps-project.org/wiki/...s_SQL_Database
                  Das ist aber leider die alte Struktur der BSDDB Datenbank. Für das neue Datenbankformat sqlite hat man leider eine neue Datenbankstruktur aufgezogen, bei der wesentliche Informationen binär in BLOBs abgespeichert werden. Das macht den Zugriff von außen unnötig schwer

                  Gruß,
                  Andre_J
                  Gruß,
                  Andre

                  Kommentar

                  • sonki
                    Erfahrener Benutzer
                    • 10.05.2018
                    • 4693

                    #24
                    Das soll u.U. in kommenden Versionen geändert werden, von Blobs zu json Objekten. Und ja, wäre dann leichter mit den Daten umzugehen.
                    Слава Україні

                    Kommentar

                    Lädt...
                    X