first commit
This commit is contained in:
commit
f037ae51b4
21
README.md
Normal file
21
README.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# auer_translator
|
||||||
|
Ein Python-Programm welches die LATEX Auer files in lesbaren code umwandelt.
|
||||||
|
|
||||||
|
---
|
||||||
|
## Bedienung
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# im Terminal ausgeben:
|
||||||
|
python auer_translator.py aufgabe_3a.py -c
|
||||||
|
|
||||||
|
# Datei überschreiben:
|
||||||
|
python auer_translator.py aufgabe_3a.py -O
|
||||||
|
|
||||||
|
# in eine neue Datei schreiben:
|
||||||
|
python auer_translator.py aufgabe_3a.py -o aufgabe_3a_formatiert.py
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
|
159
auer_translator.py
Normal file
159
auer_translator.py
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
|
# Gloab vars
|
||||||
|
normal = []
|
||||||
|
lines = []
|
||||||
|
in_def = False
|
||||||
|
|
||||||
|
|
||||||
|
def pars():
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
prog="Auer Translator",
|
||||||
|
description="Ein Python-Programm welches die LATEX Auer files in lesbaren code umwandelt.")
|
||||||
|
|
||||||
|
parser.add_argument("input_file", metavar="DATEIPFAD", help="Pfad des python Files.")
|
||||||
|
parser.add_argument("-o", "--output", required=False, metavar="DATEIPFAD",
|
||||||
|
help="Pfad des output Files.")
|
||||||
|
parser.add_argument("-O", "--overrite", required=False, default=False,
|
||||||
|
action="store_true", help="Überschreibt das input_file.")
|
||||||
|
parser.add_argument('-c', '--cli', required=False, default=False,
|
||||||
|
action="store_true", help="Printet die Datei in das Terminal.")
|
||||||
|
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
def one_line_def_fix(line: str):
|
||||||
|
if line.find("def") != -1:
|
||||||
|
if line.strip().endswith(":"):
|
||||||
|
lines.append(line)
|
||||||
|
else:
|
||||||
|
line_li = line.split(":")
|
||||||
|
for n, j in enumerate(line_li):
|
||||||
|
j = j.strip().rstrip()
|
||||||
|
if n == 0:
|
||||||
|
lines.append(f"{j}:")
|
||||||
|
else:
|
||||||
|
lines.append(j)
|
||||||
|
else:
|
||||||
|
lines.append(line)
|
||||||
|
|
||||||
|
|
||||||
|
def read(filname):
|
||||||
|
with open(filname, "r", encoding="utf-8") as auer:
|
||||||
|
for i in auer:
|
||||||
|
line = i.removesuffix("\n")
|
||||||
|
if line.find("; ") != -1:
|
||||||
|
line = line.removesuffix(";").rstrip()
|
||||||
|
line = line.split(";")
|
||||||
|
for j in line:
|
||||||
|
j = j.strip().rstrip()
|
||||||
|
one_line_def_fix(j)
|
||||||
|
# lines.append(j)
|
||||||
|
else:
|
||||||
|
one_line_def_fix(line)
|
||||||
|
# lines.append(line)
|
||||||
|
|
||||||
|
|
||||||
|
def format_line():
|
||||||
|
global in_def
|
||||||
|
for line in lines:
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
line = line.replace(" . ", ".")
|
||||||
|
line = line.replace(" ( ", "(")
|
||||||
|
line = line.replace(" (", "(")
|
||||||
|
line = line.replace("( ", "(")
|
||||||
|
line = line.replace(" ) ", ")")
|
||||||
|
line = line.replace(" );", ")")
|
||||||
|
line = line.replace(" )", ")")
|
||||||
|
|
||||||
|
line = line.replace("[ ", "[")
|
||||||
|
line = line.replace(" ]", "]")
|
||||||
|
|
||||||
|
line = line.replace("{ ", "{")
|
||||||
|
line = line.replace(" }", "}")
|
||||||
|
line = line.replace(" g}", "g}")
|
||||||
|
|
||||||
|
line = line.replace(" ’ ", '"')
|
||||||
|
line = line.replace("’", '"')
|
||||||
|
line = line.replace(' "', '"')
|
||||||
|
line = line.replace(' , ', ', ')
|
||||||
|
line = line.replace(' ,', ', ')
|
||||||
|
line = line.replace(' :#', ':#')
|
||||||
|
|
||||||
|
line = line.replace(' **', '**')
|
||||||
|
line = line.replace('* ', ' * ')
|
||||||
|
|
||||||
|
line = line.replace('\\ n', '\\n')
|
||||||
|
|
||||||
|
line = line.replace(' pl ;', ' plt')
|
||||||
|
line = line.replace('pl.', 'plt.')
|
||||||
|
|
||||||
|
if line[-1] == ";":
|
||||||
|
line = line.removesuffix(" ;")
|
||||||
|
line = line.removesuffix(";")
|
||||||
|
|
||||||
|
if line.startswith("#"):
|
||||||
|
if normal != []:
|
||||||
|
normal.append("\n")
|
||||||
|
|
||||||
|
if "=" in line:
|
||||||
|
li = line.split("=", 1)
|
||||||
|
if len(li[0]) < 25:
|
||||||
|
line = f"{li[0].rstrip()} = {str(li[1]).strip()}"
|
||||||
|
else:
|
||||||
|
line = f"{li[0].rstrip()}={str(li[1]).strip()}"
|
||||||
|
|
||||||
|
if in_def:
|
||||||
|
line = " " + line
|
||||||
|
|
||||||
|
if line.startswith("def"):
|
||||||
|
in_def = True
|
||||||
|
|
||||||
|
if line.startswith(" return"):
|
||||||
|
in_def = False
|
||||||
|
|
||||||
|
normal.append(line)
|
||||||
|
|
||||||
|
|
||||||
|
def is_plt():
|
||||||
|
for i in lines:
|
||||||
|
if "matplotlib" in i:
|
||||||
|
normal.append("plt.show()")
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
def write(filname):
|
||||||
|
with open(filname, "w", encoding="utf-8") as auer:
|
||||||
|
for i in normal:
|
||||||
|
# print(i)
|
||||||
|
auer.write(i + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
args = pars()
|
||||||
|
|
||||||
|
if args.output is None and not args.overrite and not args.cli:
|
||||||
|
print("Bitte mindestens eine Aktion auswählen. (--help für hilfe)")
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
read(args.input_file)
|
||||||
|
|
||||||
|
# Formating
|
||||||
|
format_line()
|
||||||
|
is_plt()
|
||||||
|
|
||||||
|
if args.output is not None:
|
||||||
|
write(args.output)
|
||||||
|
|
||||||
|
if args.overrite:
|
||||||
|
write(args.input_file)
|
||||||
|
|
||||||
|
if args.cli:
|
||||||
|
for i in normal:
|
||||||
|
print(i)
|
||||||
|
else:
|
||||||
|
print("Erfolgreich übersetzt")
|
BIN
example.png
Normal file
BIN
example.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 788 KiB |
Loading…
x
Reference in New Issue
Block a user