Skip to content

Instantly share code, notes, and snippets.

@TheophileWalter
Created November 29, 2018 16:47
Show Gist options
  • Select an option

  • Save TheophileWalter/de4c61773be624800bac94aaf420a4ef to your computer and use it in GitHub Desktop.

Select an option

Save TheophileWalter/de4c61773be624800bac94aaf420a4ef to your computer and use it in GitHub Desktop.
# Excuses SNCF
# Les genres
M = 0
F = 1
# Les mots
sujet = ['Le traffic ', 'La circulation des trains ', 'Le fonctionnement de la ligne ', 'L\'horaire du prochain train ']
sujet_genre = [M, F, M, M]
consequence = [['est perturbé ',
'est interrompu ',
'est modifié ',
'est diminué ',
'est réduit ',
'est retardé ',
'est allégé ',
'est adapté '],
['est perturbée ',
'est interrompue ',
'est modifiée ',
'est diminuée ',
'est réduite ',
'est retardée ',
'est allégée ',
'est adaptée ']]
pre_ligne = ['sur la ligne ']
ligne = ['A ', 'B ', 'C ', 'D ', 'E ', 'H ', 'J ', 'K ', 'L ', 'N ', 'P ', 'R ']
intro = ['en raison d\'', 'à cause d\'', 'dû à ', 'suite à ', 'en conséquence d\'']
excuse = ['un train de marchandise retardé ',
'un manque d\'adhérence causé par des feuilles mortes sur les voies ',
'un signal d\'alarme tiré sans motif ',
'une utilisation abusive du signal d\'alarme ',
'un mouvement social ',
'un signalement de personnes sur les voies ',
'un problème de signalisation ',
'un défaut de pilotage ',
'un manque de personnel ',
'une sur-exploitation du matériél ',
'un problème d\'aiguillage ',
'un passage à niveau déffectueu ',
'un affaissement de terrain ',
'une importante chute de neige ',
'une innondation ',
'une rupture de caténaire ',
'un problème d\'alimentation éléctrique ',
'une dégradation de matériel ',
'un incident voyageur ',
'un incident grave voyageur ',
'un malaise voyageur ',
'un problème technique sur le train précédent ']
pre_lieu = ['en gare de ',
'à l\'approche de ',
'dans le secteur de ']
# Liste des stations par ligne (RER et Metro)
stations = {'A ': ['LE VESINET-LE-PECQ',
'TORCY',
'NANTERRE-PREFECTURE',
'NANTERRE-VILLE',
'RUEIL-MALMAISON',
'LOGNES',
'JOINVILLE-LE-PONT',
'CHAMPIGNY',
'ST-MAUR-CRETEIL',
'SUCY-BONNEUIL',
'BOISSY-ST-LEGER',
'CHATOU-CROISSY',
'VAL D\'EUROPE',
'FONTENAY-SOUS-BOIS',
'NOISY-LE-GRAND MONT-D\'EST',
'NOGENT-SUR-MARNE',
'NEUILLY-PLAISANCE',
'NOISY-CHAMPS',
'LE VESINET-CENTRE',
'AUBER',
'BUSSY-ST-GEORGES',
'BRY-SUR-MARNE',
'LA VARENNE-CHENNEVIERES',
'CHARLES DE GAULLE ETOILE',
'LE PARC-ST-MAUR',
'ST-GERMAIN-EN-LAYE',
'MARNE-LA-VALLEE CHESSY',
'VINCENNES',
'NATION',
'NOISIEL'],
'B ': ['VILLEPINTE',
'LE BOURGET',
'LA COURNEUVE-AUBERVILLIERS',
'ANTONY',
'BAGNEUX (PONT ROYAL)',
'ST-REMY-LES-CHEVREUSE',
'DENFERT-ROCHEREAU',
'AEROPORT CHARLES-DE-GAULLE 1',
'GENTILLY',
'ARCUEIL-CACHAN',
'COURCELLE-SUR-YVETTE',
'BURES-SUR-YVETTE',
'VILLEPARISIS MITRY-LE-NEUF',
'BLANC-MESNIL',
'LA-PLAINE-STADE-DE-FRANCE',
'BOURG-LA-REINE',
'LA CROIX-DE-BERNY',
'LAPLACE',
'PALAISEAU',
'LOZERE',
'GIF-SUR-YVETTE',
'AEROPORT CHARLES-DE-GAULLE 2 TGV',
'SEVRAN-LIVRY',
'PARC-DE-SCEAUX',
'LES BACONNETS',
'PALAISEAU-VILLEBON',
'PARC DES EXPOSITIONS',
'VERT-GALANT',
'DRANCY',
'CITE UNIVERSITAIRE',
'FONTENAY-AUX-ROSES',
'SCEAUX',
'ROBINSON',
'FONTAINE-MICHALON',
'LE GUICHET',
'ORSAY-VILLE',
'LA HACQUINIERE',
'PORT ROYAL',
'LUXEMBOURG',
'SEVRAN-BEAUDOTTES'],
'C ': ['EPINAY-SUR-SEINE',
'LES GRESILLONS',
'JAVEL',
'VERSAILLES R.G',
'PETIT-JOUY-LES-LOGES',
'JOUY-EN-JOSAS',
'CHEMIN-D\'ANTONY',
'ORLY VILLE',
'CHOISY-LE-ROI',
'IGNY',
'LONGJUMEAU',
'CHILLY-MAZARIN',
'ST-CHERON',
'DOURDAN',
'CHAMARANDE',
'ETAMPES',
'ST-GRATIEN',
'GARE D\'AUSTERLITZ',
'PEREIRE-LEVALLOIS',
'CHAVILLE-VELIZY',
'MEUDON-VAL-FLEURY',
'IVRY-SUR-SEINE',
'LES SAULES',
'RUNGIS-LA-FRATERNELLE',
'EPINAY-SUR-ORGE',
'BRETIGNY',
'MAROLLES-EN-HUREPOIX',
'BREUILLET-BRUYERES-LE-CHATEL',
'GENNEVILLIERS',
'PORCHEFONTAINE',
'ISSY-VAL-DE-SEINE',
'ABLON',
'ATHIS-MONS',
'GRAVIGNY-BALIZY',
'ST-MICHEL-SUR-ORGE',
'ARPAJON',
'EGLY',
'LARDY',
'PONT DE L\'ALMA',
'PORTE DE CLICHY',
'AV. PDT KENNEDY - MAISON DE RADIO FRANCE',
'STE-GENEVIEVE-DES-BOIS',
'BREUILLET-VILLAGE',
'DOURDAN-LA-FORET',
'SERMAISE',
'BOURAY',
'INVALIDES',
'ST-OUEN',
'VITRY-SUR-SEINE',
'LES ARDOINES',
'PONT-DE-RUNGIS-AEROPORT D\'ORLY',
'VILLENEUVE-LE-ROI',
'BIBLIOTHEQUE FRANCOIS MITTERAND',
'BD VICTOR - PONT DU GARIGLIANO',
'VAUBOYEN',
'ISSY',
'BIEVRES',
'SAVIGNY-SUR-ORGE',
'PETIT-VAUX',
'ST-MARTIN-D\'ETAMPES',
'BOULAINVILLIERS',
'AV. FOCH',
'AV. HENRI MARTIN',
'LA NORVILLE-ST-GERMAIN-LES-ARPAJON',
'ETRECHY',
'MUSEE D\'ORSAY',
'CHAMP-DE-MARS TOUR-EIFFEL',
'NEUILLY-PORTE MAILLOT'],
'D ': ['VILLENEUVE-PRAIRIE',
'VILLENEUVE-ST-GEORGES',
'VIGNEUX-SUR-SEINE',
'RIS-ORANGIS',
'LE PLESSIS-CHENET',
'BOUSSY-ST-ANTOINE',
'CESSON',
'BOISSISE-LE-ROI',
'CORBEIL-ESSONNES',
'BALLANCOURT',
'LA FERTE-ALAIS',
'BOIGNEVILLE',
'LES NOUES',
'VILLIERS-LE-BEL-GONESSE-ARNOUVILLE',
'GARGES-SARCELLES',
'STADE-DE-FRANCE-SAINT-DENIS',
'VIRY-CHATILLON',
'SAVIGNY-LE-TEMPLE-NANDY',
'LE MEE',
'PONTHIERRY-PRINGY',
'EVRY',
'LE BRAS-DE-FER',
'SURVILLIERS-FOSSES',
'LOUVRES',
'MAISONS-ALFORT-ALFORTVILLE',
'COUDRAY-MONTCEAUX',
'BOUTIGNY',
'MAISSE',
'VILLENEUVE-TRIAGE',
'MONTGERON-CROSNE',
'COMBS-LA-VILLE-QUINCY',
'LIEUSAINT-MOISSY',
'ST-FARGEAU',
'MOULIN-GALANT',
'GOUSSAINVILLE',
'PIERREFITTES-STAINS',
'LE VERT-DE-MAISONS',
'YERRES',
'BRUNOY',
'VOSVES',
'GRAND-BOURG',
'ORANGIS-BOIS-DE-L\'EPINE',
'ESSONNES-ROBINSON',
'VILLABE',
'MENNECY',
'EVRY-COURCOURONNES',
'GRIGNY-CENTRE',
'BUNO-GIRONVILLE'],
'E ': ['ROSNY-BOIS-PERRIER',
'ROSNY-SOUS-BOIS',
'PANTIN',
'EMERAINVILLE-PONTAULT-COMBAULT',
'OZOIR-LA-FERRIERE',
'LES BOULLEREAUX-CHAMPIGNY',
'GAGNY',
'LES YVRIS NOISY-LE-GRAND',
'CHENAY-GAGNY',
'NOISY-LE-SEC',
'ROISSY-EN-BRIE',
'NOGENT-LE-PERREUX',
'VILLIERS-SUR-MARNE-PLESSIS-TREVISE',
'HAUSSMANN ST-LAZARE',
'LE RAINCY-VILLEMOMBLE-MONTFERMEIL',
'BONDY',
'MAGENTA'],
'H ': ['PERSAN-BEAUMONT',
'PRESLES-COURCELLES',
'BELLOY-ST-MARTIN',
'VALMONDOIS',
'AUVERS-SUR-OISE',
'FREPILLON',
'DEUIL-MONTMAGNY',
'ENGHIEN-LES-BAINS',
'CHAMPAGNE-SUR-OISE',
'MONTSOULT-MAFFLIERS',
'CHAPONVAL',
'PONT-PETIT',
'VIARMES',
'TAVERNY',
'VAUCELLES',
'ST-LEU-LA-FORET',
'EPINAY-VILLETANEUSE',
'BESSANCOURT',
'GROS-NOYER-ST-PRIX',
'VILLAINES',
'L\'ISLE-ADAM-PARMAIN',
'NOINTEL-MOURS',
'ECOUEN-EZANVILLE',
'MERY-SUR-OISE',
'DOMONT',
'GROSLAY',
'SARCELLES-ST-BRICE',
'BRUYERE-SUR-OISE',
'SEUGY',
'LUZARCHES',
'BOUFFEMONT-MOISSELLES',
'MERIEL',
'EPLUCHES',
'ERMONT-HALTE',
'CHAMP DE COURSES D\'ENGHIEN',
'LA BARRE-ORMESSON'],
'J ': ['SANTEUIL-LE-PERCHAY',
'MONTGEROULT-COURCELLES',
'OSNY',
'ROSNY-SUR-SEINE',
'JUZIERS',
'LES CLAIRIERES-DE-VERNEUIL',
'AUBERGENVILLE-ELISABETHVILLE',
'MEULAN-HARDRICOURT',
'LES MUREAUX',
'VERNOUILLET-VERNEUIL',
'TRIEL-SUR-SEINE',
'ST-OUEN-L\'AUMONE (QUARTIER DE L\'EGLISE)',
'HERBLAY',
'MAURECOURT',
'LA FRETTE-MONTIGNY',
'LIMAY',
'VILLENNES-SUR-SEINE',
'ARGENTEUIL',
'LE STADE',
'US',
'BOISSY-L\'AILLERIE',
'ERAGNY-NEUVILLE',
'CORMEILLES-EN-PARISIS',
'PORT VILLEZ',
'BONNIERES',
'VAUX-SUR-SEINE',
'CONFLANS-STE-HONORINE',
'SANNOIS',
'COLOMBES',
'BOIS-COLOMBES',
'CHARS',
'GARGENVILLE',
'ISSOU-PORCHEVILLE',
'THUN-LE-PARADIS',
'ANDRESY',
'CHANTELOUP-LES-VIGNES',
'VAL-D\'ARGENTEUIL'],
'K ': ['DAMMARTIN-JUILLY-ST-MARD',
'THIEUX-NANTOUILLET',
'COMPANS'],
'L ': ['ST-GERMAIN G.C.',
'MARLY-LE-ROI',
'LOUVECIENNES',
'CLICHY-LEVALLOIS',
'VAUCRESSON',
'SEVRES-VILLE-D\'AVRAY',
'LA GARENNE-COLOMBES',
'L\'ETANG-LA-VILLE',
'COURBEVOIE',
'GARCHES-MARNES-LA-COQUETTE',
'PONT-CARDINET',
'NOISY-LE-ROI',
'MONTREUIL',
'ST-GERMAIN-BEL-AIR-FOURQUEUX',
'MAREIL-MARLY',
'BECON-LES-BRUYERES',
'VIROFLAY R.D.',
'CHAVILLE R.D.',
'ST-NOM-LA-BRETECHE-FORET-DE-MARLY',
'VERSAILLES R.D',
'LA CELLE-ST-CLOUD',
'LES VALLEES',
'BOUGIVAL'],
'N ': ['BEYNES',
'VILLEPREUX-LES-CLAYES',
'RAMBOUILLET',
'NEZEL-AULNAY',
'PLAISIR-GRIGNON',
'FONTENAY-LE-FLEURY',
'BELLEVUE',
'CHAVILLE R.G',
'LES-ESSARTS-LE-ROI',
'MAULE',
'MAREIL-SUR-MAULDRE',
'VILLIERS-NEAUPHLE PONCHARTRAIN',
'SEVRES R.G',
'CLAMART',
'LE PERRAY',
'PARIS MONTPARNASSE',
'TACOIGNIERES-RICHEBOURG',
'MONFORT-L\'AMAURY-MERE',
'VANVES-MALAKOFF',
'ORGERUS-BEHOUST',
'GARANCIERES-LA QUEUE',
'HOUDAN',
'PLAISIR-LES-CLAYES',
'COIGNIERES',
'MEUDON'],
'P ': ['CHANGIS-ST-JEAN',
'VAIRES-TORCY',
'PARIS EST',
'VILLIERS-MONTBARBIN',
'MORTCERF',
'MARLES-EN-BRIE',
'STE-COLOMBE SEPTVEILLES',
'LES CHAMPS-FORTS',
'TRILPORT',
'LA FERTE-SOUS-JOUARRE',
'LONGUEVILLE',
'VERNEUIL-L\'ETANG',
'CROUY-SUR-OURCQ',
'LIZY-SUR-OURCQ',
'NANTEUIL-SAACY',
'MEAUX',
'ESBLY',
'LAGNY-THORIGNY',
'GUERARD-LA-CELLE-SUR-MORIN',
'FAREMOUTIERS-POMMEUSE',
'CHAMPBENOIST-POIGNY',
'MORMANT',
'ISLES-ARMENTIERES-CONGIS',
'MOUROUX',
'COULOMMIERS',
'COUILLY-ST-GERMAIN-QUINCY',
'CRECY-EN-BRIE-LA-CHAPELLE',
'PROVINS',
'MONTRY-CONDE',
'NANGIS'],
'R ': ['PARIS LYON',
'FONTAINE-LE-PORT',
'CHAMPAGNE-SUR-SEINE',
'ST-MAMMES',
'MONTIGNY-SUR-LOING',
'MONTEREAU',
'LIVRY-SUR-SEINE',
'FONTAINEBLEAU-AVON',
'SOUPPES-CHATEAU-LANDON',
'THOMERY',
'BOURRON-MARLOTTE-GREZ',
'NEMOURS-ST-PIERRE',
'CHARTRETTES',
'BOIS-LE-ROI',
'HERICY',
'VULAINES-SUR-SEINE-SAMOREAU',
'VERNOU-SUR-SEINE',
'LA GRANDE PAROISSE',
'BAGNEAUX-SUR-LOING',
'MORET-VENEUX-LES-SABLONS']}
# La suite
from random import randint
consequence2 = [' entrainant un retard de %s minutes. ',
' entrainant la suppression du prochain train à destination de %s. ']
gen_consequence2 = [lambda _: str(randint(2, 10)*5), lambda ligne: random_array(stations[ligne])]
affichage = ['L\'affichage en gare tient compte de ces modifications. ',
'Merci de rester attentifs aux annonces en cas de modifications. ']
remerciement = ['Merci de votre attention.',
'Prochain point d\'information dans 15 minutes.']
# Tire une valeur aléatoire dans un tableau
def random_array(array):
return array[randint(0, len(array)-1)]
# Tirage
i_sujet = randint(0, len(sujet)-1)
t_sujet = sujet[i_sujet]
g_sujet = sujet_genre[i_sujet]
t_consequence = random_array(consequence[g_sujet])
t_pre_ligne = random_array(pre_ligne)
t_ligne = random_array(ligne)
t_intro = random_array(intro)
t_excuse = random_array(excuse)
t_pre_lieu = random_array(pre_lieu)
t_station = random_array(stations[t_ligne])
i_consequence2 = randint(0, len(consequence2)-1)
t_consequence2 = consequence2[i_consequence2] % gen_consequence2[i_consequence2](t_ligne)
t_affichage = random_array(affichage)
t_remerciement = random_array(remerciement)
# Affichage de la phrase
print(t_sujet + t_consequence + t_pre_ligne + t_ligne + t_intro + t_excuse + t_pre_lieu + t_station + t_consequence2 + t_affichage + t_remerciement)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment