  Fanpy is a free and open-source Python library for developing and testing
multideterminant wavefunctions and related ab initio methods in electronic
structure theory. The main use of Fanpy is to quickly prototype new methods by
making it easier to transfer the mathematical conception of a new wavefunction
ans\"{a}tze to a working implementation. Fanpy uses the framework of our
recently introduced Flexible Ansatz for N-electron Configuration Interaction
(FANCI), where multideterminant wavefunctions are represented by their overlaps
with Slater determinants of orthonormal spin-orbitals. In the simplest case, a
new wavefunction ansatz can be implemented by simply writing a function for
evaluating its overlap with an arbitrary Slater determinant. Fanpy is modular
in both implementation and theory: the wavefunction model, the system's
Hamiltonian, and the choice of objective function are all independent modules.
This modular structure makes it easy for users to mix and match different
methods and for developers to quickly try new ideas. Fanpy is written purely in
Python with standard dependencies, making it accessible for most operating
systems; it adheres to principles of modern software development, including
comprehensive documentation, extensive testing, and continuous integration and
delivery protocols. This article is considered to be the official release notes
for the Fanpy library.
