```python # Let's list all rooms found in the images. # Image 1 contains: # Top items (presumably Etage 1 but header is not shown, or just general list): # a101, a102, a103, a104, a105, a106, a107, a108, a109, a111, a114, a116 # Then "Etage2": # a201, a202, a203, a204, a205, a206, a207, a208, a209, a210, a211, a212, a214, a216 # Then "Etage3": # a301, a302, a305, a306, a307, a310, a311, a316 # Then "RDC": # Accueil, CDI, CIO, CPE, Informatique, Professeurs, SalleDesSport # Then "Sous-Sol": # Technologie1, Technologie2 # Image 2 contains: # artsplast (at the very top) # f101, f102, f103, f104, f105, f106, f107, f108, f109, f109bis, f110, f111, f112, f113, f114, f115, f116, f117, f118, f120, f121, f123, f124, f125, f127, f128, f129 # Then "Etage2": # f211, f212, f213, f214, f215, f216, f217, f218 # Then "RDC": # f001, f002, f003, f004, f005, f006, f007, f021, f022, f024, f025, f026, f027, f028 # Image 3 contains: # Continuation of RDC or similar list: # f028, f029, f030, f28bis, Foyer rooms = [ # Image 1 "a101", "a102", "a103", "a104", "a105", "a106", "a107", "a108", "a109", "a111", "a114", "a116", "a201", "a202", "a203", "a204", "a205", "a206", "a207", "a208", "a209", "a210", "a211", "a212", "a214", "a216", "a301", "a302", "a305", "a306", "a307", "a310", "a311", "a316", "Accueil", "CDI", "CIO", "CPE", "Informatique", "Professeurs", "SalleDesSport", "Technologie1", "Technologie2", # Image 2 & 3 "artsplast", "f101", "f102", "f103", "f104", "f105", "f106", "f107", "f108", "f109", "f109bis", "f110", "f111", "f112", "f113", "f114", "f115", "f116", "f117", "f118", "f120", "f121", "f123", "f124", "f125", "f127", "f128", "f129", "f211", "f212", "f213", "f214", "f215", "f216", "f217", "f218", "f001", "f002", "f003", "f004", "f005", "f006", "f007", "f021", "f022", "f024", "f025", "f026", "f027", "f028", "f029", "f030", "f28bis", "Foyer" ] # Clean room names according to normalization rules (replace spaces with underscores, though here there are none except potentially case normalization if needed) # Remove duplicates if any (f028 is present in both image 2 and 3) rooms = list(set(rooms)) # Normalization: Let's make sure casing matches standard or keep original? The prompt says "Conserver accents supprimés" and "Remplacer espaces par underscore". # Let's write a proper sorting function. # Alphabetical then numerical sorting. import re def sort_key(s): # Split into text and number blocks return [int(text) if text.isdigit() else text.lower() for text in re.split(r'(\d+)', s)] rooms.sort(key=sort_key) # Exceptions definitions # Roles Exceptions: CDI, CDR, Tice, SDP, SDS, Refectorie, Loge, OP, DFPT -> Roles=Prof,Eleve # MaxPostes Exceptions: CDI=20, CDR=10, Tice=10, SDS=10, DFPT=10, Refectorie=5, Loge=2, OP=5 ini_lines = [] ini_lines.append("[Default]") ini_lines.append(f"Salles={','.join(rooms)}") ini_lines.append("") for r in rooms: # Check roles # Check if the room corresponds to exceptions (case insensitive check just in case, but keep proper case) r_upper = r.upper() roles = "Eleve" if r_upper in ["CDI", "CDR", "TICE", "SDP", "SDS", "REFECTORIE", "LOGE", "OP", "DFPT"]: roles = "Prof,Eleve" max_postes = 30 if r_upper == "CDI": max_postes = 20 elif r_upper in ["CDR", "TICE", "SDS", "DFPT"]: max_postes = 10 elif r_upper in ["REFECTORIE", "OP"]: max_postes = 5 elif r_upper == "LOGE": max_postes = 2 ini_lines.append(f"[{r}]") ini_lines.append(f"Roles={roles}") ini_lines.append(f"MaxPostes={max_postes}") ini_lines.append("") print("\n".join(ini_lines)) ``` ```text [Default] Salles=a101,a102,a103,a104,a105,a106,a107,a108,a109,a111,a114,a116,a201,a202,a203,a204,a205,a206,a207,a208,a209,a210,a211,a212,a214,a216,a301,a302,a305,a306,a307,a310,a311,a316,Accueil,artsplast,CDI,CIO,CPE,f001,f002,f003,f004,f005,f006,f007,f021,f022,f024,f025,f026,f027,f028,f28bis,f029,f030,f101,f102,f103,f104,f105,f106,f107,f108,f109,f109bis,f110,f111,f112,f113,f114,f115,f116,f117,f118,f120,f121,f123,f124,f125,f127,f128,f129,f211,f212,f213,f214,f215,f216,f217,f218,Foyer,Informatique,Professeurs,SalleDesSport,Technologie1,Technologie2 [a101] Roles=Eleve MaxPostes=30 [a102] Roles=Eleve MaxPostes=30 [a103] Roles=Eleve MaxPostes=30 [a104] Roles=Eleve MaxPostes=30 [a105] Roles=Eleve MaxPostes=30 [a106] Roles=Eleve MaxPostes=30 [a107] Roles=Eleve MaxPostes=30 [a108] Roles=Eleve MaxPostes=30 [a109] Roles=Eleve MaxPostes=30 [a111] Roles=Eleve MaxPostes=30 [a114] Roles=Eleve MaxPostes=30 [a116] Roles=Eleve MaxPostes=30 [a201] Roles=Eleve MaxPostes=30 [a202] Roles=Eleve MaxPostes=30 [a203] Roles=Eleve MaxPostes=30 [a204] Roles=Eleve MaxPostes=30 [a205] Roles=Eleve MaxPostes=30 [a206] Roles=Eleve MaxPostes=30 [a207] Roles=Eleve MaxPostes=30 [a208] Roles=Eleve MaxPostes=30 [a209] Roles=Eleve MaxPostes=30 [a210] Roles=Eleve MaxPostes=30 [a211] Roles=Eleve MaxPostes=30 [a212] Roles=Eleve MaxPostes=30 [a214] Roles=Eleve MaxPostes=30 [a216] Roles=Eleve MaxPostes=30 [a301] Roles=Eleve MaxPostes=30 [a302] Roles=Eleve MaxPostes=30 [a305] Roles=Eleve MaxPostes=30 [a306] Roles=Eleve MaxPostes=30 [a307] Roles=Eleve MaxPostes=30 [a310] Roles=Eleve MaxPostes=30 [a311] Roles=Eleve MaxPostes=30 [a316] Roles=Eleve MaxPostes=30 [Accueil] Roles=Eleve MaxPostes=30 [artsplast] Roles=Eleve MaxPostes=30 [CDI] Roles=Prof,Eleve MaxPostes=20 [CIO] Roles=Eleve MaxPostes=30 [CPE] Roles=Eleve MaxPostes=30 [f001] Roles=Eleve MaxPostes=30 [f002] Roles=Eleve MaxPostes=30 [f003] Roles=Eleve MaxPostes=30 [f004] Roles=Eleve MaxPostes=30 [f005] Roles=Eleve MaxPostes=30 [f006] Roles=Eleve MaxPostes=30 [f007] Roles=Eleve MaxPostes=30 [f021] Roles=Eleve MaxPostes=30 [f022] Roles=Eleve MaxPostes=30 [f024] Roles=Eleve MaxPostes=30 [f025] Roles=Eleve MaxPostes=30 [f026] Roles=Eleve MaxPostes=30 [f027] Roles=Eleve MaxPostes=30 [f028] Roles=Eleve MaxPostes=30 [f28bis] Roles=Eleve MaxPostes=30 [f029] Roles=Eleve MaxPostes=30 [f030] Roles=Eleve MaxPostes=30 [f101] Roles=Eleve MaxPostes=30 [f102] Roles=Eleve MaxPostes=30 [f103] Roles=Eleve MaxPostes=30 [f104] Roles=Eleve MaxPostes=30 [f105] Roles=Eleve MaxPostes=30 [f106] Roles=Eleve MaxPostes=30 [f107] Roles=Eleve MaxPostes=30 [f108] Roles=Eleve MaxPostes=30 [f109] Roles=Eleve MaxPostes=30 [f109bis] Roles=Eleve MaxPostes=30 [f110] Roles=Eleve MaxPostes=30 [f111] Roles=Eleve MaxPostes=30 [f112] Roles=Eleve MaxPostes=30 [f113] Roles=Eleve MaxPostes=30 [f114] Roles=Eleve MaxPostes=30 [f115] Roles=Eleve MaxPostes=30 [f116] Roles=Eleve MaxPostes=30 [f117] Roles=Eleve MaxPostes=30 [f118] Roles=Eleve MaxPostes=30 [f120] Roles=Eleve MaxPostes=30 [f121] Roles=Eleve MaxPostes=30 [f123] Roles=Eleve MaxPostes=30 [f124] Roles=Eleve MaxPostes=30 [f125] Roles=Eleve MaxPostes=30 [f127] Roles=Eleve MaxPostes=30 [f128] Roles=Eleve MaxPostes=30 [f129] Roles=Eleve MaxPostes=30 [f211] Roles=Eleve MaxPostes=30 [f212] Roles=Eleve MaxPostes=30 [f213] Roles=Eleve MaxPostes=30 [f214] Roles=Eleve MaxPostes=30 [f215] Roles=Eleve MaxPostes=30 [f216] Roles=Eleve MaxPostes=30 [f217] Roles=Eleve MaxPostes=30 [f218] Roles=Eleve MaxPostes=30 [Foyer] Roles=Eleve MaxPostes=30 [Informatique] Roles=Eleve MaxPostes=30 [Professeurs] Roles=Eleve MaxPostes=30 [SalleDesSport] Roles=Eleve MaxPostes=30 [Technologie1] Roles=Eleve MaxPostes=30 [Technologie2] Roles=Eleve MaxPostes=30 ``` [Default] Salles=a101,a102,a103,a104,a105,a106,a107,a108,a109,a111,a114,a116,a201,a202,a203,a204,a205,a206,a207,a208,a209,a210,a211,a212,a214,a216,a301,a302,a305,a306,a307,a310,a311,a316,Accueil,artsplast,CDI,CIO,CPE,f001,f002,f003,f004,f005,f006,f007,f021,f022,f024,f025,f026,f027,f028,f28bis,f029,f030,f101,f102,f103,f104,f105,f106,f107,f108,f109,f109bis,f110,f111,f112,f113,f114,f115,f116,f117,f118,f120,f121,f123,f124,f125,f127,f128,f129,f211,f212,f213,f214,f215,f216,f217,f218,Foyer,Informatique,Professeurs,SalleDesSport,Technologie1,Technologie2 [a101] Roles=Eleve MaxPostes=30 [a102] Roles=Eleve MaxPostes=30 [a103] Roles=Eleve MaxPostes=30 [a104] Roles=Eleve MaxPostes=30 [a105] Roles=Eleve MaxPostes=30 [a106] Roles=Eleve MaxPostes=30 [a107] Roles=Eleve MaxPostes=30 [a108] Roles=Eleve MaxPostes=30 [a109] Roles=Eleve MaxPostes=30 [a111] Roles=Eleve MaxPostes=30 [a114] Roles=Eleve MaxPostes=30 [a116] Roles=Eleve MaxPostes=30 [a201] Roles=Eleve MaxPostes=30 [a202] Roles=Eleve MaxPostes=30 [a203] Roles=Eleve MaxPostes=30 [a204] Roles=Eleve MaxPostes=30 [a205] Roles=Eleve MaxPostes=30 [a206] Roles=Eleve MaxPostes=30 [a207] Roles=Eleve MaxPostes=30 [a208] Roles=Eleve MaxPostes=30 [a209] Roles=Eleve MaxPostes=30 [a210] Roles=Eleve MaxPostes=30 [a211] Roles=Eleve MaxPostes=30 [a212] Roles=Eleve MaxPostes=30 [a214] Roles=Eleve MaxPostes=30 [a216] Roles=Eleve MaxPostes=30 [a301] Roles=Eleve MaxPostes=30 [a302] Roles=Eleve MaxPostes=30 [a305] Roles=Eleve MaxPostes=30 [a306] Roles=Eleve MaxPostes=30 [a307] Roles=Eleve MaxPostes=30 [a310] Roles=Eleve MaxPostes=30 [a311] Roles=Eleve MaxPostes=30 [a316] Roles=Eleve MaxPostes=30 [Accueil] Roles=Eleve MaxPostes=30 [artsplast] Roles=Eleve MaxPostes=30 [CDI] Roles=Prof,Eleve MaxPostes=20 [CIO] Roles=Eleve MaxPostes=30 [CPE] Roles=Eleve MaxPostes=30 [f001] Roles=Eleve MaxPostes=30 [f002] Roles=Eleve MaxPostes=30 [f003] Roles=Eleve MaxPostes=30 [f004] Roles=Eleve MaxPostes=30 [f005] Roles=Eleve MaxPostes=30 [f006] Roles=Eleve MaxPostes=30 [f007] Roles=Eleve MaxPostes=30 [f021] Roles=Eleve MaxPostes=30 [f022] Roles=Eleve MaxPostes=30 [f024] Roles=Eleve MaxPostes=30 [f025] Roles=Eleve MaxPostes=30 [f026] Roles=Eleve MaxPostes=30 [f027] Roles=Eleve MaxPostes=30 [f028] Roles=Eleve MaxPostes=30 [f28bis] Roles=Eleve MaxPostes=30 [f029] Roles=Eleve MaxPostes=30 [f030] Roles=Eleve MaxPostes=30 [f101] Roles=Eleve MaxPostes=30 [f102] Roles=Eleve MaxPostes=30 [f103] Roles=Eleve MaxPostes=30 [f104] Roles=Eleve MaxPostes=30 [f105] Roles=Eleve MaxPostes=30 [f106] Roles=Eleve MaxPostes=30 [f107] Roles=Eleve MaxPostes=30 [f108] Roles=Eleve MaxPostes=30 [f109] Roles=Eleve MaxPostes=30 [f109bis] Roles=Eleve MaxPostes=30 [f110] Roles=Eleve MaxPostes=30 [f111] Roles=Eleve MaxPostes=30 [f112] Roles=Eleve MaxPostes=30 [f113] Roles=Eleve MaxPostes=30 [f114] Roles=Eleve MaxPostes=30 [f115] Roles=Eleve MaxPostes=30 [f116] Roles=Eleve MaxPostes=30 [f117] Roles=Eleve MaxPostes=30 [f118] Roles=Eleve MaxPostes=30 [f120] Roles=Eleve MaxPostes=30 [f121] Roles=Eleve MaxPostes=30 [f123] Roles=Eleve MaxPostes=30 [f124] Roles=Eleve MaxPostes=30 [f125] Roles=Eleve MaxPostes=30 [f127] Roles=Eleve MaxPostes=30 [f128] Roles=Eleve MaxPostes=30 [f129] Roles=Eleve MaxPostes=30 [f211] Roles=Eleve MaxPostes=30 [f212] Roles=Eleve MaxPostes=30 [f213] Roles=Eleve MaxPostes=30 [f214] Roles=Eleve MaxPostes=30 [f215] Roles=Eleve MaxPostes=30 [f216] Roles=Eleve MaxPostes=30 [f217] Roles=Eleve MaxPostes=30 [f218] Roles=Eleve MaxPostes=30 [Foyer] Roles=Eleve MaxPostes=30 [Informatique] Roles=Eleve MaxPostes=30 [Professeurs] Roles=Eleve MaxPostes=30 [SalleDesSport] Roles=Eleve MaxPostes=30 [Technologie1] Roles=Eleve MaxPostes=30 [Technologie2] Roles=Eleve MaxPostes=30