Seite 1 von 1

Problem Python-Skript

Verfasst: Montag 6. Mai 2019, 11:29
von EllaBtz
Hallo,

ich versuche momentan über GitLab einen Profilgenerator meiner Firma laufen zu lassen.
Man soll lokal ein Profil von sich erstellen (ein .md file), das dann über ein Dockerfile, welches im Hintergrund ein Pythonskript laufen lässt, in eine PDF verwandelt werden.
Das funktioniert auch schon alles, jedoch soll es auch möglich sein, englische Profile, in dem man ein _en einfügt (z.B abcd_en.md), erstellen zu können. das geht bisher nur, wenn ich in meinem dockerfile ein "python3 generate_profiles.py -v -l en process_commit" einfüge. Dann gehen aber nur englische und keine deutschen Profile mehr.

Hier ist ein Auszug aus meiner Python-Datei, von der ich denke dass darin der Fehler liegt. Kann mir jemand helfen?

def generate_profile(company, name, args, use_artifacts_dir=False):
""" Generate a single profile for a company and the specified language. """
base_path = os.path.join(company, name)
if args.language:
lang_name = "{}_{}".format(name, args.language)
else:
lang_name = name
if use_artifacts_dir:
artifact_profile_path = os.path.join(ARTIFACTS_PATH, company)
if not os.path.exists(artifact_profile_path):
os.makedirs(artifact_profile_path, exist_ok=True)
else:
artifact_profile_path = base_path

if args.no_custom_header_order:
if args.language == "en":
args.header_order = DEFAULT_ORDER_EN
else:
args.header_order = DEFAULT_ORDER_DE

write_config(args)

Re: Problem Python-Skript

Verfasst: Montag 6. Mai 2019, 12:19
von Sirius3
@EllaBtz: wo ist Dein Problem? Der gezeigte Code behandelt ja etwas ganz anderes, jedenfalls sehe ich dort nirgends einen Dateinamen. Und an der Stelle wo Du den .md-Dateinamen verarbeitest mußt Du halt auf das _en prüfen und entsprechend reagieren.

Zum Code:
`base_path` wird nur in einem else-Block verwendet, dort sollte es auch erst definiert werden.
Dass `company` mal einen Teil eines Pfades, mal aber einen absoluten Pfad angibt, ist seltsam.
`lang_name` und `artifact_profile_path` wird gar nicht verwendet. Dass es ein `write_config` gibt, ohne dass man einen Dateinamen für eine Konfigurationsdatei angibt, läßt befürchten, dass das eine globaler Dateiname ist. Wenn da die Sprache drinsteht, kann ich mir vorstellen, dass es schwierig wird, individuelle Spracheinstellungen zu machen. Aber ohne das konkrete Problem oder mehr Code zu kennen, kann man da nicht helfen.