-
Notifications
You must be signed in to change notification settings - Fork 781
{data}[foss/2022a] PyTables v3.8.0 #17143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
verdurin
merged 8 commits into
easybuilders:develop
from
deniskristak:20230118120149_new_pr_PyTables380
Jan 20, 2023
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
741152e
adding easyconfigs: PyTables-3.8.0-foss-2022a.eb and patches: PyTable…
deniskristak 01d0652
use Blosc2 instead of Blosc as dependency for PyTables 3.8.0, downloa…
boegel 1a48e8f
add missing binutils build dependency for py-cpuinfo 9.0.0
boegel 2c465f4
add back Blosc dependency for PyTables 3.8.0
boegel 296c498
update to Blosc2 2.6.1 as dependency for PyTables 3.8.0 + add patches…
boegel 4d0a597
Update easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2022a.eb
deniskristak 5a49df4
Update easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2022a.eb
deniskristak be07e0a
Fix long line after correcting description text
verdurin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
31 changes: 31 additions & 0 deletions
31
easybuild/easyconfigs/b/Blosc2/Blosc2-2.6.1-GCCcore-11.3.0.eb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild | ||
| # Author: Denis Kristak | ||
| # Update: Thomas Hoffmann (EMBL) | ||
| easyblock = 'CMakeMake' | ||
|
|
||
| name = 'Blosc2' | ||
| version = '2.6.1' | ||
|
|
||
| homepage = 'https://www.blosc.org/' | ||
|
|
||
| description = "Blosc, an extremely fast, multi-threaded, meta-compressor library" | ||
|
|
||
| toolchain = {'name': 'GCCcore', 'version': '11.3.0'} | ||
| toolchainopts = {'pic': True, 'cstd': 'c++11'} | ||
|
|
||
| source_urls = ['https://github.com/Blosc/c-blosc2/archive/'] | ||
| sources = ['v%(version)s.tar.gz'] | ||
| checksums = ['514a793368093893c1a7cae030f7e31faca7f86465ae69dd576f256d8bf28c08'] | ||
|
|
||
| builddependencies = [ | ||
| ('binutils', '2.38'), | ||
| ('CMake', '3.24.3'), | ||
| ] | ||
|
|
||
| sanity_check_paths = { | ||
| 'files': ['include/blosc2/blosc2-export.h', 'include/blosc2.h', 'lib/libblosc2.a', | ||
| 'lib/libblosc2.%s' % SHLIB_EXT], | ||
| 'dirs': [], | ||
| } | ||
|
|
||
| moduleclass = 'lib' |
74 changes: 74 additions & 0 deletions
74
easybuild/easyconfigs/p/PyTables/PyTables-3.8.0-foss-2022a.eb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,74 @@ | ||
| # http://www.pytables.org/usersguide/installation.html | ||
| # updated: Denis Kristak (INUITS) | ||
|
|
||
| easyblock = 'PythonBundle' | ||
|
|
||
| name = 'PyTables' | ||
| version = '3.8.0' | ||
|
|
||
| homepage = 'https://www.pytables.org' | ||
| description = """PyTables is a package for managing hierarchical datasets and designed to efficiently and easily cope | ||
| with extremely large amounts of data. PyTables is built on top of the HDF5 library, using the Python language and the | ||
| NumPy package. It features an object-oriented interface that, combined with C extensions for the performance-critical | ||
| parts of the code (generated using Cython), makes it a fast, yet extremely easy to use tool for interactively browsing, | ||
| processing and searching very large amounts of data. One important feature of PyTables is that it optimizes memory and | ||
| disk resources so that data takes much less space (specially if on-flight compression is used) than other solutions | ||
| such as relational or object oriented databases.""" | ||
|
|
||
| toolchain = {'name': 'foss', 'version': '2022a'} | ||
| toolchainopts = {'usempi': True} | ||
|
|
||
| builddependencies = [ | ||
| ('pkgconf', '1.8.0'), | ||
| ('CMake', '3.24.3'), | ||
| ('Ninja', '1.10.2'), | ||
| ('scikit-build', '0.15.0'), | ||
| ] | ||
|
|
||
| dependencies = [ | ||
| ('Python', '3.10.4'), | ||
| ('SciPy-bundle', '2022.05'), # provides numexpr | ||
| ('HDF5', '1.12.2'), | ||
| ('LZO', '2.10'), | ||
| ('Blosc', '1.21.3'), | ||
| ('Blosc2', '2.6.1'), | ||
| ('py-cpuinfo', '9.0.0'), | ||
| ] | ||
|
|
||
| use_pip = True | ||
|
|
||
| exts_list = [ | ||
| ('blosc2', '2.0.0', { | ||
| 'patches': ['blosc2-2.0.0_use-Blosc2-dep.patch'], | ||
| 'checksums': [ | ||
| {'blosc2-2.0.0.tar.gz': 'f19b0b3674f6c825b490f00d8264b0c540c2cdc11ec7e81178d38b83c57790a1'}, | ||
| {'blosc2-2.0.0_use-Blosc2-dep.patch': '6a9443f378472ada3c8fe8a8a346fe16f22b01bab7d9e60c23b64b546178054b'}, | ||
| ], | ||
| }), | ||
| ('tables', version, { | ||
| 'patches': [ | ||
| 'PyTables-%(version)s_fix-libs.patch', | ||
| 'PyTables-3.8.0_fix-find-blosc2-library-path.patch', | ||
| ], | ||
| 'checksums': [ | ||
| {'tables-3.8.0.tar.gz': '34f3fa2366ce20b18f1df573a77c1d27306ce1f2a41d9f9eff621b5192ea8788'}, | ||
| {'PyTables-3.8.0_fix-libs.patch': '7a1e6fa1f9169e52293e2b433a4302fa13c5d31e7709cd4fe0e087199b9e3f8a'}, | ||
| {'PyTables-3.8.0_fix-find-blosc2-library-path.patch': | ||
| 'dcf6c3a16a138454296161e99cf6470620755d4c26303186a744f09a11e6013b'}, | ||
| ], | ||
| }), | ||
| ] | ||
|
|
||
| local_bins = ['pt2to3', 'ptdump', 'ptrepack', 'pttree'] | ||
| sanity_check_paths = { | ||
| 'files': ['bin/%s' % x for x in local_bins], | ||
| 'dirs': ['lib/python%(pyshortver)s/site-packages'], | ||
| } | ||
|
|
||
| options = {'modulename': 'tables'} | ||
|
|
||
| sanity_check_commands = ["%s --help" % x for x in local_bins] | ||
|
|
||
| sanity_pip_check = True | ||
|
|
||
| moduleclass = 'data' |
44 changes: 44 additions & 0 deletions
44
easybuild/easyconfigs/p/PyTables/PyTables-3.8.0_fix-find-blosc2-library-path.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| determine location to Blosc2 library via $EBROOTBLOSC2, if defined, | ||
| since mechanism to locate the library via blosc2-*.dist-info/RECORD doesn't work if blosc2 was not installed | ||
| with vendored c-blosc2 library; | ||
| author: Kenneth Hoste (HPC-UGent) | ||
| --- tables-3.8.0/setup.py.orig 2023-01-19 20:10:15.637759755 +0100 | ||
| +++ tables-3.8.0/setup.py 2023-01-19 20:11:48.590853686 +0100 | ||
| @@ -110,19 +110,25 @@ | ||
|
|
||
| def get_blosc2_directories(): | ||
| """Get Blosc2 directories for the C library by using wheel metadata""" | ||
| - try: | ||
| - import blosc2 | ||
| - except ModuleNotFoundError: | ||
| - raise EnvironmentError("Cannot import the blosc2 requirement") | ||
| - version = blosc2.__version__ | ||
| - basepath = Path(os.path.dirname(blosc2.__file__)) | ||
| - recinfo = basepath.parent / f'blosc2-{version}.dist-info' / 'RECORD' | ||
| library_path = None | ||
| - for line in open(recinfo): | ||
| - if 'libblosc2' in line: | ||
| - library_path = Path(os.path.abspath(basepath.parent / | ||
| - Path(line[:line.find('libblosc2')]))) | ||
| - break | ||
| + blosc2_root = os.getenv('EBROOTBLOSC2') | ||
| + if blosc2_root: | ||
| + library_path = Path(os.path.join(blosc2_root, 'lib')) | ||
| + else: | ||
| + try: | ||
| + import blosc2 | ||
| + except ModuleNotFoundError: | ||
| + raise EnvironmentError("Cannot import the blosc2 requirement") | ||
| + version = blosc2.__version__ | ||
| + basepath = Path(os.path.dirname(blosc2.__file__)) | ||
| + recinfo = basepath.parent / f'blosc2-{version}.dist-info' / 'RECORD' | ||
| + library_path = None | ||
| + for line in open(recinfo): | ||
| + if 'libblosc2' in line: | ||
| + library_path = Path(os.path.abspath(basepath.parent / | ||
| + Path(line[:line.find('libblosc2')]))) | ||
| + break | ||
| + | ||
| if not library_path: | ||
| raise NotADirectoryError("Library directory not found for blosc2!") | ||
|
|
15 changes: 15 additions & 0 deletions
15
easybuild/easyconfigs/p/PyTables/PyTables-3.8.0_fix-libs.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| # pyTables expects that LIBS is a list of library names and will add | ||
| # a -l by itself. | ||
| # original patch by ward.poelmans@ugent.be, ported to newer PyTables version by Kenneth Hoste (HPC-UGent) | ||
| --- PyTables-3.8.0/setup.py.orig 2023-01-11 19:14:27.160064110 +0100 | ||
| +++ PyTables-3.8.0/setup.py 2023-01-11 19:21:48.460252182 +0100 | ||
| @@ -576,6 +576,9 @@ | ||
| # is not a good idea. | ||
| CFLAGS = os.environ.get("CFLAGS", "").split() | ||
| LIBS = os.environ.get("LIBS", "").split() | ||
| + for idx, lib in enumerate(LIBS): | ||
| + if lib.startswith("-l"): | ||
| + LIBS[idx] = lib.replace("-l", "") | ||
| CONDA_PREFIX = os.environ.get("CONDA_PREFIX", "") | ||
| # We start using pkg-config since some distributions are putting HDF5 | ||
| # (and possibly other libraries) in exotic locations. See issue #442. |
24 changes: 24 additions & 0 deletions
24
easybuild/easyconfigs/p/PyTables/blosc2-2.0.0_use-Blosc2-dep.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| make blosc2 use provided Blosc2 dependency, rather than letting it build its own vendored copy of c-blosc2 | ||
| author: Kenneth Hoste (HPC-UGent) | ||
| --- blosc2-2.0.0/blosc2/CMakeLists.txt.orig 2023-01-19 13:20:38.055582814 +0100 | ||
| +++ blosc2-2.0.0/blosc2/CMakeLists.txt 2023-01-19 13:21:03.808615093 +0100 | ||
| @@ -7,17 +7,14 @@ | ||
| set(BUILD_FUZZERS OFF CACHE BOOL "Build C-Blosc2 fuzzers") | ||
|
|
||
| set(CMAKE_POSITION_INDEPENDENT_CODE ON) | ||
| -# we want the binaries of the C-Blosc2 library to go into the wheels | ||
| -set(BLOSC_INSTALL ON) | ||
| -add_subdirectory(c-blosc2) | ||
| -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/c-blosc2/include") | ||
| +include_directories("$ENV{EBROOTBLOSC2}/include") | ||
| include_directories("${Python_NumPy_INCLUDE_DIRS}") | ||
|
|
||
|
|
||
| add_cython_target(blosc2_ext blosc2_ext.pyx) | ||
| add_library(blosc2_ext MODULE ${blosc2_ext}) | ||
|
|
||
| -target_link_libraries(blosc2_ext blosc2_static) | ||
| +target_link_libraries(blosc2_ext $ENV{EBROOTBLOSC2}/lib/libblosc2.a) | ||
|
|
||
| python_extension_module(blosc2_ext) | ||
|
|
39 changes: 39 additions & 0 deletions
39
easybuild/easyconfigs/p/py-cpuinfo/py-cpuinfo-9.0.0-GCCcore-11.3.0.eb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| easyblock = 'PythonPackage' | ||
|
|
||
| name = 'py-cpuinfo' | ||
| version = '9.0.0' | ||
|
|
||
| homepage = 'https://github.com/workhorsy/py-cpuinfo' | ||
| description = "py-cpuinfo gets CPU info with pure Python." | ||
|
|
||
| toolchain = {'name': 'GCCcore', 'version': '11.3.0'} | ||
|
|
||
| sources = [SOURCE_TAR_GZ] | ||
| checksums = ['3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690'] | ||
|
|
||
| builddependencies = [ | ||
| ('binutils', '2.38'), | ||
| ] | ||
|
|
||
| dependencies = [ | ||
| ('Python', '3.10.4'), | ||
| ] | ||
|
|
||
| download_dep_fail = True | ||
| use_pip = True | ||
|
|
||
| sanity_check_paths = { | ||
| 'files': ['bin/cpuinfo'], | ||
| 'dirs': ['lib/python%(pyshortver)s/site-packages'], | ||
| } | ||
|
|
||
| sanity_check_commands = [ | ||
| "cpuinfo", | ||
| "python -m cpuinfo", | ||
| ] | ||
|
|
||
| options = {'modulename': 'cpuinfo'} | ||
|
|
||
| sanity_pip_check = True | ||
|
|
||
| moduleclass = 'tools' | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.