maturin 1.9.4__tar.gz → 1.9.5__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.
Potentially problematic release.
This version of maturin might be problematic. Click here for more details.
- {maturin-1.9.4 → maturin-1.9.5}/.pre-commit-config.yaml +2 -2
- {maturin-1.9.4 → maturin-1.9.5}/Cargo.lock +114 -44
- {maturin-1.9.4 → maturin-1.9.5}/Cargo.toml +3 -3
- {maturin-1.9.4 → maturin-1.9.5}/Changelog.md +8 -1
- {maturin-1.9.4 → maturin-1.9.5}/PKG-INFO +1 -1
- {maturin-1.9.4 → maturin-1.9.5}/src/cross_compile.rs +3 -1
- {maturin-1.9.4 → maturin-1.9.5}/src/python_interpreter/mod.rs +211 -65
- {maturin-1.9.4 → maturin-1.9.5}/.cirrus.yml +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/.codespellrc +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/.config/nextest.toml +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/.gitignore +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/MANIFEST.in +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/README.md +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/clippy.toml +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/license-apache +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/license-mit +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/maturin/__init__.py +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/maturin/__main__.py +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/maturin/bootstrap.py +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/maturin.schema.json +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/netlify.toml +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/pyproject.toml +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/setup.py +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/audit.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/manylinux-policy.json +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/mod.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/musllinux-policy.json +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/musllinux.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/patchelf.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/platform_tag.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/policy.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/auditwheel/repair.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/bridge.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/build_context.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/build_options.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/cargo_toml.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/ci.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/compile.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/compression.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/develop.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/generate_json_schema.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/lib.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/main.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/metadata.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/module_writer.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/new_project.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/project_layout.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/pyproject_toml.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/python_interpreter/config.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/python_interpreter/get_interpreter_metadata.py +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/source_distribution.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/target/legacy_py.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/target/mod.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/target/pypi_tags.rs +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/.gitignore.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/Cargo.toml.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/__init__.py.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/build.rs.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/example.udl.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/lib.rs.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/main.rs.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/pyproject.toml.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/templates/test_all.py.j2 +0 -0
- {maturin-1.9.4 → maturin-1.9.5}/src/upload.rs +0 -0
|
@@ -56,12 +56,12 @@ repos:
|
|
|
56
56
|
)
|
|
57
57
|
- id: mixed-line-ending
|
|
58
58
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
59
|
-
rev: v0.
|
|
59
|
+
rev: v0.13.0
|
|
60
60
|
hooks:
|
|
61
61
|
- id: ruff-format
|
|
62
62
|
- id: ruff
|
|
63
63
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
64
|
-
rev: v1.
|
|
64
|
+
rev: v1.18.1
|
|
65
65
|
hooks:
|
|
66
66
|
- id: mypy
|
|
67
67
|
entry: mypy maturin/
|
|
@@ -493,13 +493,26 @@ version = "0.15.8"
|
|
|
493
493
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
494
494
|
checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
|
|
495
495
|
dependencies = [
|
|
496
|
-
"encode_unicode",
|
|
496
|
+
"encode_unicode 0.3.6",
|
|
497
497
|
"lazy_static",
|
|
498
498
|
"libc",
|
|
499
499
|
"unicode-width 0.1.13",
|
|
500
500
|
"windows-sys 0.52.0",
|
|
501
501
|
]
|
|
502
502
|
|
|
503
|
+
[[package]]
|
|
504
|
+
name = "console"
|
|
505
|
+
version = "0.16.0"
|
|
506
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
507
|
+
checksum = "2e09ced7ebbccb63b4c65413d821f2e00ce54c5ca4514ddc6b3c892fdbcbc69d"
|
|
508
|
+
dependencies = [
|
|
509
|
+
"encode_unicode 1.0.0",
|
|
510
|
+
"libc",
|
|
511
|
+
"once_cell",
|
|
512
|
+
"unicode-width 0.2.0",
|
|
513
|
+
"windows-sys 0.60.2",
|
|
514
|
+
]
|
|
515
|
+
|
|
503
516
|
[[package]]
|
|
504
517
|
name = "content_inspector"
|
|
505
518
|
version = "0.2.4"
|
|
@@ -634,7 +647,7 @@ version = "0.11.0"
|
|
|
634
647
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
635
648
|
checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
|
|
636
649
|
dependencies = [
|
|
637
|
-
"console",
|
|
650
|
+
"console 0.15.8",
|
|
638
651
|
"shell-words",
|
|
639
652
|
"thiserror 1.0.69",
|
|
640
653
|
"zeroize",
|
|
@@ -718,6 +731,12 @@ version = "0.3.6"
|
|
|
718
731
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
719
732
|
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
|
|
720
733
|
|
|
734
|
+
[[package]]
|
|
735
|
+
name = "encode_unicode"
|
|
736
|
+
version = "1.0.0"
|
|
737
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
738
|
+
checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
|
|
739
|
+
|
|
721
740
|
[[package]]
|
|
722
741
|
name = "encoding_rs"
|
|
723
742
|
version = "0.8.34"
|
|
@@ -983,8 +1002,8 @@ dependencies = [
|
|
|
983
1002
|
"aho-corasick",
|
|
984
1003
|
"bstr",
|
|
985
1004
|
"log",
|
|
986
|
-
"regex-automata
|
|
987
|
-
"regex-syntax
|
|
1005
|
+
"regex-automata",
|
|
1006
|
+
"regex-syntax",
|
|
988
1007
|
]
|
|
989
1008
|
|
|
990
1009
|
[[package]]
|
|
@@ -1194,7 +1213,7 @@ dependencies = [
|
|
|
1194
1213
|
"globset",
|
|
1195
1214
|
"log",
|
|
1196
1215
|
"memchr",
|
|
1197
|
-
"regex-automata
|
|
1216
|
+
"regex-automata",
|
|
1198
1217
|
"same-file",
|
|
1199
1218
|
"walkdir",
|
|
1200
1219
|
"winapi-util",
|
|
@@ -1217,7 +1236,7 @@ version = "0.17.9"
|
|
|
1217
1236
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1218
1237
|
checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281"
|
|
1219
1238
|
dependencies = [
|
|
1220
|
-
"console",
|
|
1239
|
+
"console 0.15.8",
|
|
1221
1240
|
"number_prefix",
|
|
1222
1241
|
"portable-atomic",
|
|
1223
1242
|
"unicode-width 0.2.0",
|
|
@@ -1236,7 +1255,7 @@ version = "1.43.1"
|
|
|
1236
1255
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1237
1256
|
checksum = "154934ea70c58054b556dd430b99a98c2a7ff5309ac9891597e339b5c28f4371"
|
|
1238
1257
|
dependencies = [
|
|
1239
|
-
"console",
|
|
1258
|
+
"console 0.15.8",
|
|
1240
1259
|
"once_cell",
|
|
1241
1260
|
"similar",
|
|
1242
1261
|
]
|
|
@@ -1427,16 +1446,16 @@ dependencies = [
|
|
|
1427
1446
|
|
|
1428
1447
|
[[package]]
|
|
1429
1448
|
name = "matchers"
|
|
1430
|
-
version = "0.
|
|
1449
|
+
version = "0.2.0"
|
|
1431
1450
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1432
|
-
checksum = "
|
|
1451
|
+
checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9"
|
|
1433
1452
|
dependencies = [
|
|
1434
|
-
"regex-automata
|
|
1453
|
+
"regex-automata",
|
|
1435
1454
|
]
|
|
1436
1455
|
|
|
1437
1456
|
[[package]]
|
|
1438
1457
|
name = "maturin"
|
|
1439
|
-
version = "1.9.
|
|
1458
|
+
version = "1.9.5"
|
|
1440
1459
|
dependencies = [
|
|
1441
1460
|
"anyhow",
|
|
1442
1461
|
"base64 0.21.7",
|
|
@@ -1451,7 +1470,7 @@ dependencies = [
|
|
|
1451
1470
|
"clap",
|
|
1452
1471
|
"clap_complete_command",
|
|
1453
1472
|
"configparser",
|
|
1454
|
-
"console",
|
|
1473
|
+
"console 0.16.0",
|
|
1455
1474
|
"dialoguer",
|
|
1456
1475
|
"dirs",
|
|
1457
1476
|
"dunce",
|
|
@@ -1637,12 +1656,11 @@ dependencies = [
|
|
|
1637
1656
|
|
|
1638
1657
|
[[package]]
|
|
1639
1658
|
name = "nu-ansi-term"
|
|
1640
|
-
version = "0.
|
|
1659
|
+
version = "0.50.1"
|
|
1641
1660
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1642
|
-
checksum = "
|
|
1661
|
+
checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399"
|
|
1643
1662
|
dependencies = [
|
|
1644
|
-
"
|
|
1645
|
-
"winapi",
|
|
1663
|
+
"windows-sys 0.52.0",
|
|
1646
1664
|
]
|
|
1647
1665
|
|
|
1648
1666
|
[[package]]
|
|
@@ -1723,12 +1741,6 @@ dependencies = [
|
|
|
1723
1741
|
"windows-sys 0.52.0",
|
|
1724
1742
|
]
|
|
1725
1743
|
|
|
1726
|
-
[[package]]
|
|
1727
|
-
name = "overload"
|
|
1728
|
-
version = "0.1.1"
|
|
1729
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1730
|
-
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
|
|
1731
|
-
|
|
1732
1744
|
[[package]]
|
|
1733
1745
|
name = "parking_lot"
|
|
1734
1746
|
version = "0.12.3"
|
|
@@ -2034,17 +2046,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
|
|
|
2034
2046
|
dependencies = [
|
|
2035
2047
|
"aho-corasick",
|
|
2036
2048
|
"memchr",
|
|
2037
|
-
"regex-automata
|
|
2038
|
-
"regex-syntax
|
|
2039
|
-
]
|
|
2040
|
-
|
|
2041
|
-
[[package]]
|
|
2042
|
-
name = "regex-automata"
|
|
2043
|
-
version = "0.1.10"
|
|
2044
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2045
|
-
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
|
|
2046
|
-
dependencies = [
|
|
2047
|
-
"regex-syntax 0.6.29",
|
|
2049
|
+
"regex-automata",
|
|
2050
|
+
"regex-syntax",
|
|
2048
2051
|
]
|
|
2049
2052
|
|
|
2050
2053
|
[[package]]
|
|
@@ -2055,15 +2058,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
|
|
|
2055
2058
|
dependencies = [
|
|
2056
2059
|
"aho-corasick",
|
|
2057
2060
|
"memchr",
|
|
2058
|
-
"regex-syntax
|
|
2061
|
+
"regex-syntax",
|
|
2059
2062
|
]
|
|
2060
2063
|
|
|
2061
|
-
[[package]]
|
|
2062
|
-
name = "regex-syntax"
|
|
2063
|
-
version = "0.6.29"
|
|
2064
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2065
|
-
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
|
|
2066
|
-
|
|
2067
2064
|
[[package]]
|
|
2068
2065
|
name = "regex-syntax"
|
|
2069
2066
|
version = "0.8.5"
|
|
@@ -2790,14 +2787,14 @@ dependencies = [
|
|
|
2790
2787
|
|
|
2791
2788
|
[[package]]
|
|
2792
2789
|
name = "tracing-subscriber"
|
|
2793
|
-
version = "0.3.
|
|
2790
|
+
version = "0.3.20"
|
|
2794
2791
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2795
|
-
checksum = "
|
|
2792
|
+
checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
|
|
2796
2793
|
dependencies = [
|
|
2797
2794
|
"matchers",
|
|
2798
2795
|
"nu-ansi-term",
|
|
2799
2796
|
"once_cell",
|
|
2800
|
-
"regex",
|
|
2797
|
+
"regex-automata",
|
|
2801
2798
|
"serde",
|
|
2802
2799
|
"serde_json",
|
|
2803
2800
|
"sharded-slab",
|
|
@@ -3174,6 +3171,15 @@ dependencies = [
|
|
|
3174
3171
|
"windows-targets 0.52.5",
|
|
3175
3172
|
]
|
|
3176
3173
|
|
|
3174
|
+
[[package]]
|
|
3175
|
+
name = "windows-sys"
|
|
3176
|
+
version = "0.60.2"
|
|
3177
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3178
|
+
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
|
|
3179
|
+
dependencies = [
|
|
3180
|
+
"windows-targets 0.53.2",
|
|
3181
|
+
]
|
|
3182
|
+
|
|
3177
3183
|
[[package]]
|
|
3178
3184
|
name = "windows-targets"
|
|
3179
3185
|
version = "0.48.5"
|
|
@@ -3198,13 +3204,29 @@ dependencies = [
|
|
|
3198
3204
|
"windows_aarch64_gnullvm 0.52.5",
|
|
3199
3205
|
"windows_aarch64_msvc 0.52.5",
|
|
3200
3206
|
"windows_i686_gnu 0.52.5",
|
|
3201
|
-
"windows_i686_gnullvm",
|
|
3207
|
+
"windows_i686_gnullvm 0.52.5",
|
|
3202
3208
|
"windows_i686_msvc 0.52.5",
|
|
3203
3209
|
"windows_x86_64_gnu 0.52.5",
|
|
3204
3210
|
"windows_x86_64_gnullvm 0.52.5",
|
|
3205
3211
|
"windows_x86_64_msvc 0.52.5",
|
|
3206
3212
|
]
|
|
3207
3213
|
|
|
3214
|
+
[[package]]
|
|
3215
|
+
name = "windows-targets"
|
|
3216
|
+
version = "0.53.2"
|
|
3217
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3218
|
+
checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef"
|
|
3219
|
+
dependencies = [
|
|
3220
|
+
"windows_aarch64_gnullvm 0.53.0",
|
|
3221
|
+
"windows_aarch64_msvc 0.53.0",
|
|
3222
|
+
"windows_i686_gnu 0.53.0",
|
|
3223
|
+
"windows_i686_gnullvm 0.53.0",
|
|
3224
|
+
"windows_i686_msvc 0.53.0",
|
|
3225
|
+
"windows_x86_64_gnu 0.53.0",
|
|
3226
|
+
"windows_x86_64_gnullvm 0.53.0",
|
|
3227
|
+
"windows_x86_64_msvc 0.53.0",
|
|
3228
|
+
]
|
|
3229
|
+
|
|
3208
3230
|
[[package]]
|
|
3209
3231
|
name = "windows_aarch64_gnullvm"
|
|
3210
3232
|
version = "0.48.5"
|
|
@@ -3217,6 +3239,12 @@ version = "0.52.5"
|
|
|
3217
3239
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3218
3240
|
checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
|
|
3219
3241
|
|
|
3242
|
+
[[package]]
|
|
3243
|
+
name = "windows_aarch64_gnullvm"
|
|
3244
|
+
version = "0.53.0"
|
|
3245
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3246
|
+
checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764"
|
|
3247
|
+
|
|
3220
3248
|
[[package]]
|
|
3221
3249
|
name = "windows_aarch64_msvc"
|
|
3222
3250
|
version = "0.48.5"
|
|
@@ -3229,6 +3257,12 @@ version = "0.52.5"
|
|
|
3229
3257
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3230
3258
|
checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
|
|
3231
3259
|
|
|
3260
|
+
[[package]]
|
|
3261
|
+
name = "windows_aarch64_msvc"
|
|
3262
|
+
version = "0.53.0"
|
|
3263
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3264
|
+
checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c"
|
|
3265
|
+
|
|
3232
3266
|
[[package]]
|
|
3233
3267
|
name = "windows_i686_gnu"
|
|
3234
3268
|
version = "0.48.5"
|
|
@@ -3241,12 +3275,24 @@ version = "0.52.5"
|
|
|
3241
3275
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3242
3276
|
checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
|
|
3243
3277
|
|
|
3278
|
+
[[package]]
|
|
3279
|
+
name = "windows_i686_gnu"
|
|
3280
|
+
version = "0.53.0"
|
|
3281
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3282
|
+
checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3"
|
|
3283
|
+
|
|
3244
3284
|
[[package]]
|
|
3245
3285
|
name = "windows_i686_gnullvm"
|
|
3246
3286
|
version = "0.52.5"
|
|
3247
3287
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3248
3288
|
checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
|
|
3249
3289
|
|
|
3290
|
+
[[package]]
|
|
3291
|
+
name = "windows_i686_gnullvm"
|
|
3292
|
+
version = "0.53.0"
|
|
3293
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3294
|
+
checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11"
|
|
3295
|
+
|
|
3250
3296
|
[[package]]
|
|
3251
3297
|
name = "windows_i686_msvc"
|
|
3252
3298
|
version = "0.48.5"
|
|
@@ -3259,6 +3305,12 @@ version = "0.52.5"
|
|
|
3259
3305
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3260
3306
|
checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
|
|
3261
3307
|
|
|
3308
|
+
[[package]]
|
|
3309
|
+
name = "windows_i686_msvc"
|
|
3310
|
+
version = "0.53.0"
|
|
3311
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3312
|
+
checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d"
|
|
3313
|
+
|
|
3262
3314
|
[[package]]
|
|
3263
3315
|
name = "windows_x86_64_gnu"
|
|
3264
3316
|
version = "0.48.5"
|
|
@@ -3271,6 +3323,12 @@ version = "0.52.5"
|
|
|
3271
3323
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3272
3324
|
checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
|
|
3273
3325
|
|
|
3326
|
+
[[package]]
|
|
3327
|
+
name = "windows_x86_64_gnu"
|
|
3328
|
+
version = "0.53.0"
|
|
3329
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3330
|
+
checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba"
|
|
3331
|
+
|
|
3274
3332
|
[[package]]
|
|
3275
3333
|
name = "windows_x86_64_gnullvm"
|
|
3276
3334
|
version = "0.48.5"
|
|
@@ -3283,6 +3341,12 @@ version = "0.52.5"
|
|
|
3283
3341
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3284
3342
|
checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
|
|
3285
3343
|
|
|
3344
|
+
[[package]]
|
|
3345
|
+
name = "windows_x86_64_gnullvm"
|
|
3346
|
+
version = "0.53.0"
|
|
3347
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3348
|
+
checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57"
|
|
3349
|
+
|
|
3286
3350
|
[[package]]
|
|
3287
3351
|
name = "windows_x86_64_msvc"
|
|
3288
3352
|
version = "0.48.5"
|
|
@@ -3295,6 +3359,12 @@ version = "0.52.5"
|
|
|
3295
3359
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3296
3360
|
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
|
|
3297
3361
|
|
|
3362
|
+
[[package]]
|
|
3363
|
+
name = "windows_x86_64_msvc"
|
|
3364
|
+
version = "0.53.0"
|
|
3365
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3366
|
+
checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
|
|
3367
|
+
|
|
3298
3368
|
[[package]]
|
|
3299
3369
|
name = "winnow"
|
|
3300
3370
|
version = "0.5.40"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
authors = ["konstin <konstin@mailbox.org>", "messense <messense@icloud.com>"]
|
|
3
3
|
name = "maturin"
|
|
4
|
-
version = "1.9.
|
|
4
|
+
version = "1.9.5"
|
|
5
5
|
description = "Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages"
|
|
6
6
|
exclude = [
|
|
7
7
|
"test-crates/**/*",
|
|
@@ -105,11 +105,11 @@ cargo-xwin = { version = "0.18.6", default-features = false, optional = true }
|
|
|
105
105
|
|
|
106
106
|
# log
|
|
107
107
|
tracing = "0.1.36"
|
|
108
|
-
tracing-subscriber = { version = "0.3.
|
|
108
|
+
tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }
|
|
109
109
|
|
|
110
110
|
# project scaffolding, maturin new/init/generate-ci
|
|
111
111
|
dialoguer = { version = "0.11.0", default-features = false, optional = true }
|
|
112
|
-
console = { version = "0.
|
|
112
|
+
console = { version = "0.16.0", optional = true }
|
|
113
113
|
minijinja = { version = "2.5.0", optional = true }
|
|
114
114
|
|
|
115
115
|
# upload
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.9.5]
|
|
4
|
+
|
|
5
|
+
* Add builtin sysconfig for FreeBSD 14.2 amd64
|
|
6
|
+
* Fix issue searching lib dir containing Python 3.14 `build-details.json`
|
|
7
|
+
* Fix detection of compatible interpreters on Windows ARM64
|
|
8
|
+
|
|
3
9
|
## [1.9.4]
|
|
4
10
|
|
|
5
11
|
* Add a `use-base-python` option to `pyproject.toml` with the same behaviour as `MATURIN_PEP517_USE_BASE_PYTHON`.
|
|
@@ -1098,7 +1104,8 @@ points-0.1.0-py2.py3-none-manylinux1_x86_64.whl | 2,8M | 752K | 85K
|
|
|
1098
1104
|
|
|
1099
1105
|
* Initial Release
|
|
1100
1106
|
|
|
1101
|
-
[Unreleased]: https://github.com/pyo3/maturin/compare/v1.9.
|
|
1107
|
+
[Unreleased]: https://github.com/pyo3/maturin/compare/v1.9.5...HEAD
|
|
1108
|
+
[1.9.5]: https://github.com/pyo3/maturin/compare/v1.9.4...v1.9.5
|
|
1102
1109
|
[1.9.4]: https://github.com/pyo3/maturin/compare/v1.9.3...v1.9.4
|
|
1103
1110
|
[1.9.3]: https://github.com/pyo3/maturin/compare/v1.9.2...v1.9.3
|
|
1104
1111
|
[1.9.2]: https://github.com/pyo3/maturin/compare/v1.9.1...v1.9.2
|
|
@@ -153,7 +153,9 @@ fn search_lib_dir(path: impl AsRef<Path>, target: &Target) -> Result<Vec<PathBuf
|
|
|
153
153
|
for f in fs::read_dir(path.as_ref())? {
|
|
154
154
|
let sysc = match &f {
|
|
155
155
|
Ok(f) if starts_with(f, "_sysconfigdata") && ends_with(f, "py") => vec![f.path()],
|
|
156
|
-
Ok(f) if starts_with(f, "build")
|
|
156
|
+
Ok(f) if starts_with(f, "build") && f.path().is_dir() => {
|
|
157
|
+
search_lib_dir(f.path(), target)?
|
|
158
|
+
}
|
|
157
159
|
Ok(f) if starts_with(f, "lib.") => {
|
|
158
160
|
let name = f.file_name();
|
|
159
161
|
// check if right target os
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
pub use self::config::InterpreterConfig;
|
|
2
2
|
use crate::auditwheel::PlatformTag;
|
|
3
|
+
use crate::target::Arch;
|
|
3
4
|
use crate::{BridgeModel, BuildContext, Target};
|
|
4
5
|
use anyhow::{bail, ensure, format_err, Context, Result};
|
|
5
6
|
use pep440_rs::{Version, VersionSpecifiers};
|
|
@@ -29,8 +30,8 @@ pub const MAXIMUM_PYPY_MINOR: usize = 11;
|
|
|
29
30
|
fn windows_interpreter_no_build(
|
|
30
31
|
major: usize,
|
|
31
32
|
minor: usize,
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
target: &Target,
|
|
34
|
+
platform: String,
|
|
34
35
|
min_python_minor: usize,
|
|
35
36
|
requires_python: Option<&VersionSpecifiers>,
|
|
36
37
|
) -> bool {
|
|
@@ -46,17 +47,34 @@ fn windows_interpreter_no_build(
|
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
let python_arch = match platform.as_str() {
|
|
51
|
+
"win32" => Arch::X86,
|
|
52
|
+
"win-amd64" => Arch::X86_64,
|
|
53
|
+
"win-arm64" => Arch::Aarch64,
|
|
54
|
+
_ => {
|
|
55
|
+
eprintln!("⚠️ Warning: {major}.{minor} reports unknown platform '{platform}'. This may fail to build.");
|
|
56
|
+
// false => build it anyway
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
let target_arch = target.target_arch();
|
|
62
|
+
|
|
63
|
+
if python_arch != target.target_arch() {
|
|
52
64
|
eprintln!(
|
|
53
|
-
"👽 {major}.{minor}
|
|
65
|
+
"👽 {major}.{minor} reports a platform '{platform}' (architecture '{python_arch}'), while the Rust target is '{target_arch}'. Skipping."
|
|
54
66
|
);
|
|
55
67
|
return true;
|
|
56
68
|
}
|
|
57
69
|
false
|
|
58
70
|
}
|
|
59
71
|
|
|
72
|
+
struct WindowsPythonInfo {
|
|
73
|
+
major: usize,
|
|
74
|
+
minor: usize,
|
|
75
|
+
platform: String, // e.g. win32, win-amd64, win-arm64
|
|
76
|
+
}
|
|
77
|
+
|
|
60
78
|
/// On windows regular Python installs are supported along with environments
|
|
61
79
|
/// being managed by `conda`.
|
|
62
80
|
///
|
|
@@ -132,45 +150,44 @@ fn find_all_windows(
|
|
|
132
150
|
.parse::<usize>()
|
|
133
151
|
.context("Expected a digit for minor version")?;
|
|
134
152
|
if !versions_found.contains(&(major, minor)) {
|
|
135
|
-
let
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
.unwrap_or("64")
|
|
140
|
-
.parse::<usize>()
|
|
141
|
-
.context("Expected a digit for pointer width")?;
|
|
142
|
-
|
|
143
|
-
if windows_interpreter_no_build(
|
|
144
|
-
major,
|
|
145
|
-
minor,
|
|
146
|
-
target.pointer_width(),
|
|
147
|
-
pointer_width,
|
|
148
|
-
min_python_minor,
|
|
149
|
-
requires_python,
|
|
150
|
-
) {
|
|
153
|
+
let executable = capture.get(6).unwrap().as_str();
|
|
154
|
+
let executable_path = Path::new(&executable);
|
|
155
|
+
// Skip non-existing paths
|
|
156
|
+
if !executable_path.exists() {
|
|
151
157
|
continue;
|
|
152
158
|
}
|
|
159
|
+
if let Some(python_info) = windows_python_info(executable_path)? {
|
|
160
|
+
if windows_interpreter_no_build(
|
|
161
|
+
major,
|
|
162
|
+
minor,
|
|
163
|
+
target,
|
|
164
|
+
python_info.platform,
|
|
165
|
+
min_python_minor,
|
|
166
|
+
requires_python,
|
|
167
|
+
) {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
153
170
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
171
|
+
let output = Command::new(executable).args(["-c", code]).output();
|
|
172
|
+
let output = match output {
|
|
173
|
+
Ok(output) => output,
|
|
174
|
+
Err(err) => {
|
|
175
|
+
eprintln!(
|
|
176
|
+
"⚠️ Warning: failed to determine the path to python for `{executable}`: {err}"
|
|
177
|
+
);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
let path = str::from_utf8(&output.stdout).unwrap().trim();
|
|
182
|
+
if !output.status.success() || path.trim().is_empty() {
|
|
159
183
|
eprintln!(
|
|
160
|
-
"⚠️ Warning:
|
|
184
|
+
"⚠️ Warning: couldn't determine the path to python for `{executable}`"
|
|
161
185
|
);
|
|
162
186
|
continue;
|
|
163
187
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if !output.status.success() || path.trim().is_empty() {
|
|
167
|
-
eprintln!(
|
|
168
|
-
"⚠️ Warning: couldn't determine the path to python for `{executable}`"
|
|
169
|
-
);
|
|
170
|
-
continue;
|
|
188
|
+
interpreter.push(path.to_string());
|
|
189
|
+
versions_found.insert((major, minor));
|
|
171
190
|
}
|
|
172
|
-
interpreter.push(path.to_string());
|
|
173
|
-
versions_found.insert((major, minor));
|
|
174
191
|
}
|
|
175
192
|
}
|
|
176
193
|
}
|
|
@@ -205,8 +222,8 @@ fn find_all_windows(
|
|
|
205
222
|
if windows_interpreter_no_build(
|
|
206
223
|
python_info.major,
|
|
207
224
|
python_info.minor,
|
|
208
|
-
target
|
|
209
|
-
python_info.
|
|
225
|
+
target,
|
|
226
|
+
python_info.platform,
|
|
210
227
|
min_python_minor,
|
|
211
228
|
requires_python,
|
|
212
229
|
) {
|
|
@@ -226,8 +243,8 @@ fn find_all_windows(
|
|
|
226
243
|
if windows_interpreter_no_build(
|
|
227
244
|
python_info.major,
|
|
228
245
|
python_info.minor,
|
|
229
|
-
target
|
|
230
|
-
python_info.
|
|
246
|
+
target,
|
|
247
|
+
python_info.platform,
|
|
231
248
|
min_python_minor,
|
|
232
249
|
requires_python,
|
|
233
250
|
) {
|
|
@@ -247,16 +264,10 @@ fn find_all_windows(
|
|
|
247
264
|
Ok(interpreter)
|
|
248
265
|
}
|
|
249
266
|
|
|
250
|
-
struct WindowsPythonInfo {
|
|
251
|
-
major: usize,
|
|
252
|
-
minor: usize,
|
|
253
|
-
pointer_width: Option<usize>,
|
|
254
|
-
}
|
|
255
|
-
|
|
256
267
|
fn windows_python_info(executable: &Path) -> Result<Option<WindowsPythonInfo>> {
|
|
257
268
|
let python_info = Command::new(executable)
|
|
258
269
|
.arg("-c")
|
|
259
|
-
.arg("import sys; print(sys.
|
|
270
|
+
.arg("import sys, sysconfig; print(sys.version_info.major, sys.version_info.minor, sysconfig.get_platform())")
|
|
260
271
|
.output();
|
|
261
272
|
|
|
262
273
|
let python_info = match python_info {
|
|
@@ -275,23 +286,25 @@ fn windows_python_info(executable: &Path) -> Result<Option<WindowsPythonInfo>> {
|
|
|
275
286
|
};
|
|
276
287
|
|
|
277
288
|
let version_info = str::from_utf8(&python_info.stdout).unwrap();
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
289
|
+
|
|
290
|
+
// Split into 3 segments: major, minor, platform by spaces
|
|
291
|
+
let segments: Vec<&str> = version_info.splitn(3, ' ').collect();
|
|
292
|
+
let [major, minor, platform] = segments.as_slice() else {
|
|
293
|
+
bail!(
|
|
294
|
+
"Unexpected output for Python version info from {}: '{}'",
|
|
295
|
+
executable.display(),
|
|
296
|
+
version_info
|
|
297
|
+
);
|
|
298
|
+
};
|
|
299
|
+
// can then parse each substring
|
|
300
|
+
let major = major.parse::<usize>().ok().unwrap_or(0);
|
|
301
|
+
let minor = minor.parse::<usize>().ok().unwrap_or(0);
|
|
302
|
+
|
|
303
|
+
Ok(Some(WindowsPythonInfo {
|
|
304
|
+
major,
|
|
305
|
+
minor,
|
|
306
|
+
platform: platform.to_string(),
|
|
307
|
+
}))
|
|
295
308
|
}
|
|
296
309
|
|
|
297
310
|
#[derive(Debug, Clone, Copy, Eq, PartialEq, Deserialize, clap::ValueEnum)]
|
|
@@ -1180,4 +1193,137 @@ mod tests {
|
|
|
1180
1193
|
assert_eq!(calculate_abi_tag(ext_suffix).as_deref(), expected);
|
|
1181
1194
|
}
|
|
1182
1195
|
}
|
|
1196
|
+
|
|
1197
|
+
#[test]
|
|
1198
|
+
fn test_windows_interpreter_no_build() {
|
|
1199
|
+
use pep440_rs::VersionSpecifiers;
|
|
1200
|
+
use std::str::FromStr;
|
|
1201
|
+
|
|
1202
|
+
// Test cases for different scenarios
|
|
1203
|
+
let target_x64 = Target::from_resolved_target_triple("x86_64-pc-windows-msvc").unwrap();
|
|
1204
|
+
let target_x86 = Target::from_resolved_target_triple("i686-pc-windows-msvc").unwrap();
|
|
1205
|
+
let target_arm64 = Target::from_resolved_target_triple("aarch64-pc-windows-msvc").unwrap();
|
|
1206
|
+
|
|
1207
|
+
// Test Python 2.x should be rejected
|
|
1208
|
+
assert!(windows_interpreter_no_build(
|
|
1209
|
+
2,
|
|
1210
|
+
7,
|
|
1211
|
+
&target_x64,
|
|
1212
|
+
"win-amd64".to_string(),
|
|
1213
|
+
7,
|
|
1214
|
+
None
|
|
1215
|
+
));
|
|
1216
|
+
|
|
1217
|
+
// Test Python 3.x but below minimum version
|
|
1218
|
+
assert!(windows_interpreter_no_build(
|
|
1219
|
+
3,
|
|
1220
|
+
6,
|
|
1221
|
+
&target_x64,
|
|
1222
|
+
"win-amd64".to_string(),
|
|
1223
|
+
7,
|
|
1224
|
+
None
|
|
1225
|
+
));
|
|
1226
|
+
|
|
1227
|
+
// Test valid Python version with matching platform and architecture
|
|
1228
|
+
assert!(!windows_interpreter_no_build(
|
|
1229
|
+
3,
|
|
1230
|
+
10,
|
|
1231
|
+
&target_x64,
|
|
1232
|
+
"win-amd64".to_string(),
|
|
1233
|
+
7,
|
|
1234
|
+
None
|
|
1235
|
+
));
|
|
1236
|
+
|
|
1237
|
+
// Test 32-bit Python on 64-bit target (should be rejected)
|
|
1238
|
+
assert!(windows_interpreter_no_build(
|
|
1239
|
+
3,
|
|
1240
|
+
10,
|
|
1241
|
+
&target_x64,
|
|
1242
|
+
"win32".to_string(),
|
|
1243
|
+
7,
|
|
1244
|
+
None
|
|
1245
|
+
));
|
|
1246
|
+
|
|
1247
|
+
// Test 32-bit Python on 32-bit target (should be accepted)
|
|
1248
|
+
assert!(!windows_interpreter_no_build(
|
|
1249
|
+
3,
|
|
1250
|
+
10,
|
|
1251
|
+
&target_x86,
|
|
1252
|
+
"win32".to_string(),
|
|
1253
|
+
7,
|
|
1254
|
+
None
|
|
1255
|
+
));
|
|
1256
|
+
|
|
1257
|
+
// Test mismatched architectures
|
|
1258
|
+
assert!(windows_interpreter_no_build(
|
|
1259
|
+
3,
|
|
1260
|
+
10,
|
|
1261
|
+
&target_x64,
|
|
1262
|
+
"win-arm64".to_string(),
|
|
1263
|
+
7,
|
|
1264
|
+
None
|
|
1265
|
+
));
|
|
1266
|
+
|
|
1267
|
+
assert!(windows_interpreter_no_build(
|
|
1268
|
+
3,
|
|
1269
|
+
10,
|
|
1270
|
+
&target_arm64,
|
|
1271
|
+
"win-amd64".to_string(),
|
|
1272
|
+
7,
|
|
1273
|
+
None
|
|
1274
|
+
));
|
|
1275
|
+
|
|
1276
|
+
// Test correct architecture matches
|
|
1277
|
+
assert!(!windows_interpreter_no_build(
|
|
1278
|
+
3,
|
|
1279
|
+
10,
|
|
1280
|
+
&target_arm64,
|
|
1281
|
+
"win-arm64".to_string(),
|
|
1282
|
+
7,
|
|
1283
|
+
None
|
|
1284
|
+
));
|
|
1285
|
+
|
|
1286
|
+
// Test requires-python constraints
|
|
1287
|
+
let requires_python = VersionSpecifiers::from_str(">=3.8,<3.12").unwrap();
|
|
1288
|
+
|
|
1289
|
+
// Should reject Python 3.7 due to requires-python
|
|
1290
|
+
assert!(windows_interpreter_no_build(
|
|
1291
|
+
3,
|
|
1292
|
+
7,
|
|
1293
|
+
&target_x64,
|
|
1294
|
+
"win-amd64".to_string(),
|
|
1295
|
+
7,
|
|
1296
|
+
Some(&requires_python)
|
|
1297
|
+
));
|
|
1298
|
+
|
|
1299
|
+
// Should accept Python 3.10 within requires-python range
|
|
1300
|
+
assert!(!windows_interpreter_no_build(
|
|
1301
|
+
3,
|
|
1302
|
+
10,
|
|
1303
|
+
&target_x64,
|
|
1304
|
+
"win-amd64".to_string(),
|
|
1305
|
+
7,
|
|
1306
|
+
Some(&requires_python)
|
|
1307
|
+
));
|
|
1308
|
+
|
|
1309
|
+
// Should reject Python 3.12 due to requires-python upper bound
|
|
1310
|
+
assert!(windows_interpreter_no_build(
|
|
1311
|
+
3,
|
|
1312
|
+
12,
|
|
1313
|
+
&target_x64,
|
|
1314
|
+
"win-amd64".to_string(),
|
|
1315
|
+
7,
|
|
1316
|
+
Some(&requires_python)
|
|
1317
|
+
));
|
|
1318
|
+
|
|
1319
|
+
// Test edge case with unknown platform (should not match any specific architecture)
|
|
1320
|
+
assert!(!windows_interpreter_no_build(
|
|
1321
|
+
3,
|
|
1322
|
+
10,
|
|
1323
|
+
&target_x64,
|
|
1324
|
+
"unknown-platform".to_string(),
|
|
1325
|
+
7,
|
|
1326
|
+
None
|
|
1327
|
+
));
|
|
1328
|
+
}
|
|
1183
1329
|
}
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|