diff --git a/bluesky/__init__.py b/bluesky/__init__.py index e09077ebd6..707c7c4bd6 100644 --- a/bluesky/__init__.py +++ b/bluesky/__init__.py @@ -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 @@ -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() diff --git a/bluesky/tools/__init__.py b/bluesky/tools/__init__.py index 91f97b75cb..ffaa914c4e 100644 --- a/bluesky/tools/__init__.py +++ b/bluesky/tools/__init__.py @@ -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() diff --git a/bluesky/tools/geo/__init__.py b/bluesky/tools/geo/__init__.py new file mode 100644 index 0000000000..3070d2a967 --- /dev/null +++ b/bluesky/tools/geo/__init__.py @@ -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') diff --git a/bluesky/tools/geo.py b/bluesky/tools/geo/_geo.py similarity index 100% rename from bluesky/tools/geo.py rename to bluesky/tools/geo/_geo.py diff --git a/bluesky/tools/src_cpp/cgeo.cpp b/bluesky/tools/geo/src_cpp/_cgeo.cpp similarity index 99% rename from bluesky/tools/src_cpp/cgeo.cpp rename to bluesky/tools/geo/src_cpp/_cgeo.cpp index e63a9e3178..404f8617ac 100644 --- a/bluesky/tools/src_cpp/cgeo.cpp +++ b/bluesky/tools/geo/src_cpp/_cgeo.cpp @@ -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 diff --git a/bluesky/tools/src_cpp/geo.hpp b/bluesky/tools/geo/src_cpp/geo.hpp similarity index 100% rename from bluesky/tools/src_cpp/geo.hpp rename to bluesky/tools/geo/src_cpp/geo.hpp diff --git a/bluesky/tools/src_cpp/pyhelpers.hpp b/bluesky/tools/geo/src_cpp/pyhelpers.hpp similarity index 100% rename from bluesky/tools/src_cpp/pyhelpers.hpp rename to bluesky/tools/geo/src_cpp/pyhelpers.hpp diff --git a/bluesky/tools/src_cpp/setup.py b/bluesky/tools/geo/src_cpp/setup.py similarity index 53% rename from bluesky/tools/src_cpp/setup.py rename to bluesky/tools/geo/src_cpp/setup.py index e3de5098b0..492da7fdb8 100644 --- a/bluesky/tools/src_cpp/setup.py +++ b/bluesky/tools/geo/src_cpp/setup.py @@ -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) diff --git a/setup.py b/setup.py index 6e98762855..f929001051 100644 --- a/setup.py +++ b/setup.py @@ -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'])] )