@ -34,7 +34,7 @@ def extract_princes_in_houses():
""" Extracts all princes from a house
""" Extracts all princes from a house
by queries in the storage , ( not by using csv metadatas )
by queries in the storage , ( not by using csv metadatas )
sample :
sample :
>> > extract_princes_in_houses [ ' anjou ' ]
>> > extract_princes_in_houses [ ' anjou ' ]
[ { ' prince_name ' : " Louis Ier d ' Anjou " , ' prince_code ' : ' lo_i ' } , { ' prince_name ' : " Louis III d ' Anjou " , ' prince_code ' : ' lo_iii ' } , { ' prince_name ' : ' Isabelle de Lorraine ' , ' prince_code ' : ' isa_i ' } , { ' prince_name ' : " Louis II d ' Anjou " , ' prince_code ' : ' lo_ii ' } , { ' prince_name ' : ' Marie de Blois ' , ' prince_code ' : ' mar_i ' } , { ' prince_name ' : " René d ' Anjou " , ' prince_code ' : ' re_i ' } , { ' prince_name ' : " Yollande d ' Aragon " , ' prince_code ' : ' yol_i ' } ]
[ { ' prince_name ' : " Louis Ier d ' Anjou " , ' prince_code ' : ' lo_i ' } , { ' prince_name ' : " Louis III d ' Anjou " , ' prince_code ' : ' lo_iii ' } , { ' prince_name ' : ' Isabelle de Lorraine ' , ' prince_code ' : ' isa_i ' } , { ' prince_name ' : " Louis II d ' Anjou " , ' prince_code ' : ' lo_ii ' } , { ' prince_name ' : ' Marie de Blois ' , ' prince_code ' : ' mar_i ' } , { ' prince_name ' : " René d ' Anjou " , ' prince_code ' : ' re_i ' } , { ' prince_name ' : " Yollande d ' Aragon " , ' prince_code ' : ' yol_i ' } ]
"""
"""
@ -44,19 +44,19 @@ def extract_princes_in_houses():
query = list ( actecol . aggregate ( [ { " $match " : { " house " : housename } } , { ' $group ' : { ' _id ' : { ' prince_name ' : ' $prince_name ' , ' prince_code ' : ' $prince_code ' } } } ] ) )
query = list ( actecol . aggregate ( [ { " $match " : { " house " : housename } } , { ' $group ' : { ' _id ' : { ' prince_name ' : ' $prince_name ' , ' prince_code ' : ' $prince_code ' } } } ] ) )
princes_in_houses [ housename ] = [ pr [ ' _id ' ] for pr in query ]
princes_in_houses [ housename ] = [ pr [ ' _id ' ] for pr in query ]
return princes_in_houses
return princes_in_houses
def normalize_trigrams ( trigram ) :
def normalize_trigrams ( trigram ) :
""" normalizes names, usefull for the uris routes
""" normalizes names, usefull for the uris routes
sample : Alençon - > Alencon
sample : Alençon - > Alencon
Orléans - > Orleans
Orléans - > Orleans
"""
"""
return { unidecode ( value ) : key for key , value in trigram . items ( ) }
return { unidecode ( value ) : key for key , value in trigram . items ( ) }
# ______________________________________________________________________________
# ______________________________________________________________________________
# in memory storage extracted meta informations on the database
# in memory storage extracted meta informations on the database
# TODO: if it takes too much time at launch, put it in something like
# TODO: if it takes too much time at launch, put it in something like
# a `flask init` procedure
# a `flask init` procedure
helpers_dicts = helpers . find_one ( )
helpers_dicts = helpers . find_one ( )
@ -134,13 +134,14 @@ def actes(house):
# if (prince_name, prince_code) not in princes:
# if (prince_name, prince_code) not in princes:
# princes.append((prince_name, prince_code))
# princes.append((prince_name, prince_code))
# [('Louis II de Bourbon', 'lo_ii'), ('Anne Dauphine', 'ann_i'), ('Agnès de Bourgogne', 'agn_i'), ('Charles Ier de Bourbon', 'ch_i')]
# [('Louis II de Bourbon', 'lo_ii'), ('Anne Dauphine', 'ann_i'), ('Agnès de Bourgogne', 'agn_i'), ('Charles Ier de Bourbon', 'ch_i')]
#princes = princes_in_houses[house]
princes = princes_in_houses [ house ]
#princes = [(prc['prince_name'], prc['prince_code']) for prc in princes]
# TODO : modify the jinja template and suppress this line
princes = [ ( prc [ ' prince_name ' ] , prc [ ' prince_code ' ] ) for prc in princes ]
# [('Agnès de Bourgogne', 'agn_i'), ('Anne Dauphine', 'ann_i'), ('Charles Ier de Bourbon', 'ch_i'), ('Louis II de Bourbon', 'lo_ii')
# [('Agnès de Bourgogne', 'agn_i'), ('Anne Dauphine', 'ann_i'), ('Charles Ier de Bourbon', 'ch_i'), ('Louis II de Bourbon', 'lo_ii')
return render_template ( " corpus.html " , house = house . capitalize ( ) , princes = princes )
return render_template ( " corpus.html " , house = house . capitalize ( ) , princes = princes )
@main.route ( " /actes/<house>/<prince> " ) # don't put a slash at the end
@main.route ( " /actes/<house>/<prince> " ) # don't put a slash at the end
def prince_corpus ( house = None , prince = None ) :
def prince_corpus ( house = None , prince = None ) :