Mercurial > hgrepos > Python > libs > ConfigMix
annotate setup.py @ 575:9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
BUGS: ABI tag must be fixed afterwards.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 08 Jan 2022 23:00:36 +0100 |
| parents | 1bdf88437555 |
| children | 3ad416265652 |
| rev | line source |
|---|---|
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
3 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
4 import re |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
5 import os |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
6 import platform |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
7 import sys |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
8 try: |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
9 from setuptools import setup |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
10 except ImportError: |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
11 from distutils.core import setup |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
12 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
13 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
14 if (sys.version_info[0] < 2) or \ |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
15 ((sys.version_info[0] == 2) and (sys.version_info[1] < 6)): |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
16 raise ValueError("Need at least Python 2.6") |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
17 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
18 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
19 pkg_root = os.path.dirname(__file__) |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
20 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
21 _version_re = re.compile(br"^\s*__version__\s*=\s*(\"|')(.*)\1\s*(#.*)?$", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
22 re.MULTILINE) |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
23 |
|
5
dc058099a4cb
Renamed the project from "MixConfig" to "ConfigMix"
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
24 with open(os.path.join(pkg_root, "configmix", "__init__.py"), "rb") as vf: |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
25 version = _version_re.search(vf.read()).group(2).decode("utf-8") |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
26 |
|
71
80dcb41928a7
Rename README to README.txt to be more consistent with LICENSE.txt
Franz Glasner <hg@dom66.de>
parents:
70
diff
changeset
|
27 with open(os.path.join(pkg_root, "README.txt"), "rt") as rf: |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
28 long_description = rf.read() |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
29 |
|
282
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
30 aws_requirements = [ |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
31 "requests", |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
32 ] |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
33 |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
34 yaml_requirements = [ |
|
235
a8b2346e2330
Tested up to PyYAML 5.3.1: so (with semantic versioning): adjust requirements to "<6"
Franz Glasner <fzglas.hg@dom66.de>
parents:
199
diff
changeset
|
35 "PyYAML>=3.0,<6", |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
36 ] |
|
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
37 |
|
195
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
38 toml_requirements = [ |
|
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
39 "toml>=0.10", |
|
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
40 ] |
|
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
41 |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
42 all_requirements = [] |
|
282
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
43 all_requirements.extend(aws_requirements) |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
44 all_requirements.extend(yaml_requirements) |
|
195
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
45 all_requirements.extend(toml_requirements) |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
46 |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
47 |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
48 cmdclass = {} |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
49 ext_modules = None |
|
567
059260191371
Tweak setup.py to build packages with pure-Python tags if the extension is not expected to be built (Python 3.4-)
Franz Glasner <fzglas.hg@dom66.de>
parents:
546
diff
changeset
|
50 setup_extra_kwds = {} |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
51 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
52 windows_cross_pack = False |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
53 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
54 try: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
55 wcp_idx = sys.argv.index("--windows-cross-pack") |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
56 except ValueError: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
57 wcp_idx = None |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
58 else: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
59 del sys.argv[wcp_idx] |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
60 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
61 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
62 if wcp_idx is None: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
63 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
64 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
65 # Otherwise some cached package_data would be used. |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
66 # But our package data differs between "standard" builds and |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
67 # builds with "--windows-cross-pack". |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
68 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
69 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
70 if os.path.isdir("ConfigMix.egg-info"): |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
71 raise RuntimeError("please remove ConfigMix.egg-info before") |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
72 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
73 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
74 # Handle the optinal C-extension for Python3.7+ and CPython only. |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
75 # PyPy does not need this. |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
76 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
77 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
78 # The C-extension uses multi-phase module initialization (PEP 489, PY 3.5+) |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
79 if (platform.python_implementation() == "CPython" |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
80 and (sys.version_info[0] > 3 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
81 or (sys.version_info[0] == 3 and sys.version_info[1] >= 5))): |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
82 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
83 # The stable API for Python 3.7+ is used |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
84 if sys.version_info[0] == 3 and sys.version_info[1] < 7: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
85 py_limited_api = False |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
86 else: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
87 py_limited_api = True |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
88 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
89 if py_limited_api: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
90 define_macros = [("Py_LIMITED_API", "0x03070000")] |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
91 else: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
92 define_macros = [] |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
93 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
94 try: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
95 from setuptools import Extension |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
96 except ImportError: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
97 from distutils.core import Extension |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
98 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
99 ext_modules = [ |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
100 Extension( |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
101 name="configmix._speedups", |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
102 sources=["configmix/_speedups.c"], |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
103 define_macros=define_macros, |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
104 py_limited_api=py_limited_api, |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
105 optional=True |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
106 ), |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
107 ] |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
108 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
109 if py_limited_api: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
110 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
111 # Build a wheel that is properly named using the stable API |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
112 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
113 try: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
114 import wheel.bdist_wheel |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
115 except ImportError: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
116 pass |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
117 else: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
118 class BDistWheel(wheel.bdist_wheel.bdist_wheel): |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
119 def finalize_options(self): |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
120 # Synchronize this with Py_LIMITED_API |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
121 self.py_limited_api = 'cp37' |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
122 super().finalize_options() |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
123 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
124 cmdclass["bdist_wheel"] = BDistWheel |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
125 else: |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
126 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
127 if not os.path.isfile("configmix/_speedups.pyd"): |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
128 raise RuntimeError("no _speedups.pyd found") |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
129 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
130 if os.path.isdir("ConfigMix.egg-info"): |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
131 raise RuntimeError("please remove ConfigMix.egg-info before") |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
132 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
133 setup_extra_kwds["package_data"] = { |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
134 "configmix": ["*.pyd"] |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
135 } |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
136 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
137 ext_modules = [] |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
138 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
139 py_limited_api = True |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
140 |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
141 if py_limited_api: |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
142 # |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
143 # Build a wheel that is properly named using the stable API |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
144 # |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
145 try: |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
146 import wheel.bdist_wheel |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
147 except ImportError: |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
148 pass |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
149 else: |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
150 class BDistWheel(wheel.bdist_wheel.bdist_wheel): |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
151 def finalize_options(self): |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
152 # Synchronize this with Py_LIMITED_API |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
153 self.py_limited_api = 'cp37' |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
154 super().finalize_options() |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
155 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
156 cmdclass["bdist_wheel"] = BDistWheel |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
157 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
158 from setuptools.dist import Distribution |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
159 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
160 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
161 # Force a binary package. An empty ext_modules does not do this always. |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
162 # Tested with wheel v0.29.0 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
163 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
164 class BinaryDistribution(Distribution): |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
165 """Distribution which always forces a binary package with |
|
542
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
166 |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
167 platform name |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
168 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
169 """ |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
170 def has_ext_modules(foo): |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
171 return True |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
172 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
173 setup_extra_kwds["distclass"] = BinaryDistribution |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
174 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
175 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
176 if ext_modules is not None: |
|
567
059260191371
Tweak setup.py to build packages with pure-Python tags if the extension is not expected to be built (Python 3.4-)
Franz Glasner <fzglas.hg@dom66.de>
parents:
546
diff
changeset
|
177 setup_extra_kwds["ext_modules"] = ext_modules |
|
569
1bdf88437555
FIX: zip_safe: make zip_safe False if extensions are to be built
Franz Glasner <fzglas.hg@dom66.de>
parents:
568
diff
changeset
|
178 setup_extra_kwds["zip_safe"] = False |
|
1bdf88437555
FIX: zip_safe: make zip_safe False if extensions are to be built
Franz Glasner <fzglas.hg@dom66.de>
parents:
568
diff
changeset
|
179 else: |
|
1bdf88437555
FIX: zip_safe: make zip_safe False if extensions are to be built
Franz Glasner <fzglas.hg@dom66.de>
parents:
568
diff
changeset
|
180 setup_extra_kwds["zip_safe"] = True |
|
567
059260191371
Tweak setup.py to build packages with pure-Python tags if the extension is not expected to be built (Python 3.4-)
Franz Glasner <fzglas.hg@dom66.de>
parents:
546
diff
changeset
|
181 if cmdclass: |
|
059260191371
Tweak setup.py to build packages with pure-Python tags if the extension is not expected to be built (Python 3.4-)
Franz Glasner <fzglas.hg@dom66.de>
parents:
546
diff
changeset
|
182 setup_extra_kwds["cmdclass"] = cmdclass |
|
059260191371
Tweak setup.py to build packages with pure-Python tags if the extension is not expected to be built (Python 3.4-)
Franz Glasner <fzglas.hg@dom66.de>
parents:
546
diff
changeset
|
183 |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
184 setup( |
|
5
dc058099a4cb
Renamed the project from "MixConfig" to "ConfigMix"
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
185 name="ConfigMix", |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
186 version=version, |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
187 author="Franz Glasner", |
|
296
eed16a1ec8f3
Use SPDX license identifiers (either full or short) all over the package
Franz Glasner <fzglas.hg@dom66.de>
parents:
282
diff
changeset
|
188 license='BSD 3-Clause "New" or "Revised" License', |
|
5
dc058099a4cb
Renamed the project from "MixConfig" to "ConfigMix"
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
189 url="https://pypi.dom66.de/simple/configmix/", |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
190 description="Library for extended configuration files", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
191 long_description=long_description, |
|
568
ed1f0fdcda65
Provide the content-type for the long package description: text/x-rst
Franz Glasner <fzglas.hg@dom66.de>
parents:
567
diff
changeset
|
192 long_description_content_type="text/x-rst", |
|
282
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
193 packages=["configmix", |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
194 "configmix.extras"], |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
195 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
196 # Use non-automatic explicit package_data instead |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
197 # (or MANIFEST.in for sdist) |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
198 # |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
199 include_package_data=False, |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
200 platforms="any", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
201 classifiers=[ |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
202 "Development Status :: 5 - Production/Stable", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
203 "Environment :: Console", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
204 "Intended Audience :: Developers", |
|
4
f76d85ccc5b9
Switch to the "New BSD License"
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
0
diff
changeset
|
205 "License :: OSI Approved :: BSD License", |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
206 "Operating System :: OS Independent", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
207 "Programming Language :: Python", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
208 "Programming Language :: Python :: 2.6", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
209 "Programming Language :: Python :: 2.7", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
210 "Programming Language :: Python :: 3", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
211 "Topic :: Software Development :: Libraries :: Python Modules" |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
212 ], |
|
185
5c27e52c3483
Declare requirements on the Python version formally also
Franz Glasner <fzglas.hg@dom66.de>
parents:
184
diff
changeset
|
213 python_requires=">=2.6", |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
214 extras_require={ |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
215 "aws": aws_requirements, # noqa: E241 |
|
195
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
216 "toml": toml_requirements, |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
217 "yaml": yaml_requirements, |
|
575
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
218 "all": all_requirements, # noqa: E241 |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
219 }, |
|
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
220 tests_require=all_requirements, |
|
567
059260191371
Tweak setup.py to build packages with pure-Python tags if the extension is not expected to be built (Python 3.4-)
Franz Glasner <fzglas.hg@dom66.de>
parents:
546
diff
changeset
|
221 **setup_extra_kwds |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
222 ) |
