cybooster 0.1.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.
@@ -0,0 +1,32 @@
1
+ The Clear BSD License
2
+
3
+ Copyright (c) [2025] [Thierry Moudiki]
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted (subject to the limitations in the disclaimer
8
+ below) provided that the following conditions are met:
9
+
10
+ * Redistributions of source code must retain the above copyright notice,
11
+ this list of conditions and the following disclaimer.
12
+
13
+ * Redistributions in binary form must reproduce the above copyright
14
+ notice, this list of conditions and the following disclaimer in the
15
+ documentation and/or other materials provided with the distribution.
16
+
17
+ * Neither the name of the copyright holder nor the names of its
18
+ contributors may be used to endorse or promote products derived from this
19
+ software without specific prior written permission.
20
+
21
+ NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
22
+ THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
23
+ CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
26
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
29
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
30
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+ POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,39 @@
1
+ Metadata-Version: 2.4
2
+ Name: cybooster
3
+ Version: 0.1.0
4
+ Summary: A high-performance gradient boosting implementation using Cython
5
+ Home-page: https://github.com/Techtonique/cybooster
6
+ Author: T. Moudiki
7
+ Author-email: thierry.moudiki@gmail.com
8
+ License: BSD-3-Clause
9
+ Keywords: gradient boosting cython machine learning
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: BSD License
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Requires-Python: >=3.9
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: cython>=0.29.0
22
+ Requires-Dist: numpy>=1.20.0
23
+ Requires-Dist: jax>=0.3.0
24
+ Requires-Dist: jaxlib>=0.3.0
25
+ Requires-Dist: scipy>=1.6.0
26
+ Requires-Dist: scikit-learn>=0.24.0
27
+ Requires-Dist: tqdm>=4.50.0
28
+ Requires-Dist: pandas>=1.1.0
29
+ Dynamic: author
30
+ Dynamic: author-email
31
+ Dynamic: classifier
32
+ Dynamic: description-content-type
33
+ Dynamic: home-page
34
+ Dynamic: keywords
35
+ Dynamic: license
36
+ Dynamic: license-file
37
+ Dynamic: requires-dist
38
+ Dynamic: requires-python
39
+ Dynamic: summary
File without changes
@@ -0,0 +1,3 @@
1
+ [build-system]
2
+ requires = ["setuptools", "cython", "numpy", "jax", "jaxlib", "scikit-learn", "pandas", "tqdm"]
3
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,114 @@
1
+ import os
2
+ import sys
3
+ import platform
4
+ from setuptools import setup, Extension
5
+ from Cython.Build import cythonize
6
+ import numpy
7
+ from pathlib import Path
8
+
9
+ # Define base path
10
+ # Force relative paths
11
+ here = Path(__file__).parent
12
+ os.chdir(here)
13
+
14
+ # Get version from package
15
+ try:
16
+ from cybooster import __version__
17
+ except ImportError:
18
+ __version__ = "0.1.0" # fallback version
19
+
20
+ # Platform-specific configurations
21
+ extra_compile_args = []
22
+ extra_link_args = []
23
+ define_macros = [("NPY_NO_DEPRECATED_API", "NPY_1_7_API_VERSION")]
24
+
25
+ if sys.platform == 'darwin':
26
+ # macOS specific settings
27
+ extra_compile_args.extend(['-stdlib=libc++', '-mmacosx-version-min=10.15'])
28
+ extra_link_args.extend(['-stdlib=libc++', '-mmacosx-version-min=10.15'])
29
+
30
+ # Handle ARM64 architecture
31
+ if platform.machine() == 'arm64':
32
+ extra_compile_args.extend(['-arch', 'arm64'])
33
+ extra_link_args.extend(['-arch', 'arm64'])
34
+ else:
35
+ extra_compile_args.extend(['-arch', 'x86_64'])
36
+ extra_link_args.extend(['-arch', 'x86_64'])
37
+
38
+ elif sys.platform == 'win32':
39
+ if platform.machine().endswith('ARM64'):
40
+ extra_compile_args.extend(['/ARM64'])
41
+ extra_link_args.extend(['/ARM64'])
42
+ else:
43
+ extra_compile_args.extend(['/EHsc', '/O2'])
44
+ extra_link_args.extend(['/OPT:REF', '/OPT:ICF'])
45
+
46
+ else: # Linux
47
+
48
+ try:
49
+ import subprocess
50
+ subprocess.check_call(['gcc', '-v'])
51
+ extra_compile_args.extend(['-O3', '-fopenmp'])
52
+ extra_link_args.extend(['-fopenmp'])
53
+ except:
54
+ extra_compile_args.extend(['-O3'])
55
+
56
+ # Set the source file using pathlib for cross-platform path handling
57
+ ext_modules = [
58
+ Extension(
59
+ name="cybooster._boosterc", # Use full dotted path
60
+ sources=[str(here / "cybooster" / "_boosterc.pyx")],
61
+ include_dirs=[numpy.get_include()],
62
+ define_macros=define_macros,
63
+ extra_compile_args=extra_compile_args,
64
+ extra_link_args=extra_link_args,
65
+ language="c",
66
+ )
67
+ ]
68
+
69
+ setup(
70
+ name="cybooster",
71
+ version=__version__,
72
+ author="T. Moudiki",
73
+ author_email="thierry.moudiki@gmail.com",
74
+ description="A high-performance gradient boosting implementation using Cython",
75
+ long_description=(here / "README.md").read_text(),
76
+ long_description_content_type="text/markdown",
77
+ url="https://github.com/Techtonique/cybooster",
78
+ classifiers=[
79
+ "Development Status :: 4 - Beta",
80
+ "Intended Audience :: Developers",
81
+ "License :: OSI Approved :: BSD License",
82
+ "Programming Language :: Python :: 3.9",
83
+ "Programming Language :: Python :: 3.10",
84
+ "Programming Language :: Python :: 3.11",
85
+ "Operating System :: OS Independent",
86
+ "Topic :: Software Development :: Libraries :: Python Modules",
87
+ ],
88
+ license="BSD-3-Clause",
89
+ keywords="gradient boosting cython machine learning",
90
+ packages=["cybooster"],
91
+ package_dir={"": str(here)}, # Important for in-place builds
92
+ ext_modules=cythonize(
93
+ ext_modules,
94
+ compiler_directives={
95
+ 'language_level': "3",
96
+ 'embedsignature': True,
97
+ },
98
+ ),
99
+ install_requires=[
100
+ "cython>=0.29.0",
101
+ "numpy>=1.20.0",
102
+ "jax>=0.3.0",
103
+ "jaxlib>=0.3.0",
104
+ "scipy>=1.6.0",
105
+ "scikit-learn>=0.24.0",
106
+ "tqdm>=4.50.0",
107
+ "pandas>=1.1.0",
108
+ ],
109
+ python_requires=">=3.9",
110
+ package_data={
111
+ 'cybooster': ['*.pxd', '*.pyx'], # Include all necessary files
112
+ },
113
+ zip_safe=False, # Important for C extensions
114
+ )