mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-23 12:56:14 +01:00
First try for read snipet
This commit is contained in:
parent
55580d8eb6
commit
04514b5b4f
@ -49,7 +49,7 @@ import ConfigParser
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
Type = namedtuple('Type', 'ocaml fortran')
|
Type = namedtuple('Type', 'fancy ocaml fortran')
|
||||||
|
|
||||||
|
|
||||||
def is_bool(str_):
|
def is_bool(str_):
|
||||||
@ -58,9 +58,9 @@ def is_bool(str_):
|
|||||||
fortran and ocaml one.
|
fortran and ocaml one.
|
||||||
"""
|
"""
|
||||||
if str_.lower() in ['true', '.true.']:
|
if str_.lower() in ['true', '.true.']:
|
||||||
return Type("true", ".True.")
|
return Type(None, "true", ".True.")
|
||||||
elif str_.lower() in ['false', '.False.']:
|
elif str_.lower() in ['false', '.False.']:
|
||||||
return Type("false", ".False")
|
return Type(None, "false", ".False")
|
||||||
else:
|
else:
|
||||||
raise TypeError
|
raise TypeError
|
||||||
|
|
||||||
@ -99,18 +99,18 @@ def get_type_dict():
|
|||||||
# R a w _ t y p e #
|
# R a w _ t y p e #
|
||||||
# ~#~#~#~#~#~#~#~ #
|
# ~#~#~#~#~#~#~#~ #
|
||||||
|
|
||||||
fancy_type['integer'] = Type("int", "integer")
|
fancy_type['integer'] = Type(None, "int", "integer")
|
||||||
fancy_type['int'] = Type("int", "integer")
|
fancy_type['int'] = Type(None, "int", "integer")
|
||||||
|
|
||||||
fancy_type['float'] = Type("float", "double precision")
|
fancy_type['float'] = Type(None, "float", "double precision")
|
||||||
fancy_type['double precision'] = Type("float", "double precision")
|
fancy_type['double precision'] = Type(None, "float", "double precision")
|
||||||
|
|
||||||
fancy_type['logical'] = Type("bool", "logical")
|
fancy_type['logical'] = Type(None, "bool", "logical")
|
||||||
fancy_type['bool'] = Type("bool", "logical")
|
fancy_type['bool'] = Type(None, "bool", "logical")
|
||||||
|
|
||||||
fancy_type['character*32'] = Type("string", "character*32")
|
fancy_type['character*32'] = Type(None, "string", "character*32")
|
||||||
fancy_type['character*60'] = Type("string", "character*60")
|
fancy_type['character*60'] = Type(None, "string", "character*60")
|
||||||
fancy_type['character*256'] = Type("string", "character*256")
|
fancy_type['character*256'] = Type(None, "string", "character*256")
|
||||||
|
|
||||||
# ~#~#~#~#~#~#~#~ #
|
# ~#~#~#~#~#~#~#~ #
|
||||||
# q p _ t y p e s #
|
# q p _ t y p e s #
|
||||||
@ -133,7 +133,9 @@ def get_type_dict():
|
|||||||
str_ocaml_type = i.split()[3]
|
str_ocaml_type = i.split()[3]
|
||||||
str_fortran_type = ocaml_to_fortran[str_ocaml_type]
|
str_fortran_type = ocaml_to_fortran[str_ocaml_type]
|
||||||
|
|
||||||
fancy_type[str_fancy_type] = Type(str_ocaml_type, str_fortran_type)
|
fancy_type[str_fancy_type] = Type(str_fancy_type,
|
||||||
|
str_ocaml_type,
|
||||||
|
str_fortran_type)
|
||||||
|
|
||||||
# ~#~#~#~#~#~#~#~ #
|
# ~#~#~#~#~#~#~#~ #
|
||||||
# F i n a l i z e #
|
# F i n a l i z e #
|
||||||
@ -245,7 +247,7 @@ def get_dict_config_file(config_file_path, module_lower):
|
|||||||
try:
|
try:
|
||||||
d[pvd]["default"] = is_bool(default_raw)
|
d[pvd]["default"] = is_bool(default_raw)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
d[pvd]["default"] = Type(default_raw, default_raw)
|
d[pvd]["default"] = Type(None, default_raw, default_raw)
|
||||||
|
|
||||||
return dict(d)
|
return dict(d)
|
||||||
|
|
||||||
@ -288,8 +290,6 @@ def save_ezfio_provider(path_head, dict_code_provider):
|
|||||||
|
|
||||||
path = "{0}/ezfio_interface.irp.f".format(path_head)
|
path = "{0}/ezfio_interface.irp.f".format(path_head)
|
||||||
|
|
||||||
# print "Path = {0}".format(path)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
f = open(path, "r")
|
f = open(path, "r")
|
||||||
except IOError:
|
except IOError:
|
||||||
@ -414,21 +414,52 @@ def save_ezfio_config(module_lower, str_ezfio_config):
|
|||||||
f.write(str_ezfio_config)
|
f.write(str_ezfio_config)
|
||||||
|
|
||||||
|
|
||||||
def create_ocaml_check(dict_code_provider):
|
def create_ocaml_check(dict_ezfio_cfg):
|
||||||
pass
|
|
||||||
# def create_creade():
|
# ~#~#~#~#~#~#~#~# #
|
||||||
#
|
# F u n c t i o n #
|
||||||
#"""
|
# ~#~#~#~#~#~#~#~# #
|
||||||
# let read_{ezfio_name} () =
|
|
||||||
# if not (Ezfio.has_{ezfio_dir}_{ezfio_name} ()) then
|
def create_read(d_format):
|
||||||
# get_default "{ezfio_name}"
|
|
||||||
# |> Float.of_string
|
template = """
|
||||||
# |> Ezfio.set_{ezfio_dir}_{ezfio_name}
|
(* Read snippet for {ezfio_name} *)
|
||||||
# ;
|
let read_{ezfio_name} () =
|
||||||
# Ezfio.get_{ezfio_dir}_{ezfio_name} ()
|
if not (Ezfio.has_{ezfio_dir}_{ezfio_name} ()) then
|
||||||
# |> Normalized_float.of_float
|
get_default "{ezfio_name}"
|
||||||
# ;;
|
|> {Ocaml_type}.of_string
|
||||||
#"""
|
|> Ezfio.set_{ezfio_dir}_{ezfio_name}
|
||||||
|
;
|
||||||
|
Ezfio.get_{ezfio_dir}_{ezfio_name} ()
|
||||||
|
"""
|
||||||
|
fancy_type = d_format["type"]
|
||||||
|
if d_format["type"].fancy:
|
||||||
|
template += " |> {0}.of_{1}".format(fancy_type.fancy,
|
||||||
|
fancy_type.ocaml)
|
||||||
|
|
||||||
|
template += """
|
||||||
|
;;
|
||||||
|
"""
|
||||||
|
return template.strip().format(**d_format)
|
||||||
|
|
||||||
|
# ~#~#~#~#~#~#~#~# #
|
||||||
|
# C r e a t i o n #
|
||||||
|
# ~#~#~#~#~#~#~#~# #
|
||||||
|
|
||||||
|
for provider_name, d_val in sorted(dict_ezfio_cfg.iteritems()):
|
||||||
|
|
||||||
|
ocaml_type = d_val["type"].ocaml.capitalize()
|
||||||
|
ezfio_dir = d_val["ezfio_dir"]
|
||||||
|
ezfio_name = d_val["ezfio_name"]
|
||||||
|
|
||||||
|
d = {"ezfio_dir": ezfio_dir,
|
||||||
|
"ezfio_name": ezfio_name,
|
||||||
|
"type": d_val["type"],
|
||||||
|
"Ocaml_type": ocaml_type}
|
||||||
|
|
||||||
|
template = create_read(d)
|
||||||
|
|
||||||
|
print template
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -467,20 +498,26 @@ def main():
|
|||||||
|
|
||||||
# Because we only authorise this right now!
|
# Because we only authorise this right now!
|
||||||
ezfio_dir = module_lower
|
ezfio_dir = module_lower
|
||||||
dict_info_provider = get_dict_config_file(config_file_path, ezfio_dir)
|
dict_ezfio_cfg = get_dict_config_file(config_file_path, ezfio_dir)
|
||||||
|
|
||||||
# ~#~#~#~#~#~#~#~# #
|
# ~#~#~#~#~#~#
|
||||||
|
# O c a m l #
|
||||||
|
# ~#~#~#~#~#~#
|
||||||
|
|
||||||
|
_ = create_ocaml_check(dict_ezfio_cfg)
|
||||||
|
|
||||||
|
# ~#~#~#~#~#~#~#~#
|
||||||
# I R P . f 9 0 #
|
# I R P . f 9 0 #
|
||||||
# ~#~#~#~#~#~#~#~# #
|
# ~#~#~#~#~#~#~#~#
|
||||||
|
|
||||||
l_str_code = create_ezfio_provider(dict_info_provider)
|
l_str_code = create_ezfio_provider(dict_ezfio_cfg)
|
||||||
save_ezfio_provider(path_dirname, l_str_code)
|
save_ezfio_provider(path_dirname, l_str_code)
|
||||||
|
|
||||||
# ~#~#~#~#~#~#~#~#~#~#~#~# #
|
# ~#~#~#~#~#~#~#~#~#~#~#~# #
|
||||||
# e z f i o _ c o n f i g #
|
# e z f i o _ c o n f i g #
|
||||||
# ~#~#~#~#~#~#~#~#~#~#~#~# #
|
# ~#~#~#~#~#~#~#~#~#~#~#~# #
|
||||||
|
|
||||||
str_ezfio_config = create_ezfio_config(dict_info_provider)
|
str_ezfio_config = create_ezfio_config(dict_ezfio_cfg)
|
||||||
save_ezfio_config(module_lower, str_ezfio_config)
|
save_ezfio_config(module_lower, str_ezfio_config)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user