new commit

This commit is contained in:
rnsrk 2025-09-09 10:16:31 +02:00
parent da296f8a64
commit e46a9fd4ec
69 changed files with 4199 additions and 4805 deletions

160
00_start.py Normal file
View file

@ -0,0 +1,160 @@
from importlib import import_module
from initDb import initDb # For database initialization
from wisski.api import Api, Pathbuilder, Entity # For WissKI API
import os # For environment variable loading
from dotenv import load_dotenv # For environment variable loading
from time import sleep
# Import entities
material_module = import_module("01_importMaterialsAndTechnique")
administrator_module = import_module("02_importAdministrator")
administrator_status_module = import_module("03_importAdministratorStatus")
source_module = import_module("03_importSource")
artist_source_reference_assignment_module = import_module("04_importArtistSourceReferenceAssignment")
marks_module = import_module("04_importMarks")
source_reference_assignment_module = import_module("04_importSourceReferenceAssignment")
artist_module = import_module("05_importArtist")
literature_module = import_module("06_importLiterature")
inspection_mark_module = import_module("07_importInspectionMark")
journal_assignment_module = import_module("07_importJournalAssignment")
literature_reference_assignment_module = import_module("07_importLiteratureReferenceAssignment")
parent_literature_assignment_module = import_module("07_importParentLiteratureAssignment")
inspection_mark_location_module = import_module("08_importInspectionMarkLocation")
inspection_mark_relation_module = import_module("09_importInspectionMarkRelation")
mark_dating_info_module = import_module("10_importMarkDatingInfo")
birth_module = import_module("12_importBirth")
death_module = import_module("13_importDeath")
dating_module = import_module("14_importDating")
goldsmith_relation_module = import_module("15_importGoldsmithRelation")
client_module = import_module("16_importClient")
mentioned_module = import_module("17_importMentioned")
num_dating_module = import_module("18_importNumDating")
origin_assignment_module = import_module("19_importOriginAssignment")
workshops_module = import_module("20_importWorkshops")
artifacts_module = import_module("21_importArtifacts")
artifact_relation_module = import_module("22_importArtifactRelation")
artist_assignment_module = import_module("24_importArtistAssignment")
mark_information_module = import_module("25_importMarkInformation")
photographer_module = import_module("26_importPhotographer")
# Import relations
artifact_to_artist_relation_module = import_module("98__r__importArtifactToArtistRelationRelation")
artifact_to_client_assignment_relation_module = import_module("98__r__importArtifactToClientAssignmentRelation")
artifact_to_inspection_mark_location_relation_module = import_module("98__r__importArtifactToInspectionMarkLocationRelation")
artifact_to_literature_reference_assignment_relation_module = import_module("98__r__importArtifactToLiteratureReferenceAssignmentRelation")
artifact_to_mark_information_assignment_relation_module = import_module("98__r__importArtifactToMarkInformationAssignmentRelation")
artifact_to_material_relation_module = import_module("98__r__importArtifactToMaterialRelation")
artifact_to_numerice_date_relation_module = import_module("98__r__importArtifactToNumericeDateRelation")
artifact_to_photograph_relation_module = import_module("98__r__importArtifactToPhotographRelation")
artifact_to_relation_relation_module = import_module("98__r__importArtifactToRelationRelation")
artifact_to_source_relation_module = import_module("98__r__importArtifactToSourceRelation")
artifact_to_status_administrator_relation_module = import_module("98__r__importArtifactToStatusAdministratorRelation")
artist_to_birth_relation_module = import_module("98__r__importArtistToBirthRelation")
artist_to_death_relation_module = import_module("98__r__importArtistToDeathRelation")
artist_to_goldsmith_relation_module = import_module("98__r__importArtistToGoldsmithRelation")
artist_to_literature_reference_relation_module = import_module("98__r__importArtistToLiteratureReferenceRelation")
artist_to_mentioned_relation_module = import_module("98__r__importArtistToMentionedRelation")
artist_to_origin_relation_module = import_module("98__r__importArtistToOriginRelation")
artist_to_workshop_relation_module = import_module("98__r__importArtistToWorkshopRelation")
inspection_mark_dating_information_assignment_relation_module = import_module("98__r__importInspectionMarkDatingInformationAssignmentRelation")
inspection_mark_relation_relation_module = import_module("98__r__importInspectionMarkRelationRelation")
inspection_mark_to_literature_reference_relation_module = import_module("98__r__importInspectionMarkToLiteratureReferenceRelation")
literature_to_journal_relation_module = import_module("98__r__importLiteratureToJournalRelation")
literature_to_parent_publication_relation_module = import_module("98__r__importLiteratureToParentPublicationRelation")
mark_to_dating_relation_module = import_module("98__r__importMarkToDatingRelation")
mark_to_literature_relation_module = import_module("98__r__importMarkToLiteratureRelation")
mark_to_mark_information_relation_module = import_module("98__r__importMarkToMarkInformationRelation")
mark_to_source_relation_module = import_module("98__r__importMarkToSourceRelation")
source_to_date_relation_module = import_module("98__r__importSourceToDateRelation")
source_to_literature_reference_assignment_relation_module = import_module("98__r__importSourceToLiteratureReferenceAssignmentRelation")
# Initialize the database
print('Initializing the database...')
engine, metadata, Session = initDb(True, './schemas/')
if engine == False:
print('Database initialization failed.')
exit()
# Load the environment variables
load_dotenv()
# Initialize the WissKI API
print('Initializing the WissKI API...')
api_url = os.getenv('API_URL')
auth = (os.getenv('API_USERNAME'), os.getenv('API_PASSWORD'))
headers = {"Cache-Control": "no-cache"}
api = Api(api_url, auth, headers)
api.pathbuilders = ['default']
trials = 0
while trials < 3 :
trials += 1
try:
# Call the function from the imported module
material_module.importMaterialsAndTechnique(api, engine)
administrator_module.importAdministrator(api, engine)
administrator_status_module.importAdministratorStatus(api, engine)
source_module.importSource(api, engine)
artist_source_reference_assignment_module.importArtistSourceReferenceAssignment(api, engine)
marks_module.importMarks(api, engine)
source_reference_assignment_module.importSourceReferenceAssignment(api, engine)
artist_module.importArtist(api, engine)
literature_module.importLiterature(api, engine)
inspection_mark_module.importInspectionMark(api, engine)
journal_assignment_module.importJournalAssignment(api, engine)
literature_reference_assignment_module.importLiteratureReferenceAssignment(api, engine)
parent_literature_assignment_module.importParentLiteratureAssignment(api, engine)
inspection_mark_location_module.importInspectionMarkLocation(api, engine)
inspection_mark_relation_module.importInspectionMarkRelation(api, engine)
mark_dating_info_module.importMarkDatingInfo(api, engine)
birth_module.importBirth(api, engine)
death_module.importDeath(api, engine)
dating_module.importDating(api, engine)
goldsmith_relation_module.importGoldsmithRelation(api, engine)
client_module.importClient(api, engine)
mentioned_module.importMentioned(api, engine)
num_dating_module.importNumDating(api, engine)
origin_assignment_module.importOriginAssignment(api, engine)
workshops_module.importWorkshops(api, engine)
artifacts_module.importArtifacts(api, engine)
artifact_relation_module.importArtifactRelation(api, engine)
artist_assignment_module.importArtistAssignment(api, engine)
mark_information_module.importMarkInformation(api, engine)
photographer_module.importPhotographer(api, engine)
api.pathbuilders = ['relations']
artifact_to_artist_relation_module.importArtifactToArtistRelationRelation(api, engine)
artifact_to_client_assignment_relation_module.importArtifactToClientAssignmentRelation(api, engine)
artifact_to_inspection_mark_location_relation_module.importArtifactToInspectionMarkLocationRelation(api, engine)
artifact_to_literature_reference_assignment_relation_module.importArtifactToLiteratureReferenceAssignmentRelation(api, engine)
artifact_to_mark_information_assignment_relation_module.importArtifactToMarkInformationAssignmentRelation(api, engine)
artifact_to_material_relation_module.importArtifactToMaterialRelation(api, engine)
artifact_to_numerice_date_relation_module.importArtifactToNumericeDateRelation(api, engine)
artifact_to_photograph_relation_module.importArtifactToPhotographRelation(api, engine)
artifact_to_relation_relation_module.importArtifactToRelationRelation(api, engine)
artifact_to_source_relation_module.importArtifactToSourceRelation(api, engine)
artifact_to_status_administrator_relation_module.importArtifactToStatusAdministratorRelation(api, engine)
artist_to_birth_relation_module.importArtistToBirthRelation(api, engine)
artist_to_death_relation_module.importArtistToDeathRelation(api, engine)
artist_to_goldsmith_relation_module.importArtistToGoldsmithRelation(api, engine)
artist_to_literature_reference_relation_module.importArtistToLiteratureReferenceRelation(api, engine)
artist_to_mentioned_relation_module.importArtistToMentionedRelation(api, engine)
artist_to_origin_relation_module.importArtistToOriginRelation(api, engine)
artist_to_workshop_relation_module.importArtistToWorkshopRelation(api, engine)
inspection_mark_dating_information_assignment_relation_module.importInspectionMarkDatingInformationAssignmentRelation(api, engine)
inspection_mark_relation_relation_module.importInspectionMarkRelationRelation(api, engine)
inspection_mark_to_literature_reference_relation_module.importInspectionMarkToLiteratureReferenceRelation(api, engine)
literature_to_journal_relation_module.importLiteratureToJournalRelation(api, engine)
literature_to_parent_publication_relation_module.importLiteratureToParentPublicationRelation(api, engine)
mark_to_dating_relation_module.importMarkToDatingRelation(api, engine)
mark_to_literature_relation_module.importMarkToLiteratureRelation(api, engine)
mark_to_mark_information_relation_module.importMarkToMarkInformationRelation(api, engine)
mark_to_source_relation_module.importMarkToSourceRelation(api, engine)
source_to_date_relation_module.importSourceToDateRelation(api, engine)
source_to_literature_reference_assignment_relation_module.importSourceToLiteratureReferenceAssignmentRelation(api, engine)
except Exception as e:
print(f'Error: {e}')
print(f'Trial {trials} of 3 failed.')
print(f'Retrying in 10 seconds...')
sleep(10)
continue