fastws-cli 0.0.23__tar.gz → 0.0.25__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.
- {fastws_cli-0.0.23/fastws_cli.egg-info → fastws_cli-0.0.25}/PKG-INFO +8 -3
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/README.md +6 -2
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws/__init__.py +3 -1
- fastws_cli-0.0.25/fastws/build_backend.py +59 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws/cargo.py +7 -2
- {fastws_cli-0.0.23 → fastws_cli-0.0.25/fastws_cli.egg-info}/PKG-INFO +8 -3
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws_cli.egg-info/SOURCES.txt +1 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws_cli.egg-info/requires.txt +1 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/pyproject.toml +1 -0
- fastws_cli-0.0.25/tests/test_build_backend.py +26 -0
- fastws_cli-0.0.23/fastws/build_backend.py +0 -38
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/LICENSE +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws/core.py +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws/releases.py +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws_cli.egg-info/dependency_links.txt +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws_cli.egg-info/entry_points.txt +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/fastws_cli.egg-info/top_level.txt +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/setup.cfg +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/tests/test_build.py +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/tests/test_releases.py +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/tests/test_setup.py +0 -0
- {fastws_cli-0.0.23 → fastws_cli-0.0.25}/tests/test_sync.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastws-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.25
|
|
4
4
|
Summary: Fast workspace tools for multi-repo management
|
|
5
5
|
Author: Jeremy Howard
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -14,6 +14,7 @@ Requires-Dist: fastcore>=2.2.33
|
|
|
14
14
|
Requires-Dist: fastgit>=0.1.2
|
|
15
15
|
Requires-Dist: ghapi>=2.0.6
|
|
16
16
|
Requires-Dist: packaging
|
|
17
|
+
Requires-Dist: maturin<2.0,>=1.9.4
|
|
17
18
|
Requires-Dist: tomli; python_version < "3.11"
|
|
18
19
|
Provides-Extra: dev
|
|
19
20
|
Requires-Dist: fastship; extra == "dev"
|
|
@@ -214,7 +215,11 @@ For reusable Rust libraries, keep the core crate Python-free and put PyO3 in an
|
|
|
214
215
|
|
|
215
216
|
Set `native-binaries = true` under `[tool.fastws]` to build and install the binary targets of the workspace's default members into the active venv alongside the extension. A binary can live in its own member crate, such as a `cli/` crate beside `py/`, listed in `default-members`. maturin's sdist keeps only the members that the extension depends on, so a wheel built from the sdist lacks a binary from such a crate. Cargo reports the executable paths; there is no separate list of binary names.
|
|
216
217
|
|
|
217
|
-
|
|
218
|
+
`cargo develop` also copies the `data/` subdirectory of `[tool.maturin].data` into the active venv, as a wheel install does. For example, `data/share/jupyter/kernels/<name>/kernel.json` is installed as `share/jupyter/kernels/<name>/kernel.json`, where Jupyter finds the kernel. `cargo develop` installs the binaries it builds, not the staged copies in `scripts/`.
|
|
219
|
+
|
|
220
|
+
Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.25` alongside maturin in `[build-system].requires`. Its editable builds install only Python metadata and the source path, and compile no Rust. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
|
|
221
|
+
|
|
222
|
+
For distribution wheels containing the binaries, also set `[tool.maturin].data` to a generated wheel-data directory. With `native-binaries = true`, wheel builds through the backend replace its `scripts/` subdirectory with the current Python-free binaries, then delegate packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries. Without `native-binaries`, wheel builds go straight to maturin, and `[tool.maturin].data` is optional.
|
|
218
223
|
|
|
219
224
|
Direct maturin CLI builds bypass the Python build backend. Stage the binaries first with the shared command:
|
|
220
225
|
|
|
@@ -254,7 +259,7 @@ An optional tracked `package.json.shared` is merged into the root `package.json`
|
|
|
254
259
|
|
|
255
260
|
Before `uv sync`, fastws regenerates `tool.uv.no-build-isolation-package` with the sorted package names of projects using `fastws.build_backend`, including external checkouts. These builds use the shared environment's `fastws-cli` and `maturin`. Leave global build isolation enabled for other projects.
|
|
256
261
|
|
|
257
|
-
After `uv sync`, fastws runs `cargo develop` in each mixed Rust/Python project. Cargo skips unchanged compilation inputs.
|
|
262
|
+
After `uv sync`, fastws runs `cargo develop` in each mixed Rust/Python project. Cargo skips unchanged compilation inputs. Projects using `fastws.build_backend` should keep only packaging inputs in `tool.uv.cache-keys`; Rust source changes are handled by Cargo. Maturin packages with `bindings = "bin"` keep their existing uv installation path.
|
|
258
263
|
|
|
259
264
|
Fastws then runs `<tool> install` at the workspace root. It runs `<tool> run build` in each JavaScript package containing both `Cargo.toml` and a `build` script. Cargo handles incremental compilation. Other build steps still run.
|
|
260
265
|
|
|
@@ -189,7 +189,11 @@ For reusable Rust libraries, keep the core crate Python-free and put PyO3 in an
|
|
|
189
189
|
|
|
190
190
|
Set `native-binaries = true` under `[tool.fastws]` to build and install the binary targets of the workspace's default members into the active venv alongside the extension. A binary can live in its own member crate, such as a `cli/` crate beside `py/`, listed in `default-members`. maturin's sdist keeps only the members that the extension depends on, so a wheel built from the sdist lacks a binary from such a crate. Cargo reports the executable paths; there is no separate list of binary names.
|
|
191
191
|
|
|
192
|
-
|
|
192
|
+
`cargo develop` also copies the `data/` subdirectory of `[tool.maturin].data` into the active venv, as a wheel install does. For example, `data/share/jupyter/kernels/<name>/kernel.json` is installed as `share/jupyter/kernels/<name>/kernel.json`, where Jupyter finds the kernel. `cargo develop` installs the binaries it builds, not the staged copies in `scripts/`.
|
|
193
|
+
|
|
194
|
+
Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.25` alongside maturin in `[build-system].requires`. Its editable builds install only Python metadata and the source path, and compile no Rust. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
|
|
195
|
+
|
|
196
|
+
For distribution wheels containing the binaries, also set `[tool.maturin].data` to a generated wheel-data directory. With `native-binaries = true`, wheel builds through the backend replace its `scripts/` subdirectory with the current Python-free binaries, then delegate packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries. Without `native-binaries`, wheel builds go straight to maturin, and `[tool.maturin].data` is optional.
|
|
193
197
|
|
|
194
198
|
Direct maturin CLI builds bypass the Python build backend. Stage the binaries first with the shared command:
|
|
195
199
|
|
|
@@ -229,7 +233,7 @@ An optional tracked `package.json.shared` is merged into the root `package.json`
|
|
|
229
233
|
|
|
230
234
|
Before `uv sync`, fastws regenerates `tool.uv.no-build-isolation-package` with the sorted package names of projects using `fastws.build_backend`, including external checkouts. These builds use the shared environment's `fastws-cli` and `maturin`. Leave global build isolation enabled for other projects.
|
|
231
235
|
|
|
232
|
-
After `uv sync`, fastws runs `cargo develop` in each mixed Rust/Python project. Cargo skips unchanged compilation inputs.
|
|
236
|
+
After `uv sync`, fastws runs `cargo develop` in each mixed Rust/Python project. Cargo skips unchanged compilation inputs. Projects using `fastws.build_backend` should keep only packaging inputs in `tool.uv.cache-keys`; Rust source changes are handled by Cargo. Maturin packages with `bindings = "bin"` keep their existing uv installation path.
|
|
233
237
|
|
|
234
238
|
Fastws then runs `<tool> install` at the workspace root. It runs `<tool> run build` in each JavaScript package containing both `Cargo.toml` and a `build` script. Cargo handles incremental compilation. Other build steps still run.
|
|
235
239
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
r"Maturin build backend whose editable installs compile no Rust, and whose wheels can include Cargo binaries."
|
|
2
|
+
import argparse, base64, csv, hashlib, io
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from tempfile import TemporaryDirectory
|
|
5
|
+
from zipfile import ZipFile, ZIP_DEFLATED
|
|
6
|
+
import maturin
|
|
7
|
+
from .cargo import settings, stage_binaries
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _stage(config_settings):
|
|
11
|
+
root = Path.cwd()
|
|
12
|
+
tool = settings(root)
|
|
13
|
+
if not tool.get('fastws', {}).get('native-binaries'): return
|
|
14
|
+
parser = argparse.ArgumentParser(add_help=False)
|
|
15
|
+
parser.add_argument('--profile')
|
|
16
|
+
parser.add_argument('--release', action='store_true')
|
|
17
|
+
parser.add_argument('--target')
|
|
18
|
+
args, _ = parser.parse_known_args(maturin.get_maturin_pep517_args(config_settings))
|
|
19
|
+
profile = args.profile or ('release' if args.release else tool['maturin'].get('profile', 'release'))
|
|
20
|
+
stage_binaries(root, profile, args.target)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
|
|
24
|
+
_stage(config_settings)
|
|
25
|
+
return maturin.build_wheel(wheel_directory, config_settings, metadata_directory)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def build_editable(wheel_directory, config_settings=None, metadata_directory=None):
|
|
29
|
+
r"Build an editable wheel containing metadata and the Python source path, without compiling Rust."
|
|
30
|
+
with TemporaryDirectory() as tmp:
|
|
31
|
+
info = Path(metadata_directory) if metadata_directory else Path(tmp)/prepare_metadata_for_build_editable(tmp, config_settings)
|
|
32
|
+
name = info.name.removesuffix('.dist-info')
|
|
33
|
+
tag = next(line.removeprefix('Tag: ') for line in (info/'WHEEL').read_text().splitlines() if line.startswith('Tag: '))
|
|
34
|
+
files = {p.relative_to(info.parent).as_posix(): p.read_bytes() for p in info.rglob('*') if p.is_file() and p != info/'RECORD'}
|
|
35
|
+
root = Path.cwd()
|
|
36
|
+
source = (root/settings(root)['maturin']['python-source']).resolve()
|
|
37
|
+
files[f'{name}.pth'] = f'{source}\n'.encode()
|
|
38
|
+
record = f'{info.name}/RECORD'
|
|
39
|
+
rows = [(path, 'sha256=' + base64.urlsafe_b64encode(hashlib.sha256(data).digest()).rstrip(b'=').decode(), len(data))
|
|
40
|
+
for path, data in files.items()]
|
|
41
|
+
buffer = io.StringIO()
|
|
42
|
+
csv.writer(buffer).writerows([*rows, (record, '', '')])
|
|
43
|
+
files[record] = buffer.getvalue().encode()
|
|
44
|
+
filename = f'{name}-{tag}.whl'
|
|
45
|
+
with ZipFile(Path(wheel_directory)/filename, 'w', ZIP_DEFLATED) as wheel:
|
|
46
|
+
for path, data in files.items(): wheel.writestr(path, data)
|
|
47
|
+
return filename
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None):
|
|
51
|
+
if data := settings(Path.cwd())['maturin'].get('data'): (Path.cwd()/data).mkdir(parents=True, exist_ok=True)
|
|
52
|
+
return maturin.prepare_metadata_for_build_wheel(metadata_directory, config_settings)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
prepare_metadata_for_build_editable = prepare_metadata_for_build_wheel
|
|
56
|
+
build_sdist = maturin.build_sdist
|
|
57
|
+
get_requires_for_build_wheel = maturin.get_requires_for_build_wheel
|
|
58
|
+
get_requires_for_build_editable = maturin.get_requires_for_build_editable
|
|
59
|
+
get_requires_for_build_sdist = maturin.get_requires_for_build_sdist
|
|
@@ -49,7 +49,7 @@ def replace(source, destination):
|
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
def develop(root):
|
|
52
|
-
"Install a Python extension
|
|
52
|
+
"Install a Python extension, opted-in binaries and wheel data files from one Cargo build."
|
|
53
53
|
tool = settings(root)
|
|
54
54
|
cfg = tool['maturin']
|
|
55
55
|
if 'python-source' not in cfg: raise SystemExit(r'cargo develop requires tool.maturin.python-source')
|
|
@@ -60,11 +60,16 @@ def develop(root):
|
|
|
60
60
|
module = cfg.get('module-name', artifact['target']['name'])
|
|
61
61
|
dest = root/cfg['python-source']/Path(*module.split('.'))
|
|
62
62
|
replace(lib, dest.with_name(dest.name + sysconfig.get_config_var('EXT_SUFFIX')))
|
|
63
|
+
env = Path(os.environ.get('VIRTUAL_ENV', sys.prefix))
|
|
63
64
|
if binaries:
|
|
64
|
-
env = Path(os.environ.get('VIRTUAL_ENV', sys.prefix))
|
|
65
65
|
scripts = env/('Scripts' if os.name == 'nt' else 'bin')
|
|
66
66
|
for m in artifacts:
|
|
67
67
|
if m.get('executable'): replace(m['executable'], scripts/Path(m['executable']).name)
|
|
68
|
+
# Editable builds through `build_backend` don't install the wheel's data files, which a wheel install puts under the prefix.
|
|
69
|
+
if 'data' in cfg:
|
|
70
|
+
data = root/cfg['data']/'data'
|
|
71
|
+
for f in data.rglob('*'):
|
|
72
|
+
if f.is_file(): replace(f, env/f.relative_to(data))
|
|
68
73
|
|
|
69
74
|
|
|
70
75
|
def stage_binaries(root, profile=None, target=None):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastws-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.25
|
|
4
4
|
Summary: Fast workspace tools for multi-repo management
|
|
5
5
|
Author: Jeremy Howard
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -14,6 +14,7 @@ Requires-Dist: fastcore>=2.2.33
|
|
|
14
14
|
Requires-Dist: fastgit>=0.1.2
|
|
15
15
|
Requires-Dist: ghapi>=2.0.6
|
|
16
16
|
Requires-Dist: packaging
|
|
17
|
+
Requires-Dist: maturin<2.0,>=1.9.4
|
|
17
18
|
Requires-Dist: tomli; python_version < "3.11"
|
|
18
19
|
Provides-Extra: dev
|
|
19
20
|
Requires-Dist: fastship; extra == "dev"
|
|
@@ -214,7 +215,11 @@ For reusable Rust libraries, keep the core crate Python-free and put PyO3 in an
|
|
|
214
215
|
|
|
215
216
|
Set `native-binaries = true` under `[tool.fastws]` to build and install the binary targets of the workspace's default members into the active venv alongside the extension. A binary can live in its own member crate, such as a `cli/` crate beside `py/`, listed in `default-members`. maturin's sdist keeps only the members that the extension depends on, so a wheel built from the sdist lacks a binary from such a crate. Cargo reports the executable paths; there is no separate list of binary names.
|
|
216
217
|
|
|
217
|
-
|
|
218
|
+
`cargo develop` also copies the `data/` subdirectory of `[tool.maturin].data` into the active venv, as a wheel install does. For example, `data/share/jupyter/kernels/<name>/kernel.json` is installed as `share/jupyter/kernels/<name>/kernel.json`, where Jupyter finds the kernel. `cargo develop` installs the binaries it builds, not the staged copies in `scripts/`.
|
|
219
|
+
|
|
220
|
+
Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.25` alongside maturin in `[build-system].requires`. Its editable builds install only Python metadata and the source path, and compile no Rust. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
|
|
221
|
+
|
|
222
|
+
For distribution wheels containing the binaries, also set `[tool.maturin].data` to a generated wheel-data directory. With `native-binaries = true`, wheel builds through the backend replace its `scripts/` subdirectory with the current Python-free binaries, then delegate packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries. Without `native-binaries`, wheel builds go straight to maturin, and `[tool.maturin].data` is optional.
|
|
218
223
|
|
|
219
224
|
Direct maturin CLI builds bypass the Python build backend. Stage the binaries first with the shared command:
|
|
220
225
|
|
|
@@ -254,7 +259,7 @@ An optional tracked `package.json.shared` is merged into the root `package.json`
|
|
|
254
259
|
|
|
255
260
|
Before `uv sync`, fastws regenerates `tool.uv.no-build-isolation-package` with the sorted package names of projects using `fastws.build_backend`, including external checkouts. These builds use the shared environment's `fastws-cli` and `maturin`. Leave global build isolation enabled for other projects.
|
|
256
261
|
|
|
257
|
-
After `uv sync`, fastws runs `cargo develop` in each mixed Rust/Python project. Cargo skips unchanged compilation inputs.
|
|
262
|
+
After `uv sync`, fastws runs `cargo develop` in each mixed Rust/Python project. Cargo skips unchanged compilation inputs. Projects using `fastws.build_backend` should keep only packaging inputs in `tool.uv.cache-keys`; Rust source changes are handled by Cargo. Maturin packages with `bindings = "bin"` keep their existing uv installation path.
|
|
258
263
|
|
|
259
264
|
Fastws then runs `<tool> install` at the workspace root. It runs `<tool> run build` in each JavaScript package containing both `Cargo.toml` and a `build` script. Cargo handles incremental compilation. Other build steps still run.
|
|
260
265
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import base64, csv, hashlib, io
|
|
2
|
+
from zipfile import ZipFile
|
|
3
|
+
from fastws.build_backend import build_editable
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def test_editable_wheel(tmp_path, monkeypatch):
|
|
7
|
+
monkeypatch.chdir(tmp_path)
|
|
8
|
+
(tmp_path/'pyproject.toml').write_text(r'''[tool.maturin]
|
|
9
|
+
python-source = "python"
|
|
10
|
+
data = "wheel"
|
|
11
|
+
''')
|
|
12
|
+
info = tmp_path/'demo-1.0.dist-info'
|
|
13
|
+
info.mkdir()
|
|
14
|
+
(info/'WHEEL').write_text('Wheel-Version: 1.0\nRoot-Is-Purelib: false\nTag: py3-none-any\n')
|
|
15
|
+
(info/'METADATA').write_text('Metadata-Version: 2.1\nName: demo\nVersion: 1.0\n')
|
|
16
|
+
(info/'entry_points.txt').write_text('[console_scripts]\ndemo = demo:main\n')
|
|
17
|
+
with ZipFile(tmp_path/build_editable(tmp_path, metadata_directory=info)) as wheel:
|
|
18
|
+
assert wheel.read('demo-1.0.pth').decode() == str(tmp_path/'python') + '\n'
|
|
19
|
+
assert wheel.read('demo-1.0.dist-info/entry_points.txt') == (info/'entry_points.txt').read_bytes()
|
|
20
|
+
record = list(csv.reader(io.StringIO(wheel.read('demo-1.0.dist-info/RECORD').decode())))
|
|
21
|
+
assert {row[0] for row in record} == set(wheel.namelist())
|
|
22
|
+
for path, digest, size in record[:-1]:
|
|
23
|
+
data = wheel.read(path)
|
|
24
|
+
assert digest == 'sha256=' + base64.urlsafe_b64encode(hashlib.sha256(data).digest()).rstrip(b'=').decode()
|
|
25
|
+
assert int(size) == len(data)
|
|
26
|
+
assert record[-1] == ['demo-1.0.dist-info/RECORD', '', '']
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
r"Maturin build backend that includes Cargo binaries in Python wheels."
|
|
2
|
-
import argparse
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
import maturin
|
|
5
|
-
from .cargo import settings, stage_binaries
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def _stage(config_settings):
|
|
9
|
-
parser = argparse.ArgumentParser(add_help=False)
|
|
10
|
-
parser.add_argument('--profile')
|
|
11
|
-
parser.add_argument('--release', action='store_true')
|
|
12
|
-
parser.add_argument('--target')
|
|
13
|
-
args, _ = parser.parse_known_args(maturin.get_maturin_pep517_args(config_settings))
|
|
14
|
-
root = Path.cwd()
|
|
15
|
-
profile = args.profile or ('release' if args.release else settings(root)['maturin'].get('profile', 'release'))
|
|
16
|
-
stage_binaries(root, profile, args.target)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
|
|
20
|
-
_stage(config_settings)
|
|
21
|
-
return maturin.build_wheel(wheel_directory, config_settings, metadata_directory)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def build_editable(wheel_directory, config_settings=None, metadata_directory=None):
|
|
25
|
-
_stage(config_settings)
|
|
26
|
-
return maturin.build_editable(wheel_directory, config_settings, metadata_directory)
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None):
|
|
30
|
-
(Path.cwd()/settings(Path.cwd())['maturin']['data']).mkdir(parents=True, exist_ok=True)
|
|
31
|
-
return maturin.prepare_metadata_for_build_wheel(metadata_directory, config_settings)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
prepare_metadata_for_build_editable = prepare_metadata_for_build_wheel
|
|
35
|
-
build_sdist = maturin.build_sdist
|
|
36
|
-
get_requires_for_build_wheel = maturin.get_requires_for_build_wheel
|
|
37
|
-
get_requires_for_build_editable = maturin.get_requires_for_build_editable
|
|
38
|
-
get_requires_for_build_sdist = maturin.get_requires_for_build_sdist
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|