Cleaning up Cython directives applied both globally and locally
Closes #259 (closed)
This MR cleans up some of the Cython directives applied both on a per-file basis and as a global setting. Currently the linetrace
directive is applied globally leading to profiling overhead on each function call. This is something which
should instead be done only when building in a "debug" or "coverage" (see pipeline) mode.
One of the main things this MR now does is to clean up and improve the extension building process in setup.py
. There are
now debug
and coverage
targets in the Makefile
for building Finesse in these modes; the former enables profiling
globally, whilst the latter enables line tracing required for coverage reports. In addition, it is now easier to pass
any optional extension args for specific Cython extensions in setup.py
--- see the changes in this file for details.