10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-07-22 18:57:31 +02:00

Add directory for ezfio_interface, first apparition of ezfio_generate_ocaml

This commit is contained in:
Thomas Applencourt 2015-03-27 10:44:39 +01:00
parent 04514b5b4f
commit 7db2751cdb
6 changed files with 71 additions and 36 deletions

View File

@ -83,7 +83,7 @@ def get_type_dict():
qpackage_root = os.environ['QPACKAGE_ROOT']
fancy_type_pickle = qpackage_root + "/scripts/fancy_type.p"
fancy_type_pickle = qpackage_root + "/scripts/ezfio_interface/fancy_type.p"
if fancy_type_pickle in listdir(os.getcwd()):
fancy_type = pickle.load(open(fancy_type_pickle, "rb"))
@ -416,36 +416,14 @@ def save_ezfio_config(module_lower, str_ezfio_config):
def create_ocaml_check(dict_ezfio_cfg):
# ~#~#~#~#~#~#~#~# #
# F u n c t i o n #
# ~#~#~#~#~#~#~#~# #
def create_read(d_format):
template = """
(* Read snippet for {ezfio_name} *)
let read_{ezfio_name} () =
if not (Ezfio.has_{ezfio_dir}_{ezfio_name} ()) then
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 #
# ~#~#~#~#~#~#~#~# #
from ezfio_generate_ocaml import EZFIO_ocaml
e = EZFIO_ocaml()
for provider_name, d_val in sorted(dict_ezfio_cfg.iteritems()):
ocaml_type = d_val["type"].ocaml.capitalize()
@ -454,10 +432,9 @@ def create_ocaml_check(dict_ezfio_cfg):
d = {"ezfio_dir": ezfio_dir,
"ezfio_name": ezfio_name,
"type": d_val["type"],
"Ocaml_type": ocaml_type}
"type": d_val["type"]}
template = create_read(d)
template = e.create_read(**d)
print template

View File

@ -0,0 +1,59 @@
#!/usr/bin/env python
import sys
class EZFIO_ocaml(object):
def __init__(self):
pass
def create_read(self, **param):
'''
Take an imput a list of keyword argument
ezfio_dir = str
ezfio_name = str
type = Named_tuple(fancy_type, ocaml_type, fortrant_type)
Return the read template
'''
l_name_need = "ezfio_dir ezfio_name type".split()
for key in l_name_need:
if key not in param:
print "You need to provide {0} at keyword argument".format(key)
sys.exit(1)
# ~#~#~#~#~#~#~#~#~#~#~#~#~#~# #
# C r e a t e _ t e m pl a t e #
# ~#~#~#~#~#~#~#~#~#~#~#~#~#~# #
l_template = ['(* Read snippet for {ezfio_name} *)',
'let read_{ezfio_name} () =',
' if not (Ezfio.has_{ezfio_dir}_{ezfio_name} ()) then',
' get_default "{ezfio_name}"',
' |> {Ocaml_type}.of_string',
' |> Ezfio.set_{ezfio_dir}_{ezfio_name}',
' ;',
' Ezfio.get_{ezfio_dir}_{ezfio_name} ()']
if param["type"].fancy:
l_template += [" |> {fancy_type}.of_{Ocaml_type}"]
l_template += [";;;"]
template = "\n ".join(l_template)
# ~#~#~#~#~#~ #
# R e n d e r #
# ~#~#~#~#~#~ #
param["Ocaml_type"] = param["type"].ocaml.capitalize()
param["fancy_type"] = param["type"].fancy
template_rendered = template.format(**param)
# ~#~#~#~#~#~ #
# R e t u r n #
# ~#~#~#~#~#~ #
return template_rendered

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
__author__ = "Anthony Scemama and Applencourt for the amazing PEP8"
__author__ = "Applencourt PEP8"
__date__ = "jeudi 26 mars 2015, 12:49:35 (UTC+0100)"
"""

View File

@ -9,7 +9,7 @@ echo "=-=-=-=-=-=-=-=-=-=-=-"
for dir in ${QPACKAGE_ROOT}/src/*/
do
cd $dir || exit -1
${QPACKAGE_ROOT}/scripts/ezfio_interface.py
${QPACKAGE_ROOT}/scripts/ezfio_interface/ei_handler.py
done
# For old-style directories. Will be removed some day...

View File

@ -65,5 +65,4 @@ fi
${QPACKAGE_ROOT}/scripts/create_Makefile_depend.sh
# Update EZFIO interface
${QPACKAGE_ROOT}/scripts/ezfio_interface.py
${QPACKAGE_ROOT}/scripts/ezfio_interface/ei_handler.py

View File

@ -34,8 +34,8 @@ export QPACKAGE_ROOT=\$( cd \$(dirname "\${BASH_SOURCE}") ; pwd -P )
export LD_LIBRARY_PATH="\${QPACKAGE_ROOT}"/lib:\${LD_LIBRARY_PATH}
export LIBRARY_PATH="\${QPACKAGE_ROOT}"/lib:\${LIBRARY_PATH}
export C_INCLUDE_PATH="\${QPACKAGE_ROOT}"/include:\${C_INCLUDE_PATH}
export PYTHONPATH=\${PYTHONPATH}:"\${QPACKAGE_ROOT}"/scripts
export PATH=\${PATH}:"\${QPACKAGE_ROOT}"/scripts
export PYTHONPATH=\${PYTHONPATH}:"\${QPACKAGE_ROOT}"/scripts:"\${QPACKAGE_ROOT}"/scripts/ezfio_interface
export PATH=\${PATH}:"\${QPACKAGE_ROOT}"/scripts:"\${QPACKAGE_ROOT}"/scripts/ezfio_interface
export PATH=\${PATH}:"\${QPACKAGE_ROOT}"/bin
export PATH=\${PATH}:"\${QPACKAGE_ROOT}"/ocaml
source "\${QPACKAGE_ROOT}"/bin/irpman &> /dev/null