pyncbitk-runtime 29.6.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. pyncbitk_runtime-29.6.0.0/CMakeLists.txt +31 -0
  2. pyncbitk_runtime-29.6.0.0/COPYING +21 -0
  3. pyncbitk_runtime-29.6.0.0/PKG-INFO +73 -0
  4. pyncbitk_runtime-29.6.0.0/README.md +28 -0
  5. pyncbitk_runtime-29.6.0.0/conanfile.txt +13 -0
  6. pyncbitk_runtime-29.6.0.0/deployer.py +58 -0
  7. pyncbitk_runtime-29.6.0.0/pyproject.toml +81 -0
  8. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/README.md +368 -0
  9. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/conandata.yml +81 -0
  10. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/conanfile.py +368 -0
  11. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/dependencies-0.0.yml +242 -0
  12. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/dependencies-27.0.yml +229 -0
  13. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/dependencies-28.0.yml +230 -0
  14. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/dependencies-29.0.yml +243 -0
  15. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/requirements-0.0.yml +31 -0
  16. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/requirements-27.0.yml +28 -0
  17. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/requirements-28.0.yml +27 -0
  18. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/dependencies/requirements-29.0.yml +31 -0
  19. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/patches/27.0.0-compiler.patch +11 -0
  20. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/patches/27.0.0-definitions.patch +11 -0
  21. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/patches/27.0.0-install.patch +15 -0
  22. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/patches/29.0.0-ncbiptb.patch +11 -0
  23. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/test_package/CMakeLists.txt +7 -0
  24. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/test_package/basic_sample.cpp +100 -0
  25. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/test_package/conanfile.py +24 -0
  26. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/test_v1_package/CMakeLists.txt +8 -0
  27. pyncbitk_runtime-29.6.0.0/vendor/ncbi-cxx-toolkit-conan/test_v1_package/conanfile.py +19 -0
@@ -0,0 +1,31 @@
1
+ cmake_minimum_required(VERSION 3.20)
2
+
3
+ if(DEFINED SKBUILD_PROJECT_NAME)
4
+ project(${SKBUILD_PROJECT_NAME} VERSION ${SKBUILD_PROJECT_VERSION})
5
+ else()
6
+ project(pyncbitk-runtime)
7
+ endif()
8
+
9
+ enable_language(C)
10
+ enable_language(CXX)
11
+
12
+ set(BUILD_SHARED_LIBS OFF)
13
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
14
+
15
+ # Detect required NCBI C++ Toolkit libraries
16
+ #find_package(PCRE REQUIRED)
17
+ #find_package(lzo REQUIRED)
18
+ #find_package(libunwind REQUIRED)
19
+ #find_package(ncbi-cxx-toolkit-public COMPONENTS algo core seqext REQUIRED)
20
+
21
+ # Configure Toolkit build
22
+ set(NCBI_WITHOUT_MT ON)
23
+
24
+ # Install all dependencies into `pyncbitk-runtime` wheel
25
+ if("${SKBUILD_STATE}" STREQUAL "wheel")
26
+ execute_process(
27
+ COMMAND conan install ${CMAKE_SOURCE_DIR}
28
+ -nr --deployer deployer
29
+ --deployer-folder "${SKBUILD_PLATLIB_DIR}/${SKBUILD_PROJECT_NAME}"
30
+ -s compiler.cppstd=20)
31
+ endif()
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Martin Larralde <martin.larralde@embl.de>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,73 @@
1
+ Metadata-Version: 2.2
2
+ Name: pyncbitk-runtime
3
+ Version: 29.6.0.0
4
+ Summary: Runtime component of the NCBI C++ Toolkit to use in PyNCBItk.
5
+ Keywords: bioinformatics,blast,sequence,alignment,ncbi
6
+ Author-Email: Martin Larralde <martin.larralde@embl.de>
7
+ License: MIT License
8
+
9
+ Copyright (c) 2024 Martin Larralde <martin.larralde@embl.de>
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ Classifier: Development Status :: 4 - Beta
30
+ Classifier: Intended Audience :: Developers
31
+ Classifier: Intended Audience :: Science/Research
32
+ Classifier: License :: OSI Approved :: MIT License
33
+ Classifier: Operating System :: OS Independent
34
+ Classifier: Programming Language :: C++
35
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
36
+ Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
37
+ Project-URL: Documentation, https://pyncbitk.readthedocs.io/en/stable/
38
+ Project-URL: Bug Tracker, https://github.com/althonos/pyncbitk/issues
39
+ Project-URL: Changelog, https://github.com/althonos/pyncbitk/blob/master/CHANGELOG.md
40
+ Project-URL: Coverage, https://codecov.io/gh/althonos/pyncbitk/
41
+ Project-URL: Builds, https://github.com/althonos/pyncbitk/actions
42
+ Project-URL: PyPI, https://pypi.org/project/pyncbitk
43
+ Requires-Python: >=3.7
44
+ Description-Content-Type: text/markdown
45
+
46
+ # 🧬🧰 PyNCBItk [![Stars](https://img.shields.io/github/stars/althonos/pyncbitk.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/pyncbitk/stargazers)
47
+
48
+ *(Unofficial) [Cython](https://cython.org/) bindings and Python interface to the [NCBI C++ Toolkit](https://www.ncbi.nlm.nih.gov/toolkit).*
49
+
50
+ This package contains the runtime components of PyNCBItk to allow reusing them
51
+ across versions of the Cython bindings without having to rebuild. See the main
52
+ [`pyncbitk`](https://pypi.org/project/pyncbitk) package for more information.
53
+
54
+
55
+ ## 🔧 Installing
56
+
57
+ The PyNCBItk runtime supports pre-built binaries for Linux x86-64 (based on `manylinux_2_34`),
58
+ and for MacOS x86-64 and Aarch64 (for MacOS 13.3+). At the moment, the package is only tested
59
+ on these platforms.
60
+
61
+ Compiling from scratch uses CMake and the [Conan C/C++ package manager](https://docs.conan.io/2/)
62
+ to build the official [`ncbi-cxx-toolkit-public` recipe](https://github.com/ncbi/ncbi-cxx-toolkit-conan)
63
+ and install the artifacts into a self-contained Python package. If compilation fails for your
64
+ platform, please open an issue on the [issue tracker](https://github.com/althonos/pyncbitk/issues).
65
+
66
+
67
+ ## ⚖️ License
68
+
69
+ This library is provided under the [MIT License](https://choosealicense.com/licenses/mit/).
70
+ The NCBI C++ Toolkit is a "United States Government Work" and therefore lies in
71
+ the public domain, but may be subject to copyright by the U.S. in foreign
72
+ countries. Some restrictions apply, see the
73
+ [NCBI C++ Toolkit license](https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/lxr/source/doc/public/LICENSE).
@@ -0,0 +1,28 @@
1
+ # 🧬🧰 PyNCBItk [![Stars](https://img.shields.io/github/stars/althonos/pyncbitk.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/pyncbitk/stargazers)
2
+
3
+ *(Unofficial) [Cython](https://cython.org/) bindings and Python interface to the [NCBI C++ Toolkit](https://www.ncbi.nlm.nih.gov/toolkit).*
4
+
5
+ This package contains the runtime components of PyNCBItk to allow reusing them
6
+ across versions of the Cython bindings without having to rebuild. See the main
7
+ [`pyncbitk`](https://pypi.org/project/pyncbitk) package for more information.
8
+
9
+
10
+ ## 🔧 Installing
11
+
12
+ The PyNCBItk runtime supports pre-built binaries for Linux x86-64 (based on `manylinux_2_34`),
13
+ and for MacOS x86-64 and Aarch64 (for MacOS 13.3+). At the moment, the package is only tested
14
+ on these platforms.
15
+
16
+ Compiling from scratch uses CMake and the [Conan C/C++ package manager](https://docs.conan.io/2/)
17
+ to build the official [`ncbi-cxx-toolkit-public` recipe](https://github.com/ncbi/ncbi-cxx-toolkit-conan)
18
+ and install the artifacts into a self-contained Python package. If compilation fails for your
19
+ platform, please open an issue on the [issue tracker](https://github.com/althonos/pyncbitk/issues).
20
+
21
+
22
+ ## ⚖️ License
23
+
24
+ This library is provided under the [MIT License](https://choosealicense.com/licenses/mit/).
25
+ The NCBI C++ Toolkit is a "United States Government Work" and therefore lies in
26
+ the public domain, but may be subject to copyright by the U.S. in foreign
27
+ countries. Some restrictions apply, see the
28
+ [NCBI C++ Toolkit license](https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/lxr/source/doc/public/LICENSE).
@@ -0,0 +1,13 @@
1
+ [requires]
2
+ ncbi-cxx-toolkit-public/29.6.0
3
+ libiconv/1.17
4
+ [options]
5
+ ncbi-cxx-toolkit-public/*:with_components=algo;core;objects;seqext;loaders
6
+ ncbi-cxx-toolkit-public/*:without_req=BerkeleyDB;GRPC
7
+ ncbi-cxx-toolkit-public/*:shared=True
8
+ [layout]
9
+ cmake_layout
10
+ [generators]
11
+ CMakeDeps
12
+ CMakeToolchain
13
+ VirtualRunEnv
@@ -0,0 +1,58 @@
1
+ import filecmp
2
+ import os
3
+ import glob
4
+ import shutil
5
+ import fnmatch
6
+
7
+ from conan.internal.cache.home_paths import HomePaths
8
+ from conan.api.output import ConanOutput
9
+ from conan.internal.loader import load_python_file
10
+ from conan.internal.errors import conanfile_exception_formatter
11
+ from conan.errors import ConanException
12
+ from conan.internal.util.files import rmdir, mkdir
13
+
14
+
15
+ def _deploy_single(dep, conanfile, output_folder, folder_name):
16
+ new_folder = os.path.join(output_folder, folder_name)
17
+ rmdir(new_folder)
18
+ symlinks = conanfile.conf.get("tools.deployer:symlinks", check_type=bool, default=True)
19
+ try:
20
+ shutil.copytree(dep.package_folder, new_folder, symlinks=symlinks)
21
+ if os.path.exists(os.path.join(new_folder, "bin")):
22
+ shutil.rmtree(os.path.join(new_folder, "bin"))
23
+ except Exception as e:
24
+ if "WinError 1314" in str(e):
25
+ ConanOutput().error("full_deploy: Symlinks in Windows require admin privileges "
26
+ "or 'Developer mode = ON'", error_type="exception")
27
+ raise ConanException(f"full_deploy: The copy of '{dep}' files failed: {e}.\nYou can "
28
+ f"use 'tools.deployer:symlinks' conf to disable symlinks")
29
+ dep.set_deploy_folder(new_folder)
30
+
31
+ config_file = os.path.join(output_folder, f"{dep.ref.name}-config.cmake")
32
+ libfiles = glob.glob(os.path.join(new_folder, "lib", "*"))
33
+ libs = " ".join(
34
+ f"${{CMAKE_CURRENT_LIST_DIR}}/{folder_name}/lib/{os.path.basename(libfile)}"
35
+ for libfile in libfiles
36
+ )
37
+
38
+ with open(config_file, "w") as dst:
39
+ dst.write(f"set({dep.ref.name}_INCLUDE_DIRS ${{CMAKE_CURRENT_LIST_DIR}}/{folder_name}/include)\n")
40
+ dst.write(f"set({dep.ref.name}_LIBRARIES {libs})\n")
41
+
42
+
43
+
44
+
45
+ def deploy(graph, output_folder, **kwargs):
46
+ conanfile = graph.root.conanfile
47
+ for dep in conanfile.dependencies.values():
48
+ if dep.package_folder is None:
49
+ continue
50
+ folder_name = dep.ref.name #os.path.join("full_deploy", dep.context, dep.ref.name, str(dep.ref.version))
51
+ build_type = dep.info.settings.get_safe("build_type")
52
+ arch = dep.info.settings.get_safe("arch")
53
+ #if build_type:
54
+ # folder_name = os.path.join(folder_name, build_type)
55
+ #if arch:
56
+ # folder_name = os.path.join(folder_name, arch)
57
+ #print("install dep:", dep)
58
+ _deploy_single(dep, conanfile, output_folder, folder_name)
@@ -0,0 +1,81 @@
1
+ [build-system]
2
+ build-backend = "scikit_build_core_conan.build"
3
+ requires = [
4
+ "scikit-build-core-conan==0.7.1 ; python_version <= '3.8'",
5
+ "scikit-build-core-conan>=0.8.0 ; python_version > '3.8'",
6
+ "cython >=3.0"
7
+ ]
8
+
9
+ [project]
10
+ name = "pyncbitk-runtime"
11
+ version = "29.6.0.0"
12
+ description = "Runtime component of the NCBI C++ Toolkit to use in PyNCBItk."
13
+ readme = "README.md"
14
+ requires-python = ">=3.7"
15
+ license = { file = "COPYING" }
16
+ authors = [
17
+ { name = "Martin Larralde", email = "martin.larralde@embl.de" },
18
+ ]
19
+ keywords = ["bioinformatics", "blast", "sequence", "alignment", "ncbi"]
20
+ classifiers = [
21
+ "Development Status :: 4 - Beta",
22
+ "Intended Audience :: Developers",
23
+ "Intended Audience :: Science/Research",
24
+ "License :: OSI Approved :: MIT License",
25
+ "Operating System :: OS Independent",
26
+ "Programming Language :: C++",
27
+ "Topic :: Scientific/Engineering :: Bio-Informatics",
28
+ "Topic :: Scientific/Engineering :: Medical Science Apps.",
29
+ ]
30
+
31
+ [project.urls]
32
+ "Documentation" = "https://pyncbitk.readthedocs.io/en/stable/"
33
+ "Bug Tracker" = "https://github.com/althonos/pyncbitk/issues"
34
+ "Changelog" = "https://github.com/althonos/pyncbitk/blob/master/CHANGELOG.md"
35
+ "Coverage" = "https://codecov.io/gh/althonos/pyncbitk/"
36
+ "Builds" = "https://github.com/althonos/pyncbitk/actions"
37
+ "PyPI" = "https://pypi.org/project/pyncbitk"
38
+
39
+ [tool.scikit-build-core-conan]
40
+ path = "."
41
+ build = "missing"
42
+ output-folder = "."
43
+ config = ["tools.cmake.cmaketoolchain:generator=Ninja"]
44
+ settings = ["compiler.cppstd=20"]
45
+
46
+ [[tool.scikit-build-core-conan.local-recipes]]
47
+ path = "vendor/ncbi-cxx-toolkit-conan"
48
+ name = "ncbi-cxx-toolkit-public"
49
+ version = "29.6.0"
50
+
51
+ [tool.scikit-build]
52
+ build-dir = "build/{build_type}"
53
+ wheel.py-api = "py3"
54
+ cmake.build-type = "Release"
55
+
56
+ [[tool.scikit-build-overrides]]
57
+ if.env.SCCACHE = true
58
+ cmake.define.CMAKE_C_COMPILER_LAUNCHER = "sccache"
59
+ cmake.define.CMAKE_CXX_COMPILER_LAUNCHER = "sccache"
60
+
61
+ [[tool.scikit-build-overrides]]
62
+ if.env.MOLD = true
63
+ cmake.define.CMAKE_LINKER_TYPE = "mold"
64
+
65
+ [tool.cibuildwheel]
66
+ build-frontend = { name = "build", args = [] }
67
+ build-verbosity = 1
68
+ manylinux-x86_64-image = "althonos/pyncbitk-manylinux_2_34:release"
69
+
70
+ [tool.cibuildwheel.macos]
71
+ archs = ["x86_64", "arm64"]
72
+ repair-wheel-command = "cp {wheel} {dest_dir}"
73
+
74
+ [tool.cibuildwheel.macos.environment]
75
+ CC = "/usr/bin/clang"
76
+ CXX = "/usr/bin/clang++"
77
+ MACOSX_DEPLOYMENT_TARGET = "13.3"
78
+
79
+ [tool.cibuildwheel.linux]
80
+ repair-wheel-command = "auditwheel repair -w {dest_dir} {wheel} --strip --zip-compression-level 9"
81
+