Ich habe verschiedene Dateiformate verwendet, aber die Lesbarkeit ist mit Ausnahme von json, yaml und toml gering. Json war unzufrieden damit, keine Kommentare schreiben zu können, und unzufrieden damit, keine Lambda-Ausdrücke eingeben zu können, also habe ich es gemacht.
pyson.py
import sys
import argparse
class File(dict):
@classmethod
def Load(cls,path):
data = None
with open(path,'r',encoding="utf-8") as fln:
var = []
for f in fln.read():
if(f.strip() == "" or f.strip()[0:1] == '#' or f.strip().split('(')[0] == '__import__'):
continue
else:
var.append(f)
data = cls.__Ld(var)
ret = eval(data)
return ret
@classmethod
def __Ld(cls,var):
ret = ""
for val in var:
ret += val
return ret
load = File.Load
Classes.pyson
{
"Vector3":lambda:[0 for var in range(3)],
"Vector4":lambda:[0 for var in range(4)],
"Matrix3x3":lambda:[[0 for x in range(3)]for y in range(3)],
"Matrix4x4":lambda:[[0 for x in range(4)]for y in range(4)],
#Einheitsmatrix
"Identity":lambda mat:[[1 if x==y else 0 for x in range(len(mat[y]))]for y in range(len(mat))],
"is_liveing":True
}
Setting.pyson
(
"1",True,3.5
)
app.py
import pyson
ldfil = pyson.load("Classes.pyson")
stngfil = pyson.load("Setting.pyson")
mat = ldfil["Identity"](ldfil["Matrix4x4"]())
print("Einheitsmatrix(4x4):",mat)
print("Kann eingestellt werden?:",stngfil[1])
Einheitsmatrix(4x4):[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]
Kann eingestellt werden?:True
Ich bin froh, dass ich etwas machen konnte, das ziemlich befriedigend war. Ich möchte es auch verbessern.
Recommended Posts