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