J'ai utilisé différents formats de fichiers, mais la lisibilité est faible sauf pour json, yaml et toml. Json était mécontent de ne pas pouvoir écrire de commentaires et n'était pas satisfait de ne pas pouvoir saisir d'expressions lambda, alors je l'ai fait.
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)],
#Matrice unitaire
"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("Matrice unitaire(4x4):",mat)
print("Peut être mis en place?:",stngfil[1])
Matrice unitaire(4x4):[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]
Peut être mis en place?:True
Je suis content d'avoir pu faire quelque chose d'assez satisfaisant. Je veux aussi l'améliorer.
Recommended Posts