OpenGeode-Inspector 6.0.0rc1__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,109 @@
1
+ Metadata-Version: 2.1
2
+ Name: OpenGeode-Inspector
3
+ Version: 6.0.0rc1
4
+ Summary: Open source framework for inspecting the validity of geometric models
5
+ Author-email: Geode-solutions <contact@geode-solutions.com>
6
+ License: MIT
7
+ Requires-Python: <3.13,>=3.9
8
+ Description-Content-Type: text/markdown
9
+ Requires-Dist: opengeode-core==15.*,>=15.0.0rc2
10
+
11
+ <h1 align="center">OpenGeode-Inspector<sup><i>by Geode-solutions</i></sup></h1>
12
+ <h3 align="center">OpenGeode module for inspecting meshes and models</h3>
13
+
14
+ <p align="center">
15
+ <img src="https://github.com/Geode-solutions/OpenGeode-ModuleTemplate/workflows/CI/badge.svg" alt="Build Status">
16
+ <img src="https://github.com/Geode-solutions/OpenGeode-ModuleTemplate/workflows/CD/badge.svg" alt="Deploy Status">
17
+ <img src="https://codecov.io/gh/Geode-solutions/OpenGeode-ModuleTemplate/branch/master/graph/badge.svg" alt="Coverage Status">
18
+ <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeode-ModuleTemplate.svg" alt="Version">
19
+ </p>
20
+
21
+ <p align="center">
22
+ <img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
23
+ <img src="https://img.shields.io/static/v1?label=Ubuntu&logo=Ubuntu&logoColor=white&message=support&color=success" alt="Ubuntu support">
24
+ <img src="https://img.shields.io/static/v1?label=Red%20Hat&logo=Red-Hat&logoColor=white&message=support&color=success" alt="Red Hat support">
25
+ </p>
26
+
27
+ <p align="center">
28
+ <img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
29
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
30
+ <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
31
+ <a href="https://geode-solutions.com/#slack">
32
+ <img src="https://opengeode-slack-invite.herokuapp.com/badge.svg" alt="Slack invite">
33
+ </a>
34
+ <a href="https://doi.org/10.5281/zenodo.3610370">
35
+ <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3610370.svg" alt="DOI">
36
+ </a>
37
+
38
+ ---
39
+
40
+ ## Introduction
41
+
42
+ OpenGeode-Inspector is a module of [OpenGeode] providing ways of inspecting your meshes and models and verifying their validity.
43
+
44
+ [OpenGeode]: https://github.com/Geode-solutions/OpenGeode
45
+
46
+ ## Documentation
47
+
48
+ Go check out the online documentation at [docs.geode-solutions.com].
49
+
50
+ [docs.geode-solutions.com] https://docs.geode-solutions.com
51
+
52
+ Installing OpenGeode-Inspector is done:
53
+
54
+ - either by compiling the C++ source.
55
+ - or by installing the python library using the pip command `pip install opengeode-inspector`.
56
+
57
+ ## Usage
58
+
59
+ To use OpenGeode-Inspector, several options are available:
60
+
61
+ - If you installed and compiled the C++ source code, you can use the executable binaries to apply an inspection of your meshes/models and toggle on/off the various checks directly.
62
+ - or use the API functions (check the tests to see how it is done) if you want to go further or use the resulting errors to repair your meshes/models.
63
+ - If you installed the python library, you can add `import opengeode_inspector` in your Python script to use the available API functions. Check [this documentation page](https://docs.geode-solutions.com/guides/use-opengeode-binding.html) for more details. Examples are also procured in the `examples` folder.
64
+ - You can inspect your models without any installation, by using the API of the [Geode-solutions free tools](https://geode-solutions.com/tools).
65
+
66
+ The available checks for each mesh type are:
67
+
68
+ - PointSet:
69
+ - Colocation of vertices
70
+ - EdgedCurve:
71
+ - Colocation of vertices
72
+ - Degeneration of edges
73
+ - SurfaceMesh:
74
+ - Adjacency of polygons
75
+ - Colocation of vertices
76
+ - Degeneration of edges
77
+ - Degeneration of polygons
78
+ - Intersection of triangles (for triangulated surfaces)
79
+ - Manifold of vertices
80
+ - Manifold of edges
81
+ - SolidMesh:
82
+ - Adjacency of polyhedra
83
+ - Colocation of vertices
84
+ - Degeneration of edges
85
+ - Degeneration of polyhedra
86
+ - Manifold of vertices
87
+ - Manifold of edges
88
+ - Manifold of facets
89
+ The available checks for each model type are:
90
+ - Section:
91
+ - Validity of the topology
92
+ - Checks on each component mesh: all the previous mesh checks depending on the component mesh type
93
+ - Checks on the validity of the unique vertices (linking to vertices, colocation of unique vertices points, un-colocation of points with same unique vertices)
94
+ - Intersection of the component mesh surfaces between each other
95
+ - BRep:
96
+ - Validity of the topology
97
+ - Checks on each component mesh: all the previous mesh checks depending on the component mesh type
98
+ - Checks on the validity of the unique vertices (linking to vertices, colocation of unique vertices points, un-colocation of points with same unique vertices)
99
+ - Intersection of the component mesh surfaces between each other
100
+
101
+ ## Questions
102
+
103
+ For questions and support please use the official [slack](https://opengeode-slack-invite.herokuapp.com) and go to the channel #inspector. The issue list of this repo is exclusively for bug reports and feature requests.
104
+
105
+ ## License
106
+
107
+ [MIT](https://opensource.org/licenses/MIT)
108
+
109
+ Copyright (c) 2019 - 2024, Geode-solutions
@@ -0,0 +1,13 @@
1
+ README.md
2
+ pyproject.toml
3
+ requirements.txt
4
+ setup.py
5
+ OpenGeode_Inspector.egg-info/PKG-INFO
6
+ OpenGeode_Inspector.egg-info/SOURCES.txt
7
+ OpenGeode_Inspector.egg-info/dependency_links.txt
8
+ OpenGeode_Inspector.egg-info/requires.txt
9
+ OpenGeode_Inspector.egg-info/top_level.txt
10
+ opengeode_inspector/__init__.py
11
+ opengeode_inspector/inspector.py
12
+ opengeode_inspector/lib64/libOpenGeode-Inspector_inspector.so
13
+ opengeode_inspector/lib64/opengeode_inspector_py_inspector.cpython-311-x86_64-linux-gnu.so
@@ -0,0 +1 @@
1
+ opengeode-core==15.*,>=15.0.0rc2
@@ -0,0 +1 @@
1
+ opengeode_inspector
@@ -0,0 +1,109 @@
1
+ Metadata-Version: 2.1
2
+ Name: OpenGeode-Inspector
3
+ Version: 6.0.0rc1
4
+ Summary: Open source framework for inspecting the validity of geometric models
5
+ Author-email: Geode-solutions <contact@geode-solutions.com>
6
+ License: MIT
7
+ Requires-Python: <3.13,>=3.9
8
+ Description-Content-Type: text/markdown
9
+ Requires-Dist: opengeode-core==15.*,>=15.0.0rc2
10
+
11
+ <h1 align="center">OpenGeode-Inspector<sup><i>by Geode-solutions</i></sup></h1>
12
+ <h3 align="center">OpenGeode module for inspecting meshes and models</h3>
13
+
14
+ <p align="center">
15
+ <img src="https://github.com/Geode-solutions/OpenGeode-ModuleTemplate/workflows/CI/badge.svg" alt="Build Status">
16
+ <img src="https://github.com/Geode-solutions/OpenGeode-ModuleTemplate/workflows/CD/badge.svg" alt="Deploy Status">
17
+ <img src="https://codecov.io/gh/Geode-solutions/OpenGeode-ModuleTemplate/branch/master/graph/badge.svg" alt="Coverage Status">
18
+ <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeode-ModuleTemplate.svg" alt="Version">
19
+ </p>
20
+
21
+ <p align="center">
22
+ <img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
23
+ <img src="https://img.shields.io/static/v1?label=Ubuntu&logo=Ubuntu&logoColor=white&message=support&color=success" alt="Ubuntu support">
24
+ <img src="https://img.shields.io/static/v1?label=Red%20Hat&logo=Red-Hat&logoColor=white&message=support&color=success" alt="Red Hat support">
25
+ </p>
26
+
27
+ <p align="center">
28
+ <img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
29
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
30
+ <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
31
+ <a href="https://geode-solutions.com/#slack">
32
+ <img src="https://opengeode-slack-invite.herokuapp.com/badge.svg" alt="Slack invite">
33
+ </a>
34
+ <a href="https://doi.org/10.5281/zenodo.3610370">
35
+ <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3610370.svg" alt="DOI">
36
+ </a>
37
+
38
+ ---
39
+
40
+ ## Introduction
41
+
42
+ OpenGeode-Inspector is a module of [OpenGeode] providing ways of inspecting your meshes and models and verifying their validity.
43
+
44
+ [OpenGeode]: https://github.com/Geode-solutions/OpenGeode
45
+
46
+ ## Documentation
47
+
48
+ Go check out the online documentation at [docs.geode-solutions.com].
49
+
50
+ [docs.geode-solutions.com] https://docs.geode-solutions.com
51
+
52
+ Installing OpenGeode-Inspector is done:
53
+
54
+ - either by compiling the C++ source.
55
+ - or by installing the python library using the pip command `pip install opengeode-inspector`.
56
+
57
+ ## Usage
58
+
59
+ To use OpenGeode-Inspector, several options are available:
60
+
61
+ - If you installed and compiled the C++ source code, you can use the executable binaries to apply an inspection of your meshes/models and toggle on/off the various checks directly.
62
+ - or use the API functions (check the tests to see how it is done) if you want to go further or use the resulting errors to repair your meshes/models.
63
+ - If you installed the python library, you can add `import opengeode_inspector` in your Python script to use the available API functions. Check [this documentation page](https://docs.geode-solutions.com/guides/use-opengeode-binding.html) for more details. Examples are also procured in the `examples` folder.
64
+ - You can inspect your models without any installation, by using the API of the [Geode-solutions free tools](https://geode-solutions.com/tools).
65
+
66
+ The available checks for each mesh type are:
67
+
68
+ - PointSet:
69
+ - Colocation of vertices
70
+ - EdgedCurve:
71
+ - Colocation of vertices
72
+ - Degeneration of edges
73
+ - SurfaceMesh:
74
+ - Adjacency of polygons
75
+ - Colocation of vertices
76
+ - Degeneration of edges
77
+ - Degeneration of polygons
78
+ - Intersection of triangles (for triangulated surfaces)
79
+ - Manifold of vertices
80
+ - Manifold of edges
81
+ - SolidMesh:
82
+ - Adjacency of polyhedra
83
+ - Colocation of vertices
84
+ - Degeneration of edges
85
+ - Degeneration of polyhedra
86
+ - Manifold of vertices
87
+ - Manifold of edges
88
+ - Manifold of facets
89
+ The available checks for each model type are:
90
+ - Section:
91
+ - Validity of the topology
92
+ - Checks on each component mesh: all the previous mesh checks depending on the component mesh type
93
+ - Checks on the validity of the unique vertices (linking to vertices, colocation of unique vertices points, un-colocation of points with same unique vertices)
94
+ - Intersection of the component mesh surfaces between each other
95
+ - BRep:
96
+ - Validity of the topology
97
+ - Checks on each component mesh: all the previous mesh checks depending on the component mesh type
98
+ - Checks on the validity of the unique vertices (linking to vertices, colocation of unique vertices points, un-colocation of points with same unique vertices)
99
+ - Intersection of the component mesh surfaces between each other
100
+
101
+ ## Questions
102
+
103
+ For questions and support please use the official [slack](https://opengeode-slack-invite.herokuapp.com) and go to the channel #inspector. The issue list of this repo is exclusively for bug reports and feature requests.
104
+
105
+ ## License
106
+
107
+ [MIT](https://opensource.org/licenses/MIT)
108
+
109
+ Copyright (c) 2019 - 2024, Geode-solutions
@@ -0,0 +1,99 @@
1
+ <h1 align="center">OpenGeode-Inspector<sup><i>by Geode-solutions</i></sup></h1>
2
+ <h3 align="center">OpenGeode module for inspecting meshes and models</h3>
3
+
4
+ <p align="center">
5
+ <img src="https://github.com/Geode-solutions/OpenGeode-ModuleTemplate/workflows/CI/badge.svg" alt="Build Status">
6
+ <img src="https://github.com/Geode-solutions/OpenGeode-ModuleTemplate/workflows/CD/badge.svg" alt="Deploy Status">
7
+ <img src="https://codecov.io/gh/Geode-solutions/OpenGeode-ModuleTemplate/branch/master/graph/badge.svg" alt="Coverage Status">
8
+ <img src="https://img.shields.io/github/release/Geode-solutions/OpenGeode-ModuleTemplate.svg" alt="Version">
9
+ </p>
10
+
11
+ <p align="center">
12
+ <img src="https://img.shields.io/static/v1?label=Windows&logo=windows&logoColor=white&message=support&color=success" alt="Windows support">
13
+ <img src="https://img.shields.io/static/v1?label=Ubuntu&logo=Ubuntu&logoColor=white&message=support&color=success" alt="Ubuntu support">
14
+ <img src="https://img.shields.io/static/v1?label=Red%20Hat&logo=Red-Hat&logoColor=white&message=support&color=success" alt="Red Hat support">
15
+ </p>
16
+
17
+ <p align="center">
18
+ <img src="https://img.shields.io/badge/C%2B%2B-11-blue.svg" alt="Language">
19
+ <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License">
20
+ <img src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg" alt="Semantic-release">
21
+ <a href="https://geode-solutions.com/#slack">
22
+ <img src="https://opengeode-slack-invite.herokuapp.com/badge.svg" alt="Slack invite">
23
+ </a>
24
+ <a href="https://doi.org/10.5281/zenodo.3610370">
25
+ <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.3610370.svg" alt="DOI">
26
+ </a>
27
+
28
+ ---
29
+
30
+ ## Introduction
31
+
32
+ OpenGeode-Inspector is a module of [OpenGeode] providing ways of inspecting your meshes and models and verifying their validity.
33
+
34
+ [OpenGeode]: https://github.com/Geode-solutions/OpenGeode
35
+
36
+ ## Documentation
37
+
38
+ Go check out the online documentation at [docs.geode-solutions.com].
39
+
40
+ [docs.geode-solutions.com] https://docs.geode-solutions.com
41
+
42
+ Installing OpenGeode-Inspector is done:
43
+
44
+ - either by compiling the C++ source.
45
+ - or by installing the python library using the pip command `pip install opengeode-inspector`.
46
+
47
+ ## Usage
48
+
49
+ To use OpenGeode-Inspector, several options are available:
50
+
51
+ - If you installed and compiled the C++ source code, you can use the executable binaries to apply an inspection of your meshes/models and toggle on/off the various checks directly.
52
+ - or use the API functions (check the tests to see how it is done) if you want to go further or use the resulting errors to repair your meshes/models.
53
+ - If you installed the python library, you can add `import opengeode_inspector` in your Python script to use the available API functions. Check [this documentation page](https://docs.geode-solutions.com/guides/use-opengeode-binding.html) for more details. Examples are also procured in the `examples` folder.
54
+ - You can inspect your models without any installation, by using the API of the [Geode-solutions free tools](https://geode-solutions.com/tools).
55
+
56
+ The available checks for each mesh type are:
57
+
58
+ - PointSet:
59
+ - Colocation of vertices
60
+ - EdgedCurve:
61
+ - Colocation of vertices
62
+ - Degeneration of edges
63
+ - SurfaceMesh:
64
+ - Adjacency of polygons
65
+ - Colocation of vertices
66
+ - Degeneration of edges
67
+ - Degeneration of polygons
68
+ - Intersection of triangles (for triangulated surfaces)
69
+ - Manifold of vertices
70
+ - Manifold of edges
71
+ - SolidMesh:
72
+ - Adjacency of polyhedra
73
+ - Colocation of vertices
74
+ - Degeneration of edges
75
+ - Degeneration of polyhedra
76
+ - Manifold of vertices
77
+ - Manifold of edges
78
+ - Manifold of facets
79
+ The available checks for each model type are:
80
+ - Section:
81
+ - Validity of the topology
82
+ - Checks on each component mesh: all the previous mesh checks depending on the component mesh type
83
+ - Checks on the validity of the unique vertices (linking to vertices, colocation of unique vertices points, un-colocation of points with same unique vertices)
84
+ - Intersection of the component mesh surfaces between each other
85
+ - BRep:
86
+ - Validity of the topology
87
+ - Checks on each component mesh: all the previous mesh checks depending on the component mesh type
88
+ - Checks on the validity of the unique vertices (linking to vertices, colocation of unique vertices points, un-colocation of points with same unique vertices)
89
+ - Intersection of the component mesh surfaces between each other
90
+
91
+ ## Questions
92
+
93
+ For questions and support please use the official [slack](https://opengeode-slack-invite.herokuapp.com) and go to the channel #inspector. The issue list of this repo is exclusively for bug reports and feature requests.
94
+
95
+ ## License
96
+
97
+ [MIT](https://opensource.org/licenses/MIT)
98
+
99
+ Copyright (c) 2019 - 2024, Geode-solutions
@@ -0,0 +1,3 @@
1
+ ## Copyright (c) 2019 - 2024 Geode-solutions
2
+
3
+ from .inspector import *
@@ -0,0 +1,27 @@
1
+ #
2
+ # Copyright (c) 2019 - 2024 Geode-solutions
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ # of this software and associated documentation files (the "Software"), to deal
6
+ # in the Software without restriction, including without limitation the rights
7
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ # copies of the Software, and to permit persons to whom the Software is
9
+ # furnished to do so, subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in
12
+ # all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ # SOFTWARE.
21
+ #
22
+
23
+ import opengeode
24
+
25
+ from .lib64.opengeode_inspector_py_inspector import *
26
+
27
+ InspectorInspectorLibrary.initialize()
@@ -0,0 +1,42 @@
1
+ # Copyright (c) 2019 - 2024 Geode-solutions
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+
21
+ [build-system]
22
+ requires = ["setuptools", "wheel"]
23
+ build-backend = "setuptools.build_meta"
24
+
25
+ [project]
26
+ name = "OpenGeode-Inspector"
27
+ version = "6.0.0-rc.1"
28
+ description = "Open source framework for inspecting the validity of geometric models"
29
+ authors = [{name = "Geode-solutions", email = "contact@geode-solutions.com"}]
30
+ requires-python = ">=3.9,<3.13"
31
+ license = {text = "MIT"}
32
+ dynamic = ["dependencies", "readme"]
33
+
34
+ [tool.setuptools]
35
+ packages = ["opengeode_inspector"]
36
+
37
+ [tool.setuptools.dynamic]
38
+ dependencies = {file = "requirements.txt"}
39
+ readme = {file = "README.md", content-type = "text/markdown"}
40
+
41
+ [tool.setuptools.package-data]
42
+ "opengeode_inspector" = ["*/*.so", "*/*.so.*", "*/*.dll", "*/*.pyd", "share/*/*.db"]
@@ -0,0 +1,8 @@
1
+ #
2
+ # This file is autogenerated by pip-compile with Python 3.10
3
+ # by the following command:
4
+ #
5
+ # pip-compile --pre bindings/python/requirements.in
6
+ #
7
+ opengeode-core==15.*,>=15.0.0rc2
8
+ # via -r bindings/python/requirements.in
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,45 @@
1
+ # Copyright (c) 2019 - 2024 Geode-solutions
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the 'Software'), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ # SOFTWARE.
20
+ #
21
+ # Most project configs are in `pyproject.toml`
22
+ # => Prefer to modify `pyproject.toml` over this file if possible.
23
+
24
+ from setuptools import setup
25
+ from setuptools.dist import Distribution
26
+ from setuptools.command.install import install
27
+
28
+
29
+ class BinaryDistribution(Distribution):
30
+ def has_ext_modules(self):
31
+ return True
32
+
33
+ def is_pure(self):
34
+ return False
35
+
36
+
37
+ class InstallPlatlib(install):
38
+ def finalize_options(self):
39
+ install.finalize_options(self)
40
+ self.install_lib = self.install_platlib
41
+
42
+ setup(
43
+ distclass=BinaryDistribution,
44
+ cmdclass={'install': InstallPlatlib}
45
+ )