Skip to content

Commit

Permalink
Fixed conditional loading of compiled/py geo functions
Browse files Browse the repository at this point in the history
  • Loading branch information
jooste committed Sep 2, 2024
1 parent 56ae5de commit c9c797e
Show file tree
Hide file tree
Showing 9 changed files with 45 additions and 30 deletions.
4 changes: 2 additions & 2 deletions bluesky/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
from bluesky import settings
from bluesky.core import Signal
from bluesky.pathfinder import resource
from bluesky import stack
from bluesky import tools


# Constants
Expand Down Expand Up @@ -68,6 +66,8 @@ def init(mode='sim', configfile=None, scenfile=None, discoverable=False,
# Initialize global settings, possibly loading a custom config file
settings.init(configfile)

from bluesky import stack, tools

# Initialise tools
tools.init()

Expand Down
17 changes: 2 additions & 15 deletions bluesky/tools/__init__.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,7 @@
from bluesky import settings
# Register settings defaults
settings.set_variable_defaults(prefer_compiled=False)
if settings.prefer_compiled:
try:
from . import cgeo as geo
print('Using compiled geo functions')
except ImportError:
from . import geo
print('Using Python-based geo functions')
else:
from . import geo
print('Using Python-based geo functions')

from . import cachefile
''' BlueSky tools. '''


def init():
import bluesky.tools.geo as geo
print("Reading magnetic variation data")
geo.initdecl_data()
36 changes: 36 additions & 0 deletions bluesky/tools/geo/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
''' BlueSky functions for geographical calculations. '''
from bluesky import settings
from bluesky.tools.geo._geo import nm, magdec, initdecl_data, magdeccmd, kwikpos


# Register settings defaults
settings.set_variable_defaults(prefer_compiled=False)
if getattr(settings, 'prefer_compiled'):
try:
from bluesky.tools.geo._cgeo import (
rwgs84,
rwgs84_matrix,
qdrdist,
qdrdist_matrix,
latlondist,
latlondist_matrix,
wgsg,
qdrpos,
kwikdist,
kwikdist_matrix,
kwikqdrdist,
kwikqdrdist_matrix
)
print('Using compiled geo functions')
except ImportError:
from bluesky.tools.geo._geo import (rwgs84, rwgs84_matrix, qdrdist,
qdrdist_matrix, latlondist, latlondist_matrix,
wgsg, qdrpos, kwikdist, kwikdist_matrix,
kwikqdrdist, kwikqdrdist_matrix)
print('Could not load compiled geo functions, Using Python-based geo functions instead')
else:
from bluesky.tools.geo._geo import (rwgs84, rwgs84_matrix, qdrdist,
qdrdist_matrix, latlondist, latlondist_matrix,
wgsg, qdrpos, kwikdist, kwikdist_matrix,
kwikqdrdist, kwikqdrdist_matrix)
print('Using Python-based geo functions')
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -674,25 +674,17 @@ static struct PyMethodDef methods[] = {
#define PyMODINIT_FUNC void
#endif

#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef cgeodef =
{
PyModuleDef_HEAD_INIT,
"cgeo", /* name of module */
"_cgeo", /* name of module */
"", /* module documentation, may be NULL */
-1, /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
methods
};

PyMODINIT_FUNC PyInit_cgeo(void)
PyMODINIT_FUNC PyInit__cgeo(void)
{
import_array();
return PyModule_Create(&cgeodef);
};
#else
PyMODINIT_FUNC initcgeo()
{
Py_InitModule("cgeo", methods);
import_array();
};
#endif
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from distutils.core import setup, Extension
import numpy as np

ext_modules = [Extension('cgeo', sources=['cgeo.cpp'])]
ext_modules = [Extension('_cgeo', sources=['_cgeo.cpp'])]

setup(name='cgeo', version='1.0', include_dirs=[np.get_include()],
setup(name='_cgeo', version='1.0', include_dirs=[np.get_include()],
ext_modules=ext_modules)
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,6 @@ def get_numpy_include():
'Source': 'https://github.com/TUDelft-CNS-ATM/bluesky',
},
include_dirs=[get_numpy_include()],
ext_modules=[Extension('bluesky.tools.cgeo', ['bluesky/tools/src_cpp/cgeo.cpp']),
ext_modules=[Extension('bluesky.tools.geo._cgeo', ['bluesky/tools/geo/src_cpp/_cgeo.cpp']),
Extension('bluesky.traffic.asas.cstatebased', ['bluesky/traffic/asas/src_cpp/cstatebased.cpp'], include_dirs=['bluesky/tools/src_cpp'])]
)

0 comments on commit c9c797e

Please sign in to comment.