Package: trexio
TREXIO Python APITREXIO provides a Python API, which enables interactive calls to the library.
It facilitates the development of interfaces between different codes and
can be used to convert data from one input/output file format into another.Requirementspython3 	(>= 3.6)numpy		  (>= 1.17.3)Installation from PyPIIn short, you can run the following command:pip install trexioHowever, it is good practice to first check for updates of the build-system packages. This can be achieved by runningpython -m pip install --upgrade pip setuptools build wheelNote: we highly recommend to use virtual environments to avoid compatibility issues and to improve reproducibility.For more details, see the corresponding part of thePython documentation.Note: our build farm (GitHub Actions) does not support ARM64 architectures (including the Mac M1/M2 chips). Therefore,pip install trexiodoes not work on an ARM64-based machine. Thus, we recommend to install TREXIO from source on an ARM64-based machine. If one uses a Mac where HDF5 is installed with brew (i.e.,brew install hdf5), a workaround is to execute the following 2 lines before doingpip install trexio:export H5_CFLAGS="-I$(brew --prefix hdf5)/include"export H5_LDFLAGS="-L$(brew --prefix hdf5)/lib"Additional requirements (for installation from source)C compiler 	  (gcc/icc/clang)HDF5 library	(>= 1.8)pkgconfig     (Python package)build         (Python package)pytest        (Python package)Installation from sourceDownload thetrexio-<version>.tar.gzfile with the latest Python APIgzip -cd trexio-<version>.tar.gz | tar xvf -cd trexio-<version>pip install -r requirements.txt(this installs all required python dependencies)Export custom environment variables needed for the installation following the procedure below and replacing/path/to/hdf5/with your paths.
The following two steps can be skipped if HDF5 is properly configured forpkg-config(i.e. if executingpkg-config --libs hdf5returns a list of options).export H5_CFLAGS=-I/path/to/hdf5/includeexport H5_LDFLAGS=-L/path/to/hdf5/libpip install .(this installstrexioin your environment)cd test && python -m pytest -v test_api.py(this executes several tests that verify the installation)You are ready to go!Note:installation based onpipcompiles its own C extension (shared library) calledpytrexio.
This extension is built from the TREXIO source files coupled to the wrapper code generated bySWIG.
The compiler options during this installation may differ from the ones used to compile the primary TREXIO API in C.
Furthermore, custom compiler flags provided to./configureormakeare not applied to the Python API.ExamplesAn interactive Jupyter notebook calledtutorial_benzene.ipynbis provided in theexamplesdirectory.
The notebook can be lauched either locally (seenext sectionfor details) or usingpre-built environment on Binder.Jupyter can be installed usingpip install jupyter. If you are not familiar with it, feel free to consult theJupyter documentation.Running the notebookThe example notebook can be launched using the following command:jupyter notebook tutorial_benzene.ipynbAdditional steps needed to run a custom virtual environment in Jupyter notebooksIn some cases, it may happen that the Jupyter kernels in the activated virtual environment (e.g.myvenv) still point to the system-wide python binaries and not to the environment ones.
This will result inImportErrorwhen importingtrexioin the notebook cell. In order to avoid this, themyvenvhas to be installed as an additional kernel.
This requiresipykernelpython package, which usually comes together with the Jupyter installation. If this is not the case, runpip install ipykernel.
You can installmyvenvas a kernel by executing the following command:python3 -m ipykernel install --user --name=myvenvNow you can launch a Jupyter notebook. Once it is open, make sure that your virtual environment is selected as the current kernel.
If this is not the case, try this:Press theKernelbutton in the navigation panelIn the output list of options selectChange kernelFind the name of your virtual environment (e.g.myvenv) in the list and select itThat's it, you have activated the custom virtual environment calledmyvenvin your notebook.To uninstall the kernel namedmyvenv, execute the following command:jupyter kernelspec uninstall myvenv