mirror of
https://github.com/LCPQ/quantum_package
synced 2024-08-25 14:01:46 +02:00
Cleanning ezfio_interface.py and SIZE keyword support
This commit is contained in:
parent
a92d8fe9b9
commit
a7da480d66
@ -47,12 +47,6 @@ def get_type_dict():
|
|||||||
# I n i t #
|
# I n i t #
|
||||||
# ~#~#~#~ #
|
# ~#~#~#~ #
|
||||||
|
|
||||||
# Dict to change ocaml LowLevel type into FortranLowLevel type
|
|
||||||
ocaml_to_fortran = {"int": "integer",
|
|
||||||
"float": "double precision",
|
|
||||||
"logical": "logical",
|
|
||||||
"string": "character*60"}
|
|
||||||
|
|
||||||
fancy_type = defaultdict(dict)
|
fancy_type = defaultdict(dict)
|
||||||
|
|
||||||
# ~#~#~#~#~#~#~#~ #
|
# ~#~#~#~#~#~#~#~ #
|
||||||
@ -68,21 +62,32 @@ def get_type_dict():
|
|||||||
fancy_type['logical'] = Type("bool", "logical")
|
fancy_type['logical'] = Type("bool", "logical")
|
||||||
fancy_type['bool'] = Type("bool", "logical")
|
fancy_type['bool'] = Type("bool", "logical")
|
||||||
|
|
||||||
|
fancy_type['character*32'] = Type("string", "character*32")
|
||||||
|
fancy_type['character*60'] = Type("string", "character*60")
|
||||||
|
fancy_type['character*256'] = Type("string", "character*256")
|
||||||
|
|
||||||
# ~#~#~#~#~#~#~#~ #
|
# ~#~#~#~#~#~#~#~ #
|
||||||
# q p _ t y p e s #
|
# q p _ t y p e s #
|
||||||
# ~#~#~#~#~#~#~#~ #
|
# ~#~#~#~#~#~#~#~ #
|
||||||
|
|
||||||
src = os.environ['QPACKAGE_ROOT'] + "/ocaml/qptypes_generator.ml"
|
# Dict to change ocaml LowLevel type into FortranLowLevel type
|
||||||
|
ocaml_to_fortran = {"int": "integer",
|
||||||
|
"float": "double precision",
|
||||||
|
"logical": "logical",
|
||||||
|
"string": "character*32"}
|
||||||
|
|
||||||
|
# Read and parse qptype
|
||||||
|
src = os.environ['QPACKAGE_ROOT'] + "/ocaml/qptypes_generator.ml"
|
||||||
with open(src, "r") as f:
|
with open(src, "r") as f:
|
||||||
l = [i for i in f.read().splitlines() if i.strip().startswith("*")]
|
l = [i for i in f.read().splitlines() if i.strip().startswith("*")]
|
||||||
|
|
||||||
|
# Read the fancy_type, the ocaml. and convert the ocam to the fortran
|
||||||
for i in l:
|
for i in l:
|
||||||
ocaml_fancy_type = i.split()[1].strip()
|
str_fancy_type = i.split()[1].strip()
|
||||||
ocaml_type = i.split()[3]
|
str_ocaml_type = i.split()[3]
|
||||||
fortran_type = ocaml_to_fortran[ocaml_type]
|
str_fortran_type = ocaml_to_fortran[str_ocaml_type]
|
||||||
|
|
||||||
fancy_type[ocaml_fancy_type] = Type(ocaml_type, fortran_type)
|
fancy_type[str_fancy_type] = Type(str_ocaml_type, str_fortran_type)
|
||||||
|
|
||||||
return dict(fancy_type)
|
return dict(fancy_type)
|
||||||
|
|
||||||
@ -102,6 +107,7 @@ def get_dict_config_file(config_file_path, module_lower):
|
|||||||
doc,
|
doc,
|
||||||
ezfio_name,
|
ezfio_name,
|
||||||
ezfio_dir,
|
ezfio_dir,
|
||||||
|
size,
|
||||||
interface,
|
interface,
|
||||||
default}
|
default}
|
||||||
|
|
||||||
@ -122,7 +128,7 @@ def get_dict_config_file(config_file_path, module_lower):
|
|||||||
|
|
||||||
d = defaultdict(dict)
|
d = defaultdict(dict)
|
||||||
l_info_required = ["doc", "interface"]
|
l_info_required = ["doc", "interface"]
|
||||||
l_info_optional = ["ezfio_name"]
|
l_info_optional = ["ezfio_name", "size"]
|
||||||
|
|
||||||
# ~#~#~#~#~#~#~#~#~#~#~ #
|
# ~#~#~#~#~#~#~#~#~#~#~ #
|
||||||
# L o a d _ C o n f i g #
|
# L o a d _ C o n f i g #
|
||||||
@ -144,7 +150,7 @@ def get_dict_config_file(config_file_path, module_lower):
|
|||||||
pvd = section.lower()
|
pvd = section.lower()
|
||||||
|
|
||||||
# Create the dictionary who containt the value per default
|
# Create the dictionary who containt the value per default
|
||||||
d_default = {"ezfio_name": pvd}
|
d_default = {"ezfio_name": pvd, "size": 1}
|
||||||
|
|
||||||
# Set the ezfio_dir
|
# Set the ezfio_dir
|
||||||
d[pvd]["ezfio_dir"] = module_lower
|
d[pvd]["ezfio_dir"] = module_lower
|
||||||
@ -241,12 +247,12 @@ def create_ezfio_config(dict_ezfio_cfg, opt, module_lower):
|
|||||||
|
|
||||||
result = [module_lower]
|
result = [module_lower]
|
||||||
lenmax = max([len(i) for i in dict_ezfio_cfg]) + 2
|
lenmax = max([len(i) for i in dict_ezfio_cfg]) + 2
|
||||||
l = sorted(dict_ezfio_cfg.keys())
|
|
||||||
for provider_name in l:
|
# l = sorted(dict_ezfio_cfg.keys())
|
||||||
provider_info = dict_ezfio_cfg[provider_name]
|
for provider_name, provider_info in sorted(dict_ezfio_cfg.iteritems()):
|
||||||
s = " {0} {1}".format(
|
|
||||||
provider_name.lower().ljust(lenmax),
|
s = " {0} {1}".format(provider_name.lower().ljust(lenmax),
|
||||||
provider_info["type"].fortran)
|
provider_info["type"].fortran)
|
||||||
result.append(s)
|
result.append(s)
|
||||||
return "\n".join(result)
|
return "\n".join(result)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user