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