Mercurial > hgrepos > Python > libs > ConfigMix
annotate setup.py @ 585:233bd8bbda28
Automatically remove ConfigMix.egg-info
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 09 Jan 2022 13:40:22 +0100 |
| parents | 4e61df27b4e1 |
| children | d68e8204f7c3 |
| 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 |
|
585
233bd8bbda28
Automatically remove ConfigMix.egg-info
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
4 from __future__ import print_function, absolute_import |
|
233bd8bbda28
Automatically remove ConfigMix.egg-info
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
5 |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
6 import re |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
7 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
|
8 import platform |
|
585
233bd8bbda28
Automatically remove ConfigMix.egg-info
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
9 import shutil |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
10 import sys |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
11 try: |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
12 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
|
13 except ImportError: |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
14 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
|
15 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
16 |
|
582
0467b3ae34ea
setup.py: Put the official projectname into a variable and re-use
Franz Glasner <fzglas.hg@dom66.de>
parents:
577
diff
changeset
|
17 PROJECT_NAME = "ConfigMix" |
|
0467b3ae34ea
setup.py: Put the official projectname into a variable and re-use
Franz Glasner <fzglas.hg@dom66.de>
parents:
577
diff
changeset
|
18 |
|
0467b3ae34ea
setup.py: Put the official projectname into a variable and re-use
Franz Glasner <fzglas.hg@dom66.de>
parents:
577
diff
changeset
|
19 |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
20 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
|
21 ((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
|
22 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
|
23 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
24 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
|
25 |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
26 _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
|
27 re.MULTILINE) |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
28 |
|
5
dc058099a4cb
Renamed the project from "MixConfig" to "ConfigMix"
Franz Glasner <hg@dom66.de>
parents:
4
diff
changeset
|
29 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
|
30 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
|
31 |
|
71
80dcb41928a7
Rename README to README.txt to be more consistent with LICENSE.txt
Franz Glasner <hg@dom66.de>
parents:
70
diff
changeset
|
32 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
|
33 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
|
34 |
|
282
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
35 aws_requirements = [ |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
36 "requests", |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
37 ] |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
38 |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
39 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
|
40 "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
|
41 ] |
|
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
42 |
|
195
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
43 toml_requirements = [ |
|
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
44 "toml>=0.10", |
|
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
45 ] |
|
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
46 |
|
184
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
47 all_requirements = [] |
|
282
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
48 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
|
49 all_requirements.extend(yaml_requirements) |
|
195
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
50 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
|
51 |
|
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
|
52 |
|
f71d34dda19f
Add an optional C-implementation for configmix.config.unquote and configmix.config.pathstr2path.
Franz Glasner <fzglas.hg@dom66.de>
parents:
296
diff
changeset
|
53 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
|
54 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
|
55 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
|
56 |
|
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
|
57 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
|
58 |
|
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 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
|
60 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
|
61 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
|
62 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
|
63 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
|
64 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
|
65 |
|
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 |
|
583
4e61df27b4e1
Put the ".egg-info" check into a common location
Franz Glasner <fzglas.hg@dom66.de>
parents:
582
diff
changeset
|
67 # |
|
4e61df27b4e1
Put the ".egg-info" check into a common location
Franz Glasner <fzglas.hg@dom66.de>
parents:
582
diff
changeset
|
68 # Otherwise some cached package_data would be used. |
|
4e61df27b4e1
Put the ".egg-info" check into a common location
Franz Glasner <fzglas.hg@dom66.de>
parents:
582
diff
changeset
|
69 # But our package data differs between "standard" builds and |
|
4e61df27b4e1
Put the ".egg-info" check into a common location
Franz Glasner <fzglas.hg@dom66.de>
parents:
582
diff
changeset
|
70 # builds with "--windows-cross-pack". |
|
4e61df27b4e1
Put the ".egg-info" check into a common location
Franz Glasner <fzglas.hg@dom66.de>
parents:
582
diff
changeset
|
71 # |
|
4e61df27b4e1
Put the ".egg-info" check into a common location
Franz Glasner <fzglas.hg@dom66.de>
parents:
582
diff
changeset
|
72 if os.path.isdir(PROJECT_NAME + ".egg-info"): |
|
585
233bd8bbda28
Automatically remove ConfigMix.egg-info
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
73 print("removing `%s.egg-info'" % (PROJECT_NAME,)) |
|
233bd8bbda28
Automatically remove ConfigMix.egg-info
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
74 shutil.rmtree(PROJECT_NAME + ".egg-info") |
|
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
|
75 |
|
583
4e61df27b4e1
Put the ".egg-info" check into a common location
Franz Glasner <fzglas.hg@dom66.de>
parents:
582
diff
changeset
|
76 if wcp_idx is None: |
|
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
|
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 # 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
|
79 # 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
|
80 # |
|
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 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
82 # 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
|
83 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
|
84 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
|
85 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
|
86 |
|
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
|
87 # 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
|
88 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
|
89 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
|
90 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
|
91 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
|
92 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
93 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
|
94 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
|
95 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
|
96 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
|
97 |
|
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
|
98 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
|
99 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
|
100 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
|
101 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
|
102 |
|
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
|
103 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
|
104 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
|
105 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
|
106 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
|
107 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
|
108 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
|
109 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
|
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 ] |
|
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
|
112 |
|
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
|
113 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
|
114 # |
|
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 # 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
|
116 # |
|
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 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 # 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
|
125 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
|
126 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
|
127 |
|
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 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
|
129 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
|
130 |
|
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 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
|
132 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
|
133 |
|
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 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
|
135 "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
|
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 |
|
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 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
|
139 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
140 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
|
141 |
|
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 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
|
143 # |
|
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 # 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
|
145 # |
|
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 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
|
147 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
|
148 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
|
149 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
|
150 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
|
151 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
|
152 def finalize_options(self): |
| 577 | 153 # |
| 154 # Synchronize this with Py_LIMITED_API and with the | |
| 155 # external build of _speedups.pyd. | |
| 156 # Also use the --plat-name (-p) for tagging the Wheel | |
| 157 # properly (e.g. -p win_amd64). | |
| 158 # | |
|
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
|
159 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
|
160 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
|
161 |
|
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
|
162 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
|
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 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
|
165 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
166 # |
|
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 # 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
|
168 # 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
|
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 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
|
171 """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
|
172 |
|
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
|
173 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
|
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 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
|
177 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
|
178 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
179 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
|
180 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
181 |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
182 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
|
183 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
|
184 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
|
185 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
|
186 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
|
187 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
|
188 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
|
189 |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
190 setup( |
|
582
0467b3ae34ea
setup.py: Put the official projectname into a variable and re-use
Franz Glasner <fzglas.hg@dom66.de>
parents:
577
diff
changeset
|
191 name=PROJECT_NAME, |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
192 version=version, |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
193 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
|
194 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
|
195 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
|
196 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
|
197 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
|
198 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
|
199 packages=["configmix", |
|
da1596034954
Implemented an "AWS" namespace to retrieve some AWS-specific metadata
Franz Glasner <fzglas.hg@dom66.de>
parents:
277
diff
changeset
|
200 "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
|
201 # |
|
9ce13f753c04
Allow execution of setup.py by packaging a cross-built Windows _speedups.pyd.
Franz Glasner <fzglas.hg@dom66.de>
parents:
569
diff
changeset
|
202 # 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
|
203 # (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
|
204 # |
|
0
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
205 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
|
206 platforms="any", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
207 classifiers=[ |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
208 "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
|
209 "Environment :: Console", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
210 "Intended Audience :: Developers", |
|
4
f76d85ccc5b9
Switch to the "New BSD License"
Franz Glasner <f.glasner@feldmann-mg.com>
parents:
0
diff
changeset
|
211 "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
|
212 "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
|
213 "Programming Language :: Python", |
|
53ea2bc254e7
Begin a package to abstract some of the important configuration handling stuff.
Franz Glasner <hg@dom66.de>
parents:
diff
changeset
|
214 "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
|
215 "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
|
216 "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
|
217 "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
|
218 ], |
|
185
5c27e52c3483
Declare requirements on the Python version formally also
Franz Glasner <fzglas.hg@dom66.de>
parents:
184
diff
changeset
|
219 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
|
220 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
|
221 "aws": aws_requirements, # noqa: E241 |
|
195
28e6c1413947
Added support for TOML style configuration files
Franz Glasner <fzglas.hg@dom66.de>
parents:
185
diff
changeset
|
222 "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
|
223 "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
|
224 "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
|
225 }, |
|
781b8dc1883f
Use the pip "extras" feature to install optional features (e.g. PyYAML)
Franz Glasner <fzglas.hg@dom66.de>
parents:
80
diff
changeset
|
226 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
|
227 **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
|
228 ) |
