From e33b2c7d408aebf74fe68b935839602cdc71d80b Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Tue, 17 Oct 2023 18:18:51 +0200 Subject: [PATCH 1/4] remove core from setup.py --- setup.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/setup.py b/setup.py index b089b06..35bf4ec 100644 --- a/setup.py +++ b/setup.py @@ -41,13 +41,6 @@ def read(fname): return long_description -def get_build_dir(): - build_dir = "lib.{platform}-{version[0]}.{version[1]}" - - return os.path.join("build", - build_dir.format(platform=sysconfig.get_platform(), - version=sys.version_info)) - # ----------------------------------------------------------------------------- # set include directories, linker path and libraries # we have two possibilities to configure the build: @@ -65,7 +58,6 @@ def get_build_dir(): if os.path.exists("conanbuildinfo.txt"): builder = ConanBuildInfoBuilder() nexus_config = builder.create("conanbuildinfo.txt") - core_config = builder.create("conanbuildinfo.txt") nexus_config.add_linker_argument("-Wl,-rpath,'$ORIGIN'/../../libs") @@ -125,13 +117,6 @@ def get_build_dir(): # ---------------------------------------------------------------------------- nexus_extension_factory = CppExtensionFactory(config=nexus_config) -# ---------------------------------------------------------------------------- -# list of files for the pnicore extensions -# ---------------------------------------------------------------------------- - -core_lib_dir = os.path.join(get_build_dir(), "pninexus", "core") - - # ----------------------------------------------------------------------------- # setup for the h5cpp and nexus extensions # ----------------------------------------------------------------------------- From d665018f1a8cc96ca8e39ad8538a6dd4c7d5e371 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Wed, 18 Oct 2023 16:30:01 +0200 Subject: [PATCH 2/4] remove printouts --- setup.py | 64 +++++++++++++++++++++++++------- src/pninexus/filters/__init__.py | 7 ++++ 2 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 src/pninexus/filters/__init__.py diff --git a/setup.py b/setup.py index 35bf4ec..81367b3 100644 --- a/setup.py +++ b/setup.py @@ -5,6 +5,7 @@ import os import os.path import numpy +import shutil from setuptools import setup from distutils.command.install import install import sysconfig @@ -12,12 +13,11 @@ ConanBuildInfoBuilder, BuildConfiguration) -cmdclass = {} try: from sphinx.setup_command import BuildDoc - cmdclass['build_sphinx'] = BuildDoc except ImportError: print('WARNING: sphinx is not available, not building docs') + BuildDoc = None name = "pninexus" version = "3.2.1" @@ -97,6 +97,49 @@ def read(fname): nexus_config.add_library_directory("%s/lib" % pninexus_path) nexus_config.add_linker_argument("-Wl,-rpath,%s/lib" % pninexus_path) +packages = ['pninexus', + 'pninexus.h5cpp', + 'pninexus.h5cpp.attribute', + 'pninexus.h5cpp.dataspace', + 'pninexus.h5cpp.datatype', + 'pninexus.h5cpp.file', + 'pninexus.h5cpp.filter', + 'pninexus.h5cpp.node', + 'pninexus.h5cpp.property', + 'pninexus.nexus'] +package_data = {} + + +def add_filters(filters, pkgs, pkgs_data): + added = False + dst = "src/pninexus/filters" + filter_path = os.environ.get('HDF5_PLUGIN_PATH') + for flt in filters: + if os.path.exists(flt): + if 'pninexus.filters' not in pkgs_data: + pkgs_data['pninexus.filters'] = [] + pkgs_data['pninexus.filters'].append(os.path.split(flt)[-1]) + shutil.copy(flt, dst) + added = True + elif filter_path and os.path.exists(os.path.join(filter_path, flt)): + if 'pninexus.filters' not in pkgs_data: + pkgs_data['pninexus.filters'] = [] + pkgs_data['pninexus.filters'].append(os.path.split(flt)[-1]) + shutil.copy(os.path.join(filter_path, flt), dst) + added = True + else: + raise Exception("Filter %s cannot be found" % flt) + print("Copy %s to pninexus/filters" % flt) + if added: + pkgs.append('pninexus.filters') + return added + + +pninexus_filters = os.environ.get('PNINEXUS_FILTERS') +if pninexus_filters: + add_filters(pninexus_filters.split(','), + packages, package_data) + # # adding include directories from numpy # @@ -220,16 +263,8 @@ def run(self): nexus_extension, ], package_dir={'': 'src'}, - packages=['pninexus', - 'pninexus.h5cpp', - 'pninexus.h5cpp.attribute', - 'pninexus.h5cpp.dataspace', - 'pninexus.h5cpp.datatype', - 'pninexus.h5cpp.file', - 'pninexus.h5cpp.filter', - 'pninexus.h5cpp.node', - 'pninexus.h5cpp.property', - 'pninexus.nexus'], + packages=packages, + package_data=package_data, url="https://github.com/pni-libraries/python-pninexus", classifiers=[ 'Development Status :: 5 - Production/Stable', @@ -246,7 +281,10 @@ def run(self): ], test_suite="test", test_loader="unittest:TestLoader", - cmdclass={"install": pni_install}, + cmdclass={ + "install": pni_install, + 'build_sphinx': BuildDoc, + }, keywords='h5cpp hdf5 python photon science detector', command_options={ 'build_sphinx': { diff --git a/src/pninexus/filters/__init__.py b/src/pninexus/filters/__init__.py new file mode 100644 index 0000000..8309d04 --- /dev/null +++ b/src/pninexus/filters/__init__.py @@ -0,0 +1,7 @@ +""" +:py:mod:`pninexus.io.filters` is a path setter for HDF5_PLUGIN_PATH +""" +import os +from pathlib import Path + +os.environ["HDF5_PLUGIN_PATH"] = os.path.split(Path(__file__))[0] From 74a286d63ba5e195ad81e8db362c2eb1a05d8ea3 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Wed, 18 Oct 2023 16:32:46 +0200 Subject: [PATCH 3/4] Update __init__.py --- src/pninexus/filters/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pninexus/filters/__init__.py b/src/pninexus/filters/__init__.py index 8309d04..bbc2d9f 100644 --- a/src/pninexus/filters/__init__.py +++ b/src/pninexus/filters/__init__.py @@ -1,5 +1,5 @@ """ -:py:mod:`pninexus.io.filters` is a path setter for HDF5_PLUGIN_PATH +:py:mod:`pninexus.filters` is a path setter for HDF5_PLUGIN_PATH """ import os from pathlib import Path From b2cdb998ac7971c4b354f1e441d929623b64a720 Mon Sep 17 00:00:00 2001 From: Jan Kotanski Date: Wed, 18 Oct 2023 16:49:45 +0200 Subject: [PATCH 4/4] add import to pninexus --- src/pninexus/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/pninexus/__init__.py b/src/pninexus/__init__.py index 69e3be5..624cfad 100644 --- a/src/pninexus/__init__.py +++ b/src/pninexus/__init__.py @@ -1 +1,6 @@ __path__ = __import__('pkgutil').extend_path(__path__, __name__) + +try: + from . import filters +except ImportError: + pass