1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-12-23 04:43:57 +01:00
Commit Graph

500 Commits

Author SHA1 Message Date
98e303ffe2 Merge branch 'master' of github.com:TREX-CoE/trexio 2022-01-07 11:22:44 +01:00
3f4b8e2c7e cppcheck fixes 2022-01-07 11:21:12 +01:00
dbb6f78397 cppcheck fixes 2022-01-07 11:01:23 +01:00
3787226fd1 overlapping changes 2022-01-07 09:58:03 +01:00
1f7386c4ca Missing break in front end 2022-01-07 08:57:45 +01:00
fc08ee68ef Merge branch 'master' of github.com:TREX-CoE/trexio 2022-01-05 14:05:25 +01:00
Evgeny Posenitskiy
c687c80f92
Merge pull request #71 from TREX-CoE/add-sparse-datasets
Add Python API for sparse datasets
2022-01-05 13:57:32 +01:00
b65ec031dc rename returned variable to n_int_read 2021-12-27 17:17:00 +01:00
4ef5386ae6 [cppcheck] fix some warnings 2021-12-27 16:29:26 +01:00
6ab5c67ebe [pre-release] upgrade versions and produce wheels for CPython 3.10 2021-12-27 16:26:17 +01:00
31ffa574ab finish top-level Python API for sparse data 2021-12-27 14:00:46 +01:00
722c546113 documentation for sparse arrays
+ add safe functions to Fortran API
2021-12-24 12:40:23 +01:00
c18a330eab [WIP] working read/write of sparse data in the low-level (SWIG) Python API
TODO: top-level Python API with error handling and truncation of output arrays when EOF is encountered (low-level API fills the remaining elements with garbase)
2021-12-24 11:49:54 +01:00
0a8aa638f6 fix double deallocation in text back end 2021-12-23 18:49:00 +01:00
72897e4b5d [WIP] read/write of sparse data in Python 2021-12-23 18:27:24 +01:00
c2376bf168 Fixed bug in text back-end when reading empt attributes 2021-12-23 18:21:17 +01:00
q-posev
31ccd27a0a fix warnings on MacOS 2021-12-17 17:07:53 +01:00
2639b76a6e optimize storage of indices depending on the size_max variable [TEXT] 2021-12-17 15:32:03 +01:00
daa5bdb3cc (inout) buffer size instead if (out) [Fortran] 2021-12-17 13:33:27 +01:00
314beb58c9 refactoring done; moved common blocks into _hdf5_open_read_dset_sparse 2021-12-17 13:32:35 +01:00
1c49c81da8 [WIP] refactoring; write_dset_sparse done 2021-12-16 16:52:35 +01:00
fafb155228 return the number of read elements if read_sparse reached EOF 2021-12-16 11:05:57 +01:00
2e99a14b6e read dim variable of sparse dset to compress storage of indices in HDF5 2021-12-14 18:03:51 +01:00
a8b251d820 write sparse values and compress int indices depending on the max num value 2021-12-14 18:02:58 +01:00
b90abcc307 fix memory leak in the Fortran test 2021-12-13 09:59:27 +01:00
070ef06818 better error handling for HDF5 2021-12-10 16:49:31 +01:00
1c16b75992 adapt HDF5 back end to be generated for an arbitrary number of indices 2021-12-10 16:02:38 +01:00
9f5ee463e1 only shift indices that have been read to the buffer (EOF case) 2021-12-10 14:02:05 +01:00
7afb53be49 implement shift of sparse indices to be one-based in Fortran 2021-12-10 11:34:37 +01:00
e00f3b106e working HDF5 I/O for sparse indices 2021-12-09 16:13:28 +01:00
e774cb6852 add read_size function to HDF5 back end 2021-12-09 14:10:51 +01:00
d001844c2f [WIP] working write_ for chunked extensible (sparse) datasets 2021-12-08 17:26:55 +01:00
e5bde10056 alternative way to check for EOF with fgets while reading 2021-12-03 19:23:01 +01:00
ed3bde973e [WIP] more general templated variables for sparse data
+ renamed templated variables with std_dtype_in|out suffix into _format_scanf|printf for clarity
2021-12-03 15:42:40 +01:00
c520175cbe use size_max values provided by the read_size functions 2021-12-03 11:48:51 +01:00
d2c95cd306 add functions to read the number of stored sparse elements 2021-12-02 17:28:37 +01:00
acdf982a94 fixed string length for file name + comments 2021-12-01 16:28:47 +01:00
7afce779a8 better error handling in TEXT back end 2021-12-01 16:11:40 +01:00
c30c3a532c add Fortran interface for sparse data 2021-12-01 13:35:42 +01:00
83c926fd6b replace offset_data arg with pointer arithmetics 2021-12-01 09:56:31 +01:00
d3ba8f3652 [WIP] working generator for sparse functions
+ remove trailing whitespaces
2021-11-30 16:30:36 +01:00
c1e1176400 [WIP] text back end 2021-11-24 17:44:54 +01:00
d44883f0ea add search bar
close #40
2021-11-19 12:50:12 +01:00
527417cd8f fix type conversion for 32-bit indices 2021-11-18 14:33:18 +01:00
72c355c7cc Top-level CMakeLists with subdirectories 2021-11-17 14:00:35 +01:00
954ee4216c add trexio_has_backend function to the C and Fortran APIs 2021-11-02 11:05:27 +01:00
7f3ee3cc18 reset back end values and add TREXIO_BACK_END_MISSING error 2021-11-02 10:32:00 +01:00
5504bc0fe6 wrap TREXIO_INVALID_BACK_END definition in preprocessor macro 2021-11-01 13:22:46 +01:00
d42dc7f449 optional HDF5 compilation
via configure script and pre-processor macros
2021-11-01 11:55:34 +01:00
1812deb9dd Check return value of mkdtemp 2021-10-14 10:53:15 +02:00
5cf12131f1 Fix text back end for read-only directories (make distcheck in qmckl) 2021-10-13 17:43:15 +02:00
d017306706 Better error handling with open in text back end 2021-10-13 16:13:24 +02:00
954b26ccff Update README 2021-10-13 14:24:54 +02:00
fb9c95bd61 add version attributes to the Fortran module 2021-10-08 13:55:56 +02:00
947a8a12f8 Fix bug due to PACKAGE_VERSION definition in trexio.h 2021-10-07 09:54:19 +02:00
68284161d3 downgrade numpy.i SWIG interface to numpy 1.17.3 2021-09-30 17:22:50 +02:00
2e2dac3982 modify rc_open only if it is not a NULL pointer 2021-09-24 12:23:59 +02:00
67b00efa9c handle return error of trexio_open in the Python API 2021-09-22 16:40:55 +02:00
9457a826d2 return error code from trexio_open [C, Fortran] 2021-09-22 14:50:22 +02:00
14472cda48 better error handling in case of invalid dimensioning variable 2021-09-22 11:33:27 +02:00
389d265f7f fix cppcheck warnings regarding redundant size_dset_str checks 2021-09-21 16:08:04 +02:00
d1a9af4185 remove blank spaces in front of pointers 2021-09-21 15:54:11 +02:00
788f7e666d read single numerical attributes based on _isSet bool flag 2021-09-21 15:41:12 +02:00
d5405e700c raise TREXIO_INVALID_ARG_2 also when writing zero as dimensioning variable 2021-09-21 14:35:29 +02:00
6459543afd better front end documentation for numerical attributes 2021-09-21 10:58:07 +02:00
11a17c65d3 add attr_ prefix to the template file name for numerical attributes 2021-09-21 10:41:37 +02:00
c22e9d2925 put back sanity check that dimensioning variables are positive 2021-09-20 17:00:05 +02:00
ce0d98b984 add conversion of float-like attributes into an output tuple 2021-09-20 15:52:55 +02:00
4b9827048f adapt the templates in back ends 2021-09-20 15:51:36 +02:00
261e7c8b84 modify front end for more general numerical attributes 2021-09-20 13:16:44 +02:00
11dadaab36 add tutorial HTML page to the main documentation 2021-09-15 13:43:57 +02:00
f251f0afba remove unnecessary comments in the SWIG interface 2021-09-14 17:30:05 +02:00
d04106f72d max_str_len should be int32_t to properly check for negative values 2021-09-13 13:35:45 +02:00
1589995775 do not use warnings for an attempt to overwrite in the Python API 2021-09-13 11:46:31 +02:00
2bd4ef9bfd add has_ functions to the Python API 2021-09-13 11:29:00 +02:00
77e3f1ac11 print UserWarning instead of raising Error for an attempt to overwrite data
following suggestion of Vijay G.C.
2021-09-12 14:24:50 +02:00
d060808467 do not reveal paths to trexio (security concerns) 2021-09-12 13:36:24 +02:00
12dd1fd8dc apply some suggestions from cppcheck 2021-09-12 13:25:03 +02:00
40d5fc31fc check that the data object exists before reading it from the file 2021-09-10 09:38:26 +02:00
67e59f156c explicitly provide __version__ attribute of the trexio module 2021-09-08 19:28:18 +02:00
96678fea2e adapt write functions to receive multidimensional arrays or lists 2021-09-07 17:14:23 +02:00
3e82fd9ae8 FIX: a bug that was leading to Python and valgrind errors 2021-08-31 12:11:22 +03:00
74c69bb293 better Exception handling with custom exception class 2021-08-30 18:04:35 +03:00
5a2b4d96a7 reshape output arrays by default when reading from the file 2021-08-27 16:08:39 +03:00
7b5ebf6272 implement TREXIO File class and change import of pytrexio module 2021-08-26 17:01:53 +03:00
4c28a4cac8 add type converters for numerical arrays in read/write Python functions 2021-08-26 13:14:46 +03:00
1dcd32ef7d add SWIG typemaps for safe API calls in single and double precision 2021-08-25 13:31:17 +03:00
ed7e3902e2 add memory-safe functions in single or double precision 2021-08-24 13:32:01 +03:00
2911e91941 make dim an optional argument in read_ functions
if dim is None - the function read all necessary dimensions from the TREXIO file
2021-08-24 12:51:43 +03:00
6f7c23aa11 add missing annotations 2021-08-21 13:13:55 +03:00
4fe86ee980 add Python docstrings for API functions
+ move definition of Fortran and Python back ends from Constant Prefixes to Back Ends section
2021-08-21 12:47:36 +03:00
5d5025ae1d get rid of _safe suffix and add dimension to read_dset_str functions 2021-08-20 13:43:15 +03:00
831973fc8e better python compilation 2021-08-18 16:28:43 +03:00
902147b45b better structure of the python directory 2021-08-18 15:40:42 +03:00
9cc552409f rename the front-end Python module 2021-08-18 13:30:03 +03:00
f0bccee32d single top-level import of pytrexio resolves bug with caching 2021-08-18 13:28:37 +03:00
0b223b9d6e return type cast of exit codes and back ends in C
add top-level string_of_error function in Python
2021-08-14 12:27:11 +03:00
721352cb89 add missing support for reading single string attributes 2021-08-11 16:01:36 +03:00
209f4506c8 update gitignore 2021-08-11 16:01:04 +03:00
2be1abd571 add Python front end 2021-08-11 15:59:58 +03:00
ec7a39f6c2 strict int types for DIM1 and arrays 2021-08-06 16:24:11 +03:00
808adc7cd8 add typemaps and tests for numpy int arrays
+ some cleaning in the Python test and SWIG interface files
2021-08-06 14:04:29 +03:00
1388ddef80 fix warnings produced during compilation of the Python extension module 2021-08-06 12:06:42 +03:00
d0c19e0ce0 pytrexio build and pip install working 2021-08-05 17:55:34 +03:00
60c28c1f3b rename python test and add temporary TODO 2021-08-04 14:13:23 +03:00
9a28b8d4bc Revert "create python directory and add TODO objectives"
This reverts commit 6ce91a6669.
2021-08-04 12:07:27 +03:00
6ce91a6669 create python directory and add TODO objectives 2021-08-04 10:18:36 +03:00
e0162d4570 return double datasets as numpy arrays using numpy.i and safe API 2021-07-28 15:59:29 +02:00
ea0ea0ac38 move from distutils to setuptools
sdist and install arguments of setup.py work!
2021-07-28 15:57:42 +02:00
f3dbfc7be2 added License and install_requires in setup.py + cleaning 2021-07-28 10:33:33 +02:00
da5a990acc add memory-safe API for numerical datasets 2021-07-28 10:19:00 +02:00
9f4176a8b6 resolve major compiler warnings produced by distutils 2021-07-27 11:06:06 +02:00
171cf1662b ignore __pycache__ 2021-07-26 19:28:56 +02:00
9bbae8fd7c replace some integers with TREXIO-native constants 2021-07-26 19:27:45 +02:00
1f98604d58 add pattern matching for arrays of strings + comments 2021-07-26 18:49:26 +02:00
12c2a3a014 update gitignore 2021-07-26 18:43:49 +02:00
8c6289a8ba build Python module using pythonic distutils 2021-07-26 18:43:15 +02:00
4faee98092 Merge branch 'master' into swig-python 2021-07-23 16:38:06 +02:00
578819afe7 do not propagate the local user name from config.h to trexio.h 2021-07-23 16:19:15 +02:00
2f876ef7cd write TREXIO version in the file if not done yet 2021-07-23 15:55:16 +02:00
856412f06a propagate package version and user name to trexio.h 2021-07-23 15:49:42 +02:00
836603fd32 do no wrap-up the code from back ends and private header 2021-07-20 14:22:54 +02:00
678f90f86a add a note on alternative way to re-define ill-defined constants 2021-07-20 12:31:21 +02:00
46eec89774 remove unsafe and unused file_name field from trexio_hdf5_s 2021-07-20 12:08:18 +02:00
ac28110696 add include guard to the trexio_private.h file 2021-07-20 12:06:44 +02:00
88e777f68b resolve complaint about undefined TREXIO_MAX_FILENAME_LENGTH and remove unused assert header 2021-07-20 11:36:23 +02:00
e06e0b3745 commented brute force patch for re-defining constants in the target language 2021-07-20 10:42:25 +02:00
9fa2bc2835 disable type casting in constant definitions to access them in the target language
required because SWIG cannot handle definitions with type casting
2021-07-20 10:39:05 +02:00
d527561440 add test of basic I/O for Python 2021-07-19 17:59:26 +02:00
79d374bdff [WIP] Python interface generated by SWIG 2021-07-19 17:58:50 +02:00
411334e2ee Merge branch 'master' into unit-testing 2021-06-22 14:46:39 +02:00
3bd730557c remove H5LDget_dset_dims to be compatible with HDF5 v.1.8.21 2021-06-22 12:21:25 +02:00
c8fd3ba045 remove redundant check of overwriting 2021-06-21 12:48:32 +02:00
07d2945333 rename TREXIO_NUM_ALREADY_EXISTS return code 2021-06-21 12:47:39 +02:00
ec0db01f0c Documentation in dist 2021-06-18 12:04:03 +02:00
q-posev
c9f639e0e8 fix compiler warning from MacOS 2021-06-17 20:20:46 +02:00
1a54b7fcf6 fix compiler warning for const pointers 2021-06-15 12:04:30 +02:00
ac45a937af Merge branch 'master' into add-strings 2021-06-15 11:49:42 +02:00
da188dbea0 add top-level read/write functions for single strings [fortran] 2021-06-15 11:26:03 +02:00
b92a15cce7 add top-level read/write functions for string arrays [fortran] 2021-06-15 10:20:01 +02:00
eadc2c63ac fix leaking memory [front] 2021-06-14 16:27:08 +02:00
5553e9110e add top-level read/write functions that accept arrays of strings directly 2021-06-14 15:40:26 +02:00
ae32a02652 pass max_str_len parameter also to read group_str 2021-06-14 14:36:19 +02:00
be66feec16 introduce _assert and _strarray2str helper subroutines for Fortran 2021-06-14 11:55:17 +02:00
535d7ed019 enable operation on string attributes [text] 2021-06-11 18:15:30 +02:00
a40804be2e fix leaking memory and avoid allocation of empty blocks 2021-06-11 14:46:24 +02:00
13b8d24108 [WIP] prepare new subloop triggers for the generator to properly read/free groups [text] 2021-06-10 16:35:38 +02:00
2b3e79054a [WIP] working pieces for read_dset_str [text] 2021-06-10 16:34:16 +02:00
bec752361c Index OK 2021-06-10 01:49:43 +02:00
1b504d92bf Merge branch 'master' into index 2021-06-10 00:32:20 +02:00
5abac3fec2 [WIP] working write dset of strings, but with memory leak [text] 2021-06-09 18:10:59 +02:00
57b2b63902 add C preprocessor directive for memory reclaim call 2021-06-09 13:52:54 +02:00
5c4782eb03 fix Fortran interface 2021-06-08 16:11:38 +02:00
842b0efaa8 use strncat instead of strcat 2021-06-08 14:59:03 +02:00
2e210bc212 bring back the max_str_len argument for read_ functions [hdf5] 2021-06-08 14:50:59 +02:00
57a83d7cf2 cleaning front end 2021-06-08 14:50:17 +02:00
36e85039d5 make file names consistent with the C test 2021-06-08 14:39:04 +02:00
f2c5a3a51b add max_str_len argument to read/write a single string 2021-06-08 10:45:43 +02:00
231fe479e7 inline with master branch 2021-06-07 11:01:37 +02:00
1ce1872916 fix missing things after merge 2021-06-04 18:42:35 +02:00
ea9ffaea43 Fix fortran tests 2021-06-04 18:14:45 +02:00
d57f2004ba Merge branch 'master' into add-strings 2021-06-04 18:09:26 +02:00
31bf17c66a Merge branch 'master' into evgeny 2021-06-04 17:30:51 +02:00
34478e366a resolve front end 2021-06-04 17:28:56 +02:00
1bfc8d0c6c fix typos 2021-06-04 17:02:14 +02:00
5b1cf03aaf [WIP] add has/read/write functions for string attributes [front,hdf5] 2021-06-04 15:33:50 +02:00
4549276e86 Add trexio_set_one_based in fortran interface 2021-06-04 15:00:13 +02:00
77f2858548 Add index in files 2021-06-04 14:43:27 +02:00
3ce9c57376 safer strncpy in the front end 2021-06-04 09:18:59 +02:00
4fceb6624d fix error handling in write_group_dset 2021-06-03 17:33:31 +02:00
52e636f610 fix error handling in read_group_dset 2021-06-03 17:32:50 +02:00
40e9aa9234 introduce max_str_len parameter 2021-06-03 16:13:11 +02:00
ed1393f5de Merge branch 'automake' of github.com:TREX-CoE/trexio into automake 2021-06-03 13:56:49 +02:00
75af136d4f Moved sparse documentation in src/templates_front/templator_front.org 2021-06-03 13:56:45 +02:00
aa4251b943 read_group_dset can operate on char* directly instead of char** 2021-06-03 13:41:43 +02:00
d2bc25ef03 less allocations in the front end 2021-06-03 13:39:02 +02:00
40bfc581ee use newline char as a delimeter 2021-06-03 10:26:19 +02:00
5043d058bd Merge branch 'automake' of github.com:TREX-CoE/trexio into automake 2021-06-03 09:57:57 +02:00
a5ae1d239b Improve HDF5 in configure 2021-06-03 01:25:20 +02:00
693f8d3846 fix file reopening for writing new variables 2021-06-02 20:19:39 +02:00
7a9d078859 remove append mode 2021-06-02 14:40:23 +02:00
0b5136f14c add error handling for an attempt to overwrite something 2021-06-02 14:23:58 +02:00
8aa4721758 Documentation 2021-06-02 11:19:03 +02:00
196224c63b use newline character as a delimeter for array of strings 2021-06-01 18:12:15 +02:00
0f444074c9 better error handling [front] 2021-06-01 16:45:13 +02:00
6979c84c38 parse char* strings and convert them to char** for back ends 2021-06-01 14:58:16 +02:00
f45fee6cbf explicit types for strings [HDF5] 2021-06-01 10:41:00 +02:00
753c767ce2 first working prototype for string datasets [HDF5] 2021-05-31 16:42:11 +02:00
edfe8817d1 [WIP] temporarily disable calls to text back end 2021-05-31 16:40:25 +02:00
b5a6987758 first prototype of read/write string datasets 2021-05-31 13:26:52 +02:00
c18b75a11d explicit string type in front end templates 2021-05-28 17:53:26 +02:00
8b580fee4a Automake done. Need to improve tests 2021-05-28 13:36:39 +02:00
42f81b2cc6 prepare templates and files for datasets with strings [all] 2021-05-27 15:14:01 +02:00
70531b0ff6 more general group_dset_h5_dtype variable in the templates [hdf5] 2021-05-27 13:59:45 +02:00
1575c1f4d0 add functions for has/read/write_dset_str [front] 2021-05-27 13:58:35 +02:00
Evgeny Posenitskiy
29d927675e
Major refactoring of the generator script (#47)
* minor cleaning

* create functions for dictionary parsers in the external file

* remove files_exclude since post-processing does the job

* no need to have group_group_dset when propagatin dsets

* oneliner for paths to templates

* add dset_per_group dict

* add function to iteratively populate string based on triggers list

* added recursive replacer for numbers

* add recursive replaces for datasets

* add function for text groups  [iterative+recursive upd]

* do not define triggers in the master script

* transition to helper dictionaries

* cleaning

* comment main code blocks

* rearrange parameters

* add documentation strings to the functions

* minor cleaning and changes

* adapt build_trexio script

* add consisteny check for dimensioning variables
2021-05-26 19:11:46 +02:00
1d5c452071 Not bugs found with scan-build 2021-05-19 22:02:40 +02:00
0cc24bd21e error handling for trexio_text_deinit function 2021-05-19 15:03:15 +02:00
q-posev
f77a5af4e0 fix a typo 2021-05-18 12:07:37 +02:00
q-posev
047153b7c1 remove NULL pointer check for file_name in text 2021-05-18 11:43:05 +02:00