ci-helper 0.1.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,22 +1,43 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ci-helper
3
- Version: 0.1.0
3
+ Version: 0.3.0
4
4
  Summary: Get info on how a package should be built on CI
5
- Home-page: http://github.com/chrisjbillington/ci-helper
6
- Author: Christopher Billington
7
- Author-email: chrisjbillington@gmail.com
8
- License: MIT
9
- Project-URL: Source Code, https://github.com/chrisjbillington/ci-helper
10
- Project-URL: Download, https://github.com/chrisjbillington/ci-helper/releases
5
+ Author-email: Christopher Billington <chrisjbillington@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2024 Christopher Billington
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/chrisjbillington/ci-helper
29
+ Project-URL: Documentation, https://github.com/chrisjbillington/ci-helper
30
+ Project-URL: Repository, https://github.com/chrisjbillington/ci-helper
31
+ Project-URL: Downloads, https://pypi.org/project/ci-helper/
11
32
  Project-URL: Tracker, https://github.com/chrisjbillington/ci-helper/issues
12
- Keywords: build setuptools conda
13
- Classifier: License :: OSI Approved :: MIT License
33
+ Keywords: build,setuptools,CI
34
+ Classifier: License :: OSI Approved :: BSD License
14
35
  Classifier: Programming Language :: Python :: 3 :: Only
15
- Requires-Python: >=3.8
36
+ Requires-Python: >=3.9
16
37
  Description-Content-Type: text/markdown
17
38
  License-File: LICENSE.txt
39
+ Requires-Dist: setuptools
18
40
  Requires-Dist: setuptools_scm
19
- Requires-Dist: importlib_metadata
20
41
  Requires-Dist: toml
21
42
  Requires-Dist: requests
22
43
 
@@ -69,11 +90,6 @@ pip install ci-helper
69
90
  ## Usage:
70
91
 
71
92
  ```bash
72
- # The second-most recent minor Python release, a good choice for the version to run
73
- # tools from:
74
- $ ci-helper defaultpython
75
- 3.12
76
-
77
93
  # All stable, non-end-of-life Python versions:
78
94
  $ ci-helper pythons
79
95
  3.9,3.10,3.11,3.12,3.13
@@ -82,11 +98,16 @@ $ ci-helper pythons
82
98
  $ ci-helper pythons --cibw
83
99
  cp39-* cp310-* cp311-* cp312-* cp313-*
84
100
 
101
+ # The second-most recent minor Python release, a good choice for the version to run
102
+ # tools from:
103
+ $ ci-helper defaultpython
104
+ 3.12
105
+
85
106
  # Info about the source Python project in the current working directory - name, version,
86
107
  # whether it's a pure Python package, and whether its build or run requirements contain
87
108
  # any # environment markers (that is, whether its requirements vary by platform or
88
109
  # Python version):
89
- $ ci-helper distinfo
110
+ $ ci-helper distinfo .
90
111
  {
91
112
  "name": "ci-helper",
92
113
  "version": "0.1.dev1+g5043fb5.d20241202",
@@ -95,13 +116,13 @@ $ ci-helper distinfo
95
116
  }
96
117
 
97
118
  # Same but one field at a time, more convenient for assigning to environment variables:
98
- $ ci-helper distinfo name
119
+ $ ci-helper distinfo name .
99
120
  ci-helper
100
- $ ci-helper distinfo version
121
+ $ ci-helper distinfo version .
101
122
  0.1.0
102
- $ ci-helper distinfo is_pure
123
+ $ ci-helper distinfo is_pure .
103
124
  true
104
- $ ci-helper distinfo has_env_markers
125
+ $ ci-helper distinfo has_env_markers .
105
126
  false
106
127
  ```
107
128
 
@@ -134,7 +155,7 @@ options:
134
155
  ```
135
156
 
136
157
  ```shell
137
- $ ci-helper defaultpython -h
158
+ $ ci-helper default_python -h
138
159
  usage: ci-helper defaultpython [-h]
139
160
 
140
161
  options:
@@ -143,11 +164,15 @@ options:
143
164
 
144
165
  ```shell
145
166
  $ ci-helper distinfo -h
146
- usage: ci-helper distinfo [-h] [{name,version,is_pure,has_env_markers}]
167
+ usage: ci-helper distinfo [-h]
168
+ [{name,version,is_pure,has_env_markers}]
169
+ project_directory
147
170
 
148
171
  positional arguments:
149
172
  {name,version,is_pure,has_env_markers}
150
- Name of field to output as a single json value, if not given, all info is output as json
173
+ Name of field to output as a single json value, if not
174
+ given, all info is output as json
175
+ project_directory Directory of Python project
151
176
 
152
177
  options:
153
178
  -h, --help show this help message and exit
@@ -47,11 +47,6 @@ pip install ci-helper
47
47
  ## Usage:
48
48
 
49
49
  ```bash
50
- # The second-most recent minor Python release, a good choice for the version to run
51
- # tools from:
52
- $ ci-helper defaultpython
53
- 3.12
54
-
55
50
  # All stable, non-end-of-life Python versions:
56
51
  $ ci-helper pythons
57
52
  3.9,3.10,3.11,3.12,3.13
@@ -60,11 +55,16 @@ $ ci-helper pythons
60
55
  $ ci-helper pythons --cibw
61
56
  cp39-* cp310-* cp311-* cp312-* cp313-*
62
57
 
58
+ # The second-most recent minor Python release, a good choice for the version to run
59
+ # tools from:
60
+ $ ci-helper defaultpython
61
+ 3.12
62
+
63
63
  # Info about the source Python project in the current working directory - name, version,
64
64
  # whether it's a pure Python package, and whether its build or run requirements contain
65
65
  # any # environment markers (that is, whether its requirements vary by platform or
66
66
  # Python version):
67
- $ ci-helper distinfo
67
+ $ ci-helper distinfo .
68
68
  {
69
69
  "name": "ci-helper",
70
70
  "version": "0.1.dev1+g5043fb5.d20241202",
@@ -73,13 +73,13 @@ $ ci-helper distinfo
73
73
  }
74
74
 
75
75
  # Same but one field at a time, more convenient for assigning to environment variables:
76
- $ ci-helper distinfo name
76
+ $ ci-helper distinfo name .
77
77
  ci-helper
78
- $ ci-helper distinfo version
78
+ $ ci-helper distinfo version .
79
79
  0.1.0
80
- $ ci-helper distinfo is_pure
80
+ $ ci-helper distinfo is_pure .
81
81
  true
82
- $ ci-helper distinfo has_env_markers
82
+ $ ci-helper distinfo has_env_markers .
83
83
  false
84
84
  ```
85
85
 
@@ -112,7 +112,7 @@ options:
112
112
  ```
113
113
 
114
114
  ```shell
115
- $ ci-helper defaultpython -h
115
+ $ ci-helper default_python -h
116
116
  usage: ci-helper defaultpython [-h]
117
117
 
118
118
  options:
@@ -121,11 +121,15 @@ options:
121
121
 
122
122
  ```shell
123
123
  $ ci-helper distinfo -h
124
- usage: ci-helper distinfo [-h] [{name,version,is_pure,has_env_markers}]
124
+ usage: ci-helper distinfo [-h]
125
+ [{name,version,is_pure,has_env_markers}]
126
+ project_directory
125
127
 
126
128
  positional arguments:
127
129
  {name,version,is_pure,has_env_markers}
128
- Name of field to output as a single json value, if not given, all info is output as json
130
+ Name of field to output as a single json value, if not
131
+ given, all info is output as json
132
+ project_directory Directory of Python project
129
133
 
130
134
  options:
131
135
  -h, --help show this help message and exit
@@ -87,13 +87,39 @@ def main():
87
87
  help="Name of field to output as a single json value, "
88
88
  + "if not given, all info is output as json",
89
89
  )
90
+ parser_distinfo.add_argument(
91
+ 'project_directory',
92
+ help="Directory of Python project",
93
+ )
90
94
 
91
95
  args = parser.parse_args()
92
96
 
93
- if args.command == 'distinfo':
94
- # distinfo_args = parser_distinfo.parse_args()
95
- cmd = [sys.executable, *setup_py('.'), '-q', 'ci_distinfo']
96
- result = subprocess.run(cmd, check=True, capture_output=True)
97
+ if args.command == 'pythons':
98
+ pythons = get_pythons()
99
+ if args.cibw:
100
+ print(' '.join([f"cp{p.replace('.', '')}-*" for p in pythons]))
101
+ else:
102
+ print(','.join(pythons))
103
+
104
+ elif args.command == 'defaultpython':
105
+ pythons = get_pythons()
106
+ print(pythons[-2])
107
+
108
+ elif args.command == 'distinfo':
109
+ cmd = [
110
+ sys.executable,
111
+ *setup_py('.'),
112
+ '-q',
113
+ '--command-packages=ci_helper.command',
114
+ 'ci_distinfo',
115
+ ]
116
+ try:
117
+ result = subprocess.run(
118
+ cmd, cwd=args.project_directory, check=True, capture_output=True
119
+ )
120
+ except subprocess.CalledProcessError as e:
121
+ sys.stderr.write(e.stderr.decode('utf8'))
122
+ raise
97
123
  info = result.stdout.decode('utf8')
98
124
  if args.field is not None:
99
125
  info = json.loads(info)
@@ -104,15 +130,7 @@ def main():
104
130
  print(json.dumps(value))
105
131
  else:
106
132
  print(info)
107
- elif args.command == 'pythons':
108
- pythons = get_pythons()
109
- if args.cibw:
110
- print(' '.join([f"cp{p.replace('.', '')}-*" for p in pythons]))
111
- else:
112
- print(','.join(pythons))
113
- elif args.command == 'defaultpython':
114
- pythons = get_pythons()
115
- print(pythons[-2])
133
+
116
134
  sys.exit(0)
117
135
 
118
136
 
@@ -1,9 +1,6 @@
1
1
  import os
2
2
  from pathlib import Path
3
- try:
4
- import importlib.metadata as importlib_metadata
5
- except ImportError:
6
- import importlib_metadata
3
+ import importlib.metadata as importlib_metadata
7
4
 
8
5
  VERSION_SCHEME = {
9
6
  "version_scheme": os.getenv("SCM_VERSION_SCHEME", "guess-next-dev"),
File without changes
@@ -1,22 +1,43 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ci-helper
3
- Version: 0.1.0
3
+ Version: 0.3.0
4
4
  Summary: Get info on how a package should be built on CI
5
- Home-page: http://github.com/chrisjbillington/ci-helper
6
- Author: Christopher Billington
7
- Author-email: chrisjbillington@gmail.com
8
- License: MIT
9
- Project-URL: Source Code, https://github.com/chrisjbillington/ci-helper
10
- Project-URL: Download, https://github.com/chrisjbillington/ci-helper/releases
5
+ Author-email: Christopher Billington <chrisjbillington@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2024 Christopher Billington
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Project-URL: Homepage, https://github.com/chrisjbillington/ci-helper
29
+ Project-URL: Documentation, https://github.com/chrisjbillington/ci-helper
30
+ Project-URL: Repository, https://github.com/chrisjbillington/ci-helper
31
+ Project-URL: Downloads, https://pypi.org/project/ci-helper/
11
32
  Project-URL: Tracker, https://github.com/chrisjbillington/ci-helper/issues
12
- Keywords: build setuptools conda
13
- Classifier: License :: OSI Approved :: MIT License
33
+ Keywords: build,setuptools,CI
34
+ Classifier: License :: OSI Approved :: BSD License
14
35
  Classifier: Programming Language :: Python :: 3 :: Only
15
- Requires-Python: >=3.8
36
+ Requires-Python: >=3.9
16
37
  Description-Content-Type: text/markdown
17
38
  License-File: LICENSE.txt
39
+ Requires-Dist: setuptools
18
40
  Requires-Dist: setuptools_scm
19
- Requires-Dist: importlib_metadata
20
41
  Requires-Dist: toml
21
42
  Requires-Dist: requests
22
43
 
@@ -69,11 +90,6 @@ pip install ci-helper
69
90
  ## Usage:
70
91
 
71
92
  ```bash
72
- # The second-most recent minor Python release, a good choice for the version to run
73
- # tools from:
74
- $ ci-helper defaultpython
75
- 3.12
76
-
77
93
  # All stable, non-end-of-life Python versions:
78
94
  $ ci-helper pythons
79
95
  3.9,3.10,3.11,3.12,3.13
@@ -82,11 +98,16 @@ $ ci-helper pythons
82
98
  $ ci-helper pythons --cibw
83
99
  cp39-* cp310-* cp311-* cp312-* cp313-*
84
100
 
101
+ # The second-most recent minor Python release, a good choice for the version to run
102
+ # tools from:
103
+ $ ci-helper defaultpython
104
+ 3.12
105
+
85
106
  # Info about the source Python project in the current working directory - name, version,
86
107
  # whether it's a pure Python package, and whether its build or run requirements contain
87
108
  # any # environment markers (that is, whether its requirements vary by platform or
88
109
  # Python version):
89
- $ ci-helper distinfo
110
+ $ ci-helper distinfo .
90
111
  {
91
112
  "name": "ci-helper",
92
113
  "version": "0.1.dev1+g5043fb5.d20241202",
@@ -95,13 +116,13 @@ $ ci-helper distinfo
95
116
  }
96
117
 
97
118
  # Same but one field at a time, more convenient for assigning to environment variables:
98
- $ ci-helper distinfo name
119
+ $ ci-helper distinfo name .
99
120
  ci-helper
100
- $ ci-helper distinfo version
121
+ $ ci-helper distinfo version .
101
122
  0.1.0
102
- $ ci-helper distinfo is_pure
123
+ $ ci-helper distinfo is_pure .
103
124
  true
104
- $ ci-helper distinfo has_env_markers
125
+ $ ci-helper distinfo has_env_markers .
105
126
  false
106
127
  ```
107
128
 
@@ -134,7 +155,7 @@ options:
134
155
  ```
135
156
 
136
157
  ```shell
137
- $ ci-helper defaultpython -h
158
+ $ ci-helper default_python -h
138
159
  usage: ci-helper defaultpython [-h]
139
160
 
140
161
  options:
@@ -143,11 +164,15 @@ options:
143
164
 
144
165
  ```shell
145
166
  $ ci-helper distinfo -h
146
- usage: ci-helper distinfo [-h] [{name,version,is_pure,has_env_markers}]
167
+ usage: ci-helper distinfo [-h]
168
+ [{name,version,is_pure,has_env_markers}]
169
+ project_directory
147
170
 
148
171
  positional arguments:
149
172
  {name,version,is_pure,has_env_markers}
150
- Name of field to output as a single json value, if not given, all info is output as json
173
+ Name of field to output as a single json value, if not
174
+ given, all info is output as json
175
+ project_directory Directory of Python project
151
176
 
152
177
  options:
153
178
  -h, --help show this help message and exit
@@ -3,15 +3,14 @@ LICENSE.txt
3
3
  README.md
4
4
  ci_distinfo.py
5
5
  pyproject.toml
6
- setup.cfg
7
- setup.py
8
6
  ci_helper/__init__.py
9
7
  ci_helper/__main__.py
10
8
  ci_helper/__version__.py
11
- ci_helper/ci_distinfo.py
12
9
  ci_helper.egg-info/PKG-INFO
13
10
  ci_helper.egg-info/SOURCES.txt
14
11
  ci_helper.egg-info/dependency_links.txt
15
12
  ci_helper.egg-info/entry_points.txt
16
13
  ci_helper.egg-info/requires.txt
17
- ci_helper.egg-info/top_level.txt
14
+ ci_helper.egg-info/top_level.txt
15
+ ci_helper/command/__init__.py
16
+ ci_helper/command/ci_distinfo.py
@@ -1,4 +1,4 @@
1
+ setuptools
1
2
  setuptools_scm
2
- importlib_metadata
3
3
  toml
4
4
  requests
@@ -0,0 +1,44 @@
1
+ [build-system]
2
+ requires = ["setuptools", "wheel", "setuptools_scm"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [tool.setuptools_scm]
6
+ local_scheme = "no-local-version"
7
+
8
+ [tool.setuptools.packages]
9
+ find = {namespaces = false}
10
+
11
+ [project]
12
+ name = "ci-helper"
13
+ description = "Get info on how a package should be built on CI"
14
+ authors = [
15
+ {name = "Christopher Billington", email = "chrisjbillington@gmail.com"},
16
+ ]
17
+ keywords = ["build", "setuptools", "CI"]
18
+ license = {file = 'LICENSE.txt'}
19
+ classifiers = [
20
+ "License :: OSI Approved :: BSD License",
21
+ "Programming Language :: Python :: 3 :: Only",
22
+ ]
23
+ requires-python = ">=3.9"
24
+ dependencies = [
25
+ "setuptools",
26
+ "setuptools_scm",
27
+ "toml",
28
+ "requests",
29
+ ]
30
+ dynamic = ["version"]
31
+
32
+ [project.readme]
33
+ file = "README.md"
34
+ content-type = "text/markdown"
35
+
36
+ [project.urls]
37
+ Homepage = "https://github.com/chrisjbillington/ci-helper"
38
+ Documentation = "https://github.com/chrisjbillington/ci-helper"
39
+ Repository = "https://github.com/chrisjbillington/ci-helper"
40
+ Downloads = "https://pypi.org/project/ci-helper/"
41
+ Tracker = "https://github.com/chrisjbillington/ci-helper/issues"
42
+
43
+ [project.scripts]
44
+ ci-helper = "ci_helper.__main__:main"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -1,2 +0,0 @@
1
- [build-system]
2
- requires = ["setuptools", "wheel", "setuptools_scm"]
ci_helper-0.1.0/setup.cfg DELETED
@@ -1,35 +0,0 @@
1
- [metadata]
2
- name = ci-helper
3
- description = Get info on how a package should be built on CI
4
- long_description = file: README.md
5
- long_description_content_type = text/markdown
6
- author = Christopher Billington
7
- author_email = chrisjbillington@gmail.com
8
- url = http://github.com/chrisjbillington/ci-helper
9
- project_urls =
10
- Source Code=https://github.com/chrisjbillington/ci-helper
11
- Download=https://github.com/chrisjbillington/ci-helper/releases
12
- Tracker=https://github.com/chrisjbillington/ci-helper/issues
13
- keywords = build setuptools conda
14
- license = MIT
15
- classifiers =
16
- License :: OSI Approved :: MIT License
17
- Programming Language :: Python :: 3 :: Only
18
-
19
- [options]
20
- packages = find:
21
- python_requires = >=3.8
22
- install_requires =
23
- setuptools_scm
24
- importlib_metadata
25
- toml
26
- requests
27
-
28
- [options.entry_points]
29
- console_scripts =
30
- ci-helper = ci_helper.__main__:main
31
-
32
- [egg_info]
33
- tag_build =
34
- tag_date = 0
35
-
ci_helper-0.1.0/setup.py DELETED
@@ -1,29 +0,0 @@
1
- import sys
2
- import os
3
- from setuptools import setup
4
- import sysconfig
5
- from pathlib import Path
6
-
7
- # Normally packages don't have to do this - the dist_conda command should be
8
- # automatically available. But since we're installing it, it isn't there yet!
9
- from ci_helper.ci_distinfo import ci_distinfo
10
- CMDCLASS = {'ci_distinfo': ci_distinfo}
11
-
12
- VERSION_SCHEME = {
13
- "version_scheme": os.getenv("SCM_VERSION_SCHEME", "guess-next-dev"),
14
- "local_scheme": os.getenv("SCM_LOCAL_SCHEME", "node-and-date"),
15
- }
16
-
17
- SITE_PACKAGES = sysconfig.get_path('purelib')
18
-
19
- # Add the dist_conda command to the distlib vendored in setuptools:
20
- setuptools_distutils = Path(SITE_PACKAGES) / 'setuptools' / '_distutils' / 'command'
21
- DATA_FILES = [
22
- (str(setuptools_distutils.relative_to(sys.prefix)), ["ci_distinfo.py"]),
23
- ]
24
- setup(
25
- use_scm_version=VERSION_SCHEME,
26
- cmdclass=CMDCLASS,
27
- data_files=DATA_FILES,
28
- )
29
-
File without changes
File without changes
File without changes