summaryrefslogtreecommitdiff
path: root/SCons/Tool
diff options
context:
space:
mode:
Diffstat (limited to 'SCons/Tool')
-rw-r--r--SCons/Tool/386asm.py2
-rw-r--r--SCons/Tool/DCommon.py4
-rw-r--r--SCons/Tool/FortranCommon.py8
-rw-r--r--SCons/Tool/FortranCommonTests.py10
-rw-r--r--SCons/Tool/GettextCommon.py14
-rw-r--r--SCons/Tool/JavaCommon.py28
-rw-r--r--SCons/Tool/JavaCommonTests.py40
-rw-r--r--SCons/Tool/MSCommon/MSVC/ConfigTests.py10
-rw-r--r--SCons/Tool/MSCommon/MSVC/Dispatcher.py8
-rw-r--r--SCons/Tool/MSCommon/MSVC/DispatcherTests.py24
-rw-r--r--SCons/Tool/MSCommon/MSVC/PolicyTests.py30
-rw-r--r--SCons/Tool/MSCommon/MSVC/Registry.py8
-rw-r--r--SCons/Tool/MSCommon/MSVC/RegistryTests.py14
-rw-r--r--SCons/Tool/MSCommon/MSVC/ScriptArguments.py22
-rw-r--r--SCons/Tool/MSCommon/MSVC/ScriptArgumentsTests.py26
-rw-r--r--SCons/Tool/MSCommon/MSVC/SetupEnvDefault.py10
-rw-r--r--SCons/Tool/MSCommon/MSVC/UtilTests.py20
-rw-r--r--SCons/Tool/MSCommon/MSVC/WinSDK.py10
-rw-r--r--SCons/Tool/MSCommon/MSVC/WinSDKTests.py24
-rw-r--r--SCons/Tool/MSCommon/MSVC/__init__.py4
-rw-r--r--SCons/Tool/MSCommon/arch.py2
-rw-r--r--SCons/Tool/MSCommon/common.py8
-rw-r--r--SCons/Tool/MSCommon/sdk.py8
-rw-r--r--SCons/Tool/MSCommon/vc.py14
-rw-r--r--SCons/Tool/MSCommon/vcTests.py52
-rw-r--r--SCons/Tool/MSCommon/vs.py10
-rw-r--r--SCons/Tool/PharLapCommon.py2
-rw-r--r--SCons/Tool/ToolTests.py14
-rw-r--r--SCons/Tool/__init__.py22
-rw-r--r--SCons/Tool/aixcc.py2
-rw-r--r--SCons/Tool/aixcxx.py2
-rw-r--r--SCons/Tool/aixf77.py2
-rw-r--r--SCons/Tool/aixlink.py2
-rw-r--r--SCons/Tool/applelink.py8
-rw-r--r--SCons/Tool/ar.py2
-rw-r--r--SCons/Tool/asm.py2
-rw-r--r--SCons/Tool/bcc32.py2
-rw-r--r--SCons/Tool/cc.py4
-rw-r--r--SCons/Tool/clang.py2
-rw-r--r--SCons/Tool/clangxx.py2
-rw-r--r--SCons/Tool/compilation_db.py12
-rw-r--r--SCons/Tool/cvf.py2
-rw-r--r--SCons/Tool/cxx.py4
-rw-r--r--SCons/Tool/cyglink.py6
-rw-r--r--SCons/Tool/default.py4
-rw-r--r--SCons/Tool/dmd.py2
-rw-r--r--SCons/Tool/docbook/__init__.py18
-rw-r--r--SCons/Tool/dvi.py4
-rw-r--r--SCons/Tool/dvipdf.py4
-rw-r--r--SCons/Tool/dvips.py2
-rw-r--r--SCons/Tool/f03.py2
-rw-r--r--SCons/Tool/f08.py2
-rw-r--r--SCons/Tool/f77.py2
-rw-r--r--SCons/Tool/f90.py2
-rw-r--r--SCons/Tool/f95.py2
-rw-r--r--SCons/Tool/filesystem.py6
-rw-r--r--SCons/Tool/fortran.py2
-rw-r--r--SCons/Tool/g77.py2
-rw-r--r--SCons/Tool/gas.py2
-rw-r--r--SCons/Tool/gcc.py2
-rw-r--r--SCons/Tool/gdc.py2
-rw-r--r--SCons/Tool/gettext_tool.py2
-rw-r--r--SCons/Tool/gfortran.py2
-rw-r--r--SCons/Tool/gnulink.py2
-rw-r--r--SCons/Tool/gs.py2
-rw-r--r--SCons/Tool/gxx.py2
-rw-r--r--SCons/Tool/hpcc.py2
-rw-r--r--SCons/Tool/hpcxx.py2
-rw-r--r--SCons/Tool/hplink.py2
-rw-r--r--SCons/Tool/icc.py2
-rw-r--r--SCons/Tool/ifl.py2
-rw-r--r--SCons/Tool/ifort.py2
-rw-r--r--SCons/Tool/ilink.py2
-rw-r--r--SCons/Tool/ilink32.py2
-rw-r--r--SCons/Tool/install.py12
-rw-r--r--SCons/Tool/intelc.py2
-rw-r--r--SCons/Tool/ipkg.py2
-rw-r--r--SCons/Tool/jar.py2
-rw-r--r--SCons/Tool/javac.py8
-rw-r--r--SCons/Tool/javacTests.py28
-rw-r--r--SCons/Tool/javah.py4
-rw-r--r--SCons/Tool/latex.py2
-rw-r--r--SCons/Tool/ldc.py2
-rw-r--r--SCons/Tool/lex.py2
-rw-r--r--SCons/Tool/link.py2
-rw-r--r--SCons/Tool/linkCommon/LoadableModule.py4
-rw-r--r--SCons/Tool/linkCommon/SharedLibrary.py4
-rw-r--r--SCons/Tool/linkCommon/__init__.py8
-rw-r--r--SCons/Tool/linkCommon/linkCommmonTests.py4
-rw-r--r--SCons/Tool/linkloc.py4
-rw-r--r--SCons/Tool/m4.py2
-rw-r--r--SCons/Tool/masm.py2
-rw-r--r--SCons/Tool/midl.py2
-rw-r--r--SCons/Tool/mingw.py2
-rw-r--r--SCons/Tool/msgfmt.py2
-rw-r--r--SCons/Tool/msginit.py2
-rw-r--r--SCons/Tool/msgmerge.py2
-rw-r--r--SCons/Tool/mslib.py2
-rw-r--r--SCons/Tool/mslink.py2
-rw-r--r--SCons/Tool/mssdk.py2
-rw-r--r--SCons/Tool/msvc.py4
-rw-r--r--SCons/Tool/msvs.py70
-rw-r--r--SCons/Tool/msvsTests.py36
-rw-r--r--SCons/Tool/mwcc.py8
-rw-r--r--SCons/Tool/mwld.py2
-rw-r--r--SCons/Tool/nasm.py2
-rw-r--r--SCons/Tool/ninja/Methods.py12
-rw-r--r--SCons/Tool/ninja/NinjaState.py10
-rw-r--r--SCons/Tool/ninja/Overrides.py8
-rw-r--r--SCons/Tool/ninja/Utils.py12
-rw-r--r--SCons/Tool/ninja/__init__.py8
-rw-r--r--SCons/Tool/ninja/ninja_daemon_build.py2
-rw-r--r--SCons/Tool/ninja/ninja_run_daemon.py2
-rw-r--r--SCons/Tool/ninja/ninja_scons_daemon.py18
-rw-r--r--SCons/Tool/packaging/__init__.py12
-rw-r--r--SCons/Tool/packaging/ipk.py2
-rw-r--r--SCons/Tool/packaging/msi.py16
-rw-r--r--SCons/Tool/packaging/rpm.py2
-rw-r--r--SCons/Tool/pdf.py6
-rw-r--r--SCons/Tool/pdflatex.py2
-rw-r--r--SCons/Tool/pdftex.py2
-rw-r--r--SCons/Tool/python.py4
-rw-r--r--SCons/Tool/qt.py2
-rw-r--r--SCons/Tool/qt3.py4
-rw-r--r--SCons/Tool/rmic.py4
-rw-r--r--SCons/Tool/rpcgen.py2
-rw-r--r--SCons/Tool/rpm.py4
-rw-r--r--SCons/Tool/rpmutils.py8
-rw-r--r--SCons/Tool/sgiar.py2
-rw-r--r--SCons/Tool/sgicc.py2
-rw-r--r--SCons/Tool/sgicxx.py2
-rw-r--r--SCons/Tool/sgilink.py2
-rw-r--r--SCons/Tool/sunar.py2
-rw-r--r--SCons/Tool/suncc.py2
-rw-r--r--SCons/Tool/suncxx.py2
-rw-r--r--SCons/Tool/sunf77.py2
-rw-r--r--SCons/Tool/sunf90.py2
-rw-r--r--SCons/Tool/sunf95.py2
-rw-r--r--SCons/Tool/sunlink.py2
-rw-r--r--SCons/Tool/swig.py6
-rw-r--r--SCons/Tool/tar.py2
-rw-r--r--SCons/Tool/tex.py12
-rw-r--r--SCons/Tool/textfile.py8
-rw-r--r--SCons/Tool/tlib.py2
-rw-r--r--SCons/Tool/wix.py2
-rw-r--r--SCons/Tool/wixTests.py2
-rw-r--r--SCons/Tool/xgettext.py6
-rw-r--r--SCons/Tool/yacc.py2
-rw-r--r--SCons/Tool/zip.py6
149 files changed, 517 insertions, 515 deletions
diff --git a/SCons/Tool/386asm.py b/SCons/Tool/386asm.py
index 51738ebc1..f19f75810 100644
--- a/SCons/Tool/386asm.py
+++ b/SCons/Tool/386asm.py
@@ -39,7 +39,7 @@ import SCons.Util
as_module = __import__('as', globals(), locals(), [], 1)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ar to an Environment."""
as_module.generate(env)
diff --git a/SCons/Tool/DCommon.py b/SCons/Tool/DCommon.py
index 128e56165..a4f976d42 100644
--- a/SCons/Tool/DCommon.py
+++ b/SCons/Tool/DCommon.py
@@ -32,7 +32,7 @@ Coded by Russel Winder (russel@winder.org.uk)
import os.path
-def isD(env, source):
+def isD(env, source) -> int:
if not source:
return 0
for s in source:
@@ -43,7 +43,7 @@ def isD(env, source):
return 0
-def addDPATHToEnv(env, executable):
+def addDPATHToEnv(env, executable) -> None:
dPath = env.WhereIs(executable)
if dPath:
phobosDir = dPath[:dPath.rindex(executable)] + '/../src/phobos'
diff --git a/SCons/Tool/FortranCommon.py b/SCons/Tool/FortranCommon.py
index aff0f9238..f893a12b7 100644
--- a/SCons/Tool/FortranCommon.py
+++ b/SCons/Tool/FortranCommon.py
@@ -30,7 +30,7 @@ from typing import Tuple
import SCons.Scanner.Fortran
import SCons.Tool
import SCons.Util
-from SCons.Action import Action
+from SCons.Action import Action, ActionBase
def isfortran(env, source) -> bool:
@@ -115,7 +115,9 @@ def ComputeFortranSuffixes(suffixes, ppsuffixes) -> None:
else:
suffixes.extend(upper_suffixes)
-def CreateDialectActions(dialect) -> Tuple[Action, Action, Action, Action]:
+def CreateDialectActions(
+ dialect: str,
+) -> Tuple[ActionBase, ActionBase, ActionBase, ActionBase]:
"""Create dialect specific actions."""
CompAction = Action(f'${dialect}COM ', cmdstr=f'${dialect}COMSTR')
CompPPAction = Action(f'${dialect}PPCOM ', cmdstr=f'${dialect}PPCOMSTR')
@@ -124,7 +126,7 @@ def CreateDialectActions(dialect) -> Tuple[Action, Action, Action, Action]:
return CompAction, CompPPAction, ShCompAction, ShCompPPAction
-def DialectAddToEnv(env, dialect, suffixes, ppsuffixes, support_mods=False) -> None:
+def DialectAddToEnv(env, dialect, suffixes, ppsuffixes, support_mods: bool=False) -> None:
"""Add dialect specific construction variables.
Args:
diff --git a/SCons/Tool/FortranCommonTests.py b/SCons/Tool/FortranCommonTests.py
index 56f41c7e7..a2960d6d3 100644
--- a/SCons/Tool/FortranCommonTests.py
+++ b/SCons/Tool/FortranCommonTests.py
@@ -44,21 +44,21 @@ os.chdir(test.workpath(''))
class DummyEnvironment:
dictionary = None # type: Dict[Any, Any]
- def __init__(self, list_cpp_path):
+ def __init__(self, list_cpp_path) -> None:
self.path = list_cpp_path
self.fs = SCons.Node.FS.FS(test.workpath(''))
self.dictionary = {}
- def __contains__(self, key):
+ def __contains__(self, key) -> bool:
return key in self.dictionary
def __getitem__(self, key):
return self.dictionary[key]
- def __setitem__(self, key, value):
+ def __setitem__(self, key, value) -> None:
self.dictionary[key] = value
- def __delitem__(self, key):
+ def __delitem__(self, key) -> None:
del self.dictionary[key]
def subst(self, arg, target=None, source=None, conv=None):
@@ -85,7 +85,7 @@ class DummyEnvironment:
class FortranScannerSubmodulesTestCase(unittest.TestCase):
- def runTest(self):
+ def runTest(self) -> None:
"""
Check that test_1.f90 and test_2.f90 which have interface specifications
Don't generate targets for those modules listed in the interface section
diff --git a/SCons/Tool/GettextCommon.py b/SCons/Tool/GettextCommon.py
index 058b9971e..ba9ce3102 100644
--- a/SCons/Tool/GettextCommon.py
+++ b/SCons/Tool/GettextCommon.py
@@ -82,8 +82,8 @@ class _POTargetFactory:
default for all produced nodes.
"""
- def __init__(self, env, nodefault=True, alias=None, precious=True
- , noclean=True):
+ def __init__(self, env, nodefault: bool=True, alias=None, precious: bool=True
+ , noclean: bool=True) -> None:
""" Object constructor.
**Arguments**
@@ -104,7 +104,7 @@ class _POTargetFactory:
self.noclean = noclean
self.nodefault = nodefault
- def _create_node(self, name, factory, directory=None, create=1):
+ def _create_node(self, name, factory, directory=None, create: int=1):
""" Create node, and set it up to factory settings. """
node = factory(name, directory, create)
node.set_noclean(self.noclean)
@@ -115,11 +115,11 @@ class _POTargetFactory:
self.env.AlwaysBuild(self.env.Alias(self.alias, node))
return node
- def Entry(self, name, directory=None, create=1):
+ def Entry(self, name, directory=None, create: int=1):
""" Create `SCons.Node.FS.Entry` """
return self._create_node(name, self.env.fs.Entry, directory, create)
- def File(self, name, directory=None, create=1):
+ def File(self, name, directory=None, create: int=1):
""" Create `SCons.Node.FS.File` """
return self._create_node(name, self.env.fs.File, directory, create)
@@ -191,7 +191,7 @@ class _POFileBuilder(BuilderBase):
# and execute iterativelly (recursion) self._execute(None, source[i]).
# After that it calls emitter (which is quite too late). The emitter is
# also called in each iteration, what makes things yet worse.
- def __init__(self, env, **kw):
+ def __init__(self, env, **kw) -> None:
if 'suffix' not in kw:
kw['suffix'] = '$POSUFFIX'
if 'src_suffix' not in kw:
@@ -300,7 +300,7 @@ class RPaths:
# seems be enough for our purposes (don't need TARGET variable and
# SCons.Defaults.Variable_Caller stuff).
- def __init__(self, env):
+ def __init__(self, env) -> None:
""" Initialize `RPaths` callable object.
**Arguments**:
diff --git a/SCons/Tool/JavaCommon.py b/SCons/Tool/JavaCommon.py
index adec1d3a7..96000d06b 100644
--- a/SCons/Tool/JavaCommon.py
+++ b/SCons/Tool/JavaCommon.py
@@ -100,7 +100,7 @@ if java_parsing:
"""The initial state for parsing a Java file for classes,
interfaces, and anonymous inner classes."""
- def __init__(self, version=default_java_version):
+ def __init__(self, version=default_java_version) -> None:
if version not in (
'1.1',
'1.2',
@@ -136,7 +136,7 @@ if java_parsing:
self.anonStacksStack = [[0]]
self.package = None
- def trace(self):
+ def trace(self) -> None:
pass
def __getClassState(self):
@@ -175,10 +175,10 @@ if java_parsing:
def _getAnonStack(self):
return self.anonStacksStack[-1]
- def openBracket(self):
+ def openBracket(self) -> None:
self.brackets = self.brackets + 1
- def closeBracket(self):
+ def closeBracket(self) -> None:
self.brackets = self.brackets - 1
if len(self.stackBrackets) and \
self.brackets == self.stackBrackets[-1]:
@@ -223,7 +223,7 @@ if java_parsing:
return self.__getSkipState()
return self
- def addAnonClass(self):
+ def addAnonClass(self) -> None:
"""Add an anonymous inner class"""
if self.version in ('1.1', '1.2', '1.3', '1.4'):
clazz = self.listClasses[0]
@@ -257,7 +257,7 @@ if java_parsing:
self.nextAnon = self.nextAnon + 1
self._getAnonStack().append(0)
- def setPackage(self, package):
+ def setPackage(self, package) -> None:
self.package = package
@@ -267,7 +267,7 @@ if java_parsing:
within the confines of a scope.
"""
- def __init__(self, old_state):
+ def __init__(self, old_state) -> None:
self.outer_state = old_state.outer_state
self.old_state = old_state
self.brackets = 0
@@ -296,10 +296,10 @@ if java_parsing:
self.skipState = ret
return ret
- def openBracket(self):
+ def openBracket(self) -> None:
self.brackets = self.brackets + 1
- def closeBracket(self):
+ def closeBracket(self) -> None:
self.brackets = self.brackets - 1
def parseToken(self, token):
@@ -332,7 +332,7 @@ if java_parsing:
class AnonClassState:
"""A state that looks for anonymous inner classes."""
- def __init__(self, old_state):
+ def __init__(self, old_state) -> None:
# outer_state is always an instance of OuterState
self.outer_state = old_state.outer_state
self.old_state = old_state
@@ -373,7 +373,7 @@ if java_parsing:
"""A state that will skip a specified number of tokens before
reverting to the previous state."""
- def __init__(self, tokens_to_skip, old_state):
+ def __init__(self, tokens_to_skip, old_state) -> None:
self.tokens_to_skip = tokens_to_skip
self.old_state = old_state
@@ -387,7 +387,7 @@ if java_parsing:
class ClassState:
"""A state we go into when we hit a class or interface keyword."""
- def __init__(self, outer_state):
+ def __init__(self, outer_state) -> None:
# outer_state is always an instance of OuterState
self.outer_state = outer_state
@@ -419,7 +419,7 @@ if java_parsing:
"""A state that will ignore all tokens until it gets to a
specified token."""
- def __init__(self, ignore_until, old_state):
+ def __init__(self, ignore_until, old_state) -> None:
self.ignore_until = ignore_until
self.old_state = old_state
@@ -433,7 +433,7 @@ if java_parsing:
"""The state we enter when we encounter the package keyword.
We assume the next token will be the package name."""
- def __init__(self, outer_state):
+ def __init__(self, outer_state) -> None:
# outer_state is always an instance of OuterState
self.outer_state = outer_state
diff --git a/SCons/Tool/JavaCommonTests.py b/SCons/Tool/JavaCommonTests.py
index 75e75efd6..fa462b698 100644
--- a/SCons/Tool/JavaCommonTests.py
+++ b/SCons/Tool/JavaCommonTests.py
@@ -34,14 +34,14 @@ import TestSCons
# the parser to spit out trace messages of the tokens it sees and the
# attendant transitions.
-def trace(token, newstate):
+def trace(token, newstate) -> None:
from SCons.Debug import Trace
statename = newstate.__class__.__name__
Trace('token = %s, state = %s\n' % (repr(token), statename))
class parse_javaTestCase(unittest.TestCase):
- def test_bare_bones(self):
+ def test_bare_bones(self) -> None:
"""Test a bare-bones class"""
input = """\
@@ -65,7 +65,7 @@ public class Foo
assert classes == ['Foo'], classes
- def test_file_parser(self):
+ def test_file_parser(self) -> None:
"""Test the file parser"""
input = """\
package com.sub.bar;
@@ -90,7 +90,7 @@ public class Foo
assert classes == ['Foo'], classes
- def test_dollar_sign(self):
+ def test_dollar_sign(self) -> None:
"""Test class names with $ in them"""
input = """\
@@ -104,7 +104,7 @@ public class BadDep {
- def test_inner_classes(self):
+ def test_inner_classes(self) -> None:
"""Test parsing various forms of inner classes"""
input = """\
@@ -227,7 +227,7 @@ class Private {
- def test_comments(self):
+ def test_comments(self) -> None:
"""Test a class with comments"""
input = """\
@@ -272,7 +272,7 @@ public class Example1 extends UnicastRemoteObject implements Hello {
assert classes == ['Example1'], classes
- def test_arrays(self):
+ def test_arrays(self) -> None:
"""Test arrays of class instances"""
input = """\
@@ -292,7 +292,7 @@ public class Test {
- def test_backslash(self):
+ def test_backslash(self) -> None:
"""Test backslash handling"""
input = """\
@@ -310,7 +310,7 @@ public class MyTabs
assert classes == ['MyTabs$MyInternal', 'MyTabs'], classes
- def test_enum(self):
+ def test_enum(self) -> None:
"""Test the Java 1.5 enum keyword"""
input = """\
@@ -323,7 +323,7 @@ public enum a {}
assert classes == ['a'], classes
- def test_anon_classes(self):
+ def test_anon_classes(self) -> None:
"""Test anonymous classes"""
input = """\
@@ -347,7 +347,7 @@ public abstract class TestClass
assert classes == ['TestClass$1', 'TestClass$2', 'TestClass'], classes
- def test_closing_bracket(self):
+ def test_closing_bracket(self) -> None:
"""Test finding a closing bracket instead of an anonymous class"""
input = """\
@@ -365,7 +365,7 @@ class Foo { }
assert classes == ['TestSCons', 'Foo'], classes
- def test_dot_class_attributes(self):
+ def test_dot_class_attributes(self) -> None:
"""Test handling ".class" attributes"""
input = """\
@@ -398,7 +398,7 @@ public class A {
assert pkg_dir is None, pkg_dir
assert classes == ['A$B', 'A'], classes
- def test_anonymous_classes_with_parentheses(self):
+ def test_anonymous_classes_with_parentheses(self) -> None:
"""Test finding anonymous classes marked by parentheses"""
input = """\
@@ -432,7 +432,7 @@ public class Foo {
- def test_nested_anonymous_inner_classes(self):
+ def test_nested_anonymous_inner_classes(self) -> None:
"""Test finding nested anonymous inner classes"""
input = """\
@@ -481,7 +481,7 @@ public class NestedExample
expect = [ 'NestedExample$1', 'NestedExample$1$1', 'NestedExample' ]
assert expect == classes, (expect, classes)
- def test_lambda_after_new(self):
+ def test_lambda_after_new(self) -> None:
"""Test lamdas after new"""
input = """\
@@ -518,7 +518,7 @@ public class LamdaExample
expect = [ 'LamdaExample' ]
assert expect == classes, (expect, classes)
- def test_private_inner_class_instantiation(self):
+ def test_private_inner_class_instantiation(self) -> None:
"""Test anonymous inner class generated by private instantiation"""
input = """\
@@ -551,7 +551,7 @@ class test
pkg_dir, classes = SCons.Tool.JavaCommon.parse_java(input, '1.5')
assert expect == classes, (expect, classes)
- def test_floating_point_numbers(self):
+ def test_floating_point_numbers(self) -> None:
"""Test floating-point numbers in the input stream"""
input = """
// Broken.java
@@ -592,7 +592,7 @@ class Broken
assert expect == classes, (expect, classes)
- def test_genercis(self):
+ def test_genercis(self) -> None:
"""Test that generics don't interfere with detecting anonymous classes"""
input = """\
@@ -624,7 +624,7 @@ public class Foo
assert expect == classes, (expect, classes)
- def test_in_function_class_declaration(self):
+ def test_in_function_class_declaration(self) -> None:
"""
Test that implementing a class in a function call doesn't confuse SCons.
"""
@@ -667,7 +667,7 @@ public class AnonDemo {
pkg_dir, classes = SCons.Tool.JavaCommon.parse_java(input, '1.8')
assert expect == classes, (expect, classes)
- def test_jdk_globs(self):
+ def test_jdk_globs(self) -> None:
"""
Verify that the java path globs work with specific examples.
:return:
diff --git a/SCons/Tool/MSCommon/MSVC/ConfigTests.py b/SCons/Tool/MSCommon/MSVC/ConfigTests.py
index 89db6cda5..cbd811e45 100644
--- a/SCons/Tool/MSCommon/MSVC/ConfigTests.py
+++ b/SCons/Tool/MSCommon/MSVC/ConfigTests.py
@@ -44,7 +44,7 @@ class Patch:
return hook
@classmethod
- def restore(cls):
+ def restore(cls) -> None:
vc._VCVER = cls._VCVER
class Config:
@@ -58,13 +58,13 @@ class Patch:
return hook
@classmethod
- def restore(cls):
+ def restore(cls) -> None:
Config.MSVC_VERSION_INTERNAL = cls.MSVC_VERSION_INTERNAL
class ConfigTests(unittest.TestCase):
- def test_vcver(self):
+ def test_vcver(self) -> None:
# all vc._VCVER in Config.MSVC_VERSION_SUFFIX
_VCVER = Patch.vc._VCVER.enable_copy()
_VCVER.append('99.9')
@@ -72,7 +72,7 @@ class ConfigTests(unittest.TestCase):
Config.verify()
Patch.vc._VCVER.restore()
- def test_msvc_version_internal(self):
+ def test_msvc_version_internal(self) -> None:
# all vc._VCVER numstr in Config.MSVC_VERSION_INTERNAL
MSVC_VERSION_INTERNAL = Patch.Config.MSVC_VERSION_INTERNAL.enable_copy()
del MSVC_VERSION_INTERNAL['14.3']
@@ -80,7 +80,7 @@ class ConfigTests(unittest.TestCase):
Config.verify()
Patch.Config.MSVC_VERSION_INTERNAL.restore()
- def test_verify(self):
+ def test_verify(self) -> None:
Config.verify()
diff --git a/SCons/Tool/MSCommon/MSVC/Dispatcher.py b/SCons/Tool/MSCommon/MSVC/Dispatcher.py
index 42b5287b0..31233a969 100644
--- a/SCons/Tool/MSCommon/MSVC/Dispatcher.py
+++ b/SCons/Tool/MSCommon/MSVC/Dispatcher.py
@@ -53,16 +53,16 @@ from ..common import (
_refs = []
-def register_modulename(modname):
+def register_modulename(modname) -> None:
module = sys.modules[modname]
_refs.append(module)
-def register_class(ref):
+def register_class(ref) -> None:
_refs.append(ref)
-def reset():
+def reset() -> None:
debug('')
for ref in _refs:
for method in ['reset', '_reset']:
@@ -73,7 +73,7 @@ def reset():
func()
-def verify():
+def verify() -> None:
debug('')
for ref in _refs:
for method in ['verify', '_verify']:
diff --git a/SCons/Tool/MSCommon/MSVC/DispatcherTests.py b/SCons/Tool/MSCommon/MSVC/DispatcherTests.py
index d6af8d464..61ea3f12f 100644
--- a/SCons/Tool/MSCommon/MSVC/DispatcherTests.py
+++ b/SCons/Tool/MSCommon/MSVC/DispatcherTests.py
@@ -46,37 +46,37 @@ verify = None
class StaticMethods:
@staticmethod
- def _reset():
+ def _reset() -> None:
Data.reset_count += 1
@staticmethod
- def reset():
+ def reset() -> None:
Data.reset_count += 1
@staticmethod
- def _verify():
+ def _verify() -> None:
Data.verify_count += 1
@staticmethod
- def verify():
+ def verify() -> None:
Data.verify_count += 1
class ClassMethods:
@classmethod
- def _reset(cls):
+ def _reset(cls) -> None:
Data.reset_count += 1
@classmethod
- def reset(cls):
+ def reset(cls) -> None:
Data.reset_count += 1
@classmethod
- def _verify(cls):
+ def _verify(cls) -> None:
Data.verify_count += 1
@classmethod
- def verify(cls):
+ def verify(cls) -> None:
Data.verify_count += 1
@@ -94,22 +94,22 @@ MSVC.Dispatcher.register_class(NotCallable)
class DispatcherTests(unittest.TestCase):
- def test_dispatcher_reset(self):
+ def test_dispatcher_reset(self) -> None:
MSVC.Dispatcher.reset()
self.assertTrue(Data.reset_count == 4, "MSVC.Dispatcher.reset() count failed")
Data.reset_count = 0
- def test_dispatcher_verify(self):
+ def test_dispatcher_verify(self) -> None:
MSVC.Dispatcher.verify()
self.assertTrue(Data.verify_count == 4, "MSVC.Dispatcher.verify() count failed")
Data.verify_count = 0
- def test_msvc_reset(self):
+ def test_msvc_reset(self) -> None:
MSVC._reset()
self.assertTrue(Data.reset_count == 4, "MSVC._reset() count failed")
Data.reset_count = 0
- def test_msvc_verify(self):
+ def test_msvc_verify(self) -> None:
MSVC._verify()
self.assertTrue(Data.verify_count == 4, "MSVC._verify() count failed")
Data.verify_count = 0
diff --git a/SCons/Tool/MSCommon/MSVC/PolicyTests.py b/SCons/Tool/MSCommon/MSVC/PolicyTests.py
index 013fd477d..a312d1191 100644
--- a/SCons/Tool/MSCommon/MSVC/PolicyTests.py
+++ b/SCons/Tool/MSCommon/MSVC/PolicyTests.py
@@ -43,22 +43,22 @@ from SCons.Tool.MSCommon.MSVC.Warnings import (
class PolicyTests(unittest.TestCase):
- def setUp(self):
+ def setUp(self) -> None:
self.warnstack = []
- def push_warning_as_exception(self, warning_class):
+ def push_warning_as_exception(self, warning_class) -> None:
SCons.Warnings.enableWarningClass(warning_class)
prev_state = SCons.Warnings.warningAsException()
self.warnstack.append((warning_class, prev_state))
- def pop_warning_as_exception(self):
+ def pop_warning_as_exception(self) -> None:
warning_class, prev_state = self.warnstack.pop()
SCons.Warnings.warningAsException(prev_state)
SCons.Warnings.suppressWarningClass(warning_class)
# msvc_set_notfound_policy, msvc_get_notfound_policy, and MSVC_NOTFOUND_POLICY
- def test_notfound_func_valid_symbols(self):
+ def test_notfound_func_valid_symbols(self) -> None:
def_policy = Policy.msvc_get_notfound_policy()
last_policy = def_policy
for notfound_def in Policy.MSVC_NOTFOUND_DEFINITION_LIST:
@@ -75,21 +75,21 @@ class PolicyTests(unittest.TestCase):
last_policy = cur_get_policy
Policy.msvc_set_notfound_policy(def_policy)
- def test_notfound_func_invalid_symbol(self):
+ def test_notfound_func_invalid_symbol(self) -> None:
with self.assertRaises(MSVCArgumentError):
Policy.msvc_set_notfound_policy('Undefined')
- def test_notfound_handler_invalid_symbol(self):
+ def test_notfound_handler_invalid_symbol(self) -> None:
with self.assertRaises(MSVCArgumentError):
Policy.msvc_notfound_handler({'MSVC_NOTFOUND_POLICY': 'Undefined'}, '')
- def test_notfound_handler_ignore(self):
+ def test_notfound_handler_ignore(self) -> None:
def_policy = Policy.msvc_set_notfound_policy('Ignore')
Policy.msvc_notfound_handler(None, '')
Policy.msvc_notfound_handler({'MSVC_NOTFOUND_POLICY': None}, '')
Policy.msvc_set_notfound_policy(def_policy)
- def test_notfound_handler_warning(self):
+ def test_notfound_handler_warning(self) -> None:
# treat warning as exception for testing
self.push_warning_as_exception(SCons.Warnings.VisualCMissingWarning)
def_policy = Policy.msvc_set_notfound_policy('Warning')
@@ -101,7 +101,7 @@ class PolicyTests(unittest.TestCase):
Policy.msvc_set_notfound_policy(def_policy)
self.pop_warning_as_exception()
- def test_notfound_handler_error(self):
+ def test_notfound_handler_error(self) -> None:
def_policy = Policy.msvc_set_notfound_policy('Error')
with self.assertRaises(MSVCVersionNotFound):
Policy.msvc_notfound_handler(None, '')
@@ -112,7 +112,7 @@ class PolicyTests(unittest.TestCase):
# msvc_set_scripterror_policy, msvc_get_scripterror_policy, and MSVC_SCRIPTERROR_POLICY
- def test_scripterror_func_valid_symbols(self):
+ def test_scripterror_func_valid_symbols(self) -> None:
def_policy = Policy.msvc_get_scripterror_policy()
last_policy = def_policy
for scripterror_def in Policy.MSVC_SCRIPTERROR_DEFINITION_LIST:
@@ -129,21 +129,21 @@ class PolicyTests(unittest.TestCase):
last_policy = cur_get_policy
Policy.msvc_set_scripterror_policy(def_policy)
- def test_scripterror_func_invalid_symbol(self):
+ def test_scripterror_func_invalid_symbol(self) -> None:
with self.assertRaises(MSVCArgumentError):
Policy.msvc_set_scripterror_policy('Undefined')
- def test_scripterror_handler_invalid_symbol(self):
+ def test_scripterror_handler_invalid_symbol(self) -> None:
with self.assertRaises(MSVCArgumentError):
Policy.msvc_scripterror_handler({'MSVC_SCRIPTERROR_POLICY': 'Undefined'}, '')
- def test_scripterror_handler_ignore(self):
+ def test_scripterror_handler_ignore(self) -> None:
def_policy = Policy.msvc_set_scripterror_policy('Ignore')
Policy.msvc_scripterror_handler(None, '')
Policy.msvc_scripterror_handler({'MSVC_SCRIPTERROR_POLICY': None}, '')
Policy.msvc_set_scripterror_policy(def_policy)
- def test_scripterror_handler_warning(self):
+ def test_scripterror_handler_warning(self) -> None:
# treat warning as exception for testing
self.push_warning_as_exception(MSVCScriptExecutionWarning)
def_policy = Policy.msvc_set_scripterror_policy('Warning')
@@ -155,7 +155,7 @@ class PolicyTests(unittest.TestCase):
Policy.msvc_set_scripterror_policy(def_policy)
self.pop_warning_as_exception()
- def test_scripterror_handler_error(self):
+ def test_scripterror_handler_error(self) -> None:
def_policy = Policy.msvc_set_scripterror_policy('Error')
with self.assertRaises(MSVCScriptExecutionError):
Policy.msvc_scripterror_handler(None, '')
diff --git a/SCons/Tool/MSCommon/MSVC/Registry.py b/SCons/Tool/MSCommon/MSVC/Registry.py
index 9519e1553..eee20ccbc 100644
--- a/SCons/Tool/MSCommon/MSVC/Registry.py
+++ b/SCons/Tool/MSCommon/MSVC/Registry.py
@@ -46,7 +46,7 @@ Dispatcher.register_modulename(__name__)
# A null-terminated string that contains unexpanded references to environment variables.
REG_EXPAND_SZ = 2
-def read_value(hkey, subkey_valname, expand=True):
+def read_value(hkey, subkey_valname, expand: bool=True):
try:
rval_t = RegGetValue(hkey, subkey_valname)
except OSError:
@@ -58,7 +58,7 @@ def read_value(hkey, subkey_valname, expand=True):
debug('hkey=%s, subkey=%s, rval=%s', repr(hkey), repr(subkey_valname), repr(rval))
return rval
-def registry_query_path(key, val, suffix, expand=True):
+def registry_query_path(key, val, suffix, expand: bool=True):
extval = val + '\\' + suffix if suffix else val
qpath = read_value(key, extval, expand=expand)
if qpath and os.path.exists(qpath):
@@ -74,7 +74,7 @@ REG_SOFTWARE_MICROSOFT = [
(HKEY_CURRENT_USER, r'Software\Microsoft'),
]
-def microsoft_query_paths(suffix, usrval=None, expand=True):
+def microsoft_query_paths(suffix, usrval=None, expand: bool=True):
paths = []
records = []
for key, val in REG_SOFTWARE_MICROSOFT:
@@ -87,7 +87,7 @@ def microsoft_query_paths(suffix, usrval=None, expand=True):
records.append((qpath, key, val, extval, usrval))
return records
-def microsoft_query_keys(suffix, usrval=None, expand=True):
+def microsoft_query_keys(suffix, usrval=None, expand: bool=True):
records = []
for key, val in REG_SOFTWARE_MICROSOFT:
extval = val + '\\' + suffix if suffix else val
diff --git a/SCons/Tool/MSCommon/MSVC/RegistryTests.py b/SCons/Tool/MSCommon/MSVC/RegistryTests.py
index aff3b3f99..9c9ef89a0 100644
--- a/SCons/Tool/MSCommon/MSVC/RegistryTests.py
+++ b/SCons/Tool/MSCommon/MSVC/RegistryTests.py
@@ -37,7 +37,7 @@ class RegistryTests(unittest.TestCase):
_sdk_versions = None
@classmethod
- def setUpClass(cls):
+ def setUpClass(cls) -> None:
cls._sdk_versions = []
sdk_seen = set()
for vs_def in Config.VISUALSTUDIO_DEFINITION_LIST:
@@ -49,24 +49,24 @@ class RegistryTests(unittest.TestCase):
sdk_seen.add(sdk_version)
cls._sdk_versions.append(sdk_version)
- def setUp(self):
+ def setUp(self) -> None:
self.sdk_versions = self.__class__._sdk_versions
- def test_sdk_query_paths(self):
+ def test_sdk_query_paths(self) -> None:
for sdk_version in self.sdk_versions:
_ = Registry.sdk_query_paths(sdk_version)
- def test_vstudio_sxs_vc7(self):
+ def test_vstudio_sxs_vc7(self) -> None:
suffix = Registry.vstudio_sxs_vc7('14.0')
_ = Registry.microsoft_query_paths(suffix)
- def test_microsoft_query_keys(self):
+ def test_microsoft_query_keys(self) -> None:
val = r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
for suffix in ['Temp', 'Tmp']:
_ = Registry.registry_query_path(Registry.HKEY_LOCAL_MACHINE, val, suffix, expand=True)
_ = Registry.registry_query_path(Registry.HKEY_LOCAL_MACHINE, val, suffix, expand=False)
- def test_registry_query_path(self):
+ def test_registry_query_path(self) -> None:
# need a better test for when VS2015 is no longer installed
for component_reg in ('enterprise', 'professional', 'community'):
suffix = Registry.devdiv_vs_servicing_component('14.0', component_reg)
@@ -74,7 +74,7 @@ class RegistryTests(unittest.TestCase):
if not rval:
continue
- def test_windows_kit_query_paths(self):
+ def test_windows_kit_query_paths(self) -> None:
for sdk_version in self.sdk_versions:
_ = Registry.windows_kit_query_paths(sdk_version)
diff --git a/SCons/Tool/MSCommon/MSVC/ScriptArguments.py b/SCons/Tool/MSCommon/MSVC/ScriptArguments.py
index 57dbf9d3f..a5ceb332f 100644
--- a/SCons/Tool/MSCommon/MSVC/ScriptArguments.py
+++ b/SCons/Tool/MSCommon/MSVC/ScriptArguments.py
@@ -107,12 +107,12 @@ _MSVC_FORCE_DEFAULT_TOOLSET = False
# Force default arguments
_MSVC_FORCE_DEFAULT_ARGUMENTS = False
-def _msvc_force_default_sdk(force=True):
+def _msvc_force_default_sdk(force: bool=True) -> None:
global _MSVC_FORCE_DEFAULT_SDK
_MSVC_FORCE_DEFAULT_SDK = force
debug('_MSVC_FORCE_DEFAULT_SDK=%s', repr(force))
-def _msvc_force_default_toolset(force=True):
+def _msvc_force_default_toolset(force: bool=True) -> None:
global _MSVC_FORCE_DEFAULT_TOOLSET
_MSVC_FORCE_DEFAULT_TOOLSET = force
debug('_MSVC_FORCE_DEFAULT_TOOLSET=%s', repr(force))
@@ -227,7 +227,7 @@ def _msvc_script_argument_uwp(env, msvc, arglist):
return uwp_arg
-def _user_script_argument_uwp(env, uwp, user_argstr):
+def _user_script_argument_uwp(env, uwp, user_argstr) -> bool:
matches = [m for m in re_vcvars_uwp.finditer(user_argstr)]
if not matches:
@@ -331,7 +331,7 @@ def _msvc_script_argument_sdk(env, msvc, toolset, platform_def, arglist):
return sdk_version
-def _msvc_script_default_sdk(env, msvc, platform_def, arglist, force_sdk=False):
+def _msvc_script_default_sdk(env, msvc, platform_def, arglist, force_sdk: bool=False):
if msvc.vs_def.vc_buildtools_def.vc_version_numeric < VS2015.vc_buildtools_def.vc_version_numeric:
return None
@@ -390,7 +390,7 @@ def _msvc_have140_toolset():
return _toolset_have140_cache
-def _reset_have140_cache():
+def _reset_have140_cache() -> None:
global _toolset_have140_cache
debug('reset: cache')
_toolset_have140_cache = None
@@ -520,7 +520,7 @@ def _msvc_read_toolset_default(msvc, vc_dir):
_toolset_version_cache = {}
_toolset_default_cache = {}
-def _reset_toolset_cache():
+def _reset_toolset_cache() -> None:
global _toolset_version_cache
global _toolset_default_cache
debug('reset: toolset cache')
@@ -686,7 +686,7 @@ def _msvc_script_argument_toolset(env, msvc, vc_dir, arglist):
return toolset_vcvars
-def _msvc_script_default_toolset(env, msvc, vc_dir, arglist, force_toolset=False):
+def _msvc_script_default_toolset(env, msvc, vc_dir, arglist, force_toolset: bool=False):
if msvc.vs_def.vc_buildtools_def.vc_version_numeric < VS2017.vc_buildtools_def.vc_version_numeric:
return None
@@ -853,7 +853,7 @@ def _msvc_script_argument_user(env, msvc, arglist):
return script_args
-def _msvc_process_construction_variables(env):
+def _msvc_process_construction_variables(env) -> bool:
for cache_variable in [
_MSVC_FORCE_DEFAULT_TOOLSET,
@@ -982,7 +982,7 @@ def _msvc_toolset_internal(msvc_version, toolset_version, vc_dir):
return toolset_vcvars
-def _msvc_toolset_versions_internal(msvc_version, vc_dir, full=True, sxs=False):
+def _msvc_toolset_versions_internal(msvc_version, vc_dir, full: bool=True, sxs: bool=False):
msvc = _msvc_version(msvc_version)
@@ -1020,12 +1020,12 @@ def _msvc_toolset_versions_spectre_internal(msvc_version, vc_dir):
return spectre_toolset_versions
-def reset():
+def reset() -> None:
debug('')
_reset_have140_cache()
_reset_toolset_cache()
-def verify():
+def verify() -> None:
debug('')
_verify_re_sdk_dispatch_map()
diff --git a/SCons/Tool/MSCommon/MSVC/ScriptArgumentsTests.py b/SCons/Tool/MSCommon/MSVC/ScriptArgumentsTests.py
index 441325653..670576b04 100644
--- a/SCons/Tool/MSCommon/MSVC/ScriptArgumentsTests.py
+++ b/SCons/Tool/MSCommon/MSVC/ScriptArgumentsTests.py
@@ -147,13 +147,13 @@ class Data:
)
@classmethod
- def msvc_sdk_version_list_components(cls, msvc_version, msvc_uwp_app=False):
+ def msvc_sdk_version_list_components(cls, msvc_version, msvc_uwp_app: bool=False):
comps_dict = cls.SDK_VERSIONS_COMPS_DICT.get(msvc_version, {})
comps_list = comps_dict.get(msvc_uwp_app, [])
return comps_list
@classmethod
- def msvc_sdk_version(cls, msvc_version, msvc_uwp_app=False):
+ def msvc_sdk_version(cls, msvc_version, msvc_uwp_app: bool=False):
comps_dict = cls.SDK_VERSIONS_COMPS_DICT.get(msvc_version, {})
comps_list = comps_dict.get(msvc_uwp_app, [])
if not comps_list:
@@ -163,7 +163,7 @@ class Data:
return sdk_version
@classmethod
- def msvc_sdk_notfound_version(cls, msvc_version, msvc_uwp_app=False):
+ def msvc_sdk_notfound_version(cls, msvc_version, msvc_uwp_app: bool=False):
notfound_dict = cls.SDK_VERSIONS_NOTFOUND_DICT.get(msvc_version, {})
notfound_list = notfound_dict.get(msvc_uwp_app, [])
if not notfound_list:
@@ -201,19 +201,19 @@ class Patch:
return hook
@classmethod
- def restore(cls):
+ def restore(cls) -> None:
Config.MSVC_SDK_VERSIONS = cls.MSVC_SDK_VERSIONS
class ScriptArgumentsTests(unittest.TestCase):
- def test_verify(self):
+ def test_verify(self) -> None:
MSVC_SDK_VERSIONS = Patch.Config.MSVC_SDK_VERSIONS.enable_copy()
MSVC_SDK_VERSIONS.add('99.0')
with self.assertRaises(MSVCInternalError):
ScriptArguments.verify()
Patch.Config.MSVC_SDK_VERSIONS.restore()
- def test_msvc_script_arguments_defaults(self):
+ def test_msvc_script_arguments_defaults(self) -> None:
func = ScriptArguments.msvc_script_arguments
env = Environment()
# disable forcing sdk and toolset versions as arguments
@@ -244,7 +244,7 @@ class ScriptArgumentsTests(unittest.TestCase):
# restore forcing sdk and toolset versions as arguments
ScriptArguments.msvc_force_default_arguments(force=force)
- def test_msvc_toolset_versions_internal(self):
+ def test_msvc_toolset_versions_internal(self) -> None:
func = ScriptArguments._msvc_toolset_versions_internal
for version_def, vc_dir in Data.INSTALLED_VERSIONS_PAIRS:
for full in (True, False):
@@ -267,7 +267,7 @@ class ScriptArgumentsTests(unittest.TestCase):
func.__name__, repr(version_def.msvc_version), repr(vc_dir), repr(full), repr(sxs)
))
- def test_msvc_toolset_internal(self):
+ def test_msvc_toolset_internal(self) -> None:
if not Data.HAVE_MSVC:
return
func = ScriptArguments._msvc_toolset_internal
@@ -278,7 +278,7 @@ class ScriptArgumentsTests(unittest.TestCase):
for toolset_version in toolset_versions:
_ = func(version_def.msvc_version, toolset_version, vc_dir)
- def run_msvc_script_args_none(self):
+ def run_msvc_script_args_none(self) -> None:
func = ScriptArguments.msvc_script_arguments
for version_def, vc_dir in Data.INSTALLED_VERSIONS_PAIRS:
for kwargs in [
@@ -291,7 +291,7 @@ class ScriptArgumentsTests(unittest.TestCase):
env = Environment(**kwargs)
_ = func(env, version_def.msvc_version, vc_dir, '')
- def run_msvc_script_args(self):
+ def run_msvc_script_args(self) -> None:
func = ScriptArguments.msvc_script_arguments
for version_def, vc_dir in Data.INSTALLED_VERSIONS_PAIRS:
if version_def.msvc_vernum >= 14.1:
@@ -565,7 +565,7 @@ class ScriptArgumentsTests(unittest.TestCase):
with self.assertRaises(MSVCArgumentError):
_ = func(env, version_def.msvc_version, vc_dir, '')
- def test_msvc_script_args_none(self):
+ def test_msvc_script_args_none(self) -> None:
force = ScriptArguments.msvc_force_default_arguments(force=False)
self.run_msvc_script_args_none()
if Data.HAVE_MSVC:
@@ -573,14 +573,14 @@ class ScriptArgumentsTests(unittest.TestCase):
self.run_msvc_script_args_none()
ScriptArguments.msvc_force_default_arguments(force=force)
- def test_msvc_script_args(self):
+ def test_msvc_script_args(self) -> None:
force = ScriptArguments.msvc_force_default_arguments(force=False)
self.run_msvc_script_args()
ScriptArguments.msvc_force_default_arguments(force=True)
self.run_msvc_script_args()
ScriptArguments.msvc_force_default_arguments(force=force)
- def test_reset(self):
+ def test_reset(self) -> None:
ScriptArguments.reset()
self.assertTrue(ScriptArguments._toolset_have140_cache is None, "ScriptArguments._toolset_have140_cache was not reset")
self.assertFalse(ScriptArguments._toolset_version_cache, "ScriptArguments._toolset_version_cache was not reset")
diff --git a/SCons/Tool/MSCommon/MSVC/SetupEnvDefault.py b/SCons/Tool/MSCommon/MSVC/SetupEnvDefault.py
index e1c05bc1b..34e60ab19 100644
--- a/SCons/Tool/MSCommon/MSVC/SetupEnvDefault.py
+++ b/SCons/Tool/MSCommon/MSVC/SetupEnvDefault.py
@@ -54,7 +54,7 @@ class _Data:
need_init = True
@classmethod
- def reset(cls):
+ def reset(cls) -> None:
debug('msvc default:init')
cls.n_setup = 0 # number of calls to msvc_setup_env_once
cls.default_ismsvc = False # is msvc the default compiler
@@ -65,7 +65,7 @@ class _Data:
cls.msvc_nodefault = False # is there a default version of msvc
cls.need_init = True # reset initialization indicator
-def _initialize(env, msvc_exists_func):
+def _initialize(env, msvc_exists_func) -> None:
if _Data.need_init:
_Data.reset()
_Data.need_init = False
@@ -88,7 +88,7 @@ def register_tool(env, tool, msvc_exists_func):
_Data.msvc_tools.add(tool)
debug('msvc default:tool=%s, msvc_tools=%s', tool, _Data.msvc_tools)
-def register_setup(env, msvc_exists_func):
+def register_setup(env, msvc_exists_func) -> None:
if _Data.need_init:
_initialize(env, msvc_exists_func)
_Data.n_setup += 1
@@ -106,7 +106,7 @@ def register_setup(env, msvc_exists_func):
_Data.n_setup, _Data.msvc_installed, _Data.default_ismsvc
)
-def set_nodefault():
+def set_nodefault() -> None:
# default msvc version, msvc not installed
_Data.msvc_nodefault = True
debug('msvc default:msvc_nodefault=%s', _Data.msvc_nodefault)
@@ -227,7 +227,7 @@ def register_iserror(env, tool, msvc_exists_func):
# return tool list in order presented
return tools_found_list
-def reset():
+def reset() -> None:
debug('')
_Data.reset()
diff --git a/SCons/Tool/MSCommon/MSVC/UtilTests.py b/SCons/Tool/MSCommon/MSVC/UtilTests.py
index 5e14d506d..36e08f5eb 100644
--- a/SCons/Tool/MSCommon/MSVC/UtilTests.py
+++ b/SCons/Tool/MSCommon/MSVC/UtilTests.py
@@ -39,7 +39,7 @@ class Data:
class UtilTests(unittest.TestCase):
- def test_listdir_dirs(self):
+ def test_listdir_dirs(self) -> None:
func = Util.listdir_dirs
for dirname, expect in [
(None, False), ('', False), ('doesnotexist.xyz.abc', False),
@@ -50,7 +50,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(dirname), 'list is empty' if expect else 'list is not empty'
))
- def test_process_path(self):
+ def test_process_path(self) -> None:
func = Util.process_path
for p, expect in [
(None, True), ('', True),
@@ -61,7 +61,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(p), repr(rval)
))
- def test_get_version_prefix(self):
+ def test_get_version_prefix(self) -> None:
func = Util.get_version_prefix
for version, expect in [
(None, ''), ('', ''),
@@ -76,7 +76,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(version), repr(prefix), repr(expect)
))
- def test_get_msvc_version_prefix(self):
+ def test_get_msvc_version_prefix(self) -> None:
func = Util.get_msvc_version_prefix
for version, expect in [
(None, ''), ('', ''),
@@ -91,7 +91,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(version), repr(prefix), repr(expect)
))
- def test_is_toolset_full(self):
+ def test_is_toolset_full(self) -> None:
func = Util.is_toolset_full
for toolset, expect in [
(None, False), ('', False),
@@ -103,7 +103,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(toolset), repr(rval)
))
- def test_is_toolset_140(self):
+ def test_is_toolset_140(self) -> None:
func = Util.is_toolset_140
for toolset, expect in [
(None, False), ('', False),
@@ -115,7 +115,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(toolset), repr(rval)
))
- def test_is_toolset_sxs(self):
+ def test_is_toolset_sxs(self) -> None:
func = Util.is_toolset_sxs
for toolset, expect in [
(None, False), ('', False),
@@ -127,7 +127,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(toolset), repr(rval)
))
- def test_msvc_version_components(self):
+ def test_msvc_version_components(self) -> None:
func = Util.msvc_version_components
for vcver, expect in [
(None, False), ('', False), ('ABC', False), ('14', False), ('14.1.', False), ('14.16', False),
@@ -145,7 +145,7 @@ class UtilTests(unittest.TestCase):
func.__name__, repr(vcver)
))
- def test_msvc_extended_version_components(self):
+ def test_msvc_extended_version_components(self) -> None:
func = Util.msvc_extended_version_components
# normal code paths
for vcver, expect in [
@@ -184,7 +184,7 @@ class UtilTests(unittest.TestCase):
))
Util.re_extended_version = save_re
- def test_msvc_sdk_version_components(self):
+ def test_msvc_sdk_version_components(self) -> None:
func = Util.msvc_sdk_version_components
for vcver, expect in [
(None, False), ('', False), ('ABC', False), ('14', False), ('14.1.', False), ('14.16', False),
diff --git a/SCons/Tool/MSCommon/MSVC/WinSDK.py b/SCons/Tool/MSCommon/MSVC/WinSDK.py
index 6d18d0730..a5a48c465 100644
--- a/SCons/Tool/MSCommon/MSVC/WinSDK.py
+++ b/SCons/Tool/MSCommon/MSVC/WinSDK.py
@@ -154,7 +154,7 @@ def _sdk_81_layout(version):
_sdk_map_cache = {}
_sdk_cache = {}
-def _reset_sdk_cache():
+def _reset_sdk_cache() -> None:
global _sdk_map_cache
global _sdk_cache
debug('')
@@ -220,7 +220,7 @@ def _sdk_map(version_list):
_sdk_cache[key] = sdk_map
return sdk_map
-def get_msvc_platform(is_uwp=False):
+def get_msvc_platform(is_uwp: bool=False):
platform_def = _UWP if is_uwp else _DESKTOP
return platform_def
@@ -230,7 +230,7 @@ def get_sdk_version_list(vs_def, platform_def):
sdk_list = sdk_map.get(platform_def.vc_platform, [])
return sdk_list
-def get_msvc_sdk_version_list(msvc_version, msvc_uwp_app=False):
+def get_msvc_sdk_version_list(msvc_version, msvc_uwp_app: bool=False):
debug('msvc_version=%s, msvc_uwp_app=%s', repr(msvc_version), repr(msvc_uwp_app))
sdk_versions = []
@@ -254,11 +254,11 @@ def get_msvc_sdk_version_list(msvc_version, msvc_uwp_app=False):
return sdk_versions
-def reset():
+def reset() -> None:
debug('')
_reset_sdk_cache()
-def verify():
+def verify() -> None:
debug('')
_verify_sdk_dispatch_map()
diff --git a/SCons/Tool/MSCommon/MSVC/WinSDKTests.py b/SCons/Tool/MSCommon/MSVC/WinSDKTests.py
index 2a40e9a68..10e68f3d6 100644
--- a/SCons/Tool/MSCommon/MSVC/WinSDKTests.py
+++ b/SCons/Tool/MSCommon/MSVC/WinSDKTests.py
@@ -47,7 +47,7 @@ class Patch:
return hook
@classmethod
- def restore(cls):
+ def restore(cls) -> None:
Config.MSVC_SDK_VERSIONS = cls.MSVC_SDK_VERSIONS
class Registry:
@@ -69,54 +69,54 @@ class Patch:
return hook
@classmethod
- def restore(cls):
+ def restore(cls) -> None:
Registry.sdk_query_paths = cls.sdk_query_paths
class WinSDKTests(unittest.TestCase):
@classmethod
- def setUpClass(cls):
+ def setUpClass(cls) -> None:
Patch.Registry.sdk_query_paths.enable_duplicate()
@classmethod
- def tearDownClass(cls):
+ def tearDownClass(cls) -> None:
Patch.Registry.sdk_query_paths.restore()
- def test_verify(self):
+ def test_verify(self) -> None:
MSVC_SDK_VERSIONS = Patch.Config.MSVC_SDK_VERSIONS.enable_copy()
MSVC_SDK_VERSIONS.add('99.0')
with self.assertRaises(MSVCInternalError):
WinSDK.verify()
Patch.Config.MSVC_SDK_VERSIONS.restore()
- def _run_reset(self):
+ def _run_reset(self) -> None:
WinSDK.reset()
self.assertFalse(WinSDK._sdk_map_cache, "WinSDK._sdk_map_cache was not reset")
self.assertFalse(WinSDK._sdk_cache, "WinSDK._sdk_cache was not reset")
- def _run_get_msvc_sdk_version_list(self):
+ def _run_get_msvc_sdk_version_list(self) -> None:
for vcver in Config.MSVC_VERSION_SUFFIX.keys():
for msvc_uwp_app in (True, False):
_ = WinSDK.get_msvc_sdk_version_list(vcver, msvc_uwp_app=msvc_uwp_app)
- def _run_version_list_sdk_map(self):
+ def _run_version_list_sdk_map(self) -> None:
for vcver in Config.MSVC_VERSION_SUFFIX.keys():
vs_def = Config.MSVC_VERSION_SUFFIX.get(vcver)
if not vs_def.vc_sdk_versions:
continue
_ = WinSDK._version_list_sdk_map(vs_def.vc_sdk_versions)
- def test_version_list_sdk_map(self):
+ def test_version_list_sdk_map(self) -> None:
self._run_version_list_sdk_map()
self._run_version_list_sdk_map()
self.assertTrue(WinSDK._sdk_map_cache, "WinSDK._sdk_map_cache is empty")
- def test_get_msvc_sdk_version_list(self):
+ def test_get_msvc_sdk_version_list(self) -> None:
self._run_get_msvc_sdk_version_list()
self._run_get_msvc_sdk_version_list()
self.assertTrue(WinSDK._sdk_cache, "WinSDK._sdk_cache is empty")
- def test_get_msvc_sdk_version_list_empty(self):
+ def test_get_msvc_sdk_version_list_empty(self) -> None:
func = WinSDK.get_msvc_sdk_version_list
for vcver in [None, '', '99', '99.9']:
sdk_versions = func(vcver)
@@ -124,7 +124,7 @@ class WinSDKTests(unittest.TestCase):
func.__name__, repr(vcver)
))
- def test_reset(self):
+ def test_reset(self) -> None:
self._run_reset()
if __name__ == "__main__":
diff --git a/SCons/Tool/MSCommon/MSVC/__init__.py b/SCons/Tool/MSCommon/MSVC/__init__.py
index 849c82d14..766894d9b 100644
--- a/SCons/Tool/MSCommon/MSVC/__init__.py
+++ b/SCons/Tool/MSCommon/MSVC/__init__.py
@@ -47,9 +47,9 @@ from . import ScriptArguments # noqa: F401
from . import Dispatcher as _Dispatcher
-def _reset():
+def _reset() -> None:
_Dispatcher.reset()
-def _verify():
+def _verify() -> None:
_Dispatcher.verify()
diff --git a/SCons/Tool/MSCommon/arch.py b/SCons/Tool/MSCommon/arch.py
index 6648bb6b6..e52687369 100644
--- a/SCons/Tool/MSCommon/arch.py
+++ b/SCons/Tool/MSCommon/arch.py
@@ -30,7 +30,7 @@ class ArchDefinition:
"""
A class for defining architecture-specific settings and logic.
"""
- def __init__(self, arch, synonyms=[]):
+ def __init__(self, arch, synonyms=[]) -> None:
self.arch = arch
self.synonyms = synonyms
diff --git a/SCons/Tool/MSCommon/common.py b/SCons/Tool/MSCommon/common.py
index ad4c827d3..185ccdf53 100644
--- a/SCons/Tool/MSCommon/common.py
+++ b/SCons/Tool/MSCommon/common.py
@@ -68,7 +68,7 @@ if LOGFILE:
class _Debug_Filter(logging.Filter):
# custom filter for module relative filename
- def filter(self, record):
+ def filter(self, record) -> bool:
relfilename = get_relative_filename(record.pathname, modulelist)
relfilename = relfilename.replace('\\', '/')
record.relfilename = relfilename
@@ -138,7 +138,7 @@ def read_script_env_cache():
return envcache
-def write_script_env_cache(cache):
+def write_script_env_cache(cache) -> None:
""" write out cache of msvc env vars if requested """
if CONFIG_CACHE:
try:
@@ -209,7 +209,7 @@ def has_reg(value):
# Functions for fetching environment variable settings from batch files.
-def normalize_env(env, keys, force=False):
+def normalize_env(env, keys, force: bool=False):
"""Given a dictionary representing a shell environment, add the variables
from os.environ needed for the processing of .bat files; the keys are
controlled by the keys argument.
@@ -369,7 +369,7 @@ def parse_output(output, keep=KEEPLIST):
for i in keep:
rdk[i] = re.compile('%s=(.*)' % i, re.I)
- def add_env(rmatch, key, dkeep=dkeep):
+ def add_env(rmatch, key, dkeep=dkeep) -> None:
path_list = rmatch.group(1).split(os.pathsep)
for path in path_list:
# Do not add empty paths (when a var ends with ;)
diff --git a/SCons/Tool/MSCommon/sdk.py b/SCons/Tool/MSCommon/sdk.py
index aa94f4d65..fd0892c8f 100644
--- a/SCons/Tool/MSCommon/sdk.py
+++ b/SCons/Tool/MSCommon/sdk.py
@@ -59,7 +59,7 @@ class SDKDefinition:
"""
An abstract base class for trying to find installed SDK directories.
"""
- def __init__(self, version, **kw):
+ def __init__(self, version, **kw) -> None:
self.version = version
self.__dict__.update(kw)
@@ -130,7 +130,7 @@ class WindowsSDK(SDKDefinition):
A subclass for trying to find installed Windows SDK directories.
"""
HKEY_FMT = r'Software\Microsoft\Microsoft SDKs\Windows\v%s\InstallationFolder'
- def __init__(self, *args, **kw):
+ def __init__(self, *args, **kw) -> None:
super().__init__(*args, **kw)
self.hkey_data = self.version
@@ -139,7 +139,7 @@ class PlatformSDK(SDKDefinition):
A subclass for trying to find installed Platform SDK directories.
"""
HKEY_FMT = r'Software\Microsoft\MicrosoftSDK\InstalledSDKS\%s\Install Dir'
- def __init__(self, *args, **kw):
+ def __init__(self, *args, **kw) -> None:
super().__init__(*args, **kw)
self.hkey_data = self.uuid
@@ -306,7 +306,7 @@ def get_installed_sdks():
SDKEnvironmentUpdates = {}
-def set_sdk_by_directory(env, sdk_dir):
+def set_sdk_by_directory(env, sdk_dir) -> None:
global SDKEnvironmentUpdates
debug('set_sdk_by_directory: Using dir:%s', sdk_dir)
try:
diff --git a/SCons/Tool/MSCommon/vc.py b/SCons/Tool/MSCommon/vc.py
index 787194062..1dc6b8d11 100644
--- a/SCons/Tool/MSCommon/vc.py
+++ b/SCons/Tool/MSCommon/vc.py
@@ -455,7 +455,7 @@ def get_native_host_platform():
return _native_host_platform
-def get_host_target(env, msvc_version, all_host_targets=False):
+def get_host_target(env, msvc_version, all_host_targets: bool=False):
vernum = float(get_msvc_version_numeric(msvc_version))
@@ -823,7 +823,7 @@ __INSTALLED_VCS_RUN = None
_VC_TOOLS_VERSION_FILE_PATH = ['Auxiliary', 'Build', 'Microsoft.VCToolsVersion.default.txt']
_VC_TOOLS_VERSION_FILE = os.sep.join(_VC_TOOLS_VERSION_FILE_PATH)
-def _check_cl_exists_in_vc_dir(env, vc_dir, msvc_version):
+def _check_cl_exists_in_vc_dir(env, vc_dir, msvc_version) -> bool:
"""Return status of finding a cl.exe to use.
Locates cl in the vc_dir depending on TARGET_ARCH, HOST_ARCH and the
@@ -963,7 +963,7 @@ def get_installed_vcs(env=None):
__INSTALLED_VCS_RUN = installed_versions
return __INSTALLED_VCS_RUN
-def reset_installed_vcs():
+def reset_installed_vcs() -> None:
"""Make it try again to find VC. This is just for the tests."""
global __INSTALLED_VCS_RUN
__INSTALLED_VCS_RUN = None
@@ -1099,7 +1099,7 @@ def get_default_version(env):
return msvc_version
-def msvc_setup_env_once(env, tool=None):
+def msvc_setup_env_once(env, tool=None) -> None:
try:
has_run = env["MSVC_SETUP_RUN"]
except KeyError:
@@ -1340,7 +1340,7 @@ def msvc_setup_env_tool(env=None, version=None, tool=None):
rval = True
return rval
-def msvc_sdk_versions(version=None, msvc_uwp_app=False):
+def msvc_sdk_versions(version=None, msvc_uwp_app: bool=False):
debug('version=%s, msvc_uwp_app=%s', repr(version), repr(msvc_uwp_app))
rval = []
@@ -1360,7 +1360,7 @@ def msvc_sdk_versions(version=None, msvc_uwp_app=False):
rval = MSVC.WinSDK.get_msvc_sdk_version_list(version, msvc_uwp_app)
return rval
-def msvc_toolset_versions(msvc_version=None, full=True, sxs=False):
+def msvc_toolset_versions(msvc_version=None, full: bool=True, sxs: bool=False):
debug('msvc_version=%s, full=%s, sxs=%s', repr(msvc_version), repr(full), repr(sxs))
env = None
@@ -1410,7 +1410,7 @@ def msvc_toolset_versions_spectre(msvc_version=None):
rval = MSVC.ScriptArguments._msvc_toolset_versions_spectre_internal(msvc_version, vc_dir)
return rval
-def msvc_query_version_toolset(version=None, prefer_newest=True):
+def msvc_query_version_toolset(version=None, prefer_newest: bool=True):
"""
Returns an msvc version and a toolset version given a version
specification.
diff --git a/SCons/Tool/MSCommon/vcTests.py b/SCons/Tool/MSCommon/vcTests.py
index 3e37def2e..c4cf2af69 100644
--- a/SCons/Tool/MSCommon/vcTests.py
+++ b/SCons/Tool/MSCommon/vcTests.py
@@ -47,12 +47,12 @@ MS_TOOLS_VERSION = '1.1.1'
class VswhereTestCase(unittest.TestCase):
@staticmethod
- def _createVSWhere(path):
+ def _createVSWhere(path) -> None:
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, 'w') as f:
f.write("Created:%s" % f)
- def testDefaults(self):
+ def testDefaults(self) -> None:
"""
Verify that msvc_find_vswhere() find's files in the specified paths
"""
@@ -75,7 +75,7 @@ class VswhereTestCase(unittest.TestCase):
class MSVcTestCase(unittest.TestCase):
@staticmethod
- def _createDummyCl(path, add_bin=True):
+ def _createDummyCl(path, add_bin: bool=True) -> None:
"""
Creates a dummy cl.exe in the correct directory.
It will create all missing parent directories as well
@@ -101,7 +101,7 @@ class MSVcTestCase(unittest.TestCase):
ct.write('created')
- def runTest(self):
+ def runTest(self) -> None:
"""
Check that all proper HOST_PLATFORM and TARGET_PLATFORM are handled.
Verify that improper HOST_PLATFORM and/or TARGET_PLATFORM are properly handled.
@@ -307,13 +307,13 @@ class Patch:
return hook
@classmethod
- def restore(cls):
+ def restore(cls) -> None:
MSCommon.vc.msvc_default_version = cls.msvc_default_version
class MsvcSdkVersionsTests(unittest.TestCase):
"""Test msvc_sdk_versions"""
- def run_valid_default_msvc(self):
+ def run_valid_default_msvc(self) -> None:
symbol = MSCommon.vc.msvc_default_version()
version_def = MSCommon.msvc_version_components(symbol)
for msvc_uwp_app in (True, False):
@@ -323,14 +323,14 @@ class MsvcSdkVersionsTests(unittest.TestCase):
else:
self.assertFalse(sdk_list, "SDK list is not empty for msvc version {}".format(repr(None)))
- def test_valid_default_msvc(self):
+ def test_valid_default_msvc(self) -> None:
if Data.HAVE_MSVC:
Patch.MSCommon.vc.msvc_default_version.enable_none()
self.run_valid_default_msvc()
Patch.MSCommon.vc.msvc_default_version.restore()
self.run_valid_default_msvc()
- def test_valid_vcver(self):
+ def test_valid_vcver(self) -> None:
for symbol in MSCommon.vc._VCVER:
version_def = MSCommon.msvc_version_components(symbol)
for msvc_uwp_app in (True, False):
@@ -340,7 +340,7 @@ class MsvcSdkVersionsTests(unittest.TestCase):
else:
self.assertFalse(sdk_list, "SDK list is not empty for msvc version {}".format(repr(symbol)))
- def test_valid_vcver_toolsets(self):
+ def test_valid_vcver_toolsets(self) -> None:
for symbol in MSCommon.vc._VCVER:
toolset_list = MSCommon.vc.msvc_toolset_versions(msvc_version=symbol, full=True, sxs=True)
if toolset_list is None:
@@ -354,13 +354,13 @@ class MsvcSdkVersionsTests(unittest.TestCase):
)
self.assertTrue(sdk_list, "SDK list is empty for msvc toolset version {}".format(repr(toolset)))
- def test_invalid_vcver(self):
+ def test_invalid_vcver(self) -> None:
for symbol in ['6.0Exp', '14.3Exp', '99', '14.1Bug']:
for msvc_uwp_app in (True, False):
with self.assertRaises(MSCommon.vc.MSVCArgumentError):
_ = MSCommon.vc.msvc_sdk_versions(version=symbol, msvc_uwp_app=msvc_uwp_app)
- def test_invalid_vcver_toolsets(self):
+ def test_invalid_vcver_toolsets(self) -> None:
for symbol in ['14.31.123456', '14.31.1.1']:
for msvc_uwp_app in (True, False):
with self.assertRaises(MSCommon.vc.MSVCArgumentError):
@@ -369,7 +369,7 @@ class MsvcSdkVersionsTests(unittest.TestCase):
class MsvcToolsetVersionsTests(unittest.TestCase):
"""Test msvc_toolset_versions"""
- def run_valid_default_msvc(self):
+ def run_valid_default_msvc(self) -> None:
symbol = MSCommon.vc.msvc_default_version()
version_def = MSCommon.msvc_version_components(symbol)
toolset_none_list = MSCommon.vc.msvc_toolset_versions(msvc_version=None, full=False, sxs=False)
@@ -386,14 +386,14 @@ class MsvcToolsetVersionsTests(unittest.TestCase):
self.assertFalse(toolset_all_list, "Toolset all list is not empty for msvc version {}".format(repr(None)))
self.assertFalse(toolset_none_list, "Toolset none list is not empty for msvc version {}".format(repr(None)))
- def test_valid_default_msvc(self):
+ def test_valid_default_msvc(self) -> None:
if Data.HAVE_MSVC:
Patch.MSCommon.vc.msvc_default_version.enable_none()
self.run_valid_default_msvc()
Patch.MSCommon.vc.msvc_default_version.restore()
self.run_valid_default_msvc()
- def test_valid_vcver(self):
+ def test_valid_vcver(self) -> None:
for symbol in MSCommon.vc._VCVER:
version_def = MSCommon.msvc_version_components(symbol)
toolset_none_list = MSCommon.vc.msvc_toolset_versions(msvc_version=symbol, full=False, sxs=False)
@@ -410,14 +410,14 @@ class MsvcToolsetVersionsTests(unittest.TestCase):
self.assertFalse(toolset_all_list, "Toolset all list is not empty for msvc version {}".format(repr(symbol)))
self.assertFalse(toolset_none_list, "Toolset none list is not empty for msvc version {}".format(repr(symbol)))
- def test_invalid_vcver(self):
+ def test_invalid_vcver(self) -> None:
for symbol in ['12.9', '6.0Exp', '14.3Exp', '99', '14.1Bug']:
with self.assertRaises(MSCommon.vc.MSVCArgumentError):
_ = MSCommon.vc.msvc_toolset_versions(msvc_version=symbol)
class MsvcToolsetVersionsSpectreTests(unittest.TestCase):
- def run_valid_default_msvc(self):
+ def run_valid_default_msvc(self) -> None:
symbol = MSCommon.vc.msvc_default_version()
version_def = MSCommon.msvc_version_components(symbol)
spectre_toolset_list = MSCommon.vc.msvc_toolset_versions_spectre(msvc_version=None)
@@ -427,14 +427,14 @@ class MsvcToolsetVersionsSpectreTests(unittest.TestCase):
else:
self.assertFalse(spectre_toolset_list, "Toolset spectre list is not empty for msvc version {}".format(repr(None)))
- def test_valid_default_msvc(self):
+ def test_valid_default_msvc(self) -> None:
if Data.HAVE_MSVC:
Patch.MSCommon.vc.msvc_default_version.enable_none()
self.run_valid_default_msvc()
Patch.MSCommon.vc.msvc_default_version.restore()
self.run_valid_default_msvc()
- def test_valid_vcver(self):
+ def test_valid_vcver(self) -> None:
for symbol in MSCommon.vc._VCVER:
version_def = MSCommon.msvc_version_components(symbol)
spectre_toolset_list = MSCommon.vc.msvc_toolset_versions_spectre(msvc_version=symbol)
@@ -444,7 +444,7 @@ class MsvcToolsetVersionsSpectreTests(unittest.TestCase):
else:
self.assertFalse(spectre_toolset_list, "Toolset spectre list is not empty for msvc version {}".format(repr(symbol)))
- def test_invalid_vcver(self):
+ def test_invalid_vcver(self) -> None:
for symbol in ['12.9', '6.0Exp', '14.3Exp', '99', '14.1Bug']:
with self.assertRaises(MSCommon.vc.MSVCArgumentError):
_ = MSCommon.vc.msvc_toolset_versions_spectre(msvc_version=symbol)
@@ -452,7 +452,7 @@ class MsvcToolsetVersionsSpectreTests(unittest.TestCase):
class MsvcQueryVersionToolsetTests(unittest.TestCase):
"""Test msvc_query_toolset_version"""
- def run_valid_default_msvc(self, have_msvc):
+ def run_valid_default_msvc(self, have_msvc) -> None:
for prefer_newest in (True, False):
msvc_version, msvc_toolset_version = MSCommon.vc.msvc_query_version_toolset(
version=None, prefer_newest=prefer_newest
@@ -468,14 +468,14 @@ class MsvcQueryVersionToolsetTests(unittest.TestCase):
repr(None)
))
- def test_valid_default_msvc(self):
+ def test_valid_default_msvc(self) -> None:
if Data.HAVE_MSVC:
Patch.MSCommon.vc.msvc_default_version.enable_none()
self.run_valid_default_msvc(have_msvc=False)
Patch.MSCommon.vc.msvc_default_version.restore()
self.run_valid_default_msvc(have_msvc=Data.HAVE_MSVC)
- def test_valid_vcver(self):
+ def test_valid_vcver(self) -> None:
for symbol in MSCommon.vc._VCVER:
version_def = MSCommon.msvc_version_components(symbol)
for prefer_newest in (True, False):
@@ -489,7 +489,7 @@ class MsvcQueryVersionToolsetTests(unittest.TestCase):
repr(symbol)
))
- def test_valid_vcver_toolsets(self):
+ def test_valid_vcver_toolsets(self) -> None:
for symbol in MSCommon.vc._VCVER:
toolset_list = MSCommon.vc.msvc_toolset_versions(msvc_version=symbol, full=True, sxs=True)
if toolset_list is None:
@@ -508,7 +508,7 @@ class MsvcQueryVersionToolsetTests(unittest.TestCase):
repr(toolset)
))
- def test_msvc_query_version_toolset_notfound(self):
+ def test_msvc_query_version_toolset_notfound(self) -> None:
toolset_notfound_dict = Data.msvc_toolset_notfound_dict()
for toolset_notfound_list in toolset_notfound_dict.values():
for toolset in toolset_notfound_list[:1]:
@@ -516,13 +516,13 @@ class MsvcQueryVersionToolsetTests(unittest.TestCase):
with self.assertRaises(MSCommon.vc.MSVCToolsetVersionNotFound):
_ = MSCommon.vc.msvc_query_version_toolset(version=toolset, prefer_newest=prefer_newest)
- def test_invalid_vcver(self):
+ def test_invalid_vcver(self) -> None:
for symbol in ['12.9', '6.0Exp', '14.3Exp', '99', '14.1Bug']:
for prefer_newest in (True, False):
with self.assertRaises(MSCommon.vc.MSVCArgumentError):
_ = MSCommon.vc.msvc_query_version_toolset(version=symbol, prefer_newest=prefer_newest)
- def test_invalid_vcver_toolsets(self):
+ def test_invalid_vcver_toolsets(self) -> None:
for symbol in ['14.16.00000Exp', '14.00.00001', '14.31.123456', '14.31.1.1']:
for prefer_newest in (True, False):
with self.assertRaises(MSCommon.vc.MSVCArgumentError):
diff --git a/SCons/Tool/MSCommon/vs.py b/SCons/Tool/MSCommon/vs.py
index 08c3cf5af..00ccaef94 100644
--- a/SCons/Tool/MSCommon/vs.py
+++ b/SCons/Tool/MSCommon/vs.py
@@ -46,7 +46,7 @@ class VisualStudio:
An abstract base class for trying to find installed versions of
Visual Studio.
"""
- def __init__(self, version, **kw):
+ def __init__(self, version, **kw) -> None:
self.version = version
kw['vc_version'] = kw.get('vc_version', version)
kw['sdk_version'] = kw.get('sdk_version', version)
@@ -148,7 +148,7 @@ class VisualStudio:
self._cache['supported_arch'] = self.supported_arch
return self.supported_arch
- def reset(self):
+ def reset(self) -> None:
self._cache = {}
# The list of supported Visual Studio versions we know how to detect.
@@ -439,7 +439,7 @@ def get_installed_visual_studios(env=None):
InstalledVSMap[vs.version] = vs
return InstalledVSList
-def reset_installed_visual_studios():
+def reset_installed_visual_studios() -> None:
global InstalledVSList
global InstalledVSMap
InstalledVSList = None
@@ -564,12 +564,12 @@ def get_default_arch(env):
return arch
-def merge_default_version(env):
+def merge_default_version(env) -> None:
version = get_default_version(env)
arch = get_default_arch(env)
# TODO: refers to versions and arch which aren't defined; called nowhere. Drop?
-def msvs_setup_env(env):
+def msvs_setup_env(env) -> None:
msvs = get_vs_by_version(version)
if msvs is None:
return
diff --git a/SCons/Tool/PharLapCommon.py b/SCons/Tool/PharLapCommon.py
index 9ffafa9e5..e1907ab07 100644
--- a/SCons/Tool/PharLapCommon.py
+++ b/SCons/Tool/PharLapCommon.py
@@ -86,7 +86,7 @@ def getPharLapVersion():
# Default return for Phar Lap 9.1
return 910
-def addPharLapPaths(env):
+def addPharLapPaths(env) -> None:
"""This function adds the path to the Phar Lap binaries, includes,
and libraries, if they are not already there."""
ph_path = getPharLapPath()
diff --git a/SCons/Tool/ToolTests.py b/SCons/Tool/ToolTests.py
index 59d093b0e..e87a9725f 100644
--- a/SCons/Tool/ToolTests.py
+++ b/SCons/Tool/ToolTests.py
@@ -31,19 +31,19 @@ import SCons.Tool
class DummyEnvironment:
- def __init__(self):
+ def __init__(self) -> None:
self.dict = {}
def Detect(self, progs):
if not SCons.Util.is_List(progs):
progs = [ progs ]
return progs[0]
- def Append(self, **kw):
+ def Append(self, **kw) -> None:
self.dict.update(kw)
def __getitem__(self, key):
return self.dict[key]
- def __setitem__(self, key, val):
+ def __setitem__(self, key, val) -> None:
self.dict[key] = val
- def __contains__(self, key):
+ def __contains__(self, key) -> bool:
return key in self.dict
def subst(self, string, *args, **kwargs):
return string
@@ -60,13 +60,13 @@ class DummyEnvironment:
if self.PHONY_PATH in paths:
return os.path.join(self.PHONY_PATH, key_program)
return None
- def AppendENVPath(self, pathvar, path):
+ def AppendENVPath(self, pathvar, path) -> None:
# signature matches how called from find_program_path()
self['ENV'][pathvar] = self['ENV'][pathvar] + os.pathsep + path
class ToolTestCase(unittest.TestCase):
- def test_Tool(self):
+ def test_Tool(self) -> None:
"""Test the Tool() function"""
env = DummyEnvironment()
@@ -96,7 +96,7 @@ class ToolTestCase(unittest.TestCase):
assert exc_caught, "did not catch expected UserError"
- def test_pathfind(self):
+ def test_pathfind(self) -> None:
"""Test that find_program_path() alters PATH only if add_path is true"""
env = DummyEnvironment()
diff --git a/SCons/Tool/__init__.py b/SCons/Tool/__init__.py
index 33c1d33ab..3681235f6 100644
--- a/SCons/Tool/__init__.py
+++ b/SCons/Tool/__init__.py
@@ -105,7 +105,7 @@ TOOL_ALIASES = {
class Tool:
- def __init__(self, name, toolpath=None, **kwargs):
+ def __init__(self, name, toolpath=None, **kwargs) -> None:
if toolpath is None:
toolpath = []
@@ -241,7 +241,7 @@ class Tool:
msg = "No tool named '{self.name}': {e}"
raise SCons.Errors.SConsEnvironmentError(msg)
- def __call__(self, env, *args, **kw):
+ def __call__(self, env, *args, **kw) -> None:
if self.init_kw is not None:
# Merge call kws into init kws;
# but don't bash self.init_kw.
@@ -264,7 +264,7 @@ class Tool:
self.generate(env, *args, **kw)
- def __str__(self):
+ def __str__(self) -> str:
return self.name
@@ -324,7 +324,7 @@ def createStaticLibBuilder(env):
return static_lib
-def createSharedLibBuilder(env, shlib_suffix='$_SHLIBSUFFIX'):
+def createSharedLibBuilder(env, shlib_suffix: str='$_SHLIBSUFFIX'):
"""This is a utility function that creates the SharedLibrary
Builder in an Environment if it is not there already.
@@ -354,7 +354,7 @@ def createSharedLibBuilder(env, shlib_suffix='$_SHLIBSUFFIX'):
return shared_lib
-def createLoadableModuleBuilder(env, loadable_module_suffix='$_LDMODULESUFFIX'):
+def createLoadableModuleBuilder(env, loadable_module_suffix: str='$_LDMODULESUFFIX'):
"""This is a utility function that creates the LoadableModule
Builder in an Environment if it is not there already.
@@ -557,7 +557,7 @@ class ToolInitializerMethod:
environment in place of this particular instance.
"""
- def __init__(self, name, initializer):
+ def __init__(self, name, initializer) -> None:
"""
Note: we store the tool name as __name__ so it can be used by
the class that attaches this to a construction environment.
@@ -608,7 +608,7 @@ class ToolInitializer:
that we want to use to delay Tool searches until necessary.
"""
- def __init__(self, env, tools, names):
+ def __init__(self, env, tools, names) -> None:
if not SCons.Util.is_List(tools):
tools = [tools]
if not SCons.Util.is_List(names):
@@ -622,7 +622,7 @@ class ToolInitializer:
self.methods[name] = method
env.AddMethod(method)
- def remove_methods(self, env):
+ def remove_methods(self, env) -> None:
"""
Removes the methods that were added by the tool initialization
so we no longer copy and re-bind them when the construction
@@ -631,7 +631,7 @@ class ToolInitializer:
for method in self.methods.values():
env.RemoveMethod(method)
- def apply_tools(self, env):
+ def apply_tools(self, env) -> None:
"""
Searches the list of associated Tool modules for one that
exists, and applies that to the construction environment.
@@ -649,7 +649,7 @@ class ToolInitializer:
# the ToolInitializer class.
-def Initializers(env):
+def Initializers(env) -> None:
ToolInitializer(env, ['install'], ['_InternalInstall', '_InternalInstallAs', '_InternalInstallVersionedLib'])
def Install(self, *args, **kw):
@@ -824,7 +824,7 @@ def tool_list(platform, env):
return [x for x in tools if x]
-def find_program_path(env, key_program, default_paths=None, add_path=False) -> Optional[str]:
+def find_program_path(env, key_program, default_paths=None, add_path: bool=False) -> Optional[str]:
"""
Find the location of a tool using various means.
diff --git a/SCons/Tool/aixcc.py b/SCons/Tool/aixcc.py
index 09365b1df..ccde0a8fc 100644
--- a/SCons/Tool/aixcc.py
+++ b/SCons/Tool/aixcc.py
@@ -44,7 +44,7 @@ def get_xlc(env):
xlc = env.get('CC', 'xlc')
return SCons.Platform.aix.get_xlc(env, xlc, packages)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for xlc / Visual Age
suite to an Environment."""
path, _cc, version = get_xlc(env)
diff --git a/SCons/Tool/aixcxx.py b/SCons/Tool/aixcxx.py
index 58d9ecca9..7b478997b 100644
--- a/SCons/Tool/aixcxx.py
+++ b/SCons/Tool/aixcxx.py
@@ -47,7 +47,7 @@ def get_xlc(env):
xlc = env.get('CXX', 'xlC')
return SCons.Platform.aix.get_xlc(env, xlc, packages)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for xlC / Visual Age
suite to an Environment."""
path, _cxx, version = get_xlc(env)
diff --git a/SCons/Tool/aixf77.py b/SCons/Tool/aixf77.py
index 4cef908fa..33511ee9c 100644
--- a/SCons/Tool/aixf77.py
+++ b/SCons/Tool/aixf77.py
@@ -50,7 +50,7 @@ def get_xlf77(env):
#return SCons.Platform.aix.get_xlc(env, xlf77, xlf77_r, packages)
return (None, xlf77, xlf77_r, None)
-def generate(env):
+def generate(env) -> None:
"""
Add Builders and construction variables for the Visual Age FORTRAN
compiler to an Environment.
diff --git a/SCons/Tool/aixlink.py b/SCons/Tool/aixlink.py
index dc0de2a3d..03fc3b011 100644
--- a/SCons/Tool/aixlink.py
+++ b/SCons/Tool/aixlink.py
@@ -48,7 +48,7 @@ def smart_linkflags(source, target, env, for_signature):
return ''
-def generate(env):
+def generate(env) -> None:
"""
Add Builders and construction variables for Visual Age linker to
an Environment.
diff --git a/SCons/Tool/applelink.py b/SCons/Tool/applelink.py
index b81d2b3cd..3dc744d46 100644
--- a/SCons/Tool/applelink.py
+++ b/SCons/Tool/applelink.py
@@ -79,7 +79,7 @@ def _applelib_check_valid_version(version_string):
return True, ""
-def _applelib_currentVersionFromSoVersion(source, target, env, for_signature):
+def _applelib_currentVersionFromSoVersion(source, target, env, for_signature) -> str:
"""
A generator function to create the -Wl,-current_version flag if needed.
If env['APPLELINK_NO_CURRENT_VERSION'] contains a true value no flag will be generated
@@ -110,7 +110,7 @@ def _applelib_currentVersionFromSoVersion(source, target, env, for_signature):
return "-Wl,-current_version,%s" % version_string
-def _applelib_compatVersionFromSoVersion(source, target, env, for_signature):
+def _applelib_compatVersionFromSoVersion(source, target, env, for_signature) -> str:
"""
A generator function to create the -Wl,-compatibility_version flag if needed.
If env['APPLELINK_NO_COMPATIBILITY_VERSION'] contains a true value no flag will be generated
@@ -141,7 +141,7 @@ def _applelib_compatVersionFromSoVersion(source, target, env, for_signature):
return "-Wl,-compatibility_version,%s" % version_string
-def _applelib_soname(target, source, env, for_signature):
+def _applelib_soname(target, source, env, for_signature) -> str:
"""
Override default _soname() function from SCons.Tools.linkCommon.SharedLibrary.
Apple's file naming for versioned shared libraries puts the version string before
@@ -160,7 +160,7 @@ def _applelib_soname(target, source, env, for_signature):
return "$SHLIBPREFIX$_get_shlib_stem$_SHLIBSOVERSION${SHLIBSUFFIX}"
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for applelink to an
Environment."""
link.generate(env)
diff --git a/SCons/Tool/ar.py b/SCons/Tool/ar.py
index 2cd15c844..e3709273b 100644
--- a/SCons/Tool/ar.py
+++ b/SCons/Tool/ar.py
@@ -38,7 +38,7 @@ import SCons.Tool
import SCons.Util
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ar to an Environment."""
SCons.Tool.createStaticLibBuilder(env)
diff --git a/SCons/Tool/asm.py b/SCons/Tool/asm.py
index c7482513b..2c9a915c9 100644
--- a/SCons/Tool/asm.py
+++ b/SCons/Tool/asm.py
@@ -46,7 +46,7 @@ if SCons.Util.case_sensitive_suffixes('.s', '.S'):
else:
ASSuffixes.extend(['.S'])
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for as to an Environment."""
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
diff --git a/SCons/Tool/bcc32.py b/SCons/Tool/bcc32.py
index 55f871b75..5bd14f65f 100644
--- a/SCons/Tool/bcc32.py
+++ b/SCons/Tool/bcc32.py
@@ -44,7 +44,7 @@ def findIt(program, env):
env.PrependENVPath('PATH', dir)
return borwin
-def generate(env):
+def generate(env) -> None:
findIt('bcc32', env)
"""Add Builders and construction variables for bcc to an
Environment."""
diff --git a/SCons/Tool/cc.py b/SCons/Tool/cc.py
index 590ec5fd3..e9cbe530b 100644
--- a/SCons/Tool/cc.py
+++ b/SCons/Tool/cc.py
@@ -40,7 +40,7 @@ CSuffixes = ['.c', '.m']
if not SCons.Util.case_sensitive_suffixes('.c', '.C'):
CSuffixes.append('.C')
-def add_common_cc_variables(env):
+def add_common_cc_variables(env) -> None:
"""
Add underlying common "C compiler" variables that
are used by multiple tools (specifically, c++).
@@ -64,7 +64,7 @@ def add_common_cc_variables(env):
compilers = ['cc']
-def generate(env):
+def generate(env) -> None:
"""
Add Builders and construction variables for C compilers to an Environment.
"""
diff --git a/SCons/Tool/clang.py b/SCons/Tool/clang.py
index 518b09ed0..1cef0ad19 100644
--- a/SCons/Tool/clang.py
+++ b/SCons/Tool/clang.py
@@ -44,7 +44,7 @@ from SCons.Tool.MSCommon import msvc_setup_env_once
compilers = ['clang']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for clang to an Environment."""
SCons.Tool.cc.generate(env)
diff --git a/SCons/Tool/clangxx.py b/SCons/Tool/clangxx.py
index 07d8378e3..5f8202c84 100644
--- a/SCons/Tool/clangxx.py
+++ b/SCons/Tool/clangxx.py
@@ -44,7 +44,7 @@ from SCons.Tool.MSCommon import msvc_setup_env_once
compilers = ['clang++']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for clang++ to an Environment."""
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
diff --git a/SCons/Tool/compilation_db.py b/SCons/Tool/compilation_db.py
index a4954c1de..14c6ef59c 100644
--- a/SCons/Tool/compilation_db.py
+++ b/SCons/Tool/compilation_db.py
@@ -51,12 +51,12 @@ __COMPILATION_DB_ENTRIES = []
# We make no effort to avoid rebuilding the entries. Someday, perhaps we could and even
# integrate with the cache, but there doesn't seem to be much call for it.
class __CompilationDbNode(SCons.Node.Python.Value):
- def __init__(self, value):
+ def __init__(self, value) -> None:
SCons.Node.Python.Value.__init__(self, value)
self.Decider(changed_since_last_build_node)
-def changed_since_last_build_node(child, target, prev_ni, node):
+def changed_since_last_build_node(child, target, prev_ni, node) -> bool:
""" Dummy decider to force always building"""
return True
@@ -111,7 +111,7 @@ class CompDBTEMPFILE(TempFileMunge):
return self.cmd
-def compilation_db_entry_action(target, source, env, **kw):
+def compilation_db_entry_action(target, source, env, **kw) -> None:
"""
Create a dictionary with evaluated command line, target, source
and store that info as an attribute on the target
@@ -140,7 +140,7 @@ def compilation_db_entry_action(target, source, env, **kw):
target[0].write(entry)
-def write_compilation_db(target, source, env):
+def write_compilation_db(target, source, env) -> None:
entries = []
use_abspath = env['COMPILATIONDB_USE_ABSPATH'] in [True, 1, 'True', 'true']
@@ -197,7 +197,7 @@ def compilation_db_emitter(target, source, env):
return target, source
-def generate(env, **kwargs):
+def generate(env, **kwargs) -> None:
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
env["COMPILATIONDB_COMSTR"] = kwargs.get(
@@ -261,5 +261,5 @@ def generate(env, **kwargs):
env['COMPILATIONDB_PATH_FILTER'] = ''
-def exists(env):
+def exists(env) -> bool:
return True
diff --git a/SCons/Tool/cvf.py b/SCons/Tool/cvf.py
index 47e733ebd..0dc74ade3 100644
--- a/SCons/Tool/cvf.py
+++ b/SCons/Tool/cvf.py
@@ -33,7 +33,7 @@ from . import fortran
compilers = ['f90']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for compaq visual fortran to an Environment."""
fortran.generate(env)
diff --git a/SCons/Tool/cxx.py b/SCons/Tool/cxx.py
index 128cdc4f6..bf4bcceff 100644
--- a/SCons/Tool/cxx.py
+++ b/SCons/Tool/cxx.py
@@ -39,7 +39,7 @@ CXXSuffixes = ['.cpp', '.cc', '.cxx', '.c++', '.C++', '.mm']
if SCons.Util.case_sensitive_suffixes('.c', '.C'):
CXXSuffixes.append('.C')
-def iscplusplus(source):
+def iscplusplus(source) -> int:
if not source:
# Source might be None for unusual cases like SConf.
return 0
@@ -50,7 +50,7 @@ def iscplusplus(source):
return 1
return 0
-def generate(env):
+def generate(env) -> None:
"""
Add Builders and construction variables for Visual Age C++ compilers
to an Environment.
diff --git a/SCons/Tool/cyglink.py b/SCons/Tool/cyglink.py
index bb5cd1035..0d1eb51a4 100644
--- a/SCons/Tool/cyglink.py
+++ b/SCons/Tool/cyglink.py
@@ -134,7 +134,7 @@ def cyglink_ldmodule_version(target, source, env, for_signature):
return "." + version
-def _implib_pre_flags(target, source, env, for_signature):
+def _implib_pre_flags(target, source, env, for_signature) -> str:
no_import_lib = env.get('no_import_lib', False)
if no_import_lib in ['1', 'True', 'true', True]:
return ''
@@ -142,7 +142,7 @@ def _implib_pre_flags(target, source, env, for_signature):
return '-Wl,--out-implib=${TARGETS[1]} -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
-def _implib_post_flags(target, source, env, for_signature):
+def _implib_post_flags(target, source, env, for_signature) -> str:
no_import_lib = env.get('no_import_lib', False)
if no_import_lib in ['1', 'True', 'true', True]:
return ''
@@ -150,7 +150,7 @@ def _implib_post_flags(target, source, env, for_signature):
return '-Wl,--no-whole-archive'
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for cyglink to an Environment."""
gnulink.generate(env)
diff --git a/SCons/Tool/default.py b/SCons/Tool/default.py
index a36e9ec1c..4b386e2e1 100644
--- a/SCons/Tool/default.py
+++ b/SCons/Tool/default.py
@@ -35,12 +35,12 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.Tool
-def generate(env):
+def generate(env) -> None:
"""Add default tools."""
for t in SCons.Tool.tool_list(env['PLATFORM'], env):
SCons.Tool.Tool(t)(env)
-def exists(env):
+def exists(env) -> int:
return 1
# Local Variables:
diff --git a/SCons/Tool/dmd.py b/SCons/Tool/dmd.py
index 67ed43eda..7b2a24962 100644
--- a/SCons/Tool/dmd.py
+++ b/SCons/Tool/dmd.py
@@ -82,7 +82,7 @@ import SCons.Tool
import SCons.Tool.DCommon as DCommon
-def generate(env):
+def generate(env) -> None:
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
static_obj.add_action('.d', SCons.Defaults.DAction)
diff --git a/SCons/Tool/docbook/__init__.py b/SCons/Tool/docbook/__init__.py
index 52e291144..53505eb7c 100644
--- a/SCons/Tool/docbook/__init__.py
+++ b/SCons/Tool/docbook/__init__.py
@@ -72,7 +72,7 @@ re_refname = re.compile(r"<refname>([^<]*)</refname>")
lmxl_xslt_global_max_depth = 3600
if has_lxml and lmxl_xslt_global_max_depth:
- def __lxml_xslt_set_global_max_depth(max_depth):
+ def __lxml_xslt_set_global_max_depth(max_depth) -> None:
from lxml import etree
etree.XSLT.set_global_max_depth(max_depth)
__lxml_xslt_set_global_max_depth(lmxl_xslt_global_max_depth)
@@ -93,7 +93,7 @@ def __extend_targets_sources(target, source):
return target, source
-def __init_xsl_stylesheet(kw, env, user_xsl_var, default_path):
+def __init_xsl_stylesheet(kw, env, user_xsl_var, default_path) -> None:
if kw.get('DOCBOOK_XSL','') == '':
xsl_style = kw.get('xsl', env.subst(user_xsl_var))
if xsl_style == '':
@@ -137,7 +137,7 @@ def __get_xml_text(root):
txt += e.data
return txt
-def __create_output_dir(base_dir):
+def __create_output_dir(base_dir) -> None:
""" Ensure that the output directory base_dir exists. """
root, tail = os.path.split(base_dir)
dir = None
@@ -173,7 +173,7 @@ fop_com = {'fop' : '$DOCBOOK_FOP $DOCBOOK_FOPFLAGS -fo $SOURCE -pdf $TARGET',
'xep' : '$DOCBOOK_FOP $DOCBOOK_FOPFLAGS -valid -fo $SOURCE -pdf $TARGET',
'jw' : '$DOCBOOK_FOP $DOCBOOK_FOPFLAGS -f docbook -b pdf $SOURCE -o $TARGET'}
-def __detect_cl_tool(env, chainkey, cdict, cpriority=None):
+def __detect_cl_tool(env, chainkey, cdict, cpriority=None) -> None:
"""
Helper function, picks a command line tool from the list
and initializes its environment variables.
@@ -195,7 +195,7 @@ def __detect_cl_tool(env, chainkey, cdict, cpriority=None):
env[chainkey + 'COM'] = cdict[cltool]
break
-def _detect(env):
+def _detect(env) -> None:
"""
Detect all the command line tools that we might need for creating
the requested output formats.
@@ -420,7 +420,7 @@ def DocbookEpub(env, target, source=None, *args, **kw):
import zipfile
import shutil
- def build_open_container(target, source, env):
+ def build_open_container(target, source, env) -> None:
"""Generate the *.epub file from intermediate outputs
Constructs the epub file according to the Open Container Format. This
@@ -444,7 +444,7 @@ def DocbookEpub(env, target, source=None, *args, **kw):
zf.write(path, os.path.relpath(path, str(env.get('ZIPROOT', ''))),
zipfile.ZIP_DEFLATED)
- def add_resources(target, source, env):
+ def add_resources(target, source, env) -> None:
"""Add missing resources to the OEBPS directory
Ensure all the resources in the manifest are present in the OEBPS directory.
@@ -789,7 +789,7 @@ def DocbookXslt(env, target, source=None, *args, **kw):
return result
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for docbook to an Environment."""
env.SetDefault(
@@ -839,5 +839,5 @@ def generate(env):
env.AddMethod(DocbookXslt, "DocbookXslt")
-def exists(env):
+def exists(env) -> int:
return 1
diff --git a/SCons/Tool/dvi.py b/SCons/Tool/dvi.py
index 4067b2a1e..a395d2b39 100644
--- a/SCons/Tool/dvi.py
+++ b/SCons/Tool/dvi.py
@@ -34,7 +34,7 @@ import SCons.Tool
DVIBuilder = None
-def generate(env):
+def generate(env) -> None:
try:
env['BUILDERS']['DVI']
except KeyError:
@@ -52,7 +52,7 @@ def generate(env):
env['BUILDERS']['DVI'] = DVIBuilder
-def exists(env):
+def exists(env) -> int:
# This only puts a skeleton Builder in place, so if someone
# references this Tool directly, it's always "available."
return 1
diff --git a/SCons/Tool/dvipdf.py b/SCons/Tool/dvipdf.py
index e0622072d..c08bf07f6 100644
--- a/SCons/Tool/dvipdf.py
+++ b/SCons/Tool/dvipdf.py
@@ -85,12 +85,12 @@ def PDFEmitter(target, source, env):
used to generate the .dvi file we're using as input, and we only
care about the .dvi file.
"""
- def strip_suffixes(n):
+ def strip_suffixes(n) -> bool:
return not SCons.Util.splitext(str(n))[1] in ['.aux', '.log']
source = [src for src in source if strip_suffixes(src)]
return (target, source)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for dvipdf to an Environment."""
global PDFAction
if PDFAction is None:
diff --git a/SCons/Tool/dvips.py b/SCons/Tool/dvips.py
index 198bda038..7cf717b8d 100644
--- a/SCons/Tool/dvips.py
+++ b/SCons/Tool/dvips.py
@@ -55,7 +55,7 @@ PSAction = None
DVIPSAction = None
PSBuilder = None
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for dvips to an Environment."""
global PSAction
if PSAction is None:
diff --git a/SCons/Tool/f03.py b/SCons/Tool/f03.py
index 142c1278b..7c2f029a5 100644
--- a/SCons/Tool/f03.py
+++ b/SCons/Tool/f03.py
@@ -32,7 +32,7 @@ from SCons.Tool.FortranCommon import add_all_to_env, add_f03_to_env
compilers = ['f03']
-def generate(env):
+def generate(env) -> None:
add_all_to_env(env)
add_f03_to_env(env)
diff --git a/SCons/Tool/f08.py b/SCons/Tool/f08.py
index eb367c53e..30c2d72bd 100644
--- a/SCons/Tool/f08.py
+++ b/SCons/Tool/f08.py
@@ -32,7 +32,7 @@ from SCons.Tool.FortranCommon import add_all_to_env, add_f08_to_env
compilers = ['f08']
-def generate(env):
+def generate(env) -> None:
add_all_to_env(env)
add_f08_to_env(env)
diff --git a/SCons/Tool/f77.py b/SCons/Tool/f77.py
index 5ff15ae45..c065f6cd2 100644
--- a/SCons/Tool/f77.py
+++ b/SCons/Tool/f77.py
@@ -32,7 +32,7 @@ from SCons.Tool.FortranCommon import add_all_to_env, add_f77_to_env
compilers = ['f77']
-def generate(env):
+def generate(env) -> None:
add_all_to_env(env)
add_f77_to_env(env)
diff --git a/SCons/Tool/f90.py b/SCons/Tool/f90.py
index cbf3947c1..b3dde59b8 100644
--- a/SCons/Tool/f90.py
+++ b/SCons/Tool/f90.py
@@ -32,7 +32,7 @@ from SCons.Tool.FortranCommon import add_all_to_env, add_f90_to_env
compilers = ['f90']
-def generate(env):
+def generate(env) -> None:
add_all_to_env(env)
add_f90_to_env(env)
diff --git a/SCons/Tool/f95.py b/SCons/Tool/f95.py
index 4830ee03f..b707a115f 100644
--- a/SCons/Tool/f95.py
+++ b/SCons/Tool/f95.py
@@ -32,7 +32,7 @@ from SCons.Tool.FortranCommon import add_all_to_env, add_f95_to_env
compilers = ['f95']
-def generate(env):
+def generate(env) -> None:
add_all_to_env(env)
add_f95_to_env(env)
diff --git a/SCons/Tool/filesystem.py b/SCons/Tool/filesystem.py
index 3b8ee4c8f..9a977b5d7 100644
--- a/SCons/Tool/filesystem.py
+++ b/SCons/Tool/filesystem.py
@@ -48,7 +48,7 @@ def copyto_emitter(target, source, env):
return (n_target, source)
-def copy_action_func(target, source, env):
+def copy_action_func(target, source, env) -> int:
assert( len(target) == len(source) ), "\ntarget: %s\nsource: %s" %(list(map(str, target)),list(map(str, source)))
for t, s in zip(target, source):
@@ -62,7 +62,7 @@ def copy_action_str(target, source, env):
copy_action = SCons.Action.Action( copy_action_func, copy_action_str )
-def generate(env):
+def generate(env) -> None:
try:
env['BUILDERS']['CopyTo']
env['BUILDERS']['CopyAs']
@@ -88,7 +88,7 @@ def generate(env):
env['COPYSTR'] = 'Copy file(s): "$SOURCES" to "$TARGETS"'
-def exists(env):
+def exists(env) -> int:
return 1
# Local Variables:
diff --git a/SCons/Tool/fortran.py b/SCons/Tool/fortran.py
index d21b93087..4463085f7 100644
--- a/SCons/Tool/fortran.py
+++ b/SCons/Tool/fortran.py
@@ -33,7 +33,7 @@ from SCons.Tool.FortranCommon import add_all_to_env, add_fortran_to_env
compilers = ['f95', 'f90', 'f77']
-def generate(env):
+def generate(env) -> None:
add_all_to_env(env)
add_fortran_to_env(env)
diff --git a/SCons/Tool/g77.py b/SCons/Tool/g77.py
index aea419a2f..8c69d8532 100644
--- a/SCons/Tool/g77.py
+++ b/SCons/Tool/g77.py
@@ -35,7 +35,7 @@ from SCons.Tool.FortranCommon import add_all_to_env, add_f77_to_env
compilers = ['g77', 'f77']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for g77 to an Environment."""
add_all_to_env(env)
add_f77_to_env(env)
diff --git a/SCons/Tool/gas.py b/SCons/Tool/gas.py
index d01bd60cc..04c9a2ed8 100644
--- a/SCons/Tool/gas.py
+++ b/SCons/Tool/gas.py
@@ -40,7 +40,7 @@ except:
assemblers = ['as', 'gas']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for as to an Environment."""
as_module.generate(env)
diff --git a/SCons/Tool/gcc.py b/SCons/Tool/gcc.py
index 1a25cb44d..d564f9cb2 100644
--- a/SCons/Tool/gcc.py
+++ b/SCons/Tool/gcc.py
@@ -40,7 +40,7 @@ import SCons.Util
compilers = ['gcc', 'cc']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for gcc to an Environment."""
if 'CC' not in env:
diff --git a/SCons/Tool/gdc.py b/SCons/Tool/gdc.py
index 0728c6fec..c77e27a05 100644
--- a/SCons/Tool/gdc.py
+++ b/SCons/Tool/gdc.py
@@ -54,7 +54,7 @@ import SCons.Tool.DCommon as DCommon
import SCons.Tool.linkCommon
-def generate(env):
+def generate(env) -> None:
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
static_obj.add_action('.d', SCons.Defaults.DAction)
diff --git a/SCons/Tool/gettext_tool.py b/SCons/Tool/gettext_tool.py
index a1407b362..18c7c0eef 100644
--- a/SCons/Tool/gettext_tool.py
+++ b/SCons/Tool/gettext_tool.py
@@ -40,7 +40,7 @@ from SCons.Tool.GettextCommon import (
_xgettext_exists,
)
-def generate(env, **kw):
+def generate(env, **kw) -> None:
for t in tool_list(env['PLATFORM'], env):
if sys.platform == 'win32':
tool = SCons.Tool.find_program_path(
diff --git a/SCons/Tool/gfortran.py b/SCons/Tool/gfortran.py
index f9c0a4535..cb55ad602 100644
--- a/SCons/Tool/gfortran.py
+++ b/SCons/Tool/gfortran.py
@@ -34,7 +34,7 @@ from SCons.Util import CLVar
from . import fortran
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for gfortran."""
fortran.generate(env)
diff --git a/SCons/Tool/gnulink.py b/SCons/Tool/gnulink.py
index e8b668fa3..159aa972c 100644
--- a/SCons/Tool/gnulink.py
+++ b/SCons/Tool/gnulink.py
@@ -39,7 +39,7 @@ import SCons.Tool
from . import link
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for gnulink to an Environment."""
link.generate(env)
diff --git a/SCons/Tool/gs.py b/SCons/Tool/gs.py
index 25359a858..8955bfd58 100644
--- a/SCons/Tool/gs.py
+++ b/SCons/Tool/gs.py
@@ -50,7 +50,7 @@ else:
GhostscriptAction = None
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for Ghostscript to an
Environment."""
global GhostscriptAction
diff --git a/SCons/Tool/gxx.py b/SCons/Tool/gxx.py
index 1272997be..e788381b7 100644
--- a/SCons/Tool/gxx.py
+++ b/SCons/Tool/gxx.py
@@ -41,7 +41,7 @@ from . import cxx
compilers = ['g++']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for g++ to an Environment."""
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
diff --git a/SCons/Tool/hpcc.py b/SCons/Tool/hpcc.py
index 51d2e3802..f893686a8 100644
--- a/SCons/Tool/hpcc.py
+++ b/SCons/Tool/hpcc.py
@@ -36,7 +36,7 @@ import SCons.Util
from . import cc
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for aCC & cc to an Environment."""
cc.generate(env)
diff --git a/SCons/Tool/hpcxx.py b/SCons/Tool/hpcxx.py
index 7113fa222..c02a06f72 100644
--- a/SCons/Tool/hpcxx.py
+++ b/SCons/Tool/hpcxx.py
@@ -60,7 +60,7 @@ for dir in dirs:
break
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for g++ to an Environment."""
cplusplus.generate(env)
diff --git a/SCons/Tool/hplink.py b/SCons/Tool/hplink.py
index ba182f1d3..0d26fa4a2 100644
--- a/SCons/Tool/hplink.py
+++ b/SCons/Tool/hplink.py
@@ -51,7 +51,7 @@ for dir in dirs:
ccLinker = linker
break
-def generate(env):
+def generate(env) -> None:
"""
Add Builders and construction variables for Visual Age linker to
an Environment.
diff --git a/SCons/Tool/icc.py b/SCons/Tool/icc.py
index adf24e9ab..63c7fd0ff 100644
--- a/SCons/Tool/icc.py
+++ b/SCons/Tool/icc.py
@@ -35,7 +35,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
from . import cc
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for the OS/2 to an Environment."""
cc.generate(env)
diff --git a/SCons/Tool/ifl.py b/SCons/Tool/ifl.py
index 574695072..dac8179fa 100644
--- a/SCons/Tool/ifl.py
+++ b/SCons/Tool/ifl.py
@@ -32,7 +32,7 @@ import SCons.Defaults
from SCons.Scanner.Fortran import FortranScan
from .FortranCommon import add_all_to_env
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ifl to an Environment."""
fscan = FortranScan("FORTRANPATH")
SCons.Tool.SourceFileScanner.add_scanner('.i', fscan)
diff --git a/SCons/Tool/ifort.py b/SCons/Tool/ifort.py
index bf39b7f49..92109234d 100644
--- a/SCons/Tool/ifort.py
+++ b/SCons/Tool/ifort.py
@@ -35,7 +35,7 @@ from SCons.Scanner.Fortran import FortranScan
from .FortranCommon import add_all_to_env
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ifort to an Environment."""
# ifort supports Fortran 90 and Fortran 95
# Additionally, ifort recognizes more file extensions.
diff --git a/SCons/Tool/ilink.py b/SCons/Tool/ilink.py
index 4112825b8..6be62d3c7 100644
--- a/SCons/Tool/ilink.py
+++ b/SCons/Tool/ilink.py
@@ -33,7 +33,7 @@ import SCons.Defaults
import SCons.Tool
import SCons.Util
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ilink to an Environment."""
SCons.Tool.createProgBuilder(env)
diff --git a/SCons/Tool/ilink32.py b/SCons/Tool/ilink32.py
index 1452fd555..1bdc6d0a6 100644
--- a/SCons/Tool/ilink32.py
+++ b/SCons/Tool/ilink32.py
@@ -33,7 +33,7 @@ import SCons.Tool
import SCons.Tool.bcc32
import SCons.Util
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for Borland ilink to an
Environment."""
SCons.Tool.createSharedLibBuilder(env)
diff --git a/SCons/Tool/install.py b/SCons/Tool/install.py
index d6870c398..54fc09036 100644
--- a/SCons/Tool/install.py
+++ b/SCons/Tool/install.py
@@ -50,8 +50,8 @@ class CopytreeError(OSError):
pass
-def scons_copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2,
- ignore_dangling_symlinks=False, dirs_exist_ok=False):
+def scons_copytree(src, dst, symlinks: bool=False, ignore=None, copy_function=copy2,
+ ignore_dangling_symlinks: bool=False, dirs_exist_ok: bool=False):
"""Recursively copy a directory tree, SCons version.
This is a modified copy of the Python 3.7 shutil.copytree function.
@@ -225,7 +225,7 @@ def listShlibLinksToInstall(dest, source, env):
install_links.append((install_link, install_linktgt))
return install_links
-def installShlibLinks(dest, source, env):
+def installShlibLinks(dest, source, env) -> None:
"""If we are installing a versioned shared library create the required links."""
Verbose = False
symlinks = listShlibLinksToInstall(dest, source, env)
@@ -337,7 +337,7 @@ class DESTDIR_factory:
""" A node factory, where all files will be relative to the dir supplied
in the constructor.
"""
- def __init__(self, env, dir):
+ def __init__(self, env, dir) -> None:
self.env = env
self.dir = env.arg2nodes( dir, env.fs.Dir )[0]
@@ -429,7 +429,7 @@ def InstallVersionedBuilderWrapper(env, target=None, source=None, dir=None, **kw
added = None
-def generate(env):
+def generate(env) -> None:
from SCons.Script import AddOption, GetOption
global added
@@ -500,7 +500,7 @@ def generate(env):
except KeyError:
env['INSTALLVERSIONEDLIB'] = copyFuncVersionedLib
-def exists(env):
+def exists(env) -> int:
return 1
# Local Variables:
diff --git a/SCons/Tool/intelc.py b/SCons/Tool/intelc.py
index ac6fa6077..a7b480242 100644
--- a/SCons/Tool/intelc.py
+++ b/SCons/Tool/intelc.py
@@ -384,7 +384,7 @@ def get_intel_compiler_top(version, abi):
return top
-def generate(env, version=None, abi=None, topdir=None, verbose=0):
+def generate(env, version=None, abi=None, topdir=None, verbose: int=0):
r"""Add Builders and construction variables for Intel C/C++ compiler
to an Environment.
diff --git a/SCons/Tool/ipkg.py b/SCons/Tool/ipkg.py
index 8e01dd26d..b295c121e 100644
--- a/SCons/Tool/ipkg.py
+++ b/SCons/Tool/ipkg.py
@@ -39,7 +39,7 @@ import os
import SCons.Builder
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ipkg to an Environment."""
try:
bld = env['BUILDERS']['Ipkg']
diff --git a/SCons/Tool/jar.py b/SCons/Tool/jar.py
index ae44ff3bd..1967294f0 100644
--- a/SCons/Tool/jar.py
+++ b/SCons/Tool/jar.py
@@ -240,7 +240,7 @@ def generate(env) -> None:
env['JARCOM'] = "${TEMPFILE('$_JARCOM','$JARCOMSTR')}"
env['JARSUFFIX'] = '.jar'
-def exists(env):
+def exists(env) -> bool:
# As reported by Jan Nijtmans in issue #2730, the simple
# return env.Detect('jar')
# doesn't always work during initialization. For now, we
diff --git a/SCons/Tool/javac.py b/SCons/Tool/javac.py
index 1b331253b..635392459 100644
--- a/SCons/Tool/javac.py
+++ b/SCons/Tool/javac.py
@@ -73,7 +73,7 @@ def emit_java_classes(target, source, env):
elif isinstance(entry, SCons.Node.FS.Dir):
result = OrderedDict()
dirnode = entry.rdir()
- def find_java_files(arg, dirpath, filenames):
+ def find_java_files(arg, dirpath, filenames) -> None:
java_files = sorted([n for n in filenames
if _my_normcase(n).endswith(js)])
mydir = dirnode.Dir(dirpath)
@@ -141,7 +141,7 @@ class pathopt:
Callable object for generating javac-style path options from
a construction variable (e.g. -classpath, -sourcepath).
"""
- def __init__(self, opt, var, default=None):
+ def __init__(self, opt, var, default=None) -> None:
self.opt = opt
self.var = var
self.default = default
@@ -198,7 +198,7 @@ def Java(env, target, source, *args, **kw):
return result
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for javac to an Environment."""
java_file = SCons.Tool.CreateJavaFileBuilder(env)
java_class = SCons.Tool.CreateJavaClassFileBuilder(env)
@@ -242,7 +242,7 @@ def generate(env):
env['_JAVACCOM'] = '$JAVAC $JAVACFLAGS $_JAVABOOTCLASSPATH $_JAVAPROCESSORPATH $_JAVACLASSPATH -d ${TARGET.attributes.java_classdir} $_JAVASOURCEPATH $SOURCES'
env['JAVACCOM'] = "${TEMPFILE('$_JAVACCOM','$JAVACCOMSTR')}"
-def exists(env):
+def exists(env) -> int:
return 1
# Local Variables:
diff --git a/SCons/Tool/javacTests.py b/SCons/Tool/javacTests.py
index 08633d5e4..46f1af120 100644
--- a/SCons/Tool/javacTests.py
+++ b/SCons/Tool/javacTests.py
@@ -27,39 +27,39 @@ import unittest
import SCons.Tool.javac
class DummyNode:
- def __init__(self, val):
+ def __init__(self, val) -> None:
self.val = val
- def __str__(self):
+ def __str__(self) -> str:
return str(self.val)
class pathoptTestCase(unittest.TestCase):
- def assert_pathopt(self, expect, path):
+ def assert_pathopt(self, expect, path) -> None:
popt = SCons.Tool.javac.pathopt('-foopath', 'FOOPATH')
env = {'FOOPATH': path}
actual = popt(None, None, env, None)
self.assertEqual(expect, actual)
- def assert_pathopt_default(self, expect, path, default):
+ def assert_pathopt_default(self, expect, path, default) -> None:
popt = SCons.Tool.javac.pathopt('-foopath', 'FOOPATH', default='DPATH')
env = {'FOOPATH': path,
'DPATH': default}
actual = popt(None, None, env, None)
self.assertEqual(expect, actual)
- def test_unset(self):
+ def test_unset(self) -> None:
self.assert_pathopt([], None)
self.assert_pathopt([], '')
- def test_str(self):
+ def test_str(self) -> None:
self.assert_pathopt(['-foopath', '/foo/bar'],
'/foo/bar')
- def test_list_str(self):
+ def test_list_str(self) -> None:
self.assert_pathopt(['-foopath', '/foo%s/bar' % os.pathsep],
['/foo', '/bar'])
- def test_uses_pathsep(self):
+ def test_uses_pathsep(self) -> None:
save = os.pathsep
try:
os.pathsep = '!'
@@ -68,27 +68,27 @@ class pathoptTestCase(unittest.TestCase):
finally:
os.pathsep = save
- def test_node(self):
+ def test_node(self) -> None:
self.assert_pathopt(['-foopath', '/foo'],
DummyNode('/foo'))
- def test_list_node(self):
+ def test_list_node(self) -> None:
self.assert_pathopt(['-foopath', os.pathsep.join(['/foo','/bar'])],
['/foo', DummyNode('/bar')])
- def test_default_str(self):
+ def test_default_str(self) -> None:
self.assert_pathopt_default(
['-foopath', os.pathsep.join(['/foo','/bar','/baz'])],
['/foo', '/bar'],
'/baz')
- def test_default_list(self):
+ def test_default_list(self) -> None:
self.assert_pathopt_default(
['-foopath', os.pathsep.join(['/foo','/bar','/baz'])],
['/foo', '/bar'],
['/baz'])
- def test_default_unset(self):
+ def test_default_unset(self) -> None:
self.assert_pathopt_default(
['-foopath', '/foo'],
'/foo',
@@ -98,7 +98,7 @@ class pathoptTestCase(unittest.TestCase):
'/foo',
'')
- def test_list_within_list(self):
+ def test_list_within_list(self) -> None:
self.assert_pathopt(['-foopath', os.pathsep.join(['/foo','/bar'])],
['/foo', ['/bar']])
diff --git a/SCons/Tool/javah.py b/SCons/Tool/javah.py
index c5a75646e..4b688152e 100644
--- a/SCons/Tool/javah.py
+++ b/SCons/Tool/javah.py
@@ -109,13 +109,13 @@ def JavaHOutFlagGenerator(target, source, env, for_signature):
except AttributeError:
return '-o ' + str(t)
-def getJavaHClassPath(env,target, source, for_signature):
+def getJavaHClassPath(env,target, source, for_signature) -> str:
path = "${SOURCE.attributes.java_classdir}"
if 'JAVACLASSPATH' in env and env['JAVACLASSPATH']:
path = SCons.Util.AppendPath(path, env['JAVACLASSPATH'])
return "-classpath %s" % path
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for javah to an Environment."""
java_javah = SCons.Tool.CreateJavaHBuilder(env)
java_javah.emitter = emit_java_headers
diff --git a/SCons/Tool/latex.py b/SCons/Tool/latex.py
index f30356b23..ddbcdf998 100644
--- a/SCons/Tool/latex.py
+++ b/SCons/Tool/latex.py
@@ -50,7 +50,7 @@ def LaTeXAuxFunction(target = None, source= None, env=None):
LaTeXAuxAction = SCons.Action.Action(LaTeXAuxFunction,
strfunction=SCons.Tool.tex.TeXLaTeXStrFunction)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for LaTeX to an Environment."""
env.AppendUnique(LATEXSUFFIXES=SCons.Tool.LaTeXSuffixes)
diff --git a/SCons/Tool/ldc.py b/SCons/Tool/ldc.py
index fa02bf873..758385368 100644
--- a/SCons/Tool/ldc.py
+++ b/SCons/Tool/ldc.py
@@ -58,7 +58,7 @@ import SCons.Tool
import SCons.Tool.DCommon as DCommon
-def generate(env):
+def generate(env) -> None:
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
static_obj.add_action('.d', SCons.Defaults.DAction)
diff --git a/SCons/Tool/lex.py b/SCons/Tool/lex.py
index 3f1a3ade1..527f91c29 100644
--- a/SCons/Tool/lex.py
+++ b/SCons/Tool/lex.py
@@ -95,7 +95,7 @@ def lexEmitter(target, source, env) -> tuple:
return target, source
-def get_lex_path(env, append_paths=False) -> Optional[str]:
+def get_lex_path(env, append_paths: bool=False) -> Optional[str]:
"""
Returns the path to the lex tool, searching several possible names.
diff --git a/SCons/Tool/link.py b/SCons/Tool/link.py
index 24d17a31f..e879ae862 100644
--- a/SCons/Tool/link.py
+++ b/SCons/Tool/link.py
@@ -40,7 +40,7 @@ from SCons.Tool.linkCommon.LoadableModule import setup_loadable_module_logic
from SCons.Tool.linkCommon.SharedLibrary import setup_shared_lib_logic
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for gnulink to an Environment."""
createProgBuilder(env)
diff --git a/SCons/Tool/linkCommon/LoadableModule.py b/SCons/Tool/linkCommon/LoadableModule.py
index c8124a088..77a06eddd 100644
--- a/SCons/Tool/linkCommon/LoadableModule.py
+++ b/SCons/Tool/linkCommon/LoadableModule.py
@@ -65,7 +65,7 @@ def _ldmodule_soversion(target, source, env, for_signature):
return ''
-def _ldmodule_soname(target, source, env, for_signature):
+def _ldmodule_soname(target, source, env, for_signature) -> str:
if 'SONAME' in env:
return '$SONAME'
else:
@@ -82,7 +82,7 @@ def _LDMODULEVERSION(target, source, env, for_signature):
else:
return ""
-def setup_loadable_module_logic(env):
+def setup_loadable_module_logic(env) -> None:
"""
Just the logic for loadable modules
diff --git a/SCons/Tool/linkCommon/SharedLibrary.py b/SCons/Tool/linkCommon/SharedLibrary.py
index d18aa6b4b..30170f8bb 100644
--- a/SCons/Tool/linkCommon/SharedLibrary.py
+++ b/SCons/Tool/linkCommon/SharedLibrary.py
@@ -100,7 +100,7 @@ def _soversion(target, source, env, for_signature):
return ""
-def _soname(target, source, env, for_signature):
+def _soname(target, source, env, for_signature) -> str:
if "SONAME" in env:
# Now verify that SOVERSION is not also set as that is not allowed
if "SOVERSION" in env:
@@ -177,7 +177,7 @@ def _get_shlib_dir(target, source, env, for_signature: bool) -> str:
return ""
-def setup_shared_lib_logic(env):
+def setup_shared_lib_logic(env) -> None:
"""Initialize an environment for shared library building.
Args:
diff --git a/SCons/Tool/linkCommon/__init__.py b/SCons/Tool/linkCommon/__init__.py
index 5461ad3db..b8d7610c4 100644
--- a/SCons/Tool/linkCommon/__init__.py
+++ b/SCons/Tool/linkCommon/__init__.py
@@ -45,7 +45,7 @@ def StringizeLibSymlinks(symlinks):
return symlinks
-def EmitLibSymlinks(env, symlinks, libnode, **kw):
+def EmitLibSymlinks(env, symlinks, libnode, **kw) -> None:
"""Used by emitters to handle (shared/versioned) library symlinks"""
Verbose = False
@@ -66,7 +66,7 @@ def EmitLibSymlinks(env, symlinks, libnode, **kw):
print("EmitLibSymlinks: Clean(%r,%r)" % (linktgt.get_path(), [x.get_path() for x in clean_list]))
-def CreateLibSymlinks(env, symlinks):
+def CreateLibSymlinks(env, symlinks) -> int:
"""Physically creates symlinks. The symlinks argument must be a list in
form [ (link, linktarget), ... ], where link and linktarget are SCons
nodes.
@@ -92,7 +92,7 @@ def CreateLibSymlinks(env, symlinks):
return 0
-def LibSymlinksActionFunction(target, source, env):
+def LibSymlinksActionFunction(target, source, env) -> int:
for tgt in target:
symlinks = getattr(getattr(tgt, 'attributes', None), 'shliblinks', None)
if symlinks:
@@ -127,7 +127,7 @@ def _call_env_subst(env, string, *args, **kw):
return env.subst(string, *args, **kw2)
-def smart_link(source, target, env, for_signature):
+def smart_link(source, target, env, for_signature) -> str:
import SCons.Tool.cxx
import SCons.Tool.FortranCommon
diff --git a/SCons/Tool/linkCommon/linkCommmonTests.py b/SCons/Tool/linkCommon/linkCommmonTests.py
index e55660d77..5326da214 100644
--- a/SCons/Tool/linkCommon/linkCommmonTests.py
+++ b/SCons/Tool/linkCommon/linkCommmonTests.py
@@ -31,10 +31,10 @@ from SCons.Environment import Environment
class SharedLibraryTestCase(unittest.TestCase):
- def setUp(self):
+ def setUp(self) -> None:
pass
- def test_shlib_symlink_emitter(self):
+ def test_shlib_symlink_emitter(self) -> None:
"""Test shlib_symlink_emitter() """
env = Environment(tools=['gnulink'])
diff --git a/SCons/Tool/linkloc.py b/SCons/Tool/linkloc.py
index 6ee5d6192..6122d9be0 100644
--- a/SCons/Tool/linkloc.py
+++ b/SCons/Tool/linkloc.py
@@ -61,7 +61,7 @@ def repl_linker_command(m):
return m.group(1) + '#' + m.group(2)
class LinklocGenerator:
- def __init__(self, cmdline):
+ def __init__(self, cmdline) -> None:
self.cmdline = cmdline
def __call__(self, env, target, source, for_signature):
@@ -75,7 +75,7 @@ class LinklocGenerator:
else:
return "${TEMPFILE('" + self.cmdline + "')}"
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ar to an Environment."""
SCons.Tool.createSharedLibBuilder(env)
SCons.Tool.createProgBuilder(env)
diff --git a/SCons/Tool/m4.py b/SCons/Tool/m4.py
index 8506784de..341d93dfa 100644
--- a/SCons/Tool/m4.py
+++ b/SCons/Tool/m4.py
@@ -37,7 +37,7 @@ import SCons.Action
import SCons.Builder
import SCons.Util
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for m4 to an Environment."""
M4Action = SCons.Action.Action('$M4COM', '$M4COMSTR')
bld = SCons.Builder.Builder(action = M4Action, src_suffix = '.m4')
diff --git a/SCons/Tool/masm.py b/SCons/Tool/masm.py
index b9d88cd19..f8fae2019 100644
--- a/SCons/Tool/masm.py
+++ b/SCons/Tool/masm.py
@@ -44,7 +44,7 @@ if SCons.Util.case_sensitive_suffixes('.s', '.S'):
else:
ASSuffixes.extend(['.S'])
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for masm to an Environment."""
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
diff --git a/SCons/Tool/midl.py b/SCons/Tool/midl.py
index c25ce69ad..0c640f509 100644
--- a/SCons/Tool/midl.py
+++ b/SCons/Tool/midl.py
@@ -73,7 +73,7 @@ midl_builder = SCons.Builder.Builder(action=midl_action,
source_scanner=idl_scanner)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for midl to an Environment."""
env['MIDL'] = 'MIDL.EXE'
diff --git a/SCons/Tool/mingw.py b/SCons/Tool/mingw.py
index 8e7ac2df9..07f15b74c 100644
--- a/SCons/Tool/mingw.py
+++ b/SCons/Tool/mingw.py
@@ -142,7 +142,7 @@ def get_mingw_paths():
_mingw_all_paths = mingw_base_paths + find_version_specific_mingw_paths()
return _mingw_all_paths
-def generate(env):
+def generate(env) -> None:
# Check for reasoanble mingw default paths
mingw_paths = get_mingw_paths()
diff --git a/SCons/Tool/msgfmt.py b/SCons/Tool/msgfmt.py
index a15c1dcc0..334e0580e 100644
--- a/SCons/Tool/msgfmt.py
+++ b/SCons/Tool/msgfmt.py
@@ -86,7 +86,7 @@ def _create_mo_file_builder(env, **kw):
return _MOFileBuilder(**kw)
-def generate(env, **kw):
+def generate(env, **kw) -> None:
""" Generate `msgfmt` tool """
if sys.platform == 'win32':
diff --git a/SCons/Tool/msginit.py b/SCons/Tool/msginit.py
index 9635f5710..19aaccb4e 100644
--- a/SCons/Tool/msginit.py
+++ b/SCons/Tool/msginit.py
@@ -79,7 +79,7 @@ def _POInitBuilderWrapper(env, target=None, source=_null, **kw):
source = [domain] # NOTE: Suffix shall be appended automatically
return env._POInitBuilder(target, source, **kw)
-def generate(env, **kw):
+def generate(env, **kw) -> None:
""" Generate the `msginit` tool """
if sys.platform == 'win32':
diff --git a/SCons/Tool/msgmerge.py b/SCons/Tool/msgmerge.py
index 69508ebbf..292e75d6d 100644
--- a/SCons/Tool/msgmerge.py
+++ b/SCons/Tool/msgmerge.py
@@ -77,7 +77,7 @@ def _POUpdateBuilderWrapper(env, target=None, source=_null, **kw):
return env._POUpdateBuilder(target, source, **kw)
-def generate(env, **kw):
+def generate(env, **kw) -> None:
""" Generate the `msgmerge` tool """
if sys.platform == 'win32':
diff --git a/SCons/Tool/mslib.py b/SCons/Tool/mslib.py
index be4088b15..6e15a808f 100644
--- a/SCons/Tool/mslib.py
+++ b/SCons/Tool/mslib.py
@@ -45,7 +45,7 @@ from .MSCommon import msvc_setup_env_tool, msvc_setup_env_once
tool_name = 'mslib'
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for lib to an Environment."""
SCons.Tool.createStaticLibBuilder(env)
diff --git a/SCons/Tool/mslink.py b/SCons/Tool/mslink.py
index 2a90e174e..1e5b71ae1 100644
--- a/SCons/Tool/mslink.py
+++ b/SCons/Tool/mslink.py
@@ -256,7 +256,7 @@ compositeLdmodAction = ldmodLinkAction + regServerCheck + embedManifestDllCheckA
exeLinkAction = SCons.Action.Action('${TEMPFILE("$LINK $LINKFLAGS /OUT:$TARGET.windows $_LIBDIRFLAGS $_LIBFLAGS $_PDB $SOURCES.windows", "$LINKCOMSTR")}', '$LINKCOMSTR')
compositeLinkAction = exeLinkAction + embedManifestExeCheckAction
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ar to an Environment."""
SCons.Tool.createSharedLibBuilder(env, shlib_suffix='$SHLIBSUFFIX')
SCons.Tool.createProgBuilder(env)
diff --git a/SCons/Tool/mssdk.py b/SCons/Tool/mssdk.py
index b94f105f0..0151eff2b 100644
--- a/SCons/Tool/mssdk.py
+++ b/SCons/Tool/mssdk.py
@@ -36,7 +36,7 @@ selection method.
from .MSCommon import mssdk_exists, \
mssdk_setup_env
-def generate(env):
+def generate(env) -> None:
"""Add construction variables for an MS SDK to an Environment."""
mssdk_setup_env(env)
diff --git a/SCons/Tool/msvc.py b/SCons/Tool/msvc.py
index 191d2cc7c..33a67d0f4 100644
--- a/SCons/Tool/msvc.py
+++ b/SCons/Tool/msvc.py
@@ -60,7 +60,7 @@ def validate_vars(env):
if not SCons.Util.is_String(env['PCHSTOP']):
raise SCons.Errors.UserError("The PCHSTOP construction variable must be a string: %r"%env['PCHSTOP'])
-def msvc_set_PCHPDBFLAGS(env):
+def msvc_set_PCHPDBFLAGS(env) -> None:
"""
Set appropriate PCHPDBFLAGS for the MSVC version being used.
"""
@@ -229,7 +229,7 @@ ShCXXAction = SCons.Action.Action("$SHCXXCOM", "$SHCXXCOMSTR",
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for MSVC++ to an Environment."""
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
diff --git a/SCons/Tool/msvs.py b/SCons/Tool/msvs.py
index 86df1ef66..51e2970e4 100644
--- a/SCons/Tool/msvs.py
+++ b/SCons/Tool/msvs.py
@@ -207,7 +207,7 @@ class _UserGenerator:
usrdebg = None
usrconf = None
createfile = False
- def __init__(self, dspfile, source, env):
+ def __init__(self, dspfile, source, env) -> None:
# DebugSettings should be a list of debug dictionary sorted in the same order
# as the target list and variants
if 'variant' not in env:
@@ -249,12 +249,12 @@ class _UserGenerator:
trg[key] = str(src[key])
self.configs[var].debug = trg
- def UserHeader(self):
+ def UserHeader(self) -> None:
encoding = self.env.subst('$MSVSENCODING')
versionstr = self.versionstr
self.usrfile.write(self.usrhead % locals())
- def UserProject(self):
+ def UserProject(self) -> None:
pass
def Build(self):
@@ -317,14 +317,14 @@ V9DebugSettings = {
class _GenerateV7User(_UserGenerator):
"""Generates a Project file for MSVS .NET"""
- def __init__(self, dspfile, source, env):
+ def __init__(self, dspfile, source, env) -> None:
if self.version_num >= 9.0:
self.usrhead = V9UserHeader
self.usrconf = V9UserConfiguration
self.usrdebg = V9DebugSettings
super().__init__(dspfile, source, env)
- def UserProject(self):
+ def UserProject(self) -> None:
confkeys = sorted(self.configs.keys())
for kind in confkeys:
variant = self.configs[kind].variant
@@ -379,7 +379,7 @@ V10DebugSettings = {
class _GenerateV10User(_UserGenerator):
"""Generates a Project'user file for MSVS 2010 or later"""
- def __init__(self, dspfile, source, env):
+ def __init__(self, dspfile, source, env) -> None:
version_num, suite = msvs_parse_version(env['MSVS_VERSION'])
if version_num >= 14.3:
# Visual Studio 2022 is considered to be version 17.
@@ -399,7 +399,7 @@ class _GenerateV10User(_UserGenerator):
self.usrdebg = V10DebugSettings
super().__init__(dspfile, source, env)
- def UserProject(self):
+ def UserProject(self) -> None:
confkeys = sorted(self.configs.keys())
for kind in confkeys:
variant = self.configs[kind].variant
@@ -422,7 +422,7 @@ class _DSPGenerator:
'resources',
'misc']
- def __init__(self, dspfile, source, env):
+ def __init__(self, dspfile, source, env) -> None:
self.dspfile = str(dspfile)
try:
get_abspath = dspfile.get_abspath
@@ -585,7 +585,7 @@ class _DSPGenerator:
for n in sourcenames:
self.sources[n].sort(key=lambda a: a.lower())
- def AddConfig(self, variant, buildtarget, outdir, runfile, cmdargs, cppdefines, cpppaths, cppflags, dspfile=dspfile, env=env):
+ def AddConfig(self, variant, buildtarget, outdir, runfile, cmdargs, cppdefines, cpppaths, cppflags, dspfile=dspfile, env=env) -> None:
config = Config()
config.buildtarget = buildtarget
config.outdir = outdir
@@ -617,7 +617,7 @@ class _DSPGenerator:
if not (p.platform in seen or seen.add(p.platform))]
- def Build(self):
+ def Build(self) -> None:
pass
V6DSPHeader = """\
@@ -645,7 +645,7 @@ CFG=%(name)s - Win32 %(confkey)s
class _GenerateV6DSP(_DSPGenerator):
"""Generates a Project file for MSVS 6.0"""
- def PrintHeader(self):
+ def PrintHeader(self) -> None:
# pick a default config
confkeys = sorted(self.configs.keys())
@@ -659,7 +659,7 @@ class _GenerateV6DSP(_DSPGenerator):
self.file.write('!MESSAGE\n\n')
- def PrintProject(self):
+ def PrintProject(self) -> None:
name = self.name
self.file.write('# Begin Project\n'
'# PROP AllowPerConfigDependencies 0\n'
@@ -728,7 +728,7 @@ class _GenerateV6DSP(_DSPGenerator):
pdata = base64.b64encode(pdata).decode()
self.file.write(pdata + '\n')
- def PrintSourceFiles(self):
+ def PrintSourceFiles(self) -> None:
categories = {'Source Files': 'cpp|c|cxx|l|y|def|odl|idl|hpj|bat',
'Header Files': 'h|hpp|hxx|hm|inl',
'Local Headers': 'h|hpp|hxx|hm|inl',
@@ -882,7 +882,7 @@ V8DSPConfiguration = """\
class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):
"""Generates a Project file for MSVS .NET"""
- def __init__(self, dspfile, source, env):
+ def __init__(self, dspfile, source, env) -> None:
_DSPGenerator.__init__(self, dspfile, source, env)
self.version = env['MSVS_VERSION']
self.version_num, self.suite = msvs_parse_version(self.version)
@@ -905,7 +905,7 @@ class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):
_GenerateV7User.__init__(self, dspfile, source, env)
- def PrintHeader(self):
+ def PrintHeader(self) -> None:
env = self.env
versionstr = self.versionstr
name = self.name
@@ -948,7 +948,7 @@ class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):
self.file.write('\t<ToolFiles>\n'
'\t</ToolFiles>\n')
- def PrintProject(self):
+ def PrintProject(self) -> None:
self.file.write('\t<Configurations>\n')
confkeys = sorted(self.configs.keys())
@@ -1005,7 +1005,7 @@ class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):
pdata = base64.b64encode(pdata).decode()
self.file.write(pdata + '-->\n')
- def printSources(self, hierarchy, commonprefix):
+ def printSources(self, hierarchy, commonprefix) -> None:
sorteditems = sorted(hierarchy.items(), key=lambda a: a[0].lower())
# First folders, then files
@@ -1027,7 +1027,7 @@ class _GenerateV7DSP(_DSPGenerator, _GenerateV7User):
'\t\t\t\tRelativePath="%s">\n'
'\t\t\t</File>\n' % file)
- def PrintSourceFiles(self):
+ def PrintSourceFiles(self) -> None:
categories = {'Source Files': 'cpp;c;cxx;l;y;def;odl;idl;hpj;bat',
'Header Files': 'h;hpp;hxx;hm;inl',
'Local Headers': 'h;hpp;hxx;hm;inl',
@@ -1192,7 +1192,7 @@ V15DSPHeader = """\
class _GenerateV10DSP(_DSPGenerator, _GenerateV10User):
"""Generates a Project file for MSVS 2010"""
- def __init__(self, dspfile, source, env):
+ def __init__(self, dspfile, source, env) -> None:
_DSPGenerator.__init__(self, dspfile, source, env)
self.dspheader = V10DSPHeader
self.dspconfiguration = V10DSPProjectConfiguration
@@ -1200,7 +1200,7 @@ class _GenerateV10DSP(_DSPGenerator, _GenerateV10User):
_GenerateV10User.__init__(self, dspfile, source, env)
- def PrintHeader(self):
+ def PrintHeader(self) -> None:
env = self.env
name = self.name
versionstr = self.versionstr
@@ -1340,7 +1340,7 @@ class _GenerateV10DSP(_DSPGenerator, _GenerateV10User):
pdata = base64.b64encode(pdata).decode()
self.file.write(pdata + '-->\n')
- def printFilters(self, hierarchy, name):
+ def printFilters(self, hierarchy, name) -> None:
sorteditems = sorted(hierarchy.items(), key = lambda a: a[0].lower())
for key, value in sorteditems:
@@ -1351,7 +1351,7 @@ class _GenerateV10DSP(_DSPGenerator, _GenerateV10User):
'\t\t</Filter>\n' % (filter_name, _generateGUID(self.dspabs, filter_name)))
self.printFilters(value, filter_name)
- def printSources(self, hierarchy, kind, commonprefix, filter_name):
+ def printSources(self, hierarchy, kind, commonprefix, filter_name) -> None:
keywords = {'Source Files': 'ClCompile',
'Header Files': 'ClInclude',
'Local Headers': 'ClInclude',
@@ -1377,7 +1377,7 @@ class _GenerateV10DSP(_DSPGenerator, _GenerateV10User):
'\t\t\t<Filter>%s</Filter>\n'
'\t\t</%s>\n' % (keywords[kind], file, filter_name, keywords[kind]))
- def PrintSourceFiles(self):
+ def PrintSourceFiles(self) -> None:
categories = {'Source Files': 'cpp;c;cxx;l;y;def;odl;idl;hpj;bat',
'Header Files': 'h;hpp;hxx;hm;inl',
'Local Headers': 'h;hpp;hxx;hm;inl',
@@ -1443,7 +1443,7 @@ class _GenerateV10DSP(_DSPGenerator, _GenerateV10User):
#'\t\t<None Include="SConstruct" />\n'
'\t</ItemGroup>\n' % str(self.sconscript))
- def Parse(self):
+ def Parse(self) -> None:
# DEBUG
# print("_GenerateV10DSP.Parse()")
pass
@@ -1462,7 +1462,7 @@ class _GenerateV10DSP(_DSPGenerator, _GenerateV10User):
class _DSWGenerator:
""" Base class for DSW generators """
- def __init__(self, dswfile, source, env):
+ def __init__(self, dswfile, source, env) -> None:
self.dswfile = os.path.normpath(str(dswfile))
self.dsw_folder_path = os.path.dirname(os.path.abspath(self.dswfile))
self.env = env
@@ -1483,12 +1483,12 @@ class _DSWGenerator:
self.name = os.path.basename(SCons.Util.splitext(self.dswfile)[0])
self.name = self.env.subst(self.name)
- def Build(self):
+ def Build(self) -> None:
pass
class _GenerateV7DSW(_DSWGenerator):
"""Generates a Solution file for MSVS .NET"""
- def __init__(self, dswfile, source, env):
+ def __init__(self, dswfile, source, env) -> None:
super().__init__(dswfile, source, env)
self.file = None
@@ -1520,7 +1520,7 @@ class _GenerateV7DSW(_DSWGenerator):
if self.nokeep == 0 and os.path.exists(self.dswfile):
self.Parse()
- def AddConfig(self, variant, dswfile=dswfile):
+ def AddConfig(self, variant, dswfile=dswfile) -> None:
config = Config()
match = re.match(r'(.*)\|(.*)', variant)
@@ -1548,7 +1548,7 @@ class _GenerateV7DSW(_DSWGenerator):
self.platforms = [p.platform for p in self.configs.values()
if not (p.platform in seen or seen.add(p.platform))]
- def GenerateProjectFilesInfo(self):
+ def GenerateProjectFilesInfo(self) -> None:
for dspfile in self.dspfiles:
dsp_folder_path, name = os.path.split(dspfile)
dsp_folder_path = os.path.abspath(dsp_folder_path)
@@ -1601,7 +1601,7 @@ class _GenerateV7DSW(_DSWGenerator):
self.configs.update(data)
- def PrintSolution(self):
+ def PrintSolution(self) -> None:
"""Writes a solution file"""
self.file.write('Microsoft Visual Studio Solution File, Format Version %s\n' % self.versionstr)
if self.version_num >= 14.3:
@@ -1769,7 +1769,7 @@ Package=<3>
class _GenerateV6DSW(_DSWGenerator):
"""Generates a Workspace file for MSVS 6.0"""
- def PrintWorkspace(self):
+ def PrintWorkspace(self) -> None:
""" writes a DSW file """
name = self.name
dspfile = os.path.relpath(self.dspfiles[0], self.dsw_folder_path)
@@ -1785,7 +1785,7 @@ class _GenerateV6DSW(_DSWGenerator):
self.file.close()
-def GenerateDSP(dspfile, source, env):
+def GenerateDSP(dspfile, source, env) -> None:
"""Generates a Project file based on the version of MSVS that is being used"""
version_num = 6.0
@@ -1801,7 +1801,7 @@ def GenerateDSP(dspfile, source, env):
g = _GenerateV6DSP(dspfile, source, env)
g.Build()
-def GenerateDSW(dswfile, source, env):
+def GenerateDSW(dswfile, source, env) -> None:
"""Generates a Solution/Workspace file based on the version of MSVS that is being used"""
version_num = 6.0
@@ -1861,7 +1861,7 @@ def GenerateProject(target, source, env):
GenerateDSW(dswfile, source, env)
-def GenerateSolution(target, source, env):
+def GenerateSolution(target, source, env) -> None:
GenerateDSW(target[0], source, env)
def projectEmitter(target, source, env):
@@ -2039,7 +2039,7 @@ solutionBuilder = SCons.Builder.Builder(action = '$MSVSSOLUTIONCOM',
default_MSVS_SConscript = None
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for Microsoft Visual
Studio project files to an Environment."""
try:
diff --git a/SCons/Tool/msvsTests.py b/SCons/Tool/msvsTests.py
index c4d2e9835..9c369d130 100644
--- a/SCons/Tool/msvsTests.py
+++ b/SCons/Tool/msvsTests.py
@@ -391,7 +391,7 @@ regdata_cv = r'''[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion]
regdata_none = []
class DummyEnv:
- def __init__(self, dict=None):
+ def __init__(self, dict=None) -> None:
self.fs = SCons.Node.FS.FS()
if dict:
self.dict = dict
@@ -403,13 +403,13 @@ class DummyEnv:
return self.dict
return self.dict[key]
- def __setitem__(self, key, value):
+ def __setitem__(self, key, value) -> None:
self.dict[key] = value
def __getitem__(self, key):
return self.dict[key]
- def __contains__(self, key):
+ def __contains__(self, key) -> bool:
return key in self.dict
def get(self, name, value=None):
@@ -424,14 +424,14 @@ class DummyEnv:
class RegKey:
"""key class for storing an 'open' registry key"""
- def __init__(self,key):
+ def __init__(self,key) -> None:
self.key = key
# Warning: this is NOT case-insensitive, unlike the Windows registry.
# So e.g. HKLM\Software is NOT the same key as HKLM\SOFTWARE.
class RegNode:
"""node in the dummy registry"""
- def __init__(self,name):
+ def __init__(self,name) -> None:
self.valdict = {}
self.keydict = {}
self.keyarray = []
@@ -444,7 +444,7 @@ class RegNode:
else:
raise SCons.Util.RegError
- def addValue(self,name,val):
+ def addValue(self,name,val) -> None:
self.valdict[name] = val
self.valarray.append(name)
@@ -456,7 +456,7 @@ class RegNode:
raise SCons.Util.RegError
return rv
- def key(self,key,sep = '\\'):
+ def key(self,key,sep: str = '\\'):
if key.find(sep) != -1:
keyname, subkeys = key.split(sep,1)
else:
@@ -471,7 +471,7 @@ class RegNode:
except KeyError:
raise SCons.Util.RegError
- def addKey(self,name,sep = '\\'):
+ def addKey(self,name,sep: str = '\\'):
if name.find(sep) != -1:
keyname, subkeys = name.split(sep, 1)
else:
@@ -491,10 +491,10 @@ class RegNode:
def keyindex(self,index):
return self.keydict[self.keyarray[index]]
- def __str__(self):
+ def __str__(self) -> str:
return self._doStr()
- def _doStr(self, indent = ''):
+ def _doStr(self, indent: str = ''):
rv = ""
for value in self.valarray:
rv = rv + '%s"%s" = "%s"\n' % (indent, value, self.valdict[value])
@@ -506,7 +506,7 @@ class RegNode:
class DummyRegistry:
"""registry class for storing fake registry attributes"""
- def __init__(self,data):
+ def __init__(self,data) -> None:
"""parse input data into the fake registry"""
self.root = RegNode('REGISTRY')
self.root.addKey('HKEY_LOCAL_MACHINE')
@@ -516,7 +516,7 @@ class DummyRegistry:
self.parse(data)
- def parse(self, data):
+ def parse(self, data) -> None:
parents = [None, None]
parents[0] = self.root
keymatch = re.compile(r'^\[(.*)\]$')
@@ -577,7 +577,7 @@ def DummyQueryValue(key, value):
# print "Query Value",key.name+"\\"+value,"=>",rv
return rv
-def DummyExists(path):
+def DummyExists(path) -> int:
return 1
def DummyVsWhere(msvc_version, env):
@@ -587,7 +587,7 @@ def DummyVsWhere(msvc_version, env):
class msvsTestCase(unittest.TestCase):
"""This test case is run several times with different defaults.
See its subclasses below."""
- def setUp(self):
+ def setUp(self) -> None:
debug("THIS TYPE :%s"%self)
global registry
registry = self.registry
@@ -599,7 +599,7 @@ class msvsTestCase(unittest.TestCase):
os.chdir(self.test.workpath(""))
self.fs = SCons.Node.FS.FS()
- def test_get_default_version(self):
+ def test_get_default_version(self) -> None:
"""Test retrieval of the default visual studio version"""
debug("Testing for default version %s"%self.default_version)
@@ -632,18 +632,18 @@ class msvsTestCase(unittest.TestCase):
assert env['MSVS']['VERSION'] == override, env['MSVS']['VERSION']
assert v3 == override, v3
- def _TODO_test_merge_default_version(self):
+ def _TODO_test_merge_default_version(self) -> None:
"""Test the merge_default_version() function"""
pass
- def test_query_versions(self):
+ def test_query_versions(self) -> None:
"""Test retrieval of the list of visual studio versions"""
v1 = query_versions()
assert not v1 or str(v1[0]) == self.highest_version, \
(v1, self.highest_version)
assert len(v1) == self.number_of_versions, v1
- def test_config_generation(self):
+ def test_config_generation(self) -> None:
"""Test _DSPGenerator.__init__(...)"""
if not self.highest_version :
return
diff --git a/SCons/Tool/mwcc.py b/SCons/Tool/mwcc.py
index 8f1201a02..22b610a9f 100644
--- a/SCons/Tool/mwcc.py
+++ b/SCons/Tool/mwcc.py
@@ -37,7 +37,7 @@ import os.path
import SCons.Util
-def set_vars(env):
+def set_vars(env) -> int:
"""Set MWCW_VERSION, MWCW_VERSIONS, and some codewarrior environment vars
MWCW_VERSIONS is set to a list of objects representing installed versions
@@ -120,7 +120,7 @@ def find_versions():
class MWVersion:
- def __init__(self, version, path, platform):
+ def __init__(self, version, path, platform) -> None:
self.version = version
self.path = path
self.platform = platform
@@ -144,7 +144,7 @@ class MWVersion:
self.includes = [msl, support]
self.libs = [msl, support]
- def __str__(self):
+ def __str__(self) -> str:
return self.version
@@ -152,7 +152,7 @@ CSuffixes = ['.c', '.C']
CXXSuffixes = ['.cc', '.cpp', '.cxx', '.c++', '.C++']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for the mwcc to an Environment."""
import SCons.Defaults
import SCons.Tool
diff --git a/SCons/Tool/mwld.py b/SCons/Tool/mwld.py
index 20676606e..9824c01b5 100644
--- a/SCons/Tool/mwld.py
+++ b/SCons/Tool/mwld.py
@@ -35,7 +35,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.Tool
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for lib to an Environment."""
SCons.Tool.createStaticLibBuilder(env)
SCons.Tool.createSharedLibBuilder(env)
diff --git a/SCons/Tool/nasm.py b/SCons/Tool/nasm.py
index ff0bc612f..253ad1cf6 100644
--- a/SCons/Tool/nasm.py
+++ b/SCons/Tool/nasm.py
@@ -44,7 +44,7 @@ if SCons.Util.case_sensitive_suffixes('.s', '.S'):
else:
ASSuffixes.extend(['.S'])
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for nasm to an Environment."""
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
diff --git a/SCons/Tool/ninja/Methods.py b/SCons/Tool/ninja/Methods.py
index c0afab80b..7259475b0 100644
--- a/SCons/Tool/ninja/Methods.py
+++ b/SCons/Tool/ninja/Methods.py
@@ -33,17 +33,17 @@ from SCons.Tool.ninja.Utils import get_targets_sources, get_dependencies, get_or
get_rule, get_path, generate_command, get_command_env, get_comstr
-def register_custom_handler(env, name, handler):
+def register_custom_handler(env, name, handler) -> None:
"""Register a custom handler for SCons function actions."""
env[NINJA_CUSTOM_HANDLERS][name] = handler
-def register_custom_rule_mapping(env, pre_subst_string, rule):
+def register_custom_rule_mapping(env, pre_subst_string, rule) -> None:
"""Register a function to call for a given rule."""
SCons.Tool.ninja.Globals.__NINJA_RULE_MAPPING[pre_subst_string] = rule
-def register_custom_rule(env, rule, command, description="", deps=None, pool=None, use_depfile=False, use_response_file=False, response_file_content="$rspc"):
+def register_custom_rule(env, rule, command, description: str="", deps=None, pool=None, use_depfile: bool=False, use_response_file: bool=False, response_file_content: str="$rspc") -> None:
"""Allows specification of Ninja rules from inside SCons files."""
rule_obj = {
"command": command,
@@ -66,12 +66,12 @@ def register_custom_rule(env, rule, command, description="", deps=None, pool=Non
env[NINJA_RULES][rule] = rule_obj
-def register_custom_pool(env, pool, size):
+def register_custom_pool(env, pool, size) -> None:
"""Allows the creation of custom Ninja pools"""
env[NINJA_POOLS][pool] = size
-def set_build_node_callback(env, node, callback):
+def set_build_node_callback(env, node, callback) -> None:
if not node.is_conftest():
node.attributes.ninja_build_callback = callback
@@ -215,7 +215,7 @@ def get_command(env, node, action): # pylint: disable=too-many-branches
return ninja_build
-def gen_get_response_file_command(env, rule, tool, tool_is_dynamic=False, custom_env={}):
+def gen_get_response_file_command(env, rule, tool, tool_is_dynamic: bool=False, custom_env={}):
"""Generate a response file command provider for rule name."""
# If win32 using the environment with a response file command will cause
diff --git a/SCons/Tool/ninja/NinjaState.py b/SCons/Tool/ninja/NinjaState.py
index 5e7c28919..707a9e20d 100644
--- a/SCons/Tool/ninja/NinjaState.py
+++ b/SCons/Tool/ninja/NinjaState.py
@@ -52,7 +52,7 @@ from .Methods import get_command
class NinjaState:
"""Maintains state of Ninja build system as it's translated from SCons."""
- def __init__(self, env, ninja_file, ninja_syntax):
+ def __init__(self, env, ninja_file, ninja_syntax) -> None:
self.env = env
self.ninja_file = ninja_file
@@ -303,7 +303,7 @@ class NinjaState:
}
self.pools = {"scons_pool": 1}
- def add_build(self, node):
+ def add_build(self, node) -> bool:
if not node.has_builder():
return False
@@ -348,12 +348,12 @@ class NinjaState:
# TODO: rely on SCons to tell us what is generated source
# or some form of user scanner maybe (Github Issue #3624)
- def is_generated_source(self, output):
+ def is_generated_source(self, output) -> bool:
"""Check if output ends with a known generated suffix."""
_, suffix = splitext(output)
return suffix in self.generated_suffixes
- def has_generated_sources(self, output):
+ def has_generated_sources(self, output) -> bool:
"""
Determine if output indicates this is a generated header file.
"""
@@ -710,7 +710,7 @@ class NinjaState:
class SConsToNinjaTranslator:
"""Translates SCons Actions into Ninja build objects."""
- def __init__(self, env):
+ def __init__(self, env) -> None:
self.env = env
self.func_handlers = {
# Skip conftest builders
diff --git a/SCons/Tool/ninja/Overrides.py b/SCons/Tool/ninja/Overrides.py
index e98ec4036..83d2efb11 100644
--- a/SCons/Tool/ninja/Overrides.py
+++ b/SCons/Tool/ninja/Overrides.py
@@ -27,7 +27,7 @@ ninja file generation
import SCons
-def ninja_hack_linkcom(env):
+def ninja_hack_linkcom(env) -> None:
# TODO: change LINKCOM and SHLINKCOM to handle embedding manifest exe checks
# without relying on the SCons hacks that SCons uses by default.
if env["PLATFORM"] == "win32":
@@ -42,7 +42,7 @@ def ninja_hack_linkcom(env):
] = '${TEMPFILE("$SHLINK $SHLINKFLAGS $_SHLINK_TARGETS $_LIBDIRFLAGS $_LIBFLAGS $_PDB $_SHLINK_SOURCES", "$SHLINKCOMSTR")}'
-def ninja_hack_arcom(env):
+def ninja_hack_arcom(env) -> None:
"""
Force ARCOM so use 's' flag on ar instead of separately running ranlib
"""
@@ -68,12 +68,12 @@ class NinjaNoResponseFiles(SCons.Platform.TempFileMunge):
def __call__(self, target, source, env, for_signature):
return self.cmd
- def _print_cmd_str(*_args, **_kwargs):
+ def _print_cmd_str(*_args, **_kwargs) -> None:
"""Disable this method"""
pass
-def ninja_always_serial(self, num, taskmaster):
+def ninja_always_serial(self, num, taskmaster) -> None:
"""Replacement for SCons.Job.Jobs constructor which always uses the Serial Job class."""
# We still set self.num_jobs to num even though it's a lie. The
# only consumer of this attribute is the Parallel Job class AND
diff --git a/SCons/Tool/ninja/Utils.py b/SCons/Tool/ninja/Utils.py
index 7269fb2e5..eb09daf4e 100644
--- a/SCons/Tool/ninja/Utils.py
+++ b/SCons/Tool/ninja/Utils.py
@@ -34,7 +34,7 @@ class NinjaExperimentalWarning(SCons.Warnings.WarningOnByDefault):
pass
-def ninja_add_command_line_options():
+def ninja_add_command_line_options() -> None:
"""
Add additional command line arguments to SCons specific to the ninja tool
"""
@@ -92,7 +92,7 @@ def alias_to_ninja_build(node):
}
-def check_invalid_ninja_node(node):
+def check_invalid_ninja_node(node) -> bool:
return not isinstance(node, (SCons.Node.FS.Base, SCons.Node.Alias.Alias))
@@ -129,7 +129,7 @@ def get_order_only(node):
return [get_path(src_file(prereq)) for prereq in filter_ninja_nodes(node.prerequisites)]
-def get_dependencies(node, skip_sources=False):
+def get_dependencies(node, skip_sources: bool=False):
"""Return a list of dependencies for node."""
if skip_sources:
return [
@@ -236,7 +236,7 @@ def to_escaped_list(env, lst):
return sorted([dep.escape(env.get("ESCAPE", lambda x: x)) for dep in deps_list])
-def generate_depfile(env, node, dependencies):
+def generate_depfile(env, node, dependencies) -> None:
"""
Ninja tool function for writing a depfile. The depfile should include
the node path followed by all the dependent files in a makefile format.
@@ -281,7 +281,7 @@ def ninja_recursive_sorted_dict(build):
return sorted_dict
-def ninja_sorted_build(ninja, **build):
+def ninja_sorted_build(ninja, **build) -> None:
sorted_dict = ninja_recursive_sorted_dict(build)
ninja.build(**sorted_dict)
@@ -437,7 +437,7 @@ def ninja_whereis(thing, *_args, **_kwargs):
return path
-def ninja_print_conf_log(s, target, source, env):
+def ninja_print_conf_log(s, target, source, env) -> None:
"""Command line print only for conftest to generate a correct conf log."""
if target and target[0].is_conftest():
action = SCons.Action._ActionAction()
diff --git a/SCons/Tool/ninja/__init__.py b/SCons/Tool/ninja/__init__.py
index 2622641d9..0ee72d2cf 100644
--- a/SCons/Tool/ninja/__init__.py
+++ b/SCons/Tool/ninja/__init__.py
@@ -136,7 +136,7 @@ def ninja_builder(env, target, source):
sys.stdout.write("\n")
-def options(opts):
+def options(opts) -> None:
"""
Add command line Variables for Ninja builder.
"""
@@ -302,7 +302,7 @@ def generate(env):
# instead return something that looks more expanded. So to
# continue working even if a user has done this we map both the
# "bracketted" and semi-expanded versions.
- def robust_rule_mapping(var, rule, tool):
+ def robust_rule_mapping(var, rule, tool) -> None:
provider = gen_get_response_file_command(env, rule, tool)
env.NinjaRuleMapping("${" + var + "}", provider)
@@ -459,7 +459,7 @@ def generate(env):
# In the future we may be able to use this to actually cache the build.ninja
# file once we have the upstream support for referencing SConscripts as File
# nodes.
- def ninja_execute(self):
+ def ninja_execute(self) -> None:
target = self.targets[0]
if target.get_env().get('NINJA_SKIP'):
@@ -475,7 +475,7 @@ def generate(env):
# date-ness.
SCons.Script.Main.BuildTask.needs_execute = lambda x: True
- def ninja_Set_Default_Targets(env, tlist):
+ def ninja_Set_Default_Targets(env, tlist) -> None:
"""
Record the default targets if they were ever set by the user. Ninja
will need to write the default targets and make sure not to include
diff --git a/SCons/Tool/ninja/ninja_daemon_build.py b/SCons/Tool/ninja/ninja_daemon_build.py
index 32c375dfd..f198d773c 100644
--- a/SCons/Tool/ninja/ninja_daemon_build.py
+++ b/SCons/Tool/ninja/ninja_daemon_build.py
@@ -55,7 +55,7 @@ logging.basicConfig(
)
-def log_error(msg):
+def log_error(msg) -> None:
logging.debug(msg)
sys.stderr.write(msg)
diff --git a/SCons/Tool/ninja/ninja_run_daemon.py b/SCons/Tool/ninja/ninja_run_daemon.py
index 08029a29f..666be0f71 100644
--- a/SCons/Tool/ninja/ninja_run_daemon.py
+++ b/SCons/Tool/ninja/ninja_run_daemon.py
@@ -61,7 +61,7 @@ logging.basicConfig(
level=logging.DEBUG,
)
-def log_error(msg):
+def log_error(msg) -> None:
logging.debug(msg)
sys.stderr.write(msg)
diff --git a/SCons/Tool/ninja/ninja_scons_daemon.py b/SCons/Tool/ninja/ninja_scons_daemon.py
index 6802af293..2084097fc 100644
--- a/SCons/Tool/ninja/ninja_scons_daemon.py
+++ b/SCons/Tool/ninja/ninja_scons_daemon.py
@@ -77,11 +77,11 @@ logging.basicConfig(
)
-def daemon_log(message):
+def daemon_log(message) -> None:
logging.debug(message)
-def custom_readlines(handle, line_separator="\n", chunk_size=1):
+def custom_readlines(handle, line_separator: str="\n", chunk_size: int=1):
buf = ""
while not handle.closed:
data = handle.read(chunk_size)
@@ -98,7 +98,7 @@ def custom_readlines(handle, line_separator="\n", chunk_size=1):
buf = ""
-def custom_readerr(handle, line_separator="\n", chunk_size=1):
+def custom_readerr(handle, line_separator: str="\n", chunk_size: int=1):
buf = ""
while not handle.closed:
data = handle.read(chunk_size)
@@ -112,13 +112,13 @@ def custom_readerr(handle, line_separator="\n", chunk_size=1):
yield chunk + line_separator
-def enqueue_output(out, queue):
+def enqueue_output(out, queue) -> None:
for line in iter(custom_readlines(out)):
queue.put(line)
out.close()
-def enqueue_error(err, queue):
+def enqueue_error(err, queue) -> None:
for line in iter(custom_readerr(err)):
queue.put(line)
err.close()
@@ -143,7 +143,7 @@ class StateInfo:
shared_state = StateInfo()
-def sigint_func(signum, frame):
+def sigint_func(signum, frame) -> None:
global shared_state
shared_state.daemon_needs_to_shutdown = True
@@ -264,7 +264,7 @@ logging.debug(
keep_alive_timer = timer()
-def server_thread_func():
+def server_thread_func() -> None:
global shared_state
class S(http.server.BaseHTTPRequestHandler):
def do_GET(self):
@@ -284,7 +284,7 @@ def server_thread_func():
daemon_log(f"Got request: {build[0]}")
input_q.put(build[0])
- def pred():
+ def pred() -> bool:
return build[0] in shared_state.finished_building
with building_cv:
@@ -329,7 +329,7 @@ def server_thread_func():
daemon_log("SERVER ERROR: " + traceback.format_exc())
raise
- def log_message(self, format, *args):
+ def log_message(self, format, *args) -> None:
return
socketserver.TCPServer.allow_reuse_address = True
diff --git a/SCons/Tool/packaging/__init__.py b/SCons/Tool/packaging/__init__.py
index 6fe01c190..c8e530de7 100644
--- a/SCons/Tool/packaging/__init__.py
+++ b/SCons/Tool/packaging/__init__.py
@@ -199,7 +199,7 @@ def Package(env, target=None, source=None, **kw):
#
added = False
-def generate(env):
+def generate(env) -> None:
global added
if not added:
added = True
@@ -218,11 +218,11 @@ def generate(env):
env['BUILDERS']['Tag'] = Tag
-def exists(env):
+def exists(env) -> int:
return 1
-def options(opts):
+def options(opts) -> None:
opts.AddVariables(
EnumVariable('PACKAGETYPE',
'the type of package to create.',
@@ -235,7 +235,7 @@ def options(opts):
# Internal utility functions
#
-def copy_attr(f1, f2):
+def copy_attr(f1, f2) -> None:
""" Copies the special packaging file attributes from f1 to f2.
"""
if f1._tags:
@@ -247,7 +247,7 @@ def copy_attr(f1, f2):
for attr in pattrs:
f2.Tag(attr, f1.GetTag(attr))
-def putintopackageroot(target, source, env, pkgroot, honor_install_location=1):
+def putintopackageroot(target, source, env, pkgroot, honor_install_location: int=1):
""" Copies all source files to the directory given in pkgroot.
If honor_install_location is set and the copied source file has an
@@ -298,7 +298,7 @@ def stripinstallbuilder(target, source, env):
It also warns about files which have no install builder attached.
"""
- def has_no_install_location(file):
+ def has_no_install_location(file) -> bool:
return not (file.has_builder() and hasattr(file.builder, 'name')
and file.builder.name in ["InstallBuilder", "InstallAsBuilder"])
diff --git a/SCons/Tool/packaging/ipk.py b/SCons/Tool/packaging/ipk.py
index ac8b992bb..930eacbec 100644
--- a/SCons/Tool/packaging/ipk.py
+++ b/SCons/Tool/packaging/ipk.py
@@ -105,7 +105,7 @@ def gen_ipk_dir(proot, source, env, kw):
# the packageroot directory does now contain the specfiles.
return proot
-def build_specfiles(source, target, env):
+def build_specfiles(source, target, env) -> int:
""" Filter the targets for the needed files and use the variables in env
to create the specfile.
"""
diff --git a/SCons/Tool/packaging/msi.py b/SCons/Tool/packaging/msi.py
index 458e81f83..a0bed8f2a 100644
--- a/SCons/Tool/packaging/msi.py
+++ b/SCons/Tool/packaging/msi.py
@@ -130,7 +130,7 @@ def create_feature_dict(files):
"""
dict = {}
- def add_to_dict( feature, file ):
+ def add_to_dict( feature, file ) -> None:
if not SCons.Util.is_List( feature ):
feature = [ feature ]
@@ -150,7 +150,7 @@ def create_feature_dict(files):
return dict
-def generate_guids(root):
+def generate_guids(root) -> None:
""" generates globally unique identifiers for parts of the xml which need
them.
@@ -179,7 +179,7 @@ def generate_guids(root):
node.attributes[attribute] = str(hash)
-def string_wxsfile(target, source, env):
+def string_wxsfile(target, source, env) -> str:
return "building WiX file %s" % target[0].path
def build_wxsfile(target, source, env):
@@ -266,7 +266,7 @@ def create_default_directory_layout(root, NAME, VERSION, VENDOR, filename_set):
#
# mandatory and optional file tags
#
-def build_wxsfile_file_section(root, files, NAME, VERSION, VENDOR, filename_set, id_set):
+def build_wxsfile_file_section(root, files, NAME, VERSION, VENDOR, filename_set, id_set) -> None:
""" Builds the Component sections of the wxs file with their included files.
Files need to be specified in 8.3 format and in the long name format, long
@@ -358,7 +358,7 @@ def build_wxsfile_file_section(root, files, NAME, VERSION, VENDOR, filename_set,
#
# additional functions
#
-def build_wxsfile_features_section(root, files, NAME, VERSION, SUMMARY, id_set):
+def build_wxsfile_features_section(root, files, NAME, VERSION, SUMMARY, id_set) -> None:
""" This function creates the <features> tag based on the supplied xml tree.
This is achieved by finding all <component>s and adding them to a default target.
@@ -413,7 +413,7 @@ def build_wxsfile_features_section(root, files, NAME, VERSION, SUMMARY, id_set):
root.getElementsByTagName('Product')[0].childNodes.append(Feature)
-def build_wxsfile_default_gui(root):
+def build_wxsfile_default_gui(root) -> None:
""" This function adds a default GUI to the wxs file
"""
factory = Document()
@@ -427,7 +427,7 @@ def build_wxsfile_default_gui(root):
UIRef.attributes['Id'] = 'WixUI_ErrorProgressText'
Product.childNodes.append(UIRef)
-def build_license_file(directory, spec):
+def build_license_file(directory, spec) -> None:
""" Creates a License.rtf file with the content of "X_MSI_LICENSE_TEXT"
in the given directory
"""
@@ -451,7 +451,7 @@ def build_license_file(directory, spec):
#
# mandatory and optional package tags
#
-def build_wxsfile_header_section(root, spec):
+def build_wxsfile_header_section(root, spec) -> None:
""" Adds the xml file node which define the package meta-data.
"""
# Create the needed DOM nodes and add them at the correct position in the tree.
diff --git a/SCons/Tool/packaging/rpm.py b/SCons/Tool/packaging/rpm.py
index cdeabcf62..a0c317229 100644
--- a/SCons/Tool/packaging/rpm.py
+++ b/SCons/Tool/packaging/rpm.py
@@ -317,7 +317,7 @@ class SimpleTagCompiler:
"cdef ghij cdef gh ij"
"""
- def __init__(self, tagset, mandatory=1):
+ def __init__(self, tagset, mandatory: int=1) -> None:
self.tagset = tagset
self.mandatory = mandatory
diff --git a/SCons/Tool/pdf.py b/SCons/Tool/pdf.py
index 050f1a572..ddaaa8aab 100644
--- a/SCons/Tool/pdf.py
+++ b/SCons/Tool/pdf.py
@@ -37,7 +37,7 @@ PDFBuilder = None
EpsPdfAction = SCons.Action.Action('$EPSTOPDFCOM', '$EPSTOPDFCOMSTR')
-def generate(env):
+def generate(env) -> None:
try:
env['BUILDERS']['PDF']
except KeyError:
@@ -57,7 +57,7 @@ def generate(env):
# put the epstopdf builder in this routine so we can add it after
# the pdftex builder so that one is the default for no source suffix
-def generate2(env):
+def generate2(env) -> None:
bld = env['BUILDERS']['PDF']
#bld.add_action('.ps', EpsPdfAction) # this is covered by direct Ghostcript action in gs.py
bld.add_action('.eps', EpsPdfAction)
@@ -66,7 +66,7 @@ def generate2(env):
env['EPSTOPDFFLAGS'] = SCons.Util.CLVar('')
env['EPSTOPDFCOM'] = '$EPSTOPDF $EPSTOPDFFLAGS ${SOURCE} --outfile=${TARGET}'
-def exists(env):
+def exists(env) -> int:
# This only puts a skeleton Builder in place, so if someone
# references this Tool directly, it's always "available."
return 1
diff --git a/SCons/Tool/pdflatex.py b/SCons/Tool/pdflatex.py
index fbffb2395..e3c733b97 100644
--- a/SCons/Tool/pdflatex.py
+++ b/SCons/Tool/pdflatex.py
@@ -49,7 +49,7 @@ def PDFLaTeXAuxFunction(target = None, source= None, env=None):
PDFLaTeXAuxAction = None
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for pdflatex to an Environment."""
global PDFLaTeXAction
if PDFLaTeXAction is None:
diff --git a/SCons/Tool/pdftex.py b/SCons/Tool/pdftex.py
index e9a0bda03..4b7707fbe 100644
--- a/SCons/Tool/pdftex.py
+++ b/SCons/Tool/pdftex.py
@@ -68,7 +68,7 @@ def PDFTeXLaTeXFunction(target = None, source= None, env=None):
PDFTeXLaTeXAction = None
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for pdftex to an Environment."""
global PDFTeXAction
if PDFTeXAction is None:
diff --git a/SCons/Tool/python.py b/SCons/Tool/python.py
index c61fc8d72..2820afb47 100644
--- a/SCons/Tool/python.py
+++ b/SCons/Tool/python.py
@@ -33,13 +33,13 @@ import SCons.Tool
from SCons.Scanner.Python import PythonScanner, PythonSuffixes
-def generate(env):
+def generate(env) -> None:
"""Hook the python builder and scanner into the environment."""
for suffix in PythonSuffixes:
SCons.Tool.SourceFileScanner.add_scanner(suffix, PythonScanner)
-def exists(env):
+def exists(env) -> bool:
return True
# Local Variables:
diff --git a/SCons/Tool/qt.py b/SCons/Tool/qt.py
index 607b58d83..376e2ba19 100644
--- a/SCons/Tool/qt.py
+++ b/SCons/Tool/qt.py
@@ -34,5 +34,5 @@ def generate(env):
"'qt3' will be removed entirely in a future release."
)
-def exists(env):
+def exists(env) -> bool:
return False
diff --git a/SCons/Tool/qt3.py b/SCons/Tool/qt3.py
index 4e6975648..d35b661a4 100644
--- a/SCons/Tool/qt3.py
+++ b/SCons/Tool/qt3.py
@@ -90,7 +90,7 @@ def find_platform_specific_qt3_paths():
QT3_BIN_DIR = find_platform_specific_qt3_paths()
-def checkMocIncluded(target, source, env):
+def checkMocIncluded(target, source, env) -> None:
moc = target[0]
cpp = source[0]
# looks like cpp.includes is cleared before the build stage :-(
@@ -116,7 +116,7 @@ class _Automoc:
StaticLibraries.
"""
- def __init__(self, objBuilderName):
+ def __init__(self, objBuilderName) -> None:
self.objBuilderName = objBuilderName
def __call__(self, target, source, env):
diff --git a/SCons/Tool/rmic.py b/SCons/Tool/rmic.py
index 5c7a04066..852339703 100644
--- a/SCons/Tool/rmic.py
+++ b/SCons/Tool/rmic.py
@@ -104,7 +104,7 @@ RMICBuilder = SCons.Builder.Builder(action = RMICAction,
target_factory = SCons.Node.FS.Dir,
source_factory = SCons.Node.FS.File)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for rmic to an Environment."""
env['BUILDERS']['RMIC'] = RMICBuilder
@@ -123,7 +123,7 @@ def generate(env):
env['RMICCOM'] = '$RMIC $RMICFLAGS -d ${TARGET.attributes.java_lookupdir} -classpath ${SOURCE.attributes.java_classdir} ${SOURCES.attributes.java_classname}'
env['JAVACLASSSUFFIX'] = '.class'
-def exists(env):
+def exists(env) -> int:
# As reported by Jan Nijtmans in issue #2730, the simple
# return env.Detect('rmic')
# doesn't always work during initialization. For now, we
diff --git a/SCons/Tool/rpcgen.py b/SCons/Tool/rpcgen.py
index 5ed565862..d5f514a44 100644
--- a/SCons/Tool/rpcgen.py
+++ b/SCons/Tool/rpcgen.py
@@ -42,7 +42,7 @@ rpcgen_header = cmd % ('h', '$RPCGENHEADERFLAGS')
rpcgen_service = cmd % ('m', '$RPCGENSERVICEFLAGS')
rpcgen_xdr = cmd % ('c', '$RPCGENXDRFLAGS')
-def generate(env):
+def generate(env) -> None:
"""Add RPCGEN Builders and construction variables for an Environment."""
client = Builder(action=rpcgen_client, suffix='_clnt.c', src_suffix='.x')
diff --git a/SCons/Tool/rpm.py b/SCons/Tool/rpm.py
index 2fd802a67..94f5e574a 100644
--- a/SCons/Tool/rpm.py
+++ b/SCons/Tool/rpm.py
@@ -46,7 +46,7 @@ import SCons.Util
import SCons.Action
import SCons.Defaults
-def get_cmd(source, env):
+def get_cmd(source, env) -> str:
tar_file_with_included_specfile = source
if SCons.Util.is_List(source):
tar_file_with_included_specfile = source[0]
@@ -110,7 +110,7 @@ RpmBuilder = SCons.Builder.Builder(action = SCons.Action.Action('$RPMCOM', '$RPM
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for rpm to an Environment."""
try:
bld = env['BUILDERS']['Rpm']
diff --git a/SCons/Tool/rpmutils.py b/SCons/Tool/rpmutils.py
index 2c4fb3220..209fcea3e 100644
--- a/SCons/Tool/rpmutils.py
+++ b/SCons/Tool/rpmutils.py
@@ -437,7 +437,7 @@ arch_canon = {
# End of rpmrc dictionaries (Marker, don't change or remove!)
-def defaultMachine(use_rpm_default=True):
+def defaultMachine(use_rpm_default: bool=True):
""" Return the canonicalized machine name. """
if use_rpm_default:
@@ -471,7 +471,7 @@ def defaultNames():
""" Return the canonicalized machine and system name. """
return defaultMachine(), defaultSystem()
-def updateRpmDicts(rpmrc, pyfile):
+def updateRpmDicts(rpmrc, pyfile) -> None:
""" Read the given rpmrc file with RPM definitions and update the
info dictionaries in the file pyfile with it.
The arguments will usually be 'rpmrc.in' from a recent RPM source
@@ -531,10 +531,10 @@ def updateRpmDicts(rpmrc, pyfile):
except:
pass
-def usage():
+def usage() -> None:
print("rpmutils.py rpmrc.in rpmutils.py")
-def main():
+def main() -> None:
import sys
if len(sys.argv) < 3:
diff --git a/SCons/Tool/sgiar.py b/SCons/Tool/sgiar.py
index 54f8b7b67..72ce3766b 100644
--- a/SCons/Tool/sgiar.py
+++ b/SCons/Tool/sgiar.py
@@ -39,7 +39,7 @@ import SCons.Defaults
import SCons.Tool
import SCons.Util
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ar to an Environment."""
SCons.Tool.createStaticLibBuilder(env)
diff --git a/SCons/Tool/sgicc.py b/SCons/Tool/sgicc.py
index 94a049769..7950d1074 100644
--- a/SCons/Tool/sgicc.py
+++ b/SCons/Tool/sgicc.py
@@ -35,7 +35,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
from . import cc
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for gcc to an Environment."""
cc.generate(env)
diff --git a/SCons/Tool/sgicxx.py b/SCons/Tool/sgicxx.py
index 48b04ea92..796f7ab1d 100644
--- a/SCons/Tool/sgicxx.py
+++ b/SCons/Tool/sgicxx.py
@@ -40,7 +40,7 @@ cplusplus = SCons.Tool.cxx
#cplusplus = __import__('cxx', globals(), locals(), [])
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for SGI MIPS C++ to an Environment."""
cplusplus.generate(env)
diff --git a/SCons/Tool/sgilink.py b/SCons/Tool/sgilink.py
index e92c7b991..f66ad5ab1 100644
--- a/SCons/Tool/sgilink.py
+++ b/SCons/Tool/sgilink.py
@@ -36,7 +36,7 @@ from . import link
linkers = ['CC', 'cc']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for MIPSPro to an Environment."""
link.generate(env)
diff --git a/SCons/Tool/sunar.py b/SCons/Tool/sunar.py
index 266e91493..03223b636 100644
--- a/SCons/Tool/sunar.py
+++ b/SCons/Tool/sunar.py
@@ -38,7 +38,7 @@ import SCons.Defaults
import SCons.Tool
import SCons.Util
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for ar to an Environment."""
SCons.Tool.createStaticLibBuilder(env)
diff --git a/SCons/Tool/suncc.py b/SCons/Tool/suncc.py
index 4651219bd..4ef023158 100644
--- a/SCons/Tool/suncc.py
+++ b/SCons/Tool/suncc.py
@@ -36,7 +36,7 @@ import SCons.Util
from . import cc
-def generate(env):
+def generate(env) -> None:
"""
Add Builders and construction variables for Forte C and C++ compilers
to an Environment.
diff --git a/SCons/Tool/suncxx.py b/SCons/Tool/suncxx.py
index 7c4b0941d..51dc3731e 100644
--- a/SCons/Tool/suncxx.py
+++ b/SCons/Tool/suncxx.py
@@ -121,7 +121,7 @@ def get_cppc(env):
return (cppcPath, 'CC', 'CC', cppcVersion)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for SunPRO C++."""
path, cxx, shcxx, version = get_cppc(env)
if path:
diff --git a/SCons/Tool/sunf77.py b/SCons/Tool/sunf77.py
index 20d18938f..efeb488a2 100644
--- a/SCons/Tool/sunf77.py
+++ b/SCons/Tool/sunf77.py
@@ -39,7 +39,7 @@ from .FortranCommon import add_all_to_env
compilers = ['sunf77', 'f77']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for sunf77 to an Environment."""
add_all_to_env(env)
diff --git a/SCons/Tool/sunf90.py b/SCons/Tool/sunf90.py
index ce1697c34..4ce03c19a 100644
--- a/SCons/Tool/sunf90.py
+++ b/SCons/Tool/sunf90.py
@@ -39,7 +39,7 @@ from .FortranCommon import add_all_to_env
compilers = ['sunf90', 'f90']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for sun f90 compiler to an
Environment."""
add_all_to_env(env)
diff --git a/SCons/Tool/sunf95.py b/SCons/Tool/sunf95.py
index 218569c0b..273987b77 100644
--- a/SCons/Tool/sunf95.py
+++ b/SCons/Tool/sunf95.py
@@ -39,7 +39,7 @@ from .FortranCommon import add_all_to_env
compilers = ['sunf95', 'f95']
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for sunf95 to an
Environment."""
add_all_to_env(env)
diff --git a/SCons/Tool/sunlink.py b/SCons/Tool/sunlink.py
index b0c9816e6..c86d7c209 100644
--- a/SCons/Tool/sunlink.py
+++ b/SCons/Tool/sunlink.py
@@ -55,7 +55,7 @@ for d in dirs:
break
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for Forte to an Environment."""
link.generate(env)
diff --git a/SCons/Tool/swig.py b/SCons/Tool/swig.py
index ff0c80d44..aefd7cbaa 100644
--- a/SCons/Tool/swig.py
+++ b/SCons/Tool/swig.py
@@ -46,7 +46,7 @@ swigs = [ 'swig', 'swig3.0', 'swig2.0' ]
SwigAction = SCons.Action.Action('$SWIGCOM', '$SWIGCOMSTR')
-def swigSuffixEmitter(env, source):
+def swigSuffixEmitter(env, source) -> str:
if '-c++' in SCons.Util.CLVar(env.subst("$SWIGFLAGS", source=source)):
return '$SWIGCXXFILESUFFIX'
else:
@@ -78,7 +78,7 @@ def _find_modules(src):
directors = directors or 'directors' in m[0]
return mnames, directors
-def _add_director_header_targets(target, env):
+def _add_director_header_targets(target, env) -> None:
# Directors only work with C++ code, not C
suffix = env.subst(env['SWIGCXXFILESUFFIX'])
# For each file ending in SWIGCXXFILESUFFIX, add a new target director
@@ -158,7 +158,7 @@ def _get_swig_version(env, swig):
return version
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for swig to an Environment."""
c_file, cxx_file = SCons.Tool.createCFileBuilders(env)
diff --git a/SCons/Tool/tar.py b/SCons/Tool/tar.py
index 25937811c..ba7f45cb4 100644
--- a/SCons/Tool/tar.py
+++ b/SCons/Tool/tar.py
@@ -50,7 +50,7 @@ TarBuilder = SCons.Builder.Builder(action = TarAction,
multi = 1)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for tar to an Environment."""
try:
bld = env['BUILDERS']['Tar']
diff --git a/SCons/Tool/tex.py b/SCons/Tool/tex.py
index 0a688f58a..72526c32e 100644
--- a/SCons/Tool/tex.py
+++ b/SCons/Tool/tex.py
@@ -149,11 +149,11 @@ _null = SCons.Scanner.LaTeX._null
modify_env_var = SCons.Scanner.LaTeX.modify_env_var
-def check_file_error_message(utility, filename='log'):
+def check_file_error_message(utility, filename: str='log') -> None:
msg = '%s returned an error, check the %s file\n' % (utility, filename)
sys.stdout.write(msg)
-def FindFile(name,suffixes,paths,env,requireExt=False):
+def FindFile(name,suffixes,paths,env,requireExt: bool=False):
if requireExt:
name,ext = SCons.Util.splitext(name)
# if the user gave an extension use it.
@@ -253,7 +253,7 @@ def InternalLaTeXAuxAction(XXXLaTeXAction, target = None, source= None, env=None
# .aux files already processed by BibTex
already_bibtexed = []
- def check_content_hash(filenode, suffix):
+ def check_content_hash(filenode, suffix) -> bool:
"""
Routine to update content hash and compare
"""
@@ -840,7 +840,7 @@ def tex_emitter_core(target, source, env, graphics_extensions):
TeXLaTeXAction = None
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for TeX to an Environment."""
global TeXLaTeXAction
@@ -859,7 +859,7 @@ def generate(env):
bld.add_action('.tex', TeXLaTeXAction)
bld.add_emitter('.tex', tex_eps_emitter)
-def generate_darwin(env):
+def generate_darwin(env) -> None:
try:
environ = env['ENV']
except KeyError:
@@ -874,7 +874,7 @@ def generate_darwin(env):
if ospath:
env.AppendENVPath('PATH', ospath)
-def generate_common(env):
+def generate_common(env) -> None:
"""Add internal Builders and construction variables for LaTeX to an Environment."""
# Add OSX system paths so TeX tools can be found
diff --git a/SCons/Tool/textfile.py b/SCons/Tool/textfile.py
index 0ec31d8f7..9d98644c4 100644
--- a/SCons/Tool/textfile.py
+++ b/SCons/Tool/textfile.py
@@ -137,11 +137,11 @@ def _action(target, source, env):
target_file.close()
-def _strfunc(target, source, env):
+def _strfunc(target, source, env) -> str:
return "Creating '%s'" % target[0]
-def _convert_list_R(newlist, sources):
+def _convert_list_R(newlist, sources) -> None:
for elem in sources:
if is_Sequence(elem):
_convert_list_R(newlist, elem)
@@ -181,7 +181,7 @@ _subst_builder = SCons.Builder.Builder(
)
-def generate(env):
+def generate(env) -> None:
env['LINESEPARATOR'] = LINESEP # os.linesep
env['BUILDERS']['Textfile'] = _text_builder
env['TEXTFILEPREFIX'] = ''
@@ -192,7 +192,7 @@ def generate(env):
env['FILE_ENCODING'] = env.get('FILE_ENCODING', 'utf-8')
-def exists(env):
+def exists(env) -> int:
return 1
# Local Variables:
diff --git a/SCons/Tool/tlib.py b/SCons/Tool/tlib.py
index 33adb576b..8b0e6ddad 100644
--- a/SCons/Tool/tlib.py
+++ b/SCons/Tool/tlib.py
@@ -33,7 +33,7 @@ import SCons.Tool
import SCons.Tool.bcc32
import SCons.Util
-def generate(env):
+def generate(env) -> None:
SCons.Tool.bcc32.findIt('tlib', env)
"""Add Builders and construction variables for ar to an Environment."""
SCons.Tool.createStaticLibBuilder(env)
diff --git a/SCons/Tool/wix.py b/SCons/Tool/wix.py
index 04136ce8e..617abf273 100644
--- a/SCons/Tool/wix.py
+++ b/SCons/Tool/wix.py
@@ -36,7 +36,7 @@ import SCons.Builder
import SCons.Action
import os
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for WiX to an Environment."""
if not exists(env):
return
diff --git a/SCons/Tool/wixTests.py b/SCons/Tool/wixTests.py
index 5b255d932..26b2295b8 100644
--- a/SCons/Tool/wixTests.py
+++ b/SCons/Tool/wixTests.py
@@ -41,7 +41,7 @@ test.write('light.exe', 'rem this is light')
os.environ['PATH'] += os.pathsep + test.workdir
class WixTestCase(unittest.TestCase):
- def test_vars(self):
+ def test_vars(self) -> None:
"""Test that WiX tool adds vars"""
env = Environment(tools=['wix'])
assert env['WIXCANDLE'] is not None
diff --git a/SCons/Tool/xgettext.py b/SCons/Tool/xgettext.py
index ed76e2552..f04c6a6a1 100644
--- a/SCons/Tool/xgettext.py
+++ b/SCons/Tool/xgettext.py
@@ -51,7 +51,7 @@ class _CmdRunner:
variables. It also provides `strfunction()` method, which shall be used by
scons Action objects to print command string. """
- def __init__(self, command, commandstr=None):
+ def __init__(self, command, commandstr=None) -> None:
self.out = None
self.err = None
self.status = None
@@ -169,7 +169,7 @@ class _POTBuilder(BuilderBase):
return BuilderBase._execute(self, env, target, source, *args)
-def _scan_xgettext_from_files(target, source, env, files=None, path=None):
+def _scan_xgettext_from_files(target, source, env, files=None, path=None) -> int:
""" Parses `POTFILES.in`-like file and returns list of extracted file names.
"""
if files is None:
@@ -257,7 +257,7 @@ def _POTUpdateBuilder(env, **kw):
return _POTBuilder(**kw)
-def generate(env, **kw):
+def generate(env, **kw) -> None:
""" Generate `xgettext` tool """
if sys.platform == 'win32':
diff --git a/SCons/Tool/yacc.py b/SCons/Tool/yacc.py
index 42ef1db03..67ecd8678 100644
--- a/SCons/Tool/yacc.py
+++ b/SCons/Tool/yacc.py
@@ -125,7 +125,7 @@ def yyEmitter(target, source, env) -> tuple:
return _yaccEmitter(target, source, env, ['.yy'], '$YACCHXXFILESUFFIX')
-def get_yacc_path(env, append_paths=False) -> Optional[str]:
+def get_yacc_path(env, append_paths: bool=False) -> Optional[str]:
"""
Returns the path to the yacc tool, searching several possible names.
diff --git a/SCons/Tool/zip.py b/SCons/Tool/zip.py
index f3d38fe7a..4c04afceb 100644
--- a/SCons/Tool/zip.py
+++ b/SCons/Tool/zip.py
@@ -57,7 +57,7 @@ def _create_zipinfo_for_file(fname, arcname, date_time, compression):
return zinfo
-def zip_builder(target, source, env):
+def zip_builder(target, source, env) -> None:
compression = env.get('ZIPCOMPRESSION', zipfile.ZIP_STORED)
zip_root = str(env.get('ZIPROOT', ''))
date_time = env.get('ZIP_OVERRIDE_TIMESTAMP')
@@ -94,7 +94,7 @@ ZipBuilder = SCons.Builder.Builder(action=SCons.Action.Action('$ZIPCOM', '$ZIPCO
multi=1)
-def generate(env):
+def generate(env) -> None:
"""Add Builders and construction variables for zip to an Environment."""
try:
bld = env['BUILDERS']['Zip']
@@ -110,7 +110,7 @@ def generate(env):
env['ZIPROOT'] = SCons.Util.CLVar('')
-def exists(env):
+def exists(env) -> bool:
return True
# Local Variables: