This repository hosts the Python API for the extended tight binding (xtb
) program.
The idea of this project is to provide the xtb
API for Python without
requiring an additional xtb
installation.
Depending on what you plan to do with xtb-python
there are two recommended
ways to install. If you plan to use this project in your workflows, proceed
with the conda installation, if you plan to develop on this project, proceed
with the build from source.
For more details visit the documentation.
Installing xtb-python
from the conda-forge
channel can be achieved by adding conda-forge
to your channels with:
conda config --add channels conda-forge
Once the conda-forge
channel has been enabled, xtb-python
can be installed with:
conda install xtb-python
It is possible to list all of the versions of xtb-python
available on your platform with:
conda search xtb-python --channel conda-forge
When building this project from source, make sure to initialize the git submodules with
git submodules update --init
The project is build with meson, the exact dependencies are defined by the xtb
project, in summary it requires a Fortran and a C compiler as well as a
linear algebra backend. Make yourself familiar with building xtb
first!
Additionally this project requires a development version of Python installed.
Also ensure that you have the numpy
and cffi
packages installed,
configure the build of the extension with:
meson setup build --prefix=$PWD ninja -C build install
If you have several versions of Python installed you can point meson with
the -Dpy=<version>
option to the correct one.
This will create the CFFI extension _libxtb
and place it in the xtb
directory.
In case meson fails to configure or build, check the options for -Dla_backed
and -Dopenmp
which are passed to the xtb
subproject.
For more information on the build with meson, follow the guide in the xtb
repository here.
After creating the _libxtb
extension, the Python module can be installed
as usual with
pip install -e .
Contributions to this open source project are very welcome, before starting review our contributing guidelines first, please.
xtb-python
is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
xtb-python
is distributed in the hope that it will be useful,
but without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose. See the
GNU Lesser General Public License for more details.