partis-pyproj 0.1.3rc4__py3-none-any.whl → 0.1.4__py3-none-any.whl
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.
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/builder.py +117 -3
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/cargo.py +3 -4
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/cmake.py +5 -10
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/meson.py +5 -10
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/process.py +3 -6
- partis_pyproj-0.1.4.data/purelib/partis/pyproj/file.py +64 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/pyproj.py +5 -3
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/validate.py +6 -1
- {partis_pyproj-0.1.3rc4.dist-info → partis_pyproj-0.1.4.dist-info}/METADATA +16 -16
- partis_pyproj-0.1.4.dist-info/RECORD +36 -0
- partis_pyproj-0.1.3rc4.dist-info/RECORD +0 -35
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/__init__.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/_legacy_setup.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/_nonprintable.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/backend.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/__init__.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/__init__.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/dist_base.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/dist_binary.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/dist_copy.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/dist_source.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/dist_targz.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/dist_zip.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/legacy.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/load_module.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/norms.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/__init__.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/match.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/pattern.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/utils.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/pep.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/pkginfo.py +0 -0
- {partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/pptoml.py +0 -0
- {partis_pyproj-0.1.3rc4.dist-info → partis_pyproj-0.1.4.dist-info}/LICENSE.txt +0 -0
- {partis_pyproj-0.1.3rc4.dist-info → partis_pyproj-0.1.4.dist-info}/WHEEL +0 -0
- {partis_pyproj-0.1.3rc4.dist-info → partis_pyproj-0.1.4.dist-info}/entry_points.txt +0 -0
- {partis_pyproj-0.1.3rc4.dist-info → partis_pyproj-0.1.4.dist-info}/top_level.txt +0 -0
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/builder.py
RENAMED
@@ -1,10 +1,10 @@
|
|
1
1
|
import os
|
2
|
-
import
|
3
|
-
import tempfile
|
2
|
+
import re
|
4
3
|
import shutil
|
5
4
|
import subprocess
|
6
5
|
from pathlib import Path
|
7
6
|
|
7
|
+
from ..file import tail
|
8
8
|
from ..validate import (
|
9
9
|
validating,
|
10
10
|
ValidationError,
|
@@ -16,6 +16,12 @@ from ..load_module import EntryPoint
|
|
16
16
|
from ..path import (
|
17
17
|
subdir )
|
18
18
|
|
19
|
+
ERROR_REC = re.compile(r"error:", re.I)
|
20
|
+
|
21
|
+
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
22
|
+
class BuildCommandError(ValidationError):
|
23
|
+
pass
|
24
|
+
|
19
25
|
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
20
26
|
class Builder:
|
21
27
|
"""Run build setup, compile, install commands
|
@@ -107,10 +113,20 @@ class Builder:
|
|
107
113
|
logger = self.logger,
|
108
114
|
entry = target.entry )
|
109
115
|
|
116
|
+
log_dir = self.root/'build'/'logs'
|
117
|
+
if not log_dir.exists():
|
118
|
+
log_dir.mkdir(parents=True)
|
119
|
+
|
120
|
+
runner = ProcessRunner(
|
121
|
+
logger = self.logger,
|
122
|
+
log_dir=log_dir,
|
123
|
+
target_name=f"target_{i:02d}")
|
124
|
+
|
110
125
|
self.logger.info(f"Build targets[{i}]")
|
111
126
|
self.logger.info(f"Working dir: {work_dir}")
|
112
127
|
self.logger.info(f"Source dir: {src_dir}")
|
113
128
|
self.logger.info(f"Build dir: {build_dir}")
|
129
|
+
self.logger.info(f"Log dir: {log_dir}")
|
114
130
|
self.logger.info(f"Prefix: {prefix}")
|
115
131
|
|
116
132
|
cwd = os.getcwd()
|
@@ -127,7 +143,8 @@ class Builder:
|
|
127
143
|
setup_args = target.setup_args,
|
128
144
|
compile_args = target.compile_args,
|
129
145
|
install_args = target.install_args,
|
130
|
-
build_clean = not build_dirty
|
146
|
+
build_clean = not build_dirty,
|
147
|
+
runner = runner)
|
131
148
|
|
132
149
|
finally:
|
133
150
|
os.chdir(cwd)
|
@@ -151,3 +168,100 @@ class Builder:
|
|
151
168
|
if build_dir is not None and build_dir.exists() and target.build_clean:
|
152
169
|
self.logger.info(f"Removing build dir: {build_dir}")
|
153
170
|
shutil.rmtree(build_dir)
|
171
|
+
|
172
|
+
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
173
|
+
class ProcessRunner:
|
174
|
+
#-----------------------------------------------------------------------------
|
175
|
+
def __init__(self,
|
176
|
+
logger,
|
177
|
+
log_dir: Path,
|
178
|
+
target_name: str):
|
179
|
+
|
180
|
+
self.logger = logger
|
181
|
+
self.log_dir = log_dir
|
182
|
+
self.target_name = target_name
|
183
|
+
self.commands = {}
|
184
|
+
|
185
|
+
#-----------------------------------------------------------------------------
|
186
|
+
def run(self, args: list):
|
187
|
+
if len(args) == 0:
|
188
|
+
raise ValueError(f"Command for {self.target_name} is empty.")
|
189
|
+
|
190
|
+
cmd_exec = args[0]
|
191
|
+
cmd_exec_src = shutil.which(cmd_exec)
|
192
|
+
|
193
|
+
if cmd_exec_src is None:
|
194
|
+
raise ValueError(
|
195
|
+
f"Executable does not exist or has in-sufficient permissions: {cmd_exec}")
|
196
|
+
|
197
|
+
cmd_exec_src = Path(cmd_exec_src).resolve()
|
198
|
+
cmd_name = cmd_exec_src.name
|
199
|
+
args = [str(cmd_exec_src)]+args[1:]
|
200
|
+
|
201
|
+
cmd_hist = self.commands.setdefault(cmd_exec_src, [])
|
202
|
+
cmd_idx = len(cmd_hist)
|
203
|
+
cmd_hist.append(args)
|
204
|
+
|
205
|
+
run_name = re.sub(r'[^\w]+', "_", cmd_name)
|
206
|
+
|
207
|
+
stdout_file = self.log_dir/f"{self.target_name}.{run_name}.{cmd_idx:02d}.log"
|
208
|
+
|
209
|
+
try:
|
210
|
+
self.logger.info("Running command: "+' '.join(args))
|
211
|
+
|
212
|
+
with open(stdout_file, 'wb') as fp:
|
213
|
+
subprocess.run(
|
214
|
+
args,
|
215
|
+
shell=False,
|
216
|
+
stdout=fp,
|
217
|
+
stderr=subprocess.STDOUT,
|
218
|
+
check=True)
|
219
|
+
|
220
|
+
except subprocess.CalledProcessError as e:
|
221
|
+
|
222
|
+
|
223
|
+
num_windows = 20
|
224
|
+
window_size = 5
|
225
|
+
with open(stdout_file, 'rb') as fp:
|
226
|
+
lines = [
|
227
|
+
(lineno,line)
|
228
|
+
for lineno,line in enumerate(fp.read().decode('utf-8', errors='replace').splitlines())]
|
229
|
+
|
230
|
+
suspect_linenos = [
|
231
|
+
lineno
|
232
|
+
for lineno,line in lines
|
233
|
+
if ERROR_REC.search(line)]
|
234
|
+
|
235
|
+
# suspect_linenos = suspect_linenos[:num_windows]
|
236
|
+
|
237
|
+
extra = [
|
238
|
+
'\n'.join(
|
239
|
+
[f"{'':-<70}",f"{'':>4}⋮"]
|
240
|
+
+[f"{j:>4d}| {line}" for j,line in lines[i:i+window_size]]
|
241
|
+
+[f"{'':>4}⋮"])
|
242
|
+
for i in suspect_linenos]
|
243
|
+
|
244
|
+
m = len(lines)-num_windows
|
245
|
+
|
246
|
+
if suspect_linenos:
|
247
|
+
m = max(m, suspect_linenos[-1])
|
248
|
+
|
249
|
+
last_lines = lines[m:]
|
250
|
+
|
251
|
+
if last_lines:
|
252
|
+
extra += [
|
253
|
+
f"{'':-<70}",
|
254
|
+
f"Last {len(last_lines)} lines of command output:",
|
255
|
+
f"{'':>4}⋮"]
|
256
|
+
|
257
|
+
extra += [
|
258
|
+
f"{j:>4d}| {line}"
|
259
|
+
for j,line in last_lines]
|
260
|
+
|
261
|
+
extra += [
|
262
|
+
f"{'END':>4}| [See log file: {stdout_file}]",
|
263
|
+
f"{'':-<70}",]
|
264
|
+
|
265
|
+
raise BuildCommandError(
|
266
|
+
str(e),
|
267
|
+
extra='\n'.join(extra)) from None
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/cargo.py
RENAMED
@@ -25,7 +25,8 @@ def cargo(
|
|
25
25
|
setup_args: list[str],
|
26
26
|
compile_args: list[str],
|
27
27
|
install_args: list[str],
|
28
|
-
build_clean: bool
|
28
|
+
build_clean: bool,
|
29
|
+
runner):
|
29
30
|
"""Run cargo build
|
30
31
|
"""
|
31
32
|
|
@@ -51,7 +52,5 @@ def cargo(
|
|
51
52
|
str(build_dir),
|
52
53
|
'--root', str(prefix) ]
|
53
54
|
|
54
|
-
|
55
|
-
|
56
|
-
subprocess.check_call(compile_args)
|
55
|
+
runner.run(compile_args)
|
57
56
|
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/cmake.py
RENAMED
@@ -31,7 +31,8 @@ def cmake(
|
|
31
31
|
setup_args,
|
32
32
|
compile_args,
|
33
33
|
install_args,
|
34
|
-
build_clean
|
34
|
+
build_clean,
|
35
|
+
runner):
|
35
36
|
"""Run cmake configure and install commands
|
36
37
|
|
37
38
|
Parameters
|
@@ -87,13 +88,7 @@ def cmake(
|
|
87
88
|
|
88
89
|
|
89
90
|
if setup_args:
|
90
|
-
|
91
|
-
subprocess.check_call(setup_args)
|
91
|
+
runner.run(setup_args)
|
92
92
|
|
93
|
-
|
94
|
-
|
95
|
-
subprocess.check_call(compile_args)
|
96
|
-
|
97
|
-
logger.debug(' '.join(install_args))
|
98
|
-
|
99
|
-
subprocess.check_call(install_args)
|
93
|
+
runner.run(compile_args)
|
94
|
+
runner.run(install_args)
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/meson.py
RENAMED
@@ -31,7 +31,8 @@ def meson(
|
|
31
31
|
setup_args,
|
32
32
|
compile_args,
|
33
33
|
install_args,
|
34
|
-
build_clean
|
34
|
+
build_clean,
|
35
|
+
runner):
|
35
36
|
"""Run meson setup, compile, install commands
|
36
37
|
|
37
38
|
Parameters
|
@@ -89,13 +90,7 @@ def meson(
|
|
89
90
|
|
90
91
|
|
91
92
|
if setup_args:
|
92
|
-
|
93
|
-
subprocess.check_call(setup_args)
|
93
|
+
runner.run(setup_args)
|
94
94
|
|
95
|
-
|
96
|
-
|
97
|
-
subprocess.check_call(compile_args)
|
98
|
-
|
99
|
-
logger.debug(' '.join(install_args))
|
100
|
-
|
101
|
-
subprocess.check_call(install_args)
|
95
|
+
runner.run(compile_args)
|
96
|
+
runner.run(install_args)
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/process.py
RENAMED
@@ -23,7 +23,8 @@ def process(
|
|
23
23
|
setup_args,
|
24
24
|
compile_args,
|
25
25
|
install_args,
|
26
|
-
build_clean
|
26
|
+
build_clean,
|
27
|
+
runner):
|
27
28
|
"""Run general three-part set of commands
|
28
29
|
|
29
30
|
Parameters
|
@@ -70,9 +71,5 @@ def process(
|
|
70
71
|
for cmd in [setup_args, compile_args, install_args]:
|
71
72
|
|
72
73
|
if cmd:
|
73
|
-
|
74
|
-
raise ValueError(f"The program not found: {setup_args[0]}")
|
75
|
-
|
76
|
-
logger.info(f"Running command: {' '.join(cmd)}")
|
77
|
-
subprocess.check_call(cmd)
|
74
|
+
runner.run(cmd)
|
78
75
|
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import os
|
2
|
+
|
3
|
+
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
4
|
+
def tail(path, n, bufsize = 1024, encoding = 'utf-8'):
|
5
|
+
"""Reads the last n lines from a file
|
6
|
+
|
7
|
+
Parameters
|
8
|
+
----------
|
9
|
+
path : str
|
10
|
+
n : int
|
11
|
+
Max number of lines to read from the end of the file
|
12
|
+
bufsize : int
|
13
|
+
Number of bytes to buffer at a time.
|
14
|
+
|
15
|
+
Returns
|
16
|
+
-------
|
17
|
+
lines : List[str]
|
18
|
+
Up to ``n`` lines from the end of the file
|
19
|
+
"""
|
20
|
+
|
21
|
+
bufsize = int(bufsize)
|
22
|
+
bufsize = max(1, bufsize)
|
23
|
+
|
24
|
+
n = int(n)
|
25
|
+
n = max( 0, n )
|
26
|
+
|
27
|
+
buf = bytes()
|
28
|
+
nlines = 0
|
29
|
+
|
30
|
+
head = 0
|
31
|
+
|
32
|
+
with open( path, 'rb' ) as fp:
|
33
|
+
# total number of bytes in the file
|
34
|
+
tot = fp.seek( 0, os.SEEK_END )
|
35
|
+
|
36
|
+
head = tot
|
37
|
+
|
38
|
+
while nlines < n and head > 0:
|
39
|
+
# NOTE: the number of newline characters is one less than number of 'lines'
|
40
|
+
nread = min( head, bufsize )
|
41
|
+
head -= nread
|
42
|
+
|
43
|
+
fp.seek( head, os.SEEK_SET )
|
44
|
+
|
45
|
+
_buf = fp.read( nread )
|
46
|
+
|
47
|
+
# NOTE: this is not exact, since pairs of '\r\n' may happen on the read
|
48
|
+
# boundary, but should count approximately the number of LF, CR, and CR+LF.
|
49
|
+
# LF -> 1 + 0 + 0 = 1
|
50
|
+
# CR -> 0 + 1 + 0 = 1
|
51
|
+
# CR+LF -> 1 + 1 - 1 = 1
|
52
|
+
nlines += _buf.count(b'\n') + _buf.count(b'\r') - _buf.count(b'\r\n')
|
53
|
+
|
54
|
+
buf = _buf + buf
|
55
|
+
|
56
|
+
if nlines > 0 and head > 0:
|
57
|
+
# remove everything before first newline to ensure only complete lines are kept
|
58
|
+
i = buf.index(b'\n')
|
59
|
+
buf = buf[(i+1):]
|
60
|
+
|
61
|
+
res = buf.decode(encoding, errors = 'replace')
|
62
|
+
lines = res.split('\n')[-n:]
|
63
|
+
|
64
|
+
return lines
|
@@ -32,6 +32,7 @@ from .validate import (
|
|
32
32
|
ValidationWarning,
|
33
33
|
ValidationError,
|
34
34
|
FileOutsideRootError,
|
35
|
+
RequiredValueError,
|
35
36
|
valid_dict,
|
36
37
|
validating,
|
37
38
|
valid,
|
@@ -104,14 +105,15 @@ class PyProjBase:
|
|
104
105
|
|
105
106
|
with validating(key = 'tool'):
|
106
107
|
if 'tool' not in self.pptoml:
|
107
|
-
|
108
|
+
# TODO: !!!
|
109
|
+
raise RequiredValueError("tool.pyproj is required for backend")
|
108
110
|
|
109
111
|
with validating(key = 'pyproj'):
|
110
112
|
if 'pyproj' not in self.pptoml.tool:
|
111
|
-
raise RequiredValueError(
|
113
|
+
raise RequiredValueError("tool.pyproj is required for backend")
|
112
114
|
|
113
115
|
if self.project.dynamic and 'prep' not in self.pyproj:
|
114
|
-
raise
|
116
|
+
raise RequiredValueError("tool.pyproj.prep is required to resolve project.dynamic")
|
115
117
|
|
116
118
|
#...........................................................................
|
117
119
|
# construct a validator from the tool.pyproj.config table
|
@@ -67,7 +67,8 @@ class ValidationError( ValueError ):
|
|
67
67
|
def __init__( self, msg,
|
68
68
|
doc_root = None,
|
69
69
|
doc_file = None,
|
70
|
-
doc_path = None
|
70
|
+
doc_path = None,
|
71
|
+
extra = None):
|
71
72
|
|
72
73
|
msg = inspect.cleandoc( msg )
|
73
74
|
|
@@ -75,6 +76,7 @@ class ValidationError( ValueError ):
|
|
75
76
|
self.doc_root = doc_root
|
76
77
|
self.doc_file = doc_file
|
77
78
|
self.doc_path = doc_path or list()
|
79
|
+
self.extra = extra
|
78
80
|
|
79
81
|
super().__init__( msg )
|
80
82
|
|
@@ -107,6 +109,9 @@ class ValidationError( ValueError ):
|
|
107
109
|
if loc:
|
108
110
|
msg += '\n' + loc
|
109
111
|
|
112
|
+
if self.extra:
|
113
|
+
msg += '\n' + str(self.extra)
|
114
|
+
|
110
115
|
return msg
|
111
116
|
|
112
117
|
#-----------------------------------------------------------------------------
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: partis-pyproj
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.4
|
4
4
|
Requires-Python: >=3.6.2
|
5
5
|
Author-email: "Nanohmics Inc." <software.support@nanohmics.com>
|
6
6
|
Maintainer-email: "Nanohmics Inc." <software.support@nanohmics.com>
|
@@ -8,39 +8,39 @@ Summary: Minimal set of Python project utilities (PEP-517/621)
|
|
8
8
|
License-File: LICENSE.txt
|
9
9
|
Classifier: Intended Audience :: Developers
|
10
10
|
Classifier: Topic :: Software Development :: Build Tools
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
12
|
+
Classifier: Programming Language :: Python
|
11
13
|
Classifier: Programming Language :: Python :: 3
|
12
14
|
Classifier: Operating System :: POSIX :: Linux
|
13
|
-
Classifier: License :: OSI Approved :: BSD License
|
14
|
-
Classifier: Development Status :: 4 - Beta
|
15
15
|
Classifier: Operating System :: Microsoft :: Windows
|
16
|
-
Classifier:
|
16
|
+
Classifier: License :: OSI Approved :: BSD License
|
17
17
|
Provides-Extra: meson
|
18
18
|
Provides-Extra: cmake
|
19
19
|
Provides-Extra: doc
|
20
20
|
Provides-Extra: test
|
21
21
|
Provides-Extra: cov
|
22
22
|
Provides-Extra: lint
|
23
|
-
Requires-Dist: packaging==21.3
|
24
|
-
Requires-Dist: tomli>=1.2.3
|
25
23
|
Requires-Dist: importlib_metadata; python_version < "3.8"
|
26
|
-
Requires-Dist:
|
24
|
+
Requires-Dist: packaging>=21.3
|
25
|
+
Requires-Dist: tomli>=1.2.3
|
27
26
|
Requires-Dist: ninja>=1.10.2.3; extra == "meson"
|
28
|
-
Requires-Dist:
|
27
|
+
Requires-Dist: meson>=0.61.3; extra == "meson"
|
29
28
|
Requires-Dist: cmake>=3.24.3; extra == "cmake"
|
30
|
-
Requires-Dist:
|
31
|
-
Requires-Dist:
|
32
|
-
Requires-Dist:
|
33
|
-
Requires-Dist:
|
29
|
+
Requires-Dist: ninja>=1.10.2.3; extra == "cmake"
|
30
|
+
Requires-Dist: partis-utils[sphinx]>=0.1.4; extra == "doc"
|
31
|
+
Requires-Dist: pip>=18.1; extra == "test"
|
32
|
+
Requires-Dist: pytest-cov>=3.0.0; extra == "test"
|
34
33
|
Requires-Dist: meson>=0.61.3; extra == "test"
|
34
|
+
Requires-Dist: pytest>=6.2.5; extra == "test"
|
35
|
+
Requires-Dist: cmake>=3.24.3; extra == "test"
|
35
36
|
Requires-Dist: ninja>=1.10.2.3; extra == "test"
|
36
|
-
Requires-Dist:
|
37
|
+
Requires-Dist: nox>=2021.10.1; extra == "test"
|
38
|
+
Requires-Dist: numpy; extra == "test"
|
37
39
|
Requires-Dist: coverage[toml]>=6.2; extra == "test"
|
38
40
|
Requires-Dist: tomli>=1.2.3; extra == "test"
|
39
41
|
Requires-Dist: Cython>=0.29.18; extra == "test"
|
40
|
-
Requires-Dist: build>=0.7.0; extra == "test"
|
41
42
|
Requires-Dist: pytest_mock>=3.6.1; extra == "test"
|
42
|
-
Requires-Dist:
|
43
|
-
Requires-Dist: pip>=18.1; extra == "test"
|
43
|
+
Requires-Dist: build>=0.7.0; extra == "test"
|
44
44
|
Requires-Dist: coverage[toml]>=6.2; extra == "cov"
|
45
45
|
Requires-Dist: pyflakes==2.4.0; extra == "lint"
|
46
46
|
Description-Content-Type: text/x-rst
|
@@ -0,0 +1,36 @@
|
|
1
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/file.py,sha256=saWJ6m3cBC8MKJhAcPy8M_MZL24rScb-0-miWWNoyv0,1546
|
2
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/__init__.py,sha256=HBnvC3dycTnUD8bkbEBj9fRXwvJCp87wpAk1Q_Ijbq0,1432
|
3
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/validate.py,sha256=eZyI5TCq4_8rhdYgls9BfrWmhZE073exWDCKBgPke7g,32420
|
4
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/_legacy_setup.py,sha256=UwiHAzj5Ka960u_j1I7lYChjMxtKM2fHsOWhWNwGfy8,5306
|
5
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/norms.py,sha256=VwnwnysTgTevdkGcQhCvn41rnjt67t6f8v7_anGuR5Q,10862
|
6
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/builder/cargo.py,sha256=VPYTh975HnkLEi-Au92MLHkn-U2D47LvGPMBwDDld84,1145
|
7
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/builder/__init__.py,sha256=1GSva5IvHTDozdjR9G7g30zKIBshciBYHIfVodjTeLI,133
|
8
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/builder/meson.py,sha256=dk1I_PLpSB9hNLqZ2F4Sj_T3fXp91Mp4ob0bHwWkIV0,2064
|
9
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/builder/process.py,sha256=kGCzMkD2IJe7bUS9VSvtIz_7yXnFBozM8gqXffkQUzw,1857
|
10
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/builder/cmake.py,sha256=hlvZmwp7G0x5TzR_541yASMnpKjVC2YvSV3i0CpTeY8,2001
|
11
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/builder/builder.py,sha256=4ogF7u2llZqfKl5GpFmxhASD5M2ISVFEp6eIPSUGIpM,7752
|
12
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/pyproj.py,sha256=1XCN2bHPqtDUHjQShcI5BOELgYwoF0hvmicXjRO6i0M,12264
|
13
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/pptoml.py,sha256=0NJ69Vu7-dOisE61OjRHWenJAc7HDrP7xoWJBIjL3qw,13446
|
14
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/legacy.py,sha256=tgOSmt7sfxTT0Ue9md6pRzDLv3kIPfJHuB8XgKHoQsA,1704
|
15
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/pkginfo.py,sha256=7O-EAeKyH7t222-NBnMNfDX8cmWqAGMfq-plMvz7bJA,15250
|
16
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/_nonprintable.py,sha256=plAzStakZ3BgjntpzGqRYSdT99WIMXTwv6Q5L6DMHR8,1829
|
17
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/pep.py,sha256=CrvlQslSQqPvQ3_5hOzzkrRhXMgZh21kviIm0yXpssM,32658
|
18
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/load_module.py,sha256=WYDcGKBrIWw_bO_aMW34fW3gt7x-T4O_TpYeu6_5V1k,4305
|
19
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/backend.py,sha256=yta_iZKj_-gHR_d34ycjGWzeVT1a4E--efD0esFx0rU,6717
|
20
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/path/__init__.py,sha256=pypqIo4tZ8YVV3W33sC2hagHek_Us4FpXwwOnQJu3vA,226
|
21
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/path/utils.py,sha256=OlUjU7DUGf2UaamrjHCKxCTm2Zor9NuzjGOJtRVypjU,950
|
22
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/path/match.py,sha256=bFX8oEDPCoTRWkCOAtMw1PBQmI3LpRbA97uBQ4vcf0M,11677
|
23
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/path/pattern.py,sha256=DpJl-vdnn30QZdikTyg4f4nbdHk6VAxcGhHpYjuCdyg,15634
|
24
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/dist_file/__init__.py,sha256=_NEMWNR9Z0aa1knCmKmhSuQOK5aP8Lr1Bc1868eUt58,379
|
25
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/dist_file/dist_targz.py,sha256=neDHh4PVXcpycwYtgHRTgk8dO9WUbS1cguZuaO84cW0,3922
|
26
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/dist_file/dist_base.py,sha256=vJEbMWZf_X9b65ZCSun1kIUZbSsNURZa10wzzRZIz-E,12086
|
27
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/dist_file/dist_copy.py,sha256=urzbyCVf4BelApO7T7kQ2sOqOOJxTNBEZfsQ73qz5XM,3627
|
28
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/dist_file/dist_binary.py,sha256=e2Tuzl1vvzaG3bVB4lleHH3PPITPFGJUvIYqxKe5g9s,7881
|
29
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/dist_file/dist_source.py,sha256=x7nUgArbCIz1tr-ZQUknyhcG36hrv_AX71_RV870fnM,4503
|
30
|
+
partis_pyproj-0.1.4.data/purelib/partis/pyproj/dist_file/dist_zip.py,sha256=wWoLE7JJ2jicq5OFFG0EckHhi4KEshkEyTfDgdAhl7c,3887
|
31
|
+
partis_pyproj-0.1.4.dist-info/METADATA,sha256=d8eb8WyJEtGuLeMNC1ta24DD_MIITciqwaZf4Crb5M4,2086
|
32
|
+
partis_pyproj-0.1.4.dist-info/LICENSE.txt,sha256=6LYtpan0H8F0reCrEa1ZUf_Nr9Vu93A3bqunX2J5Et0,3320
|
33
|
+
partis_pyproj-0.1.4.dist-info/top_level.txt,sha256=T72LF-bUK7nMDf1GQgbzvgZ2YrJElwwRd9h7HwVQBIQ,6
|
34
|
+
partis_pyproj-0.1.4.dist-info/entry_points.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
35
|
+
partis_pyproj-0.1.4.dist-info/WHEEL,sha256=4YeLUbbRU8D0xzIlG3rm8IFLwHKcY8YaY_wiNxswKJg,126
|
36
|
+
partis_pyproj-0.1.4.dist-info/RECORD,,
|
@@ -1,35 +0,0 @@
|
|
1
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/__init__.py,sha256=HBnvC3dycTnUD8bkbEBj9fRXwvJCp87wpAk1Q_Ijbq0,1432
|
2
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/norms.py,sha256=VwnwnysTgTevdkGcQhCvn41rnjt67t6f8v7_anGuR5Q,10862
|
3
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/pep.py,sha256=CrvlQslSQqPvQ3_5hOzzkrRhXMgZh21kviIm0yXpssM,32658
|
4
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/builder/__init__.py,sha256=1GSva5IvHTDozdjR9G7g30zKIBshciBYHIfVodjTeLI,133
|
5
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/builder/builder.py,sha256=H3fotq7j7ckl_1Zljp4_DBrChTpD5MguQvLxQSs4X-c,4654
|
6
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/builder/cargo.py,sha256=y-CUsuZ29X4tAu9cj2MzsSje1B3DUUBeXZDheWXzoAo,1187
|
7
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/builder/cmake.py,sha256=lbcodOHKL_8OlZS6KOFnzRSAWkhIe-Rya6GJPZ2syA0,2145
|
8
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/builder/meson.py,sha256=lxLKXF-LbZlM6cAoi1Zf-GNAh25jJRufEZr2tJAZ5pM,2208
|
9
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/builder/process.py,sha256=Kx9fSVN-bXl6AHqjzYxRpy372DvjuT2kmqGn9UVnUQE,2018
|
10
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/load_module.py,sha256=WYDcGKBrIWw_bO_aMW34fW3gt7x-T4O_TpYeu6_5V1k,4305
|
11
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/_legacy_setup.py,sha256=UwiHAzj5Ka960u_j1I7lYChjMxtKM2fHsOWhWNwGfy8,5306
|
12
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/_nonprintable.py,sha256=plAzStakZ3BgjntpzGqRYSdT99WIMXTwv6Q5L6DMHR8,1829
|
13
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/path/__init__.py,sha256=pypqIo4tZ8YVV3W33sC2hagHek_Us4FpXwwOnQJu3vA,226
|
14
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/path/match.py,sha256=bFX8oEDPCoTRWkCOAtMw1PBQmI3LpRbA97uBQ4vcf0M,11677
|
15
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/path/pattern.py,sha256=DpJl-vdnn30QZdikTyg4f4nbdHk6VAxcGhHpYjuCdyg,15634
|
16
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/path/utils.py,sha256=OlUjU7DUGf2UaamrjHCKxCTm2Zor9NuzjGOJtRVypjU,950
|
17
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/validate.py,sha256=ljtv75OAQdjmRPCoW5iCXq2-CG42oDDYmV7xecmXF-U,32324
|
18
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/pkginfo.py,sha256=7O-EAeKyH7t222-NBnMNfDX8cmWqAGMfq-plMvz7bJA,15250
|
19
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/dist_file/dist_targz.py,sha256=neDHh4PVXcpycwYtgHRTgk8dO9WUbS1cguZuaO84cW0,3922
|
20
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/dist_file/__init__.py,sha256=_NEMWNR9Z0aa1knCmKmhSuQOK5aP8Lr1Bc1868eUt58,379
|
21
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/dist_file/dist_zip.py,sha256=wWoLE7JJ2jicq5OFFG0EckHhi4KEshkEyTfDgdAhl7c,3887
|
22
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/dist_file/dist_binary.py,sha256=e2Tuzl1vvzaG3bVB4lleHH3PPITPFGJUvIYqxKe5g9s,7881
|
23
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/dist_file/dist_base.py,sha256=vJEbMWZf_X9b65ZCSun1kIUZbSsNURZa10wzzRZIz-E,12086
|
24
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/dist_file/dist_source.py,sha256=x7nUgArbCIz1tr-ZQUknyhcG36hrv_AX71_RV870fnM,4503
|
25
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/dist_file/dist_copy.py,sha256=urzbyCVf4BelApO7T7kQ2sOqOOJxTNBEZfsQ73qz5XM,3627
|
26
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/legacy.py,sha256=tgOSmt7sfxTT0Ue9md6pRzDLv3kIPfJHuB8XgKHoQsA,1704
|
27
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/backend.py,sha256=yta_iZKj_-gHR_d34ycjGWzeVT1a4E--efD0esFx0rU,6717
|
28
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/pyproj.py,sha256=GuDFDi_65YtL1pqY9sP5M2F9rL9xD_6TRgMIBdQJjE8,12220
|
29
|
-
partis_pyproj-0.1.3rc4.data/purelib/partis/pyproj/pptoml.py,sha256=0NJ69Vu7-dOisE61OjRHWenJAc7HDrP7xoWJBIjL3qw,13446
|
30
|
-
partis_pyproj-0.1.3rc4.dist-info/METADATA,sha256=45sPnadoodUGiRswby3D3wd8dPwMBvFmmyCgr5wTNSQ,2092
|
31
|
-
partis_pyproj-0.1.3rc4.dist-info/LICENSE.txt,sha256=6LYtpan0H8F0reCrEa1ZUf_Nr9Vu93A3bqunX2J5Et0,3320
|
32
|
-
partis_pyproj-0.1.3rc4.dist-info/top_level.txt,sha256=T72LF-bUK7nMDf1GQgbzvgZ2YrJElwwRd9h7HwVQBIQ,6
|
33
|
-
partis_pyproj-0.1.3rc4.dist-info/entry_points.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
|
-
partis_pyproj-0.1.3rc4.dist-info/WHEEL,sha256=4YeLUbbRU8D0xzIlG3rm8IFLwHKcY8YaY_wiNxswKJg,126
|
35
|
-
partis_pyproj-0.1.3rc4.dist-info/RECORD,,
|
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/_legacy_setup.py
RENAMED
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/_nonprintable.py
RENAMED
File without changes
|
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/builder/__init__.py
RENAMED
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/dist_file/dist_zip.py
RENAMED
File without changes
|
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/load_module.py
RENAMED
File without changes
|
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/__init__.py
RENAMED
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/match.py
RENAMED
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/pattern.py
RENAMED
File without changes
|
{partis_pyproj-0.1.3rc4.data → partis_pyproj-0.1.4.data}/purelib/partis/pyproj/path/utils.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|