mirror of
https://github.com/Nuitka/Nuitka.git
synced 2026-06-30 12:22:09 +02:00
105 lines
2.8 KiB
Python
Executable File
105 lines
2.8 KiB
Python
Executable File
#!/usr/bin/python
|
|
# Copyright 2026, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
|
|
|
|
"""Coverage rendering tool."""
|
|
|
|
import os
|
|
import shutil
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def main():
|
|
# Set the stage.
|
|
os.chdir(os.path.dirname(__file__))
|
|
shutil.rmtree("coverage", ignore_errors=True)
|
|
|
|
print("Fetching coverage files:")
|
|
|
|
subprocess.call(
|
|
["rsync", "-az", "--delete", "%s/" % os.environ["COVERAGE_DIR"], "coverage/"]
|
|
)
|
|
|
|
print("Combining coverage files:")
|
|
os.chdir("coverage")
|
|
|
|
print("Detect coverage file roots:")
|
|
# Now detect where the files were collected from:
|
|
|
|
paths = [os.path.abspath(os.path.join(os.curdir, "..", ".."))]
|
|
|
|
for filename in os.listdir("."):
|
|
if not filename.startswith("meta.coverage"):
|
|
continue
|
|
|
|
values = {}
|
|
with open(filename, encoding="utf-8") as f:
|
|
# pylint: disable=exec-used
|
|
exec(f.read(), values)
|
|
|
|
if "__builtins__" in values:
|
|
del values["__builtins__"]
|
|
|
|
paths.append(values["NUITKA_SOURCE_DIR"])
|
|
|
|
# spell-checker: ignore coveragerc
|
|
coverage_path = os.path.abspath(".coveragerc")
|
|
|
|
with open(coverage_path, "w", encoding="utf-8") as coverage_rc_file:
|
|
coverage_rc_file.write("[paths]\n")
|
|
coverage_rc_file.write("source = \n")
|
|
|
|
for path in paths:
|
|
coverage_rc_file.write(" " + path + "\n")
|
|
|
|
subprocess.call(
|
|
# spell-checker: ignore rcfile
|
|
[
|
|
sys.executable,
|
|
"-m",
|
|
"coverage",
|
|
"combine",
|
|
"--rcfile",
|
|
coverage_path,
|
|
]
|
|
)
|
|
|
|
assert os.path.exists(coverage_path)
|
|
|
|
subprocess.call(
|
|
[
|
|
sys.executable,
|
|
"-m",
|
|
"coverage",
|
|
"html",
|
|
"--rcfile",
|
|
coverage_path,
|
|
]
|
|
)
|
|
|
|
# Clean up after ourselves again.
|
|
# shutil.rmtree("coverage", ignore_errors = True)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
# integrates with CPython, but also works on its own.
|
|
#
|
|
# Licensed under the GNU Affero General Public License, Version 3 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# https://www.gnu.org/licenses/agpl-3.0.txt
|
|
#
|
|
# See also: "Nuitka Runtime Library Exception, Version 1.0" in file
|
|
# "LICENSE-RUNTIME.txt" for additional permissions granted under Section 7.
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|