def get_fournisseur(texte): reponse = "" position_debut_prefixe = -1 position_debut_suffixe = -1 prefixe_suffixe = [ ["Accorder un contrat à ", " pour "], ["Accorder des contrats à ", " pour "], ["Accorder un contrat à ", " d'une durée de "], ["Accorder un contrat à l'entreprise ", " pour les travaux de "], ["Accorder un contrat à la firme ", " pour les travaux "], ["Accorder un contrat à les ", " pour l'achat "], ["Accorder un contrat de services professionnels à ", " pour "], ["Accorder à la firme ", " un contrat de "], ["Conclure avec la firme ", "une entente-cadre "], ["Conclure 2 ententes-cadres avec ", " pour des travaux "], [ "Conclure une entente-cadre de services professionnels avec ", " pour la réalisation " ], ["Conclure avec ", " une entente-cadre "], [" de gré à gré à la ", " pour l'achat "], ["Accorder un soutien financier de ", " pour réaliser "] ] #1. Rechercher le fournisseuur à partir de la liste de référence with open( FICHIER_FOURNISSEUR, "r", encoding="utf-8", ) as f: reader = csv.reader(f, delimiter=";") for ligne in reader: temp_fournisseur = ligne[0] + " " temp_fournisseur = temp_fournisseur.strip() if temp_fournisseur in texte: reponse = temp_fournisseur #2. Le fournisseur n'a pas été trouvé dans la liste de référence # on fait alors une recherche avec les termes clés # se trouvant avant et après le nom du fournisseur if not reponse: for i in prefixe_suffixe: position_debut_prefixe = texte.find(i[0]) if position_debut_prefixe > -1: position_debut_suffixe = texte.find( i[1], position_debut_prefixe + len(i[0])) if position_debut_suffixe > -1: reponse = mid( texte, position_debut_prefixe + len(i[0]), position_debut_suffixe - position_debut_prefixe - len(i[0])) break #Enlever s'il y a une virgule après le nom #On ne fait pas un replace car il peut y avoir des virgules valides dans le nom du fournisseur if reponse: reponse = reponse.strip() #Le strip() ne semble pas fonctionner if right(reponse, 1) == ",": reponse = left(reponse, len(reponse) - 1) if right(reponse, 2) == ", ": reponse = left(reponse, len(reponse) - 2) return reponse
def get_fournisseur(texte): reponse = "" position_debut_prefixe = -1 position_debut_suffixe = -1 prefixe_suffixe = [["Accorder un contrat à ", " pour "], ["Accorder des contrat à ", " pour "], ["Accorder un contrat à ", " d'une durée de "], ["Accorder un contrat à l'entreprise ", " pour les travaux de "], ["Accorder un contrat à la firme ", " pour les travaux "], ["Accorder un contrat à les ", " pour l'achat "], ["Accorder un contrat de services professionnels à ", " pour "], ["Accorder à la firme ", " un contrat de "], ["Conclure avec la firme ", "une entente-cadre "], ["Conclure 2 ententes-cadres avec "," pour des travaux "], ["Conclure une entente-cadre de services professionnels avec ", " pour la réalisation "], [" Conclure avec ", " une entente-cadre "], [" de gré à gré à la ", " pour l'achat "], ["Accorder un soutien financier de ", " pour réaliser "] ] #1. Rechercher le fournisseuur à partir de la liste de référence with open(FICHIER_FOURNISSEUR, "r", encoding = "utf-8", ) as f: reader = csv.reader(f, delimiter = ";") for ligne in reader: temp_fournisseur = ligne[0] + " " temp_fournisseur = temp_fournisseur.strip() if temp_fournisseur in texte: reponse = temp_fournisseur #2. Le fournisseur n'a pas été trouvé dans la liste de référence # on fait alors une recherche avec les termes clés # se trouvant avant et après le nom du fournisseur if not reponse: for i in prefixe_suffixe: position_debut_prefixe = texte.find(i[0]) if position_debut_prefixe > -1: position_debut_suffixe = texte.find(i[1], position_debut_prefixe + len(i[0])) if position_debut_suffixe > -1: reponse = mid(texte, position_debut_prefixe + len(i[0]), position_debut_suffixe - position_debut_prefixe - len(i[0])) break #Enlever s'il y a une virgule après le nom #On ne fait pas un replace car il peut y avoir des virgules valides dans le nom du fournisseur if reponse: reponse = reponse.strip() #Le strip() ne semble pas fonctionner if right(reponse, 1) == ",": reponse = left(reponse, len(reponse) - 1) if right(reponse, 2) == ", ": reponse = left(reponse, len(reponse) - 2) return reponse
def get_data(): train = pd.read_csv("../public/train.csv") entbase_ = entbase() train = merge(train, entbase_) print("basic done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del entbase_ alter_ = alter() train = merge(train, alter_) print("alter done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del alter_ branch_ = branch() train = merge(train, branch_) print("branch done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del branch_ invest_ = invest() train = merge(train, invest_) print("invest done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del invest_ right_ = right() train = merge(train, right_) print("right done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del right_ project_ = project() train = merge(train, project_) print("project done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del project_ lawsuit_ = lawsuit() train = merge(train, lawsuit_) print("lawsuit done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del lawsuit_ breakfaith_ = breakfaith() train = merge(train, breakfaith_) print("breakfaith done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del breakfaith_ recruit_ = recruit() train = merge(train, recruit_) print("recruit done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del recruit_ qualification_ = qualification() train = merge(train, qualification_) print("qualification done in " + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) del qualification_ return train
def informer_nouveaux_contrats(a_verifier): message = "" CONTRATS_TRAITES = "C:\\ContratsOuvertsMtl\\contrats_traites.csv" # 0 instance # 1 date_rencontre # 2 no_decision # 3 titre # 4 no_dossier # 5 instance_reference # 6 no_appel_offres # 7 nbr_soumissions # 8 pour # 9 texte_contrat # 10 fournisseur # 11 montant # 12 type_contrat # 13 huis_clos # 14 source # 15 date_traitement afficher_statut_traitement("Début du traitement informer_nouveaux_contrats") with open(CONTRATS_TRAITES, "r", encoding = "utf-8", ) as f: reader = csv.reader(f, delimiter = ";") for ligne in reader: #Ne pas considérer la 1re ligne du nom des champs if "instance" not in ligne: instance = ligne[0] date_rencontre = ligne[1] no_decision = ligne[2] titre = ligne[3] no_dossier = ligne[4] instance_reference = ligne[5] no_appel_offres = ligne[6] nbr_soumissions = ligne[7] pour = ligne[8] texte_contrat = ligne[9] fournisseur = ligne[10] montant = ligne[11] type_contrat = ligne[12] huis_clos = ligne[13] source = ligne[14] date_traitement = ligne[15] #S'il y a un montant, un fournisseur, un tire et le texte du contrat if montant and fournisseur and titre and texte_contrat: message = instance + " " + right(date_rencontre,5) + "|" + formatter_montant(montant) + " à " + fournisseur + "|" + titre + "|" + texte_contrat #S'il y a un montant et un fournisseur if montant and fournisseur and texte_contrat: message = instance + " " + right(date_rencontre,5) + "|" + formatter_montant(montant) + " à " + fournisseur + "|" + texte_contrat #Il y a seulement un fournisseur elif fournisseur and not titre and not montant and texte_contrat: message = instance + " " + right(date_rencontre,5) + "|Contrat à " + fournisseur + "|" + texte_contrat #Décision en huis clos elif "huis clos" in titre: message = instance + " " + right(date_rencontre,5) + "|Décision " + no_decision + " prise en huis clos." + "|" + texte_contrat else: message = instance + " " + right(date_rencontre,5) + "|" + texte_contrat if message and len(message) > 128: message = left(message, 128) + "..." message = message + " #polmtl" message = message.strip() if message is not " #polmtl" or right(message,9) is not ". #polmtl": print("----") print(message) envoyer_twit(message) afficher_statut_traitement("Fin du traitement informer_nouveaux_contrats")
def informer_nouveaux_contrats(a_verifier): message = "" CONTRATS_TRAITES = "C:\\ContratsOuvertsMtl\\contrats_traites.csv" # 0 instance # 1 date_rencontre # 2 no_decision # 3 titre # 4 no_dossier # 5 instance_reference # 6 no_appel_offres # 7 nbr_soumissions # 8 pour # 9 texte_contrat # 10 fournisseur # 11 montant # 12 type_contrat # 13 huis_clos # 14 source # 15 date_traitement afficher_statut_traitement( "Début du traitement informer_nouveaux_contrats") with open( CONTRATS_TRAITES, "r", encoding="utf-8", ) as f: reader = csv.reader(f, delimiter=";") for ligne in reader: #Ne pas considérer la 1re ligne du nom des champs if "instance" not in ligne: instance = ligne[0] date_rencontre = ligne[1] no_decision = ligne[2] titre = ligne[3] no_dossier = ligne[4] instance_reference = ligne[5] no_appel_offres = ligne[6] nbr_soumissions = ligne[7] pour = ligne[8] texte_contrat = ligne[9] fournisseur = ligne[10] montant = ligne[11] type_contrat = ligne[12] huis_clos = ligne[13] source = ligne[14] date_traitement = ligne[15] #S'il y a un montant, un fournisseur, un tire et le texte du contrat if montant and fournisseur and titre and texte_contrat: message = instance + " " + right( date_rencontre, 5 ) + "|" + formatter_montant( montant ) + " à " + fournisseur + "|" + titre + "|" + texte_contrat #S'il y a un montant et un fournisseur if montant and fournisseur and texte_contrat: message = instance + " " + right( date_rencontre, 5) + "|" + formatter_montant( montant ) + " à " + fournisseur + "|" + texte_contrat #Il y a seulement un fournisseur elif fournisseur and not titre and not montant and texte_contrat: message = instance + " " + right( date_rencontre, 5) + "|Contrat à " + fournisseur + "|" + texte_contrat #Décision en huis clos elif "huis clos" in titre: message = instance + " " + right( date_rencontre, 5 ) + "|Décision " + no_decision + " prise en huis clos." + "|" + texte_contrat else: message = instance + " " + right(date_rencontre, 5) + "|" + texte_contrat if message and len(message) > 128: message = left(message, 128) + "..." message = message + " #polmtl" message = message.strip() if message is not " #polmtl" or right(message, 9) is not ". #polmtl": print("----") print(message) envoyer_twit(message) afficher_statut_traitement("Fin du traitement informer_nouveaux_contrats")