Skip to content

Commit 9885cf9

Browse files
committed
Merge branch 'master' of github.com:pantsbuild/pants into stuhood/normalize-file-addresses
[ci skip-rust] [ci skip-build-wheels]
2 parents 0323853 + 52c7c26 commit 9885cf9

32 files changed

Lines changed: 582 additions & 853 deletions

src/python/pants/backend/codegen/protobuf/python/rules.py

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pants.backend.python.target_types import PythonSources
77
from pants.core.util_rules.determine_source_files import AllSourceFilesRequest, SourceFiles
88
from pants.core.util_rules.external_tool import DownloadedExternalTool, ExternalToolRequest
9-
from pants.core.util_rules.strip_source_roots import representative_path_from_address
9+
from pants.core.util_rules.strip_source_roots import StrippedSourceFiles
1010
from pants.engine.addresses import Addresses
1111
from pants.engine.fs import AddPrefix, Digest, MergeDigests, RemovePrefix, Snapshot
1212
from pants.engine.platform import Platform
@@ -52,33 +52,36 @@ async def generate_python_from_protobuf(
5252
AllSourceFilesRequest(
5353
(tgt.get(Sources) for tgt in transitive_targets.closure),
5454
for_sources_types=(ProtobufSources,),
55-
# NB: By stripping the source roots, we avoid having to set the value `--proto_path`
56-
# for Protobuf imports to be discoverable.
57-
strip_source_roots=True,
5855
),
5956
)
60-
stripped_target_sources_request = Get(
61-
SourceFiles,
62-
AllSourceFilesRequest([request.protocol_target[ProtobufSources]], strip_source_roots=True),
57+
unstripped_target_sources_request = Get(
58+
SourceFiles, AllSourceFilesRequest([request.protocol_target[ProtobufSources]]),
6359
)
6460

6561
(
6662
downloaded_protoc_binary,
6763
create_output_dir_result,
68-
all_sources,
69-
stripped_target_sources,
64+
all_sources_unstripped,
65+
target_sources_unstripped,
7066
) = await MultiGet(
7167
download_protoc_request,
7268
create_output_dir_request,
7369
all_sources_request,
74-
stripped_target_sources_request,
70+
unstripped_target_sources_request,
71+
)
72+
73+
# NB: By stripping the source roots, we avoid having to set the value `--proto_path`
74+
# for Protobuf imports to be discoverable.
75+
all_sources_stripped, target_sources_stripped = await MultiGet(
76+
Get(StrippedSourceFiles, SourceFiles, all_sources_unstripped),
77+
Get(StrippedSourceFiles, SourceFiles, target_sources_unstripped),
7578
)
7679

7780
input_digest = await Get(
7881
Digest,
7982
MergeDigests(
8083
(
81-
all_sources.snapshot.digest,
84+
all_sources_stripped.snapshot.digest,
8285
downloaded_protoc_binary.digest,
8386
create_output_dir_result.output_digest,
8487
)
@@ -92,7 +95,7 @@ async def generate_python_from_protobuf(
9295
downloaded_protoc_binary.exe,
9396
"--python_out",
9497
output_dir,
95-
*stripped_target_sources.snapshot.files,
98+
*target_sources_stripped.snapshot.files,
9699
),
97100
input_digest=input_digest,
98101
description=f"Generating Python sources from {request.protocol_target.address}.",
@@ -105,13 +108,7 @@ async def generate_python_from_protobuf(
105108
# including adding back the original source root.
106109
normalized_digest, source_root = await MultiGet(
107110
Get(Digest, RemovePrefix(result.output_digest, output_dir)),
108-
Get(
109-
SourceRoot,
110-
SourceRootRequest,
111-
SourceRootRequest.for_file(
112-
representative_path_from_address(request.protocol_target.address)
113-
),
114-
),
111+
Get(SourceRoot, SourceRootRequest, SourceRootRequest.for_target(request.protocol_target)),
115112
)
116113
source_root_restored = (
117114
await Get(Snapshot, AddPrefix(normalized_digest, source_root.path))

src/python/pants/backend/codegen/protobuf/python/rules_integration_test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from pants.backend.codegen.protobuf.python.rules import GeneratePythonFromProtobufRequest
88
from pants.backend.codegen.protobuf.python.rules import rules as protobuf_rules
99
from pants.backend.codegen.protobuf.target_types import ProtobufLibrary, ProtobufSources
10-
from pants.core.util_rules import determine_source_files
10+
from pants.core.util_rules import determine_source_files, strip_source_roots
1111
from pants.engine.addresses import Address
1212
from pants.engine.rules import RootRule
1313
from pants.engine.target import (
@@ -32,6 +32,7 @@ def rules(cls):
3232
*super().rules(),
3333
*protobuf_rules(),
3434
*determine_source_files.rules(),
35+
*strip_source_roots.rules(),
3536
RootRule(GeneratePythonFromProtobufRequest),
3637
)
3738

src/python/pants/backend/python/dependency_inference/module_mapper.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77

88
from pants.backend.python.target_types import PythonRequirementsField, PythonSources
99
from pants.base.specs import AddressSpecs, DescendantAddresses
10-
from pants.core.util_rules.strip_source_roots import (
11-
SourceRootStrippedSources,
12-
StripSourcesFieldRequest,
13-
)
10+
from pants.core.util_rules.determine_source_files import AllSourceFilesRequest
11+
from pants.core.util_rules.strip_source_roots import StrippedSourceFiles
1412
from pants.engine.addresses import Address
1513
from pants.engine.rules import Get, MultiGet, collect_rules, rule
1614
from pants.engine.target import (
@@ -75,9 +73,10 @@ async def map_first_party_modules_to_addresses() -> FirstPartyModuleToAddressMap
7573
for tgt in candidate_explicit_targets
7674
)
7775
stripped_sources_per_explicit_target = await MultiGet(
78-
Get(SourceRootStrippedSources, StripSourcesFieldRequest(tgt[PythonSources]))
76+
Get(StrippedSourceFiles, AllSourceFilesRequest([tgt[PythonSources]]))
7977
for tgt in candidate_explicit_targets
8078
)
79+
8180
modules_to_addresses: Dict[str, Address] = {}
8281
modules_with_multiple_owners: Set[str] = set()
8382
for explicit_tgt, unstripped_sources, stripped_sources in zip(

src/python/pants/backend/python/dependency_inference/module_mapper_test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
)
1919
from pants.backend.python.target_types import PythonLibrary, PythonRequirementLibrary
2020
from pants.build_graph.build_file_aliases import BuildFileAliases
21-
from pants.core.util_rules import strip_source_roots
21+
from pants.core.util_rules import determine_source_files, strip_source_roots
2222
from pants.engine.addresses import Address
2323
from pants.engine.rules import RootRule
2424
from pants.python.python_requirement import PythonRequirement
@@ -84,6 +84,7 @@ def rules(cls):
8484
return (
8585
*super().rules(),
8686
*strip_source_roots.rules(),
87+
*determine_source_files.rules(),
8788
map_first_party_modules_to_addresses,
8889
map_module_to_address,
8990
map_third_party_modules_to_addresses,

src/python/pants/backend/python/dependency_inference/rules.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@
1212
from pants.backend.python.rules import ancestor_files
1313
from pants.backend.python.rules.ancestor_files import AncestorFiles, AncestorFilesRequest
1414
from pants.backend.python.target_types import PythonSources, PythonTestsSources
15-
from pants.core.util_rules.strip_source_roots import (
16-
SourceRootStrippedSources,
17-
StripSourcesFieldRequest,
18-
)
15+
from pants.core.util_rules.determine_source_files import AllSourceFilesRequest
16+
from pants.core.util_rules.strip_source_roots import StrippedSourceFiles
1917
from pants.engine.fs import Digest, DigestContents
2018
from pants.engine.internals.graph import Owners, OwnersRequest
2119
from pants.engine.rules import Get, MultiGet, collect_rules, rule
@@ -92,7 +90,7 @@ async def infer_python_dependencies(
9290
return InferredDependencies()
9391

9492
stripped_sources = await Get(
95-
SourceRootStrippedSources, StripSourcesFieldRequest(request.sources_field)
93+
StrippedSourceFiles, AllSourceFilesRequest([request.sources_field])
9694
)
9795
modules = tuple(
9896
PythonModule.create_from_stripped_path(PurePath(fp))
@@ -133,8 +131,7 @@ async def infer_python_init_dependencies(
133131
# Locate __init__.py files not already in the Snapshot.
134132
hydrated_sources = await Get(HydratedSources, HydrateSourcesRequest(request.sources_field))
135133
extra_init_files = await Get(
136-
AncestorFiles,
137-
AncestorFilesRequest("__init__.py", hydrated_sources.snapshot, sources_stripped=False),
134+
AncestorFiles, AncestorFilesRequest("__init__.py", hydrated_sources.snapshot),
138135
)
139136

140137
# And add dependencies on their owners.
@@ -161,8 +158,7 @@ async def infer_python_conftest_dependencies(
161158
# Locate conftest.py files not already in the Snapshot.
162159
hydrated_sources = await Get(HydratedSources, HydrateSourcesRequest(request.sources_field))
163160
extra_conftest_files = await Get(
164-
AncestorFiles,
165-
AncestorFilesRequest("conftest.py", hydrated_sources.snapshot, sources_stripped=False),
161+
AncestorFiles, AncestorFilesRequest("conftest.py", hydrated_sources.snapshot),
166162
)
167163

168164
# And add dependencies on their owners.

src/python/pants/backend/python/dependency_inference/rules_test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
PythonTests,
1717
)
1818
from pants.build_graph.build_file_aliases import BuildFileAliases
19-
from pants.core.util_rules import strip_source_roots
19+
from pants.core.util_rules import determine_source_files, strip_source_roots
2020
from pants.engine.addresses import Address
2121
from pants.engine.rules import RootRule
2222
from pants.engine.target import InferredDependencies, WrappedTarget
@@ -37,6 +37,7 @@ def rules(cls):
3737
return (
3838
*super().rules(),
3939
*strip_source_roots.rules(),
40+
*determine_source_files.rules(),
4041
*dependency_inference_rules(),
4142
all_roots,
4243
RootRule(InferPythonDependencies),

src/python/pants/backend/python/lint/black/rules.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ async def setup(setup_request: SetupRequest, black: Black) -> Setup:
111111
all_source_files, requirements_pex, config_digest, specified_source_files = (
112112
await MultiGet(all_source_files_request, *requests)
113113
if setup_request.request.prior_formatter_result is None
114-
else (SourceFiles(EMPTY_SNAPSHOT), *await MultiGet(*requests))
114+
else (SourceFiles(EMPTY_SNAPSHOT, ()), *await MultiGet(*requests))
115115
)
116116
all_source_files_snapshot = (
117117
all_source_files.snapshot

src/python/pants/backend/python/lint/docformatter/rules.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ async def setup(setup_request: SetupRequest, docformatter: Docformatter) -> Setu
9191
all_source_files, requirements_pex, specified_source_files = (
9292
await MultiGet(all_source_files_request, *requests)
9393
if setup_request.request.prior_formatter_result is None
94-
else (SourceFiles(EMPTY_SNAPSHOT), *await MultiGet(*requests))
94+
else (SourceFiles(EMPTY_SNAPSHOT, ()), *await MultiGet(*requests))
9595
)
9696
all_source_files_snapshot = (
9797
all_source_files.snapshot

src/python/pants/backend/python/lint/isort/rules.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ async def setup(setup_request: SetupRequest, isort: Isort) -> Setup:
115115
all_source_files, requirements_pex, config_digest, specified_source_files = (
116116
await MultiGet(all_source_files_request, *requests)
117117
if setup_request.request.prior_formatter_result is None
118-
else (SourceFiles(EMPTY_SNAPSHOT), *await MultiGet(*requests))
118+
else (SourceFiles(EMPTY_SNAPSHOT, ()), *await MultiGet(*requests))
119119
)
120120
all_source_files_snapshot = (
121121
all_source_files.snapshot

src/python/pants/backend/python/lint/pylint/rules.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@
1616
PexRequirements,
1717
)
1818
from pants.backend.python.rules.python_sources import (
19-
StrippedPythonSources,
20-
StrippedPythonSourcesRequest,
21-
UnstrippedPythonSources,
22-
UnstrippedPythonSourcesRequest,
19+
PythonSourceFiles,
20+
PythonSourceFilesRequest,
21+
StrippedPythonSourceFiles,
2322
)
2423
from pants.backend.python.target_types import (
2524
PythonInterpreterCompatibility,
@@ -160,11 +159,10 @@ async def pylint_lint_partition(partition: PylintPartition, pylint: Pylint) -> L
160159
)
161160

162161
prepare_plugin_sources_request = Get(
163-
StrippedPythonSources, StrippedPythonSourcesRequest(partition.plugin_targets),
162+
StrippedPythonSourceFiles, PythonSourceFilesRequest(partition.plugin_targets),
164163
)
165164
prepare_python_sources_request = Get(
166-
UnstrippedPythonSources,
167-
UnstrippedPythonSourcesRequest(partition.targets_with_dependencies),
165+
PythonSourceFiles, PythonSourceFilesRequest(partition.targets_with_dependencies),
168166
)
169167
specified_source_files_request = Get(
170168
SourceFiles,
@@ -192,7 +190,10 @@ async def pylint_lint_partition(partition: PylintPartition, pylint: Pylint) -> L
192190
)
193191

194192
prefixed_plugin_sources = (
195-
await Get(Digest, AddPrefix(prepared_plugin_sources.snapshot.digest, "__plugins"))
193+
await Get(
194+
Digest,
195+
AddPrefix(prepared_plugin_sources.stripped_source_files.snapshot.digest, "__plugins"),
196+
)
196197
if pylint.source_plugins
197198
else EMPTY_DIGEST
198199
)
@@ -215,7 +216,7 @@ async def pylint_lint_partition(partition: PylintPartition, pylint: Pylint) -> L
215216
pylint_runner_pex.digest,
216217
config_digest,
217218
prefixed_plugin_sources,
218-
prepared_python_sources.snapshot.digest,
219+
prepared_python_sources.source_files.snapshot.digest,
219220
)
220221
),
221222
)
@@ -287,7 +288,7 @@ async def pylint_lint(
287288

288289
partitions = (
289290
PylintPartition(
290-
tuple(sorted(target_setups, key=lambda target_setup: target_setup.field_set.address)),
291+
tuple(sorted(target_setups, key=lambda tgt_setup: tgt_setup.field_set.address)),
291292
interpreter_constraints,
292293
Targets(plugin_targets.closure),
293294
)

0 commit comments

Comments
 (0)