This is an automated email from the ASF dual-hosted git repository.

juergbi pushed a commit to branch jbilleter/requirements
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit e6ac735a6ad17629be59ca9ffb3be6a4dc2e6de3
Author: Jürg Billeter <[email protected]>
AuthorDate: Sat Apr 25 12:21:00 2026 +0200

    Update black to version 26.3
    
    This is required for compatibility with Python 3.14.
---
 setup.py                                                |  1 -
 src/buildstream/_artifact.py                            |  1 +
 src/buildstream/_cachekey.py                            |  1 -
 src/buildstream/_cas/casserver.py                       |  1 -
 src/buildstream/_context.py                             |  1 -
 src/buildstream/_elementsources.py                      |  1 +
 src/buildstream/_frontend/cli.py                        |  1 +
 src/buildstream/_messenger.py                           |  1 -
 src/buildstream/_options/optionpool.py                  |  1 -
 src/buildstream/_project.py                             |  7 +++----
 src/buildstream/_signals.py                             |  1 -
 src/buildstream/_testing/_fixtures.py                   |  1 -
 src/buildstream/_testing/_sourcetests/fetch.py          |  1 -
 src/buildstream/_testing/_sourcetests/track.py          |  1 -
 .../_testing/_sourcetests/track_cross_junction.py       |  1 -
 src/buildstream/_testing/_utils/site.py                 |  1 -
 src/buildstream/_testing/repo.py                        |  1 +
 src/buildstream/_testing/runcli.py                      |  9 ++-------
 src/buildstream/_workspaces.py                          |  1 -
 src/buildstream/buildelement.py                         |  1 -
 src/buildstream/downloadablefilesource.py               |  1 -
 src/buildstream/element.py                              |  8 +++++---
 src/buildstream/plugin.py                               |  1 +
 src/buildstream/plugins/sources/remote.py               |  1 +
 src/buildstream/source.py                               |  6 +++---
 src/buildstream/sourcemirror.py                         |  2 +-
 src/buildstream/storage/_casbaseddirectory.py           |  4 ++--
 src/buildstream/storage/_filebaseddirectory.py          |  1 +
 src/buildstream/storage/directory.py                    |  1 -
 src/buildstream/utils.py                                |  2 +-
 tests/artifactcache/capabilities.py                     |  1 -
 tests/artifactcache/config.py                           |  1 -
 tests/artifactcache/expiry.py                           |  1 -
 tests/artifactcache/junctions.py                        |  1 -
 tests/artifactcache/pull.py                             |  1 -
 tests/artifactcache/push.py                             |  1 -
 tests/cachekey/cachekey.py                              |  1 -
 tests/conftest.py                                       |  1 -
 tests/examples/first-project.py                         |  1 -
 tests/examples/integration-commands.py                  |  1 -
 tests/examples/running-commands.py                      |  1 -
 tests/format/include.py                                 | 17 ++++-------------
 tests/format/junctions.py                               |  1 -
 tests/format/link.py                                    |  2 +-
 tests/format/project.py                                 |  1 -
 tests/format/substitutions.py                           |  1 -
 tests/format/variables.py                               |  1 -
 tests/frontend/artifact_checkout.py                     |  2 +-
 tests/frontend/artifact_delete.py                       |  1 -
 tests/frontend/artifact_list_contents.py                |  1 -
 tests/frontend/artifact_log.py                          |  1 -
 tests/frontend/artifact_pull.py                         |  2 +-
 tests/frontend/artifact_show.py                         |  1 -
 tests/frontend/large_directory.py                       |  1 -
 tests/frontend/mirror.py                                |  1 -
 tests/frontend/pull.py                                  |  1 -
 tests/frontend/push.py                                  |  1 -
 tests/frontend/show_artifact_cas_digest.py              |  1 -
 tests/frontend/version.py                               |  1 -
 tests/integration/artifact.py                           |  2 +-
 tests/integration/autotools.py                          |  1 -
 tests/integration/build-uid.py                          |  1 -
 tests/integration/compose-symlinks.py                   |  1 -
 tests/integration/compose.py                            |  1 -
 tests/integration/filter.py                             |  1 -
 tests/integration/import.py                             |  1 -
 tests/integration/interactive_build.py                  |  1 -
 tests/integration/manual.py                             | 11 ++---------
 tests/integration/messages.py                           |  1 -
 tests/integration/pullbuildtrees.py                     |  1 -
 tests/integration/script.py                             |  1 -
 tests/integration/shell.py                              |  1 -
 tests/integration/shellbuildtrees.py                    |  1 -
 tests/integration/sockets.py                            |  1 -
 tests/integration/source-determinism.py                 |  1 -
 tests/integration/stack.py                              |  1 -
 tests/integration/symlinks.py                           |  1 -
 tests/integration/workspace.py                          |  1 -
 tests/internals/cascache.py                             |  1 -
 tests/internals/loader.py                               |  1 -
 tests/internals/storage_vdir_import.py                  | 13 ++++++-------
 tests/internals/yaml.py                                 |  1 -
 tests/plugins/loading.py                                |  1 -
 .../sample-plugins/src/sample_plugins/sources/git.py    |  1 -
 tests/plugins/shadow.py                                 |  1 -
 tests/remotecache/simple.py                             |  2 +-
 tests/remoteexecution/remotecache.py                    |  1 -
 tests/remoteexecution/simple.py                         |  1 -
 tests/sandboxes/missing-command.py                      |  1 -
 tests/sandboxes/missing_dependencies.py                 |  1 -
 tests/sourcecache/capabilities.py                       |  1 -
 tests/sourcecache/staging.py                            |  1 -
 tests/sourcecache/workspace.py                          |  1 -
 tests/sources/source_provenance_attributes.py           |  1 -
 tests/sources/variables.py                              |  1 -
 tests/testutils/python_repo.py                          |  1 -
 tests/testutils/site.py                                 |  1 +
 tox.ini                                                 |  4 ++--
 98 files changed, 44 insertions(+), 131 deletions(-)

diff --git a/setup.py b/setup.py
index 4628f299e..ba38f3e72 100755
--- a/setup.py
+++ b/setup.py
@@ -21,7 +21,6 @@ from pathlib import Path
 import re
 import sys
 
-
 ###################################
 # Ensure we have a version number #
 ###################################
diff --git a/src/buildstream/_artifact.py b/src/buildstream/_artifact.py
index 939b3018e..075be8fe3 100644
--- a/src/buildstream/_artifact.py
+++ b/src/buildstream/_artifact.py
@@ -37,6 +37,7 @@ from .storage._casbaseddirectory import CasBasedDirectory
 from .sandbox._config import SandboxConfig
 from ._variables import Variables
 
+
 # An Artifact class to abstract artifact operations
 # from the Element class
 #
diff --git a/src/buildstream/_cachekey.py b/src/buildstream/_cachekey.py
index 2a3b7f2ef..93fd7764e 100644
--- a/src/buildstream/_cachekey.py
+++ b/src/buildstream/_cachekey.py
@@ -19,7 +19,6 @@ import hashlib
 
 import ujson
 
-
 # Internal record of the size of a cache key
 _CACHEKEY_SIZE = len(hashlib.sha256().hexdigest())
 
diff --git a/src/buildstream/_cas/casserver.py 
b/src/buildstream/_cas/casserver.py
index 72340ad7c..17f9ebf05 100644
--- a/src/buildstream/_cas/casserver.py
+++ b/src/buildstream/_cas/casserver.py
@@ -33,7 +33,6 @@ from .._protos.build.bazel.remote.execution.v2 import (
 from .._protos.google.bytestream import bytestream_pb2_grpc
 from .casdprocessmanager import CASDProcessManager
 
-
 # The default limit for gRPC messages is 4 MiB.
 # Limit payload to 1 MiB to leave sufficient headroom for metadata.
 _MAX_PAYLOAD_BYTES = 1024 * 1024
diff --git a/src/buildstream/_context.py b/src/buildstream/_context.py
index 48e8eff43..0c949fa59 100644
--- a/src/buildstream/_context.py
+++ b/src/buildstream/_context.py
@@ -35,7 +35,6 @@ from .types import _CacheBuildTrees, _PipelineSelection, 
_SchedulerErrorAction,
 from ._workspaces import Workspaces, WorkspaceProjectCache
 from .node import Node, MappingNode
 
-
 if TYPE_CHECKING:
     # pylint: disable=cyclic-import
     from ._project import Project
diff --git a/src/buildstream/_elementsources.py 
b/src/buildstream/_elementsources.py
index 39241493a..1d862c176 100644
--- a/src/buildstream/_elementsources.py
+++ b/src/buildstream/_elementsources.py
@@ -32,6 +32,7 @@ if TYPE_CHECKING:
 
     # pylint: enable=cyclic-import
 
+
 # An ElementSources object represents the combined sources of an element.
 class ElementSources:
     def __init__(self, context: Context, project: "Project", plugin: Plugin):
diff --git a/src/buildstream/_frontend/cli.py b/src/buildstream/_frontend/cli.py
index d98ba0e03..e9e6ddfb9 100644
--- a/src/buildstream/_frontend/cli.py
+++ b/src/buildstream/_frontend/cli.py
@@ -84,6 +84,7 @@ class RemoteSpecType(click.ParamType):
 #            Override of click's main entry point                #
 ##################################################################
 
+
 # search_command()
 #
 # Helper function to get a command and context object
diff --git a/src/buildstream/_messenger.py b/src/buildstream/_messenger.py
index 23c4c063c..fd858b610 100644
--- a/src/buildstream/_messenger.py
+++ b/src/buildstream/_messenger.py
@@ -27,7 +27,6 @@ from ._message import Message, MessageType, 
unconditional_messages
 from ._state import State, Task
 from ._version import get_versions
 
-
 _RENDER_INTERVAL: datetime.timedelta = datetime.timedelta(seconds=1)
 
 
diff --git a/src/buildstream/_options/optionpool.py 
b/src/buildstream/_options/optionpool.py
index 52ae0b35e..353316664 100644
--- a/src/buildstream/_options/optionpool.py
+++ b/src/buildstream/_options/optionpool.py
@@ -28,7 +28,6 @@ from .optioneltmask import OptionEltMask
 from .optionarch import OptionArch
 from .optionos import OptionOS
 
-
 _OPTION_TYPES = {
     OptionBool.OPTION_TYPE: OptionBool,
     OptionEnum.OPTION_TYPE: OptionEnum,
diff --git a/src/buildstream/_project.py b/src/buildstream/_project.py
index 0af9b132b..dd46442c2 100644
--- a/src/buildstream/_project.py
+++ b/src/buildstream/_project.py
@@ -42,7 +42,6 @@ from ._remotespec import RemoteSpec
 from .sourcemirror import SourceMirror
 from .source import AliasSubstitution, SourceError
 
-
 if TYPE_CHECKING:
     from ._context import Context
     from .plugins.elements.junction import JunctionElement
@@ -125,9 +124,9 @@ class Project:
         self.sandbox: Optional[MappingNode] = None
         self.splits: Optional[MappingNode] = None
 
-        self.source_provenance_attributes: Optional[
-            MappingNode
-        ] = None  # Source provenance attributes and their description
+        self.source_provenance_attributes: Optional[MappingNode] = (
+            None  # Source provenance attributes and their description
+        )
 
         #
         # Private members
diff --git a/src/buildstream/_signals.py b/src/buildstream/_signals.py
index 0556945d3..4fa305446 100644
--- a/src/buildstream/_signals.py
+++ b/src/buildstream/_signals.py
@@ -22,7 +22,6 @@ from contextlib import contextmanager, ExitStack
 from collections import deque
 from typing import Callable, Deque
 
-
 # Global per process state for handling of sigterm/sigtstp/sigcont,
 # note that it is expected that this only ever be used by new processes
 # the scheduler starts, not the main process.
diff --git a/src/buildstream/_testing/_fixtures.py 
b/src/buildstream/_testing/_fixtures.py
index 338fd93c6..68fe7aeca 100644
--- a/src/buildstream/_testing/_fixtures.py
+++ b/src/buildstream/_testing/_fixtures.py
@@ -18,7 +18,6 @@ import time
 import psutil
 import pytest
 
-
 # Number of seconds to wait for background threads to exit.
 _AWAIT_THREADS_TIMEOUT_SECONDS = 5
 
diff --git a/src/buildstream/_testing/_sourcetests/fetch.py 
b/src/buildstream/_testing/_sourcetests/fetch.py
index 4e75e03e7..a939b74e7 100644
--- a/src/buildstream/_testing/_sourcetests/fetch.py
+++ b/src/buildstream/_testing/_sourcetests/fetch.py
@@ -25,7 +25,6 @@ from .. import cli  # pylint: disable=unused-import
 from .utils import update_project_configuration
 from .utils import kind  # pylint: disable=unused-import
 
-
 # Project directory
 TOP_DIR = os.path.dirname(os.path.realpath(__file__))
 DATA_DIR = os.path.join(TOP_DIR, "project")
diff --git a/src/buildstream/_testing/_sourcetests/track.py 
b/src/buildstream/_testing/_sourcetests/track.py
index fb784e0a0..351122bd6 100644
--- a/src/buildstream/_testing/_sourcetests/track.py
+++ b/src/buildstream/_testing/_sourcetests/track.py
@@ -26,7 +26,6 @@ from .. import cli  # pylint: disable=unused-import
 from .utils import update_project_configuration
 from .utils import kind  # pylint: disable=unused-import
 
-
 # Project directory
 TOP_DIR = os.path.dirname(os.path.realpath(__file__))
 DATA_DIR = os.path.join(TOP_DIR, "project")
diff --git a/src/buildstream/_testing/_sourcetests/track_cross_junction.py 
b/src/buildstream/_testing/_sourcetests/track_cross_junction.py
index 79a0c0e3c..9fe7db089 100644
--- a/src/buildstream/_testing/_sourcetests/track_cross_junction.py
+++ b/src/buildstream/_testing/_sourcetests/track_cross_junction.py
@@ -25,7 +25,6 @@ from .. import create_repo, ALL_REPO_KINDS
 from .. import cli  # pylint: disable=unused-import
 from .utils import add_plugins_conf
 
-
 # Project directory
 TOP_DIR = os.path.dirname(os.path.realpath(__file__))
 DATA_DIR = os.path.join(TOP_DIR, "project")
diff --git a/src/buildstream/_testing/_utils/site.py 
b/src/buildstream/_testing/_utils/site.py
index 0895e2b11..d4f2a9cb0 100644
--- a/src/buildstream/_testing/_utils/site.py
+++ b/src/buildstream/_testing/_utils/site.py
@@ -24,7 +24,6 @@ from typing import Optional  # pylint: disable=unused-import
 from buildstream import utils, ProgramNotFoundError
 from buildstream._platform import Platform
 
-
 try:
     GIT = utils.get_host_tool("git")  # type: Optional[str]
     HAVE_GIT = True
diff --git a/src/buildstream/_testing/repo.py b/src/buildstream/_testing/repo.py
index e429cf4a7..32b1e20da 100644
--- a/src/buildstream/_testing/repo.py
+++ b/src/buildstream/_testing/repo.py
@@ -17,6 +17,7 @@ Repo - Utility class for testing source plugins
 
 
 """
+
 import os
 import shutil
 
diff --git a/src/buildstream/_testing/runcli.py 
b/src/buildstream/_testing/runcli.py
index 0083e71f3..24af09da7 100644
--- a/src/buildstream/_testing/runcli.py
+++ b/src/buildstream/_testing/runcli.py
@@ -24,7 +24,6 @@ runcli - Test fixtures used for running BuildStream commands
 
 """
 
-
 import os
 import re
 import sys
@@ -122,16 +121,12 @@ class Result:
     #
     def assert_main_error(self, error_domain, error_reason, fail_message="", 
*, debug=False):
         if debug:
-            print(
-                """
+            print("""
                 Exit code: {}
                 Exception: {}
                 Domain:    {}
                 Reason:    {}
-                """.format(
-                    self.exit_code, self.exception, self.exception.domain, 
self.exception.reason
-                )
-            )
+                """.format(self.exit_code, self.exception, 
self.exception.domain, self.exception.reason))
         assert self.exit_code == -1, fail_message
         assert self.exc is not None, fail_message
         assert self.exception is not None, fail_message
diff --git a/src/buildstream/_workspaces.py b/src/buildstream/_workspaces.py
index 7d4fc4dbe..4b9aaf13c 100644
--- a/src/buildstream/_workspaces.py
+++ b/src/buildstream/_workspaces.py
@@ -21,7 +21,6 @@ from . import _yaml
 from ._exceptions import LoadError
 from .exceptions import LoadErrorReason
 
-
 BST_WORKSPACE_FORMAT_VERSION = 4
 BST_WORKSPACE_PROJECT_FORMAT_VERSION = 1
 WORKSPACE_PROJECT_FILE = ".bstproject.yaml"
diff --git a/src/buildstream/buildelement.py b/src/buildstream/buildelement.py
index 7596df02e..a5e6ed372 100644
--- a/src/buildstream/buildelement.py
+++ b/src/buildstream/buildelement.py
@@ -218,7 +218,6 @@ import os
 
 from .element import Element
 
-
 _command_steps = ["configure-commands", "build-commands", "install-commands", 
"strip-commands"]
 
 
diff --git a/src/buildstream/downloadablefilesource.py 
b/src/buildstream/downloadablefilesource.py
index ba6f1229e..19067158d 100644
--- a/src/buildstream/downloadablefilesource.py
+++ b/src/buildstream/downloadablefilesource.py
@@ -142,7 +142,6 @@ or overridden is explained above in the
 :ref:`built-in functionality documentation 
<core_downloadable_source_builtins>`.
 """
 
-
 import os
 import re
 import urllib.request
diff --git a/src/buildstream/element.py b/src/buildstream/element.py
index aede8f1ea..32666af46 100644
--- a/src/buildstream/element.py
+++ b/src/buildstream/element.py
@@ -3331,9 +3331,11 @@ class Element(Plugin):
             # encode the dependency's weak cache key instead of it's name.
             #
             dependencies = [
-                [e.project_name, e.name, 
e._get_cache_key(strength=_KeyStrength.WEAK)]
-                if self.BST_STRICT_REBUILD or e in self.__strict_dependencies
-                else [e.project_name, e.name]
+                (
+                    [e.project_name, e.name, 
e._get_cache_key(strength=_KeyStrength.WEAK)]
+                    if self.BST_STRICT_REBUILD or e in 
self.__strict_dependencies
+                    else [e.project_name, e.name]
+                )
                 for e in self._dependencies(_Scope.BUILD)
             ]
             self.__weak_cache_key = self._calculate_cache_key(dependencies)
diff --git a/src/buildstream/plugin.py b/src/buildstream/plugin.py
index 5190ac31e..eb5679453 100644
--- a/src/buildstream/plugin.py
+++ b/src/buildstream/plugin.py
@@ -160,6 +160,7 @@ _TXT = Union[bytes, str]
 _STR_BYTES_PATH = Union[str, bytes, "os.PathLike[str]", "os.PathLike[bytes]"]
 _CMD = Union[_STR_BYTES_PATH, Sequence[_STR_BYTES_PATH]]
 
+
 # _background_job_wrapper()
 #
 # Wrapper for running jobs in the background, transparently for users
diff --git a/src/buildstream/plugins/sources/remote.py 
b/src/buildstream/plugins/sources/remote.py
index ab97c73c7..43c626059 100644
--- a/src/buildstream/plugins/sources/remote.py
+++ b/src/buildstream/plugins/sources/remote.py
@@ -52,6 +52,7 @@ The remote source does not override any of the 
DownloadableFileSource reporting
 as such, behaves as described in the :ref:`default reporting of SourceInfo 
<core_downloadable_source_info>`
 documentation.
 """
+
 import os
 from buildstream import DownloadableFileSource, SourceError, utils
 
diff --git a/src/buildstream/source.py b/src/buildstream/source.py
index 9da457cb0..704d54c55 100644
--- a/src/buildstream/source.py
+++ b/src/buildstream/source.py
@@ -852,9 +852,9 @@ class Source(Plugin):
         self.__element_kind = meta.element_kind  # The kind of the element 
owning this source
         self._directory = meta.directory  # Staging relative directory
         self.__variables = variables  # The variables used to resolve the 
source's config
-        self.__provenance: Optional[
-            MappingNode
-        ] = meta.provenance  # The source provenance for general user provided 
SourceInfo
+        self.__provenance: Optional[MappingNode] = (
+            meta.provenance
+        )  # The source provenance for general user provided SourceInfo
 
         if self.__provenance is not None and self.BST_CUSTOM_SOURCE_PROVENANCE:
             raise SourceError(
diff --git a/src/buildstream/sourcemirror.py b/src/buildstream/sourcemirror.py
index 9209640a1..12e4288e2 100644
--- a/src/buildstream/sourcemirror.py
+++ b/src/buildstream/sourcemirror.py
@@ -37,7 +37,7 @@ SourceMirrors expose the following abstract methods. Unless 
explicitly mentioned
 these methods are mandatory to implement.
 
 * :func:`SourceMirror.translate_url() 
<buildstream.source.SourceMirror.translate_url>`
- 
+
   Produce an appropriate URL for the given URL and alias.
 
 
diff --git a/src/buildstream/storage/_casbaseddirectory.py 
b/src/buildstream/storage/_casbaseddirectory.py
index ee6aeb650..2e9f2e714 100644
--- a/src/buildstream/storage/_casbaseddirectory.py
+++ b/src/buildstream/storage/_casbaseddirectory.py
@@ -853,10 +853,10 @@ class CasBasedDirectory(Directory):
         if prefix != "":
             yield prefix
 
-        for (k, v) in sorted(file_list):
+        for k, v in sorted(file_list):
             yield os.path.join(prefix, k)
 
-        for (k, v) in sorted(directory_list):
+        for k, v in sorted(directory_list):
             subdir = v.get_directory(self)
             yield from 
subdir.__list_prefixed_relative_paths(prefix=os.path.join(prefix, k))
 
diff --git a/src/buildstream/storage/_filebaseddirectory.py 
b/src/buildstream/storage/_filebaseddirectory.py
index 87749fda2..413cab4cd 100644
--- a/src/buildstream/storage/_filebaseddirectory.py
+++ b/src/buildstream/storage/_filebaseddirectory.py
@@ -27,6 +27,7 @@ from .. import utils
 from ..utils import BST_ARBITRARY_TIMESTAMP
 from ..utils import FileListResult
 
+
 # FileBasedDirectory intentionally doesn't call its superclass constuctor,
 # which is meant to be unimplemented.
 # pylint: disable=super-init-not-called
diff --git a/src/buildstream/storage/directory.py 
b/src/buildstream/storage/directory.py
index 5080d9153..83762b10d 100644
--- a/src/buildstream/storage/directory.py
+++ b/src/buildstream/storage/directory.py
@@ -41,7 +41,6 @@ root boundary will be evaluated as the root directory. This 
behavior matches POS
 of filesystem root directories.
 """
 
-
 from contextlib import contextmanager
 from tarfile import TarFile
 from typing import Callable, Optional, Union, List, IO, Iterator
diff --git a/src/buildstream/utils.py b/src/buildstream/utils.py
index 0b9c20257..a645926d7 100644
--- a/src/buildstream/utils.py
+++ b/src/buildstream/utils.py
@@ -188,7 +188,7 @@ def list_relative_paths(directory: str) -> Iterator[str]:
     Yields:
        Relative filenames in `directory`
     """
-    for (dirpath, dirnames, filenames) in os.walk(directory):
+    for dirpath, dirnames, filenames in os.walk(directory):
 
         # os.walk does not decend into symlink directories, which
         # makes sense because otherwise we might have redundant
diff --git a/tests/artifactcache/capabilities.py 
b/tests/artifactcache/capabilities.py
index 39fb18ccd..457c92510 100644
--- a/tests/artifactcache/capabilities.py
+++ b/tests/artifactcache/capabilities.py
@@ -26,7 +26,6 @@ from tests.testutils import dummy_context
 
 from tests.testutils.artifactshare import create_dummy_artifact_share
 
-
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "project",
diff --git a/tests/artifactcache/config.py b/tests/artifactcache/config.py
index 025d11ffa..70c3b2cd4 100644
--- a/tests/artifactcache/config.py
+++ b/tests/artifactcache/config.py
@@ -30,7 +30,6 @@ from buildstream._testing.runcli import cli  # pylint: 
disable=unused-import
 
 from tests.testutils import dummy_context
 
-
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
 cache1 = RemoteSpec(RemoteType.ALL, url="https://example.com/cache1";, 
push=True)
 cache2 = RemoteSpec(RemoteType.ALL, url="https://example.com/cache2";, 
push=False)
diff --git a/tests/artifactcache/expiry.py b/tests/artifactcache/expiry.py
index 88820e680..90513767b 100644
--- a/tests/artifactcache/expiry.py
+++ b/tests/artifactcache/expiry.py
@@ -28,7 +28,6 @@ from buildstream._testing._utils.site import 
have_subsecond_mtime
 
 from tests.testutils import casd_cache, create_element_size, 
wait_for_cache_granularity
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "expiry")
 
 
diff --git a/tests/artifactcache/junctions.py b/tests/artifactcache/junctions.py
index 83c9e0136..08401e1a6 100644
--- a/tests/artifactcache/junctions.py
+++ b/tests/artifactcache/junctions.py
@@ -24,7 +24,6 @@ from buildstream._testing import cli  # pylint: 
disable=unused-import
 
 from tests.testutils import create_artifact_share, assert_shared, 
assert_not_shared
 
-
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "junctions",
diff --git a/tests/artifactcache/pull.py b/tests/artifactcache/pull.py
index f1e0751b5..83607c74f 100644
--- a/tests/artifactcache/pull.py
+++ b/tests/artifactcache/pull.py
@@ -26,7 +26,6 @@ from buildstream._testing import cli  # pylint: 
disable=unused-import
 
 from tests.testutils import create_artifact_share, dummy_context
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/artifactcache/push.py b/tests/artifactcache/push.py
index 4594ae6e8..b321123a8 100644
--- a/tests/artifactcache/push.py
+++ b/tests/artifactcache/push.py
@@ -25,7 +25,6 @@ from buildstream._testing import cli  # pylint: 
disable=unused-import
 
 from tests.testutils import create_artifact_share, create_split_share, 
dummy_context
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/cachekey/cachekey.py b/tests/cachekey/cachekey.py
index 15d690017..d99e6d820 100644
--- a/tests/cachekey/cachekey.py
+++ b/tests/cachekey/cachekey.py
@@ -63,7 +63,6 @@ from buildstream._testing._utils.site import IS_LINUX, 
MACHINE_ARCH
 from buildstream.plugin import CoreWarnings
 from buildstream import _yaml
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/conftest.py b/tests/conftest.py
index f151bfdc7..a82353435 100755
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -29,7 +29,6 @@ from buildstream._testing.integration import 
integration_cache  # pylint: disabl
 
 from tests.testutils.repo.tar import Tar
 
-
 #
 # This file is loaded by pytest, we use it to add a custom
 # `--integration` option to our test suite, and to install
diff --git a/tests/examples/first-project.py b/tests/examples/first-project.py
index f049ea34e..de4d232ad 100644
--- a/tests/examples/first-project.py
+++ b/tests/examples/first-project.py
@@ -22,7 +22,6 @@ from buildstream._testing import cli_integration as cli  # 
pylint: disable=unuse
 from buildstream._testing.integration import assert_contains
 from buildstream._testing._utils.site import IS_LINUX
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/examples/integration-commands.py 
b/tests/examples/integration-commands.py
index 5c36fcb8d..baac8e871 100644
--- a/tests/examples/integration-commands.py
+++ b/tests/examples/integration-commands.py
@@ -21,7 +21,6 @@ import pytest
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import IS_LINUX, MACHINE_ARCH, 
HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)), "..", "..", "doc", 
"examples", "integration-commands"
diff --git a/tests/examples/running-commands.py 
b/tests/examples/running-commands.py
index b5e9211cd..b45506c15 100644
--- a/tests/examples/running-commands.py
+++ b/tests/examples/running-commands.py
@@ -21,7 +21,6 @@ import pytest
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import IS_LINUX, MACHINE_ARCH, 
HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", 
"..", "doc", "examples", "running-commands")
 
diff --git a/tests/format/include.py b/tests/format/include.py
index 7f6433dd6..ca27c984f 100644
--- a/tests/format/include.py
+++ b/tests/format/include.py
@@ -24,7 +24,6 @@ from buildstream._testing import cli  # pylint: 
disable=unused-import
 from buildstream._testing import create_repo
 from tests.testutils import generate_junction
 
-
 # Project directory
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "include")
 
@@ -44,16 +43,12 @@ def test_include_missing_file(cli, tmpdir):
 
     # Normally we would use dicts and _yaml.roundtrip_dump to write such 
things, but here
     # we want to be sure of a stable line and column number.
-    element.write(
-        textwrap.dedent(
-            """
+    element.write(textwrap.dedent("""
         kind: manual
 
         "(@)":
           - nosuch.yaml
-    """
-        ).strip()
-    )
+    """).strip())
 
     result = cli.run(project=str(tmpdir), args=["show", str(element.basename)])
     result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.MISSING_FILE)
@@ -68,16 +63,12 @@ def test_include_dir(cli, tmpdir):
 
     # Normally we would use dicts and _yaml.roundtrip_dump to write such 
things, but here
     # we want to be sure of a stable line and column number.
-    element.write(
-        textwrap.dedent(
-            """
+    element.write(textwrap.dedent("""
         kind: manual
 
         "(@)":
           - subdir/
-    """
-        ).strip()
-    )
+    """).strip())
 
     result = cli.run(project=str(tmpdir), args=["show", str(element.basename)])
     result.assert_main_error(ErrorDomain.LOAD, 
LoadErrorReason.LOADING_DIRECTORY)
diff --git a/tests/format/junctions.py b/tests/format/junctions.py
index 458aa3a53..8fe54e9bb 100644
--- a/tests/format/junctions.py
+++ b/tests/format/junctions.py
@@ -26,7 +26,6 @@ from buildstream._testing import cli  # pylint: 
disable=unused-import
 from buildstream._testing import create_repo
 from tests.testutils import generate_junction
 
-
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "junctions",
diff --git a/tests/format/link.py b/tests/format/link.py
index ee8136bca..ac0da14e6 100644
--- a/tests/format/link.py
+++ b/tests/format/link.py
@@ -23,12 +23,12 @@ from buildstream import _yaml
 from buildstream._testing import cli  # pylint: disable=unused-import
 from buildstream.exceptions import ErrorDomain, LoadErrorReason
 
-
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "link",
 )
 
+
 #
 # Test links to elements, this tests both specifying the link as
 # the main target, and also as a dependency of the main target.
diff --git a/tests/format/project.py b/tests/format/project.py
index 1e8d20c4f..a8a01109c 100644
--- a/tests/format/project.py
+++ b/tests/format/project.py
@@ -24,7 +24,6 @@ from buildstream._testing import generate_project
 
 from tests.testutils import filetypegenerator
 
-
 # Project directory
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
 
diff --git a/tests/format/substitutions.py b/tests/format/substitutions.py
index d7919bc1a..7ac5190ce 100644
--- a/tests/format/substitutions.py
+++ b/tests/format/substitutions.py
@@ -19,7 +19,6 @@ import os
 import pytest
 from buildstream._testing import cli  # pylint: disable=unused-import
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
"project", "default")
 
 
diff --git a/tests/format/variables.py b/tests/format/variables.py
index 3b75eda9a..d789dd043 100644
--- a/tests/format/variables.py
+++ b/tests/format/variables.py
@@ -27,7 +27,6 @@ from buildstream._testing.runcli import cli  # pylint: 
disable=unused-import
 from tests.testutils.site import pip_sample_packages  # pylint: 
disable=unused-import
 from tests.testutils.site import SAMPLE_PACKAGES_SKIP_REASON
 
-
 # Project directory
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
"variables")
 
diff --git a/tests/frontend/artifact_checkout.py 
b/tests/frontend/artifact_checkout.py
index b238019b5..c136567fb 100644
--- a/tests/frontend/artifact_checkout.py
+++ b/tests/frontend/artifact_checkout.py
@@ -25,9 +25,9 @@ from buildstream.exceptions import ErrorDomain
 
 from tests.testutils import create_artifact_share
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
 
+
 #
 # Test modes of `bst artifact checkout --pull` when given an artifact name
 #
diff --git a/tests/frontend/artifact_delete.py 
b/tests/frontend/artifact_delete.py
index d6f838570..049d38b62 100644
--- a/tests/frontend/artifact_delete.py
+++ b/tests/frontend/artifact_delete.py
@@ -23,7 +23,6 @@ from buildstream.exceptions import ErrorDomain
 from buildstream._testing import cli  # pylint: disable=unused-import
 from tests.testutils import create_artifact_share
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/artifact_list_contents.py 
b/tests/frontend/artifact_list_contents.py
index d01d63854..d7d8397f8 100644
--- a/tests/frontend/artifact_list_contents.py
+++ b/tests/frontend/artifact_list_contents.py
@@ -21,7 +21,6 @@ import pytest
 from buildstream._testing import cli  # pylint: disable=unused-import
 from buildstream.exceptions import ErrorDomain
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/artifact_log.py b/tests/frontend/artifact_log.py
index cd1b91fcc..db0123c81 100644
--- a/tests/frontend/artifact_log.py
+++ b/tests/frontend/artifact_log.py
@@ -21,7 +21,6 @@ import pytest
 
 from buildstream._testing import cli  # pylint: disable=unused-import
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/artifact_pull.py b/tests/frontend/artifact_pull.py
index b33dd538f..90af5d6d6 100644
--- a/tests/frontend/artifact_pull.py
+++ b/tests/frontend/artifact_pull.py
@@ -25,9 +25,9 @@ from buildstream.exceptions import ErrorDomain
 
 from tests.testutils import create_artifact_share
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
 
+
 #
 # Test modes of `bst artifact pull` when given an artifact
 #
diff --git a/tests/frontend/artifact_show.py b/tests/frontend/artifact_show.py
index 1fd67144c..f723e873e 100644
--- a/tests/frontend/artifact_show.py
+++ b/tests/frontend/artifact_show.py
@@ -23,7 +23,6 @@ from buildstream._testing import cli  # pylint: 
disable=unused-import
 from tests.testutils import create_artifact_share
 from . import configure_project
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/large_directory.py 
b/tests/frontend/large_directory.py
index a8a6cc28f..24c876c05 100644
--- a/tests/frontend/large_directory.py
+++ b/tests/frontend/large_directory.py
@@ -24,7 +24,6 @@ import grpc
 from buildstream._testing import cli  # pylint: disable=unused-import
 from tests.testutils import create_artifact_share, assert_shared
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/mirror.py b/tests/frontend/mirror.py
index 69eb358b3..0bf2af4c7 100644
--- a/tests/frontend/mirror.py
+++ b/tests/frontend/mirror.py
@@ -31,7 +31,6 @@ from tests.testutils.repo.tar import Tar
 from tests.testutils.site import pip_sample_packages  # pylint: 
disable=unused-import
 from tests.testutils.site import SAMPLE_PACKAGES_SKIP_REASON
 
-
 # Project directory
 TOP_DIR = os.path.dirname(os.path.realpath(__file__))
 DATA_DIR = os.path.join(TOP_DIR, "project")
diff --git a/tests/frontend/pull.py b/tests/frontend/pull.py
index b40a5dbfb..2c804e190 100644
--- a/tests/frontend/pull.py
+++ b/tests/frontend/pull.py
@@ -30,7 +30,6 @@ from tests.testutils import (
     assert_not_shared,
 )
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/push.py b/tests/frontend/push.py
index 1a24771d4..a25152147 100644
--- a/tests/frontend/push.py
+++ b/tests/frontend/push.py
@@ -35,7 +35,6 @@ from tests.testutils import (
     assert_not_shared,
 )
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/frontend/show_artifact_cas_digest.py 
b/tests/frontend/show_artifact_cas_digest.py
index dc89e4447..c65ee94a7 100644
--- a/tests/frontend/show_artifact_cas_digest.py
+++ b/tests/frontend/show_artifact_cas_digest.py
@@ -27,7 +27,6 @@ from tests.testutils import (
     assert_not_shared,
 )
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
"show_artifact_cas_digest_project")
 
 
diff --git a/tests/frontend/version.py b/tests/frontend/version.py
index bcc7e9252..4c21a5466 100644
--- a/tests/frontend/version.py
+++ b/tests/frontend/version.py
@@ -17,7 +17,6 @@
 
 from buildstream._testing.runcli import cli  # pylint: disable=unused-import
 
-
 # For utils.get_bst_version()
 from buildstream import utils
 
diff --git a/tests/integration/artifact.py b/tests/integration/artifact.py
index 09c713610..e256cda64 100644
--- a/tests/integration/artifact.py
+++ b/tests/integration/artifact.py
@@ -27,7 +27,6 @@ from buildstream._testing._utils.site import HAVE_SANDBOX
 
 from tests.testutils import create_artifact_share
 
-
 pytestmark = pytest.mark.integration
 
 
@@ -42,6 +41,7 @@ DATA_DIR = os.path.join(
 # behaviour, which by default is to include the buildtree
 # content of an element on caching.
 
+
 # Dse this really need a sandbox?
 @pytest.mark.datafiles(DATA_DIR)
 @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a 
functioning sandbox")
diff --git a/tests/integration/autotools.py b/tests/integration/autotools.py
index fe7d85319..0c25ca7b4 100644
--- a/tests/integration/autotools.py
+++ b/tests/integration/autotools.py
@@ -22,7 +22,6 @@ from buildstream._testing import cli_integration as cli  # 
pylint: disable=unuse
 from buildstream._testing.integration import assert_contains
 from buildstream._testing._utils.site import HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/build-uid.py b/tests/integration/build-uid.py
index 51782ede1..00dfe5ef4 100644
--- a/tests/integration/build-uid.py
+++ b/tests/integration/build-uid.py
@@ -21,7 +21,6 @@ import pytest
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX, BUILDBOX_RUN
 
-
 pytestmark = pytest.mark.integration
 
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
diff --git a/tests/integration/compose-symlinks.py 
b/tests/integration/compose-symlinks.py
index 522976d38..cf47c1811 100644
--- a/tests/integration/compose-symlinks.py
+++ b/tests/integration/compose-symlinks.py
@@ -20,7 +20,6 @@ import pytest
 
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/compose.py b/tests/integration/compose.py
index b502c945c..e6d9d2442 100644
--- a/tests/integration/compose.py
+++ b/tests/integration/compose.py
@@ -24,7 +24,6 @@ from buildstream._testing import cli_integration as cli  # 
pylint: disable=unuse
 from buildstream._testing.integration import walk_dir
 from buildstream._testing._utils.site import HAVE_SANDBOX, BUILDBOX_RUN
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/filter.py b/tests/integration/filter.py
index 23e053b6b..896109931 100644
--- a/tests/integration/filter.py
+++ b/tests/integration/filter.py
@@ -23,7 +23,6 @@ from buildstream._testing import cli  # pylint: 
disable=unused-import
 from buildstream._testing.integration import assert_contains
 from buildstream._testing._utils.site import HAVE_SANDBOX, BUILDBOX_RUN
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/import.py b/tests/integration/import.py
index ba9cf5bbb..091d1b591 100644
--- a/tests/integration/import.py
+++ b/tests/integration/import.py
@@ -23,7 +23,6 @@ from buildstream import _yaml
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing.integration import walk_dir
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/interactive_build.py 
b/tests/integration/interactive_build.py
index bc41345fe..580d698eb 100644
--- a/tests/integration/interactive_build.py
+++ b/tests/integration/interactive_build.py
@@ -24,7 +24,6 @@ from buildstream._testing import runcli
 from buildstream._testing._utils.site import HAVE_SANDBOX
 from tests.testutils.constants import PEXPECT_TIMEOUT_SHORT, 
PEXPECT_TIMEOUT_LONG
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/manual.py b/tests/integration/manual.py
index e0fd3595c..c6e8a594f 100644
--- a/tests/integration/manual.py
+++ b/tests/integration/manual.py
@@ -24,7 +24,6 @@ from buildstream import _yaml
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 
 
@@ -75,14 +74,11 @@ def test_manual_element(cli, datafiles):
     with open(os.path.join(checkout, "test"), encoding="utf-8") as f:
         text = f.read()
 
-    assert (
-        text
-        == """./configure
+    assert text == """./configure
 make
 make install
 strip
 """
-    )
 
 
 @pytest.mark.datafiles(DATA_DIR)
@@ -134,12 +130,9 @@ def test_manual_element_noparallel(cli, datafiles):
     with open(os.path.join(checkout, "test"), encoding="utf-8") as f:
         text = f.read()
 
-    assert (
-        text
-        == """-j1 -Wall
+    assert text == """-j1 -Wall
 2
 """
-    )
 
 
 @pytest.mark.datafiles(DATA_DIR)
diff --git a/tests/integration/messages.py b/tests/integration/messages.py
index 102c89e6f..5c05610b4 100644
--- a/tests/integration/messages.py
+++ b/tests/integration/messages.py
@@ -25,7 +25,6 @@ from buildstream.exceptions import ErrorDomain
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/pullbuildtrees.py 
b/tests/integration/pullbuildtrees.py
index a0b4d7f35..243a6e27e 100644
--- a/tests/integration/pullbuildtrees.py
+++ b/tests/integration/pullbuildtrees.py
@@ -26,7 +26,6 @@ from buildstream.exceptions import ErrorDomain, 
LoadErrorReason
 
 from tests.testutils import create_artifact_share
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/script.py b/tests/integration/script.py
index 494b7e992..4c5354016 100644
--- a/tests/integration/script.py
+++ b/tests/integration/script.py
@@ -22,7 +22,6 @@ from buildstream import _yaml
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX, BUILDBOX_RUN
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/shell.py b/tests/integration/shell.py
index 4af301c6c..63c7af8b3 100644
--- a/tests/integration/shell.py
+++ b/tests/integration/shell.py
@@ -28,7 +28,6 @@ from buildstream import utils
 
 from tests.testutils import create_artifact_share
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/shellbuildtrees.py 
b/tests/integration/shellbuildtrees.py
index a366962e5..1d6c898e9 100644
--- a/tests/integration/shellbuildtrees.py
+++ b/tests/integration/shellbuildtrees.py
@@ -26,7 +26,6 @@ from buildstream._testing._utils.site import HAVE_SANDBOX
 
 from tests.testutils import ArtifactShare
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/sockets.py b/tests/integration/sockets.py
index 158da7685..6b98fd6c5 100644
--- a/tests/integration/sockets.py
+++ b/tests/integration/sockets.py
@@ -21,7 +21,6 @@ import pytest
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
diff --git a/tests/integration/source-determinism.py 
b/tests/integration/source-determinism.py
index 3ae8f18c9..7f55e0e71 100644
--- a/tests/integration/source-determinism.py
+++ b/tests/integration/source-determinism.py
@@ -22,7 +22,6 @@ from buildstream import _yaml
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX, CASD_SEPARATE_USER
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
 
 
diff --git a/tests/integration/stack.py b/tests/integration/stack.py
index 8947aedcc..6b158c108 100644
--- a/tests/integration/stack.py
+++ b/tests/integration/stack.py
@@ -20,7 +20,6 @@ import pytest
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/symlinks.py b/tests/integration/symlinks.py
index f92119303..67084b7c0 100644
--- a/tests/integration/symlinks.py
+++ b/tests/integration/symlinks.py
@@ -21,7 +21,6 @@ import pytest
 from buildstream._testing import cli_integration as cli  # pylint: 
disable=unused-import
 from buildstream._testing._utils.site import HAVE_SANDBOX
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/integration/workspace.py b/tests/integration/workspace.py
index 1db9860b2..8a5f94e65 100644
--- a/tests/integration/workspace.py
+++ b/tests/integration/workspace.py
@@ -26,7 +26,6 @@ from buildstream.utils import BST_ARBITRARY_TIMESTAMP
 
 from tests.testutils import wait_for_cache_granularity
 
-
 pytestmark = pytest.mark.integration
 
 
diff --git a/tests/internals/cascache.py b/tests/internals/cascache.py
index 3f86f7cca..c455809f1 100644
--- a/tests/internals/cascache.py
+++ b/tests/internals/cascache.py
@@ -19,7 +19,6 @@ from buildstream._cas import casdprocessmanager
 from buildstream._messenger import Messenger
 from tests.testutils import casd_cache
 
-
 #
 # A dummy CASD script placeholder which supports the --version argument
 #
diff --git a/tests/internals/loader.py b/tests/internals/loader.py
index 1cf65045f..47c5bc691 100644
--- a/tests/internals/loader.py
+++ b/tests/internals/loader.py
@@ -22,7 +22,6 @@ from buildstream._loader import LoadElement
 
 from tests.testutils import dummy_context
 
-
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "loader",
diff --git a/tests/internals/storage_vdir_import.py 
b/tests/internals/storage_vdir_import.py
index e3bf84ab7..eafe64973 100644
--- a/tests/internals/storage_vdir_import.py
+++ b/tests/internals/storage_vdir_import.py
@@ -25,7 +25,6 @@ from buildstream._testing._utils.site import 
have_subsecond_mtime
 
 from tests.testutils import casd_cache
 
-
 # These are comparitive tests that check that FileBasedDirectory and
 # CasBasedDirectory act identically.
 
@@ -61,9 +60,9 @@ def generate_import_roots(rootno, directory):
 def generate_import_root(rootdir, filelist):
     if os.path.exists(rootdir):
         return
-    for (path, typesymbol, content) in filelist:
+    for path, typesymbol, content in filelist:
         if typesymbol == "F":
-            (dirnames, filename) = os.path.split(path)
+            dirnames, filename = os.path.split(path)
             os.makedirs(os.path.join(rootdir, dirnames), exist_ok=True)
             fullpath = os.path.join(rootdir, dirnames, filename)
             with open(fullpath, "wt", encoding="utf-8") as f:
@@ -73,11 +72,11 @@ def generate_import_root(rootdir, filelist):
         elif typesymbol == "D":
             os.makedirs(os.path.join(rootdir, path), exist_ok=True)
         elif typesymbol == "S":
-            (dirnames, filename) = os.path.split(path)
+            dirnames, filename = os.path.split(path)
             os.makedirs(os.path.join(rootdir, dirnames), exist_ok=True)
             os.symlink(content, os.path.join(rootdir, path))
     # Set deterministic mtime for all directories
-    for (dirpath, _, _) in os.walk(rootdir):
+    for dirpath, _, _ in os.walk(rootdir):
         _set_file_mtime(dirpath, MTIME)
 
 
@@ -120,7 +119,7 @@ def generate_random_root(rootno, directory):
                 os.symlink(relative_link, target)
         things.append(os.path.join(location, thingname))
     # Set deterministic mtime for all directories
-    for (dirpath, _, _) in os.walk(rootdir):
+    for dirpath, _, _ in os.walk(rootdir):
         _set_file_mtime(dirpath, MTIME)
 
 
@@ -217,7 +216,7 @@ def _import_test(tmpdir, original, overlay, 
generator_function, verify_contents=
 
         if verify_contents:
             for item in root_filesets[overlay - 1]:
-                (path, typename, content) = item
+                path, typename, content = item
                 realpath = resolve_symlinks(path, export_dir)
                 if typename == "F":
                     if os.path.isdir(realpath) and 
directory_not_empty(realpath):
diff --git a/tests/internals/yaml.py b/tests/internals/yaml.py
index 4a187005f..6e38adb70 100644
--- a/tests/internals/yaml.py
+++ b/tests/internals/yaml.py
@@ -20,7 +20,6 @@ from buildstream import _yaml, Node, ProvenanceInformation, 
SequenceNode
 from buildstream.exceptions import LoadErrorReason
 from buildstream._exceptions import LoadError
 
-
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "yaml",
diff --git a/tests/plugins/loading.py b/tests/plugins/loading.py
index 972c75a6d..d80d77eac 100644
--- a/tests/plugins/loading.py
+++ b/tests/plugins/loading.py
@@ -33,7 +33,6 @@ from tests.testutils.repo.git import Git
 from tests.testutils.site import pip_sample_packages  # pylint: 
disable=unused-import
 from tests.testutils.site import SAMPLE_PACKAGES_SKIP_REASON
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "loading")
 
 
diff --git a/tests/plugins/sample-plugins/src/sample_plugins/sources/git.py 
b/tests/plugins/sample-plugins/src/sample_plugins/sources/git.py
index 4c7bace85..49ed2fb0e 100644
--- a/tests/plugins/sample-plugins/src/sample_plugins/sources/git.py
+++ b/tests/plugins/sample-plugins/src/sample_plugins/sources/git.py
@@ -155,7 +155,6 @@ This plugin also utilises the following configurable
   The provided ref was not found in the provided track in the element's git 
repository.
 """
 
-
 import os
 import re
 import shutil
diff --git a/tests/plugins/shadow.py b/tests/plugins/shadow.py
index f109aa01d..b2af0986d 100644
--- a/tests/plugins/shadow.py
+++ b/tests/plugins/shadow.py
@@ -28,7 +28,6 @@ import pytest
 from buildstream._testing import cli  # pylint: disable=unused-import
 from buildstream import _yaml
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "shadow")
 
 
diff --git a/tests/remotecache/simple.py b/tests/remotecache/simple.py
index 9a5443d24..ffce58294 100644
--- a/tests/remotecache/simple.py
+++ b/tests/remotecache/simple.py
@@ -24,12 +24,12 @@ from buildstream._testing.integration import assert_contains
 from tests.testutils.site import pip_sample_packages  # pylint: 
disable=unused-import
 from tests.testutils.site import SAMPLE_PACKAGES_SKIP_REASON
 
-
 pytestmark = pytest.mark.remotecache
 
 
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "project")
 
+
 # Test building an executable with a remote cache:
 @pytest.mark.datafiles(DATA_DIR)
 @pytest.mark.skipif("not pip_sample_packages()", 
reason=SAMPLE_PACKAGES_SKIP_REASON)
diff --git a/tests/remoteexecution/remotecache.py 
b/tests/remoteexecution/remotecache.py
index b78070c71..d2851ee4c 100644
--- a/tests/remoteexecution/remotecache.py
+++ b/tests/remoteexecution/remotecache.py
@@ -25,7 +25,6 @@ from buildstream._testing.integration import assert_contains
 from tests.testutils.site import pip_sample_packages  # pylint: 
disable=unused-import
 from tests.testutils.site import SAMPLE_PACKAGES_SKIP_REASON
 
-
 pytestmark = pytest.mark.remoteexecution
 
 
diff --git a/tests/remoteexecution/simple.py b/tests/remoteexecution/simple.py
index 478e6fcb4..5134a686c 100644
--- a/tests/remoteexecution/simple.py
+++ b/tests/remoteexecution/simple.py
@@ -23,7 +23,6 @@ from buildstream._testing.integration import assert_contains
 from tests.testutils.site import pip_sample_packages  # pylint: 
disable=unused-import
 from tests.testutils.site import SAMPLE_PACKAGES_SKIP_REASON
 
-
 pytestmark = pytest.mark.remoteexecution
 
 
diff --git a/tests/sandboxes/missing-command.py 
b/tests/sandboxes/missing-command.py
index 3dbe60de3..bc78e46ea 100644
--- a/tests/sandboxes/missing-command.py
+++ b/tests/sandboxes/missing-command.py
@@ -22,7 +22,6 @@ from buildstream.exceptions import ErrorDomain
 
 from buildstream._testing import cli  # pylint: disable=unused-import
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
"missing-command")
 
 
diff --git a/tests/sandboxes/missing_dependencies.py 
b/tests/sandboxes/missing_dependencies.py
index 1c4a40340..f0774c6d2 100644
--- a/tests/sandboxes/missing_dependencies.py
+++ b/tests/sandboxes/missing_dependencies.py
@@ -24,7 +24,6 @@ from buildstream.exceptions import ErrorDomain
 from buildstream._testing._utils.site import IS_LINUX
 from buildstream._testing import cli  # pylint: disable=unused-import
 
-
 # Project directory
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
diff --git a/tests/sourcecache/capabilities.py 
b/tests/sourcecache/capabilities.py
index a22bbf4c5..a70665813 100644
--- a/tests/sourcecache/capabilities.py
+++ b/tests/sourcecache/capabilities.py
@@ -26,7 +26,6 @@ from tests.testutils import dummy_context
 
 from tests.testutils.artifactshare import create_dummy_artifact_share
 
-
 DATA_DIR = os.path.join(
     os.path.dirname(os.path.realpath(__file__)),
     "project",
diff --git a/tests/sourcecache/staging.py b/tests/sourcecache/staging.py
index 933013ae7..4399205f8 100644
--- a/tests/sourcecache/staging.py
+++ b/tests/sourcecache/staging.py
@@ -29,7 +29,6 @@ from buildstream._testing.runcli import cli  # pylint: 
disable=unused-import
 from tests.testutils import dummy_context
 from tests.testutils.element_generators import create_element_size
 
-
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
 
 
diff --git a/tests/sourcecache/workspace.py b/tests/sourcecache/workspace.py
index e8992b341..b88d93fd9 100644
--- a/tests/sourcecache/workspace.py
+++ b/tests/sourcecache/workspace.py
@@ -28,7 +28,6 @@ from buildstream._testing.runcli import cli  # pylint: 
disable=unused-import
 from tests.testutils.artifactshare import create_artifact_share
 from tests.testutils.element_generators import create_element_size
 
-
 DATA_DIR = os.path.dirname(os.path.realpath(__file__))
 
 
diff --git a/tests/sources/source_provenance_attributes.py 
b/tests/sources/source_provenance_attributes.py
index a51e7c883..04c48ba97 100644
--- a/tests/sources/source_provenance_attributes.py
+++ b/tests/sources/source_provenance_attributes.py
@@ -22,7 +22,6 @@ from buildstream._testing import generate_project, load_yaml
 from buildstream._testing import cli  # pylint: disable=unused-import
 from buildstream.exceptions import ErrorDomain, LoadErrorReason
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
"source_provenance_attributes")
 
 
diff --git a/tests/sources/variables.py b/tests/sources/variables.py
index 5cdd82eeb..50503f38e 100644
--- a/tests/sources/variables.py
+++ b/tests/sources/variables.py
@@ -22,7 +22,6 @@ import pytest
 from buildstream.exceptions import ErrorDomain, LoadErrorReason
 from buildstream._testing.runcli import cli  # pylint: disable=unused-import
 
-
 DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 
"variables")
 
 
diff --git a/tests/testutils/python_repo.py b/tests/testutils/python_repo.py
index 4069e0a0c..5bd20b50a 100644
--- a/tests/testutils/python_repo.py
+++ b/tests/testutils/python_repo.py
@@ -19,7 +19,6 @@ import sys
 
 import pytest
 
-
 SETUP_TEMPLATE = """\
 from setuptools import setup
 
diff --git a/tests/testutils/site.py b/tests/testutils/site.py
index c9b96802f..5ee19702b 100644
--- a/tests/testutils/site.py
+++ b/tests/testutils/site.py
@@ -12,6 +12,7 @@
 #  limitations under the License.
 #
 
+
 # This function is used for pytest skipif() expressions.
 #
 # Tests which require our plugins in tests/plugins/pip-samples need
diff --git a/tox.ini b/tox.ini
index bb67161da..172b659d3 100644
--- a/tox.ini
+++ b/tox.ini
@@ -140,7 +140,7 @@ setenv =
 [testenv:format]
 skip_install = True
 deps =
-    black==22.3.0
+    black~=26.3.0
 commands =
     black {posargs: src tests doc/source/conf.py setup.py}
 
@@ -150,7 +150,7 @@ commands =
 [testenv:format-check]
 skip_install = True
 deps =
-    black==22.3.0
+    black~=26.3.0
 commands =
     black --check --diff {posargs: src tests doc/source/conf.py setup.py}
 

Reply via email to