Merge pull request #883 from p12tic/lint-fixes

Enable ruff check and fix lint errors
This commit is contained in:
Povilas Kanapickas
2024-03-08 23:51:25 +02:00
committed by GitHub
12 changed files with 88 additions and 66 deletions

View File

@@ -7,21 +7,20 @@
# https://docs.docker.com/compose/django/
# https://docs.docker.com/compose/wordpress/
# TODO: podman pod logs --color -n -f pod_testlogs
import sys
import os
import getpass
import argparse
import itertools
import subprocess
import re
import hashlib
import random
import json
import glob
import asyncio.subprocess
import signal
import getpass
import glob
import hashlib
import itertools
import json
import os
import random
import re
import shlex
import signal
import subprocess
import sys
from asyncio import Task
try:
@@ -126,7 +125,8 @@ def str_to_seconds(txt):
mins = int(mins) if mins else 0
sec = float(sec) if sec else 0
# "podman stop" takes only int
# Error: invalid argument "3.0" for "-t, --time" flag: strconv.ParseUint: parsing "3.0": invalid syntax
# Error: invalid argument "3.0" for "-t, --time" flag: strconv.ParseUint: parsing "3.0":
# invalid syntax
return int(mins * 60.0 + sec)
@@ -389,7 +389,8 @@ async def assert_volume(compose, mount_dict):
is_ext = vol.get("external", None)
log(f"podman volume inspect {vol_name} || podman volume create {vol_name}")
# TODO: might move to using "volume list"
# podman volume list --format '{{.Name}}\t{{.MountPoint}}' -f 'label=io.podman.compose.project=HERE'
# podman volume list --format '{{.Name}}\t{{.MountPoint}}' \
# -f 'label=io.podman.compose.project=HERE'
try:
_ = (await compose.podman.output([], "volume", ["inspect", vol_name])).decode("utf-8")
except subprocess.CalledProcessError as e:
@@ -584,7 +585,10 @@ def get_secret_args(compose, cnt, secret):
# having a custom name for the external secret
# has the same problem as well
ext_name = declared_secret.get("name", None)
err_str = 'ERROR: Custom name/target reference "{}" for mounted external secret "{}" is not supported'
err_str = (
'ERROR: Custom name/target reference "{}" '
'for mounted external secret "{}" is not supported'
)
if ext_name and ext_name != secret_name:
raise ValueError(err_str.format(secret_name, ext_name))
if target and target != secret_name:
@@ -1103,7 +1107,7 @@ def flat_deps(services, with_extends=False):
for c in links_ls:
if ":" in c:
dep_name, dep_alias = c.split(":")
if not "_aliases" in services[dep_name]:
if "_aliases" not in services[dep_name]:
services[dep_name]["_aliases"] = set()
services[dep_name]["_aliases"].add(dep_alias)
for name, srv in services.items():
@@ -1178,9 +1182,9 @@ class Podman:
async def format_out(stdout):
while True:
l = await stdout.readline()
if l:
print(log_formatter, l.decode('utf-8'), end='')
line = await stdout.readline()
if line:
print(log_formatter, line.decode('utf-8'), end='')
if stdout.at_eof():
break
@@ -1203,14 +1207,14 @@ class Podman:
try:
exit_code = await p.wait()
except asyncio.CancelledError as e:
log(f"Sending termination signal")
except asyncio.CancelledError:
log("Sending termination signal")
p.terminate()
try:
async with asyncio.timeout(10):
exit_code = await p.wait()
except TimeoutError:
log(f"container did not shut down after 10 seconds, killing")
log("container did not shut down after 10 seconds, killing")
p.kill()
exit_code = await p.wait()
@@ -1530,7 +1534,8 @@ class PodmanCompose:
files = args.file
if not files:
log(
"no compose.yaml, docker-compose.yml or container-compose.yml file found, pass files with -f"
"no compose.yaml, docker-compose.yml or container-compose.yml file found, "
"pass files with -f"
)
sys.exit(-1)
ex = map(os.path.exists, files)
@@ -1620,7 +1625,8 @@ class PodmanCompose:
if not project_name:
project_name = compose.get("name", None)
if project_name is None:
# More strict then actually needed for simplicity: podman requires [a-zA-Z0-9][a-zA-Z0-9_.-]*
# More strict then actually needed for simplicity:
# podman requires [a-zA-Z0-9][a-zA-Z0-9_.-]*
project_name = (
self.environ.get("COMPOSE_PROJECT_NAME", None) or dir_basename.lower()
)
@@ -1743,11 +1749,11 @@ class PodmanCompose:
def _resolve_profiles(self, defined_services, requested_profiles=None):
"""
Returns a service dictionary (key = service name, value = service config) compatible with the requested_profiles
list.
Returns a service dictionary (key = service name, value = service config) compatible with
the requested_profiles list.
The returned service dictionary contains all services which do not include/reference a profile in addition to
services that match the requested_profiles.
The returned service dictionary contains all services which do not include/reference a
profile in addition to services that match the requested_profiles.
:param defined_services: The service dictionary
:param requested_profiles: The profiles requested using the --profile arg.
@@ -2258,8 +2264,9 @@ async def compose_up(compose: PodmanCompose, args):
done, tasks = await asyncio.wait(tasks, return_when=asyncio.FIRST_COMPLETED)
if args.abort_on_container_exit:
if not exiting:
# If 2 containers exit at the exact same time, the cancellation of the other ones cause the status
# to overwrite. Sleeping for 1 seems to fix this and make it match docker-compose
# If 2 containers exit at the exact same time, the cancellation of the other ones
# cause the status to overwrite. Sleeping for 1 seems to fix this and make it match
# docker-compose
await asyncio.sleep(1)
[_.cancel() for _ in tasks if not _.cancelling() and not _.cancelled()]
t: Task
@@ -2729,7 +2736,8 @@ def compose_up_parse(parser):
parser.add_argument(
"--no-recreate",
action="store_true",
help="If containers already exist, don't recreate them. Incompatible with --force-recreate and -V.",
help="If containers already exist, don't recreate them. Incompatible with --force-recreate "
"and -V.",
)
parser.add_argument(
"--no-build",
@@ -2754,8 +2762,8 @@ def compose_up_parse(parser):
"--timeout",
type=int,
default=None,
help="Use this timeout in seconds for container shutdown when attached or when containers are already running. \
(default: 10)",
help="Use this timeout in seconds for container shutdown when attached or when containers "
"are already running. (default: 10)",
)
parser.add_argument(
"-V",
@@ -2772,14 +2780,16 @@ def compose_up_parse(parser):
"--scale",
metavar="SERVICE=NUM",
action="append",
help="Scale SERVICE to NUM instances. Overrides the `scale` setting in the Compose file if present.",
help="Scale SERVICE to NUM instances. Overrides the `scale` setting in the Compose file if "
"present.",
)
parser.add_argument(
"--exit-code-from",
metavar="SERVICE",
type=str,
default=None,
help="Return the exit code of the selected service container. Implies --abort-on-container-exit.",
help="Return the exit code of the selected service container. "
"Implies --abort-on-container-exit.",
)
@@ -3021,7 +3031,8 @@ def compose_build_up_parse(parser):
)
parser.add_argument(
"--pull-always",
help="attempt to pull a newer version of the image, Raise an error even if the image is present locally.",
help="attempt to pull a newer version of the image, Raise an error even if the image is "
"present locally.",
action="store_true",
)
parser.add_argument(