|
|
|
@ -8,10 +8,10 @@ with the pymongo library.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
import urllib.parse
|
|
|
|
import urllib.parse
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from unidecode import unidecode # to remove accents in house and prince names in the urls
|
|
|
|
from pymongo import MongoClient
|
|
|
|
from pymongo import MongoClient
|
|
|
|
|
|
|
|
|
|
|
|
from .config import dbadmin, dbpassword, server_ip
|
|
|
|
from .config import dbadmin, dbpassword, server_ip
|
|
|
|
from .helper import normalize_trigrams
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ______________________________________________________________________________
|
|
|
|
# ______________________________________________________________________________
|
|
|
|
# database connexion
|
|
|
|
# database connexion
|
|
|
|
@ -36,7 +36,9 @@ helpers = actesdb["helpers"]
|
|
|
|
# storage extractor utilities
|
|
|
|
# storage extractor utilities
|
|
|
|
|
|
|
|
|
|
|
|
def make_acteid_from_route(house=None, prince=None, date_and_item=None):
|
|
|
|
def make_acteid_from_route(house=None, prince=None, date_and_item=None):
|
|
|
|
"/acte/Anjou/Isabelle_i/1441_08_05a -> anj_isa_i_1441_08_05a"
|
|
|
|
"""
|
|
|
|
|
|
|
|
/acte/Anjou/Isabelle_i/1441_08_05a -> anj_isa_i_1441_08_05a
|
|
|
|
|
|
|
|
"""
|
|
|
|
return "_".join([trigram_house(house), bigram_prince(prince), date_and_item])
|
|
|
|
return "_".join([trigram_house(house), bigram_prince(prince), date_and_item])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -72,10 +74,17 @@ def extract_prince_in_house(house, prince_code):
|
|
|
|
if pr['prince_code'] == prince_code:
|
|
|
|
if pr['prince_code'] == prince_code:
|
|
|
|
return pr
|
|
|
|
return pr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def normalize_trigrams(trigram):
|
|
|
|
|
|
|
|
"""normalizes names, usefull for the uris routes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sample: Alençon -> Alencon
|
|
|
|
|
|
|
|
Orléans -> Orleans
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
return {unidecode(value):key for key, value in trigram.items()}
|
|
|
|
|
|
|
|
|
|
|
|
# ______________________________________________________________________________
|
|
|
|
# ______________________________________________________________________________
|
|
|
|
# in memory storage extracted 'meta' informations upon the database
|
|
|
|
# in memory storage extracted 'meta' informations upon the database
|
|
|
|
# TODO: if it takes too much time at launch, put it in something like
|
|
|
|
# TODO: if it takes too much time at startup, jsut put it in something like
|
|
|
|
# a `flask init` procedure
|
|
|
|
# a `flask init` procedure
|
|
|
|
|
|
|
|
|
|
|
|
helpers_dicts = helpers.find_one()
|
|
|
|
helpers_dicts = helpers.find_one()
|
|
|
|
@ -83,10 +92,13 @@ house_trigram = helpers_dicts["house_trigram"]
|
|
|
|
prince_bigram = helpers_dicts["prince_bigram"]
|
|
|
|
prince_bigram = helpers_dicts["prince_bigram"]
|
|
|
|
princes_in_houses = extract_princes_in_houses()
|
|
|
|
princes_in_houses = extract_princes_in_houses()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
house_trigram sample:
|
|
|
|
house_trigram sample:
|
|
|
|
{'Alencon': 'alb', 'Anjou': 'anj', 'Armagnac': 'arm', 'Bourbon': 'brb', 'Bretagne': 'bre', 'Bourgogne': 'brg', 'Berry': 'bry', 'Orleans': 'orl', 'Savoie': 'sav'}
|
|
|
|
{'Alencon': 'alb', 'Anjou': 'anj', 'Armagnac': 'arm', 'Bourbon': 'brb', 'Bretagne': 'bre', 'Bourgogne': 'brg', 'Berry': 'bry', 'Orleans': 'orl', 'Savoie': 'sav'}
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
house_trigram = normalize_trigrams(house_trigram)
|
|
|
|
house_trigram = normalize_trigrams(house_trigram)
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
prince_bigram sample:
|
|
|
|
prince_bigram sample:
|
|
|
|
|