new commit
This commit is contained in:
parent
da296f8a64
commit
e46a9fd4ec
69 changed files with 4199 additions and 4805 deletions
160
00_start.py
Normal file
160
00_start.py
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue