mirror of
https://github.com/TREX-CoE/trexio.git
synced 2024-08-25 06:31:43 +02:00
better python compilation
This commit is contained in:
parent
8d8658fabf
commit
831973fc8e
@ -23,6 +23,7 @@ cat helper_fortran.f90 >> trexio_f.f90
|
|||||||
cat populated/pop_*.fh_90 >> trexio_f.f90
|
cat populated/pop_*.fh_90 >> trexio_f.f90
|
||||||
|
|
||||||
# python front end
|
# python front end
|
||||||
|
cat basic_python.py >> trexio.py
|
||||||
cat populated/pop_*.py >> trexio.py
|
cat populated/pop_*.py >> trexio.py
|
||||||
|
|
||||||
# suffixes
|
# suffixes
|
||||||
|
@ -25,7 +25,6 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
raise Exception("Could not import pytrexio module from trexio package")
|
raise Exception("Could not import pytrexio module from trexio package")
|
||||||
|
|
||||||
|
|
||||||
# define TREXIO back ends
|
# define TREXIO back ends
|
||||||
TREXIO_HDF5 = 0
|
TREXIO_HDF5 = 0
|
||||||
TREXIO_TEXT = 1
|
TREXIO_TEXT = 1
|
||||||
@ -35,7 +34,6 @@ TREXIO_INVALID_BACK_END = 2
|
|||||||
# define max length of string item when reading arrays of strings
|
# define max length of string item when reading arrays of strings
|
||||||
# this is needed for the low-level C routines
|
# this is needed for the low-level C routines
|
||||||
PYTREXIO_MAX_STR_LENGTH = 2048
|
PYTREXIO_MAX_STR_LENGTH = 2048
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Fortran
|
** Fortran
|
||||||
@ -573,6 +571,8 @@ struct trexio_back_end_s {
|
|||||||
are hard-coded), which is why the user should tend to avoid
|
are hard-coded), which is why the user should tend to avoid
|
||||||
renaming the ~.txt~ data files.
|
renaming the ~.txt~ data files.
|
||||||
|
|
||||||
|
*** C
|
||||||
|
|
||||||
#+begin_src c :tangle prefix_front.h :exports none
|
#+begin_src c :tangle prefix_front.h :exports none
|
||||||
trexio_t* trexio_open(const char* file_name, const char mode, const back_end_t back_end);
|
trexio_t* trexio_open(const char* file_name, const char mode, const back_end_t back_end);
|
||||||
#+end_src
|
#+end_src
|
||||||
@ -726,6 +726,7 @@ trexio_open(const char* file_name, const char mode,
|
|||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Fortran
|
||||||
#+begin_src f90 :tangle prefix_fortran.f90
|
#+begin_src f90 :tangle prefix_fortran.f90
|
||||||
interface
|
interface
|
||||||
integer(8) function trexio_open_c (filename, mode, backend) bind(C, name="trexio_open")
|
integer(8) function trexio_open_c (filename, mode, backend) bind(C, name="trexio_open")
|
||||||
@ -738,12 +739,9 @@ interface
|
|||||||
end interface
|
end interface
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src c :tangle prefix_python.py
|
*** Python
|
||||||
|
#+begin_src c :tangle basic_python.py
|
||||||
def open(file_name: str, mode: str, back_end: int):
|
def open(file_name: str, mode: str, back_end: int):
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import trexio_open
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
trexio_file = trexio_open(file_name, mode, back_end)
|
trexio_file = trexio_open(file_name, mode, back_end)
|
||||||
@ -751,9 +749,9 @@ def open(file_name: str, mode: str, back_end: int):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
return trexio_file
|
return trexio_file
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Zero-based versus one-based arrays of indices
|
||||||
Because arrays are zero-based in Fortran, we need to set a flag to
|
Because arrays are zero-based in Fortran, we need to set a flag to
|
||||||
know if we need to shift by 1 arrays of indices.
|
know if we need to shift by 1 arrays of indices.
|
||||||
|
|
||||||
@ -792,6 +790,7 @@ end interface
|
|||||||
output:
|
output:
|
||||||
~trexio_exit_code~ exit code.
|
~trexio_exit_code~ exit code.
|
||||||
|
|
||||||
|
*** C
|
||||||
#+begin_src c :tangle prefix_front.h :exports none
|
#+begin_src c :tangle prefix_front.h :exports none
|
||||||
trexio_exit_code trexio_close(trexio_t* file);
|
trexio_exit_code trexio_close(trexio_t* file);
|
||||||
#+end_src
|
#+end_src
|
||||||
@ -862,6 +861,7 @@ trexio_close (trexio_t* file)
|
|||||||
}
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Fortran
|
||||||
#+begin_src f90 :tangle prefix_fortran.f90
|
#+begin_src f90 :tangle prefix_fortran.f90
|
||||||
interface
|
interface
|
||||||
integer function trexio_close (trex_file) bind(C)
|
integer function trexio_close (trex_file) bind(C)
|
||||||
@ -871,12 +871,9 @@ interface
|
|||||||
end interface
|
end interface
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src c :tangle prefix_python.py
|
*** Python
|
||||||
|
#+begin_src c :tangle basic_python.py
|
||||||
def close(trexio_file):
|
def close(trexio_file):
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import trexio_close, trexio_string_of_error
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rc = trexio_close(trexio_file)
|
rc = trexio_close(trexio_file)
|
||||||
@ -1233,10 +1230,6 @@ end interface
|
|||||||
|
|
||||||
#+begin_src python :tangle write_num_front.py
|
#+begin_src python :tangle write_num_front.py
|
||||||
def write_$group_num$(trexio_file, num_w) -> None:
|
def write_$group_num$(trexio_file, num_w) -> None:
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import trexio_write_$group_num$, trexio_string_of_error
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rc = trexio_write_$group_num$(trexio_file, num_w)
|
rc = trexio_write_$group_num$(trexio_file, num_w)
|
||||||
@ -1250,10 +1243,6 @@ def write_$group_num$(trexio_file, num_w) -> None:
|
|||||||
|
|
||||||
#+begin_src python :tangle read_num_front.py
|
#+begin_src python :tangle read_num_front.py
|
||||||
def read_$group_num$(trexio_file):
|
def read_$group_num$(trexio_file):
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import trexio_read_$group_num$, trexio_string_of_error
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rc, num_r = trexio_read_$group_num$(trexio_file)
|
rc, num_r = trexio_read_$group_num$(trexio_file)
|
||||||
@ -1761,10 +1750,6 @@ end interface
|
|||||||
|
|
||||||
#+begin_src python :tangle write_dset_data_front.py
|
#+begin_src python :tangle write_dset_data_front.py
|
||||||
def write_safe_$group_dset$(trexio_file, dset_w) -> None:
|
def write_safe_$group_dset$(trexio_file, dset_w) -> None:
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import trexio_write_safe_$group_dset$, trexio_string_of_error
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rc = trexio_write_safe_$group_dset$(trexio_file, dset_w)
|
rc = trexio_write_safe_$group_dset$(trexio_file, dset_w)
|
||||||
@ -1778,10 +1763,6 @@ def write_safe_$group_dset$(trexio_file, dset_w) -> None:
|
|||||||
|
|
||||||
#+begin_src python :tangle read_dset_data_front.py
|
#+begin_src python :tangle read_dset_data_front.py
|
||||||
def read_safe_$group_dset$(trexio_file, dim):
|
def read_safe_$group_dset$(trexio_file, dim):
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import trexio_read_safe_$group_dset$, trexio_string_of_error
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rc, dset_r = trexio_read_safe_$group_dset$(trexio_file, dim)
|
rc, dset_r = trexio_read_safe_$group_dset$(trexio_file, dim)
|
||||||
@ -2254,12 +2235,6 @@ end interface
|
|||||||
|
|
||||||
#+begin_src python :tangle write_dset_str_front.py
|
#+begin_src python :tangle write_dset_str_front.py
|
||||||
def write_$group_dset$(trexio_file, dset_w) -> None:
|
def write_$group_dset$(trexio_file, dset_w) -> None:
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import (trexio_write_$group_dset$,
|
|
||||||
# trexio_string_of_error
|
|
||||||
# )
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
max_str_length = len(max(dset_w, key=len)) + 1
|
max_str_length = len(max(dset_w, key=len)) + 1
|
||||||
|
|
||||||
@ -2275,13 +2250,6 @@ def write_$group_dset$(trexio_file, dset_w) -> None:
|
|||||||
|
|
||||||
#+begin_src python :tangle read_dset_str_front.py
|
#+begin_src python :tangle read_dset_str_front.py
|
||||||
def read_$group_dset$(trexio_file):
|
def read_$group_dset$(trexio_file):
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import (trexio_read_$group_dset$_low,
|
|
||||||
# trexio_string_of_error,
|
|
||||||
# TREXIO_DELIM
|
|
||||||
# )
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rc, dset_1d_r = trexio_read_$group_dset$_low(trexio_file, PYTREXIO_MAX_STR_LENGTH)
|
rc, dset_1d_r = trexio_read_$group_dset$_low(trexio_file, PYTREXIO_MAX_STR_LENGTH)
|
||||||
@ -2481,12 +2449,6 @@ end interface
|
|||||||
|
|
||||||
#+begin_src python :tangle write_attr_str_front.py
|
#+begin_src python :tangle write_attr_str_front.py
|
||||||
def write_$group_str$(trexio_file, str_w) -> None:
|
def write_$group_str$(trexio_file, str_w) -> None:
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import (trexio_write_$group_str$,
|
|
||||||
# trexio_string_of_error,
|
|
||||||
# )
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
max_str_length = len(str_w) + 1
|
max_str_length = len(str_w) + 1
|
||||||
|
|
||||||
@ -2502,12 +2464,6 @@ def write_$group_str$(trexio_file, str_w) -> None:
|
|||||||
|
|
||||||
#+begin_src python :tangle read_attr_str_front.py
|
#+begin_src python :tangle read_attr_str_front.py
|
||||||
def read_$group_str$(trexio_file):
|
def read_$group_str$(trexio_file):
|
||||||
#try:
|
|
||||||
# from trexio.pytrexio import (trexio_read_$group_str$,
|
|
||||||
# trexio_string_of_error
|
|
||||||
# )
|
|
||||||
#except ImportError:
|
|
||||||
# raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
rc, str_r = trexio_read_$group_str$(trexio_file, PYTREXIO_MAX_STR_LENGTH)
|
rc, str_r = trexio_read_$group_str$(trexio_file, PYTREXIO_MAX_STR_LENGTH)
|
||||||
|
@ -23,8 +23,8 @@ mkdir -p ${PYDIR}/src
|
|||||||
mkdir -p ${PYTREXIODIR}
|
mkdir -p ${PYTREXIODIR}
|
||||||
|
|
||||||
# Copy all the source code and header files in the corresponding python directory
|
# Copy all the source code and header files in the corresponding python directory
|
||||||
mv ${SRC}/pytrexio.py ${PYTREXIODIR}
|
mv ${SRC}/pytrexio.py ${PYTREXIODIR}/pytrexio.py
|
||||||
mv ${SRC}/trexio.py ${PYDIR}
|
mv ${SRC}/trexio.py ${PYDIR}/trexio.py
|
||||||
cp ${SRC}/*.c ${PYDIR}/src
|
cp ${SRC}/*.c ${PYDIR}/src
|
||||||
cp ${SRC}/*.h ${PYDIR}/src
|
cp ${SRC}/*.h ${PYDIR}/src
|
||||||
cp ${INCLUDIR}/trexio.h ${PYDIR}/src
|
cp ${INCLUDIR}/trexio.h ${PYDIR}/src
|
||||||
|
Loading…
Reference in New Issue
Block a user