Vendor dependencies
Let's see how I like this workflow.
This commit is contained in:
parent
34d1830413
commit
9c435dc440
7500 changed files with 1665121 additions and 99 deletions
56
vendor/cxx/tools/buck/prelude/python/needed_coverage.bzl
vendored
Normal file
56
vendor/cxx/tools/buck/prelude/python/needed_coverage.bzl
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
#
|
||||
# This source code is licensed under both the MIT license found in the
|
||||
# LICENSE-MIT file in the root directory of this source tree and the Apache
|
||||
# License, Version 2.0 found in the LICENSE-APACHE file in the root directory
|
||||
# of this source tree.
|
||||
|
||||
load("@prelude//utils:utils.bzl", "expect")
|
||||
|
||||
# All modules owned by a library. This will be used by top-level tests to find
|
||||
# paths that corresponds to the library.
|
||||
PythonNeededCoverageInfo = provider(fields = [
|
||||
"modules", # {str.type: str.type}
|
||||
])
|
||||
|
||||
PythonNeededCoverage = record(
|
||||
# A value from 0.0 to 1.0 indicating the ratio of coveraged code in the
|
||||
# associated modules.
|
||||
ratio = field(float.type),
|
||||
# Modules that need to be covered.
|
||||
modules = field([str.type]),
|
||||
)
|
||||
|
||||
def _parse_python_needed_coverage_spec(
|
||||
raw_spec: (int.type, "dependency", [str.type, None])) -> PythonNeededCoverage.type:
|
||||
ratio_percentage, dep, specific_module = raw_spec
|
||||
|
||||
if ratio_percentage < 0 or ratio_percentage > 100:
|
||||
fail("ratio_percentage must be between 0 and 100 (inclusive): {}".format(ratio_percentage))
|
||||
ratio_percentage = ratio_percentage / 100.0
|
||||
|
||||
coverage = dep[PythonNeededCoverageInfo]
|
||||
expect(coverage != None, "{} doesn't have a `PythonNeededCoverageInfo` provider", dep.label)
|
||||
|
||||
# Extract modules for this dep.
|
||||
if specific_module != None:
|
||||
module = coverage.modules.get(specific_module)
|
||||
if module == None:
|
||||
fail(
|
||||
"module {} specified in needed_coverage not found in target {}"
|
||||
.format(specific_module, dep.label),
|
||||
)
|
||||
modules = [module]
|
||||
else:
|
||||
modules = coverage.modules.values()
|
||||
|
||||
expect(len(modules) > 0, "no modules found for {} ({})", dep.label, coverage)
|
||||
|
||||
return PythonNeededCoverage(
|
||||
ratio = ratio_percentage,
|
||||
modules = modules,
|
||||
)
|
||||
|
||||
def parse_python_needed_coverage_specs(
|
||||
raw_specs: [(int.type, "dependency", [str.type, None])]) -> [PythonNeededCoverage.type]:
|
||||
return [_parse_python_needed_coverage_spec(raw_spec) for raw_spec in raw_specs]
|
||||
Loading…
Add table
Add a link
Reference in a new issue