hapc 0.1.2__tar.gz → 0.1.3__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.
- {hapc-0.1.2/python/hapc.egg-info → hapc-0.1.3}/PKG-INFO +3 -4
- {hapc-0.1.2 → hapc-0.1.3}/pyproject.toml +3 -3
- {hapc-0.1.2 → hapc-0.1.3/python/hapc.egg-info}/PKG-INFO +3 -4
- {hapc-0.1.2 → hapc-0.1.3}/setup.py +34 -20
- {hapc-0.1.2 → hapc-0.1.3}/CMakeLists.txt +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/LICENSE +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/MANIFEST.in +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/README.md +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/demo_single.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc/__init__.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc/core.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc/cv.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc/single.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc.egg-info/SOURCES.txt +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc.egg-info/dependency_links.txt +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc.egg-info/requires.txt +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/hapc.egg-info/top_level.txt +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/python/test_install.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/setup.cfg +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/bindings.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/cross_kernel.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/cv_classi.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/cv_fast_pchal.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/cv_fast_pchal_python.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/fast_pchal.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/hapc_core.hpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/logistic_call.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/mkernel.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/pcghal_call.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/pcghal_classi_call.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/pcghal_cv.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/pcghal_cv_cpp.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/pchal_design.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/r_bindings.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/ridge_wrappers.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/single_pcghal.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/single_pcghal_cpp.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/src/single_pchar.cpp +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/tests/test_api.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/tests/test_core.py +0 -0
- {hapc-0.1.2 → hapc-0.1.3}/tests/test_r_vs_python_alpha.py +0 -0
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hapc
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: Highly Adaptive Principal Components
|
|
5
5
|
Home-page: https://github.com/meixide/hapc
|
|
6
6
|
Author: Carlos García Meixide
|
|
7
7
|
Author-email: Carlos García Meixide <cgmeixide@gmail.com>
|
|
8
|
-
License:
|
|
9
|
-
COPYRIGHT HOLDER: Carlos García Meixide
|
|
8
|
+
License: MIT
|
|
10
9
|
Project-URL: Homepage, https://github.com/meixide/hapc
|
|
11
10
|
Project-URL: Documentation, https://github.com/meixide/hapc#readme
|
|
12
11
|
Project-URL: Repository, https://github.com/meixide/hapc.git
|
|
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hapc"
|
|
7
|
-
version = "0.1.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.1.3"
|
|
8
|
+
description = "Highly Adaptive Principal Components"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
11
11
|
authors = [
|
|
12
12
|
{name = "Carlos García Meixide", email = "cgmeixide@gmail.com"}
|
|
13
13
|
]
|
|
14
|
-
license = {
|
|
14
|
+
license = {text = "MIT"}
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Programming Language :: Python :: 3",
|
|
17
17
|
"Programming Language :: Python :: 3.8",
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hapc
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: Highly Adaptive Principal Components
|
|
5
5
|
Home-page: https://github.com/meixide/hapc
|
|
6
6
|
Author: Carlos García Meixide
|
|
7
7
|
Author-email: Carlos García Meixide <cgmeixide@gmail.com>
|
|
8
|
-
License:
|
|
9
|
-
COPYRIGHT HOLDER: Carlos García Meixide
|
|
8
|
+
License: MIT
|
|
10
9
|
Project-URL: Homepage, https://github.com/meixide/hapc
|
|
11
10
|
Project-URL: Documentation, https://github.com/meixide/hapc#readme
|
|
12
11
|
Project-URL: Repository, https://github.com/meixide/hapc.git
|
|
@@ -44,29 +44,43 @@ class CMakeBuild(build_ext):
|
|
|
44
44
|
import time
|
|
45
45
|
|
|
46
46
|
# Search recursively for the built library
|
|
47
|
+
# Try multiple patterns to ensure we find it on all platforms
|
|
48
|
+
search_patterns = [
|
|
49
|
+
os.path.join(str(build_temp), "**", "hapc_core.*"),
|
|
50
|
+
os.path.join(str(build_temp), "**", "*", "hapc_core.*"),
|
|
51
|
+
os.path.join(str(build_temp), "**", "*", "*", "hapc_core.*"),
|
|
52
|
+
]
|
|
53
|
+
|
|
47
54
|
found = False
|
|
48
|
-
for
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
for pattern in search_patterns:
|
|
56
|
+
for lib in glob.glob(pattern, recursive=True):
|
|
57
|
+
if lib.endswith(('.pyd', '.so', '.dylib')):
|
|
58
|
+
try:
|
|
59
|
+
dest = lib_dir / Path(lib).name
|
|
60
|
+
# Retry on Windows if file is locked
|
|
61
|
+
max_retries = 3
|
|
62
|
+
for attempt in range(max_retries):
|
|
63
|
+
try:
|
|
64
|
+
shutil.copy2(lib, dest)
|
|
65
|
+
print(f"[OK] Copied {lib} to {dest}")
|
|
66
|
+
found = True
|
|
67
|
+
break
|
|
68
|
+
except (OSError, PermissionError) as e:
|
|
69
|
+
if attempt < max_retries - 1:
|
|
70
|
+
time.sleep(0.5)
|
|
71
|
+
else:
|
|
72
|
+
raise
|
|
73
|
+
if found:
|
|
59
74
|
break
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
raise
|
|
65
|
-
except Exception as e:
|
|
66
|
-
print(f"Warning: Failed to copy {lib}: {e}")
|
|
75
|
+
except Exception as e:
|
|
76
|
+
print(f"Warning: Failed to copy {lib}: {e}")
|
|
77
|
+
if found:
|
|
78
|
+
break
|
|
67
79
|
|
|
68
80
|
if not found:
|
|
69
|
-
print("
|
|
81
|
+
print(f"ERROR: No compiled library found in build directory {build_temp}")
|
|
82
|
+
print(f" Searched for: hapc_core.pyd (Windows), hapc_core.so (Linux), hapc_core.dylib (macOS)")
|
|
83
|
+
raise RuntimeError("Failed to locate compiled hapc_core extension")
|
|
70
84
|
|
|
71
85
|
# Don't call parent run() to avoid setuptools trying to clean Windows locked files
|
|
72
86
|
# Just mark as complete
|
|
@@ -92,7 +106,7 @@ if readme_file.exists():
|
|
|
92
106
|
setup(
|
|
93
107
|
name="hapc",
|
|
94
108
|
version=version,
|
|
95
|
-
description="
|
|
109
|
+
description="Highly Adaptive Principal Components",
|
|
96
110
|
long_description=readme_content,
|
|
97
111
|
long_description_content_type="text/markdown",
|
|
98
112
|
author="Carlos García Meixide",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|