""" Enthaelt alle Datenstrukturen um die Sitzplatzverteilung als GA zu variieren """ __author__ = "Michael Stangl" __version__ = "$Revision: $" __date__ = "$Date: $" __copyright__ = "Copyright (c) 2005 Michael Stangl" __license__ = "Python" from ga import * from Strukturdaten import * import configparser import optparse if __name__ == '__main__': # Kommandozeilenoption --indir: Verzeichnis mit den Eingabedateien # (tische.ini, bestellung.xml) und Ziel fuer die Ausgabedateien # (TischePersonen.txt, PersonenTische.csv) parser = optparse.OptionParser() parser.add_option( "--indir", dest="indir", default=None, help="Verzeichnis mit tische.ini und bestellung.xml; " "dort werden auch TischePersonen.txt und PersonenTische.csv abgelegt" ) (options, args) = parser.parse_args() if options.indir is None: parser.error( "--indir ist erforderlich" ) InDir = os.path.expandvars( os.path.expanduser( options.indir ) ) if not os.path.isdir( InDir ): parser.error( "--indir '%s' ist kein Verzeichnis" % InDir ) # lade Vorgaben fuer Optimierungszyklus und config = configparser.ConfigParser() ConfigPath= os.path.join( os.getenv('PLATZ_CFG'), 'platz.cfg') config.read( os.path.expandvars( ConfigPath )) Zyklusconfig = os.path.normpath( config.get( 'Config', 'Zyklusdatei' )) Zyklusconfig = os.path.expandvars( Zyklusconfig ) Zyklusart = config.get( 'Config', 'Zyklusart' ) Strafenconfig = os.path.normpath(config.get( 'Config', 'Strafendatei' )) Strafenconfig = os.path.expandvars( Strafenconfig ) ## print Strafenconfig # lade Eingabedateien Tischconfig = os.path.join( InDir, 'tische.ini' ) Bestellung = os.path.join( InDir, 'bestellung.xml' ) # lade Ausgabedateien AusgabeTP= os.path.join( InDir, 'TischePersonen.txt' ) AusgabePT = os.path.join( InDir, 'PersonenTische.csv' ) Z = Zyklus() Z.laden( Zyklusconfig, Zyklusart ) print(Z) SL = Strafliste() SL.laden( Strafenconfig ) print(SL) TE = Tische() TE.laden( Tischconfig ) print(TE) InputFile = XMLConfig() [ PN, GN, VIPGruppe, VIPListePT ] = InputFile.laden( Bestellung ) print(PN) print(GN) print(VIPGruppe) print(VIPListePT) print("\n-- Erzeuge Farm:") F1 = Farm( Z, Sitzplatzverteilung, Tische=TE, Gruppen=GN, Strafen=SL, VIPListe=VIPListePT, VIPs=VIPGruppe ) #print(F1) S = F1.Bester() print(S) S.speichern( AusgabeTP, AusgabePT ) else: pass