From eab742d5a1f6db8f4f829cfd8f57ade82a1e9561 Mon Sep 17 00:00:00 2001 From: Manuel Weberndorfer <manuel.weberndorfer@id.ethz.ch> Date: Tue, 8 Feb 2022 15:09:12 +0000 Subject: [PATCH] update versions of python packages - previous version of black does not support jammy - perform changes recommended by pylint --- .gitlab-ci.yml | 4 +- cpppetsc/tools/generate_xdmf.py | 44 ++++++++--------- docker/Dockerfile | 48 +++++++++---------- .../src/quadrature/generate_quadrature.py | 15 ++---- tests/numeric_diff.py | 8 ++-- tests/run.py | 8 ++-- 6 files changed, 59 insertions(+), 68 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9d09813a..752d73b9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -93,8 +93,8 @@ check-script: image: $CI_REGISTRY_IMAGE/dev-real:$CI_COMMIT_REF_SLUG script: - find . -name "*.py" -print0 | xargs -0 python3 -m black --check - - find . -name "*.py" -print0 | xargs -0 python3 -m pylint - - find . -name "*.py" -print0 | xargs -0 python3 -m mypy --python-version 3.7 --ignore-missing + - find . -name "*.py" -print0 | xargs -0 python3 -m pylint --generated-members 'h5py\.File' + - find . -name "*.py" -print0 | xargs -0 python3 -m mypy --python-version 3.9 --ignore-missing - find . -name "*.py" -print0 | xargs -0 python3 -m doctest .build-library: &build-library diff --git a/cpppetsc/tools/generate_xdmf.py b/cpppetsc/tools/generate_xdmf.py index ce72aa6d..44ee807d 100755 --- a/cpppetsc/tools/generate_xdmf.py +++ b/cpppetsc/tools/generate_xdmf.py @@ -246,17 +246,17 @@ def add_sliced_hdf_dataitem( "DataItem", {"Dimensions": shape_to_xdmf_dimensions((3, item.ndim)), "Format": "XML"}, ) - dimensions.text = "{} {} {}".format( - shape_to_xdmf_dimensions( + dimensions.text = f"""{ + shape_to_xdmf_dimensions( tuple(sliced_dimensions.get(i, 0) for i in range(item.ndim)) - ), - shape_to_xdmf_dimensions(tuple(1 for _ in range(item.ndim))), - shape_to_xdmf_dimensions( - tuple( - 1 if i in sliced_dimensions else item.shape[i] for i in range(item.ndim) - ) - ), - ) + ) + } { + shape_to_xdmf_dimensions(tuple(1 for _ in range(item.ndim))) + } { + shape_to_xdmf_dimensions( + tuple(1 if i in sliced_dimensions else item.shape[i] for i in range(item.ndim)) + ) + }""" add_hdf_dataitem(hyperslab, hdf_file, hdf_path) return hyperslab @@ -282,7 +282,7 @@ def add_hdf_dataitem( "Rank": str(item.ndim), }, ) - dataitem.text = "{}:{}".format(hdf_file.filename, hdf_path) + dataitem.text = f"{hdf_file.filename}:{hdf_path}" return dataitem @@ -358,15 +358,13 @@ def add_topology(parent: ET.Element, hdf_file: h5py.File) -> ET.Element: {"Format": "XML", "Dimensions": str(dataitem_dimension)}, ) dataitem.text = " ".join( - "{} {}".format( - " ".join( - str(type_) - for type_ in number_of_corners_to_type( - len(vertices), topological_dimension - ) - ), - " ".join(str(vertex) for vertex in vertices), - ) + f"""{ + " ".join(str(type_) + for type_ in number_of_corners_to_type(len(vertices), topological_dimension)) + } { + " ".join(str(vertex) + for vertex in vertices) + }""" for vertices in read_element_vertices(hdf_file) ) @@ -411,7 +409,7 @@ def add_field( - 3 columns: A vector field will be added. - otherwise: The field is split into scalar fields, and those are added. """ - hdf_path = "/fields/{}".format(field_name) + hdf_path = "/fields/{field_name}" item = hdf_file[hdf_path] shape = item.shape @@ -456,7 +454,7 @@ def add_field( parent, "Attribute", { - "Name": "{}[{}]{}".format(field_name, column, postfix), + "Name": f"{field_name}[{column}]{postfix}", "Center": center, "AttributeType": "Scalar", }, @@ -519,7 +517,7 @@ def main() -> None: XDMF to file. """ filename = parse_input_filename() - with open(filename.stem + ".xdmf", "w") as xdmf_file: + with open(filename.stem + ".xdmf", "w", encoding="utf-8") as xdmf_file: xdmf_file.write(hdf_to_xdmf_string(h5py.File(filename, "r"))) diff --git a/docker/Dockerfile b/docker/Dockerfile index ce80ab90..f513cde5 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -19,31 +19,31 @@ FROM $BASE_IMAGE ARG PETSC_SCALAR_TYPE=real RUN apt-get update && \ - DEBIAN_FRONTEND="noninteractive" \ - TZ="Europe/Zurich" \ - apt-get install -y \ - clang-format \ - cmake \ - g++ \ - git \ - googletest \ - libboost-program-options-dev \ - libeigen3-dev \ - librange-v3-dev \ - ninja-build \ - python3 python3-pip \ - python3-h5py \ - gdb + DEBIAN_FRONTEND="noninteractive" \ + TZ="Europe/Zurich" \ + apt-get install -y \ + clang-format \ + cmake \ + g++ \ + git \ + googletest \ + libboost-program-options-dev \ + libeigen3-dev \ + librange-v3-dev \ + ninja-build \ + python3 python3-pip \ + python3-h5py \ + gdb RUN pip3 install \ - mypy==0.790 \ - black==20.8b1 \ - pylint==2.6.0 \ - sympy==1.7.1 \ - gcovr + mypy==0.931 \ + black==22.1.0 \ + pylint==2.12.2 \ + sympy==1.7.1 \ + gcovr==5.0 RUN apt-get update && \ - DEBIAN_FRONTEND="noninteractive" \ - apt-get install -y \ - libpetsc-${PETSC_SCALAR_TYPE}-dev \ - libslepc-${PETSC_SCALAR_TYPE}3.15-dev + DEBIAN_FRONTEND="noninteractive" \ + apt-get install -y \ + libpetsc-${PETSC_SCALAR_TYPE}-dev \ + libslepc-${PETSC_SCALAR_TYPE}3.15-dev diff --git a/elements/src/quadrature/generate_quadrature.py b/elements/src/quadrature/generate_quadrature.py index 66cbedb1..fa863e0f 100755 --- a/elements/src/quadrature/generate_quadrature.py +++ b/elements/src/quadrature/generate_quadrature.py @@ -54,7 +54,7 @@ def compute_gaussian_weights(order: int) -> List[Any]: return [ 2 - / (1 - node ** 2) + / (1 - node**2) / sympy.diff( sympy.legendre_poly(order, sympy.Symbol("x"), polys=True), sympy.Symbol("x") ).eval(node) @@ -133,7 +133,7 @@ def to_initializer_list(values: Any) -> str: if isinstance(values, (list, tuple)): result = ", ".join([to_initializer_list(element) for element in values]) return "{{" + result + (", " if result.endswith("}") else "") + "}}" - return "{:+.16f}".format(float(values)) + return f"{float(values):+.16f}" def quadrature_definition(order: int, dimension: int) -> str: @@ -149,14 +149,9 @@ def quadrature_definition(order: int, dimension: int) -> str: weights = compute_gaussian_weights_in_dimension(order, dimension) return ( "AE108_ELEMENTS_QUADRATURE_DEFINE(" - "QuadratureType::Cube, {}, {}, {}, {{{}, {}}}" - ");".format( - dimension, - 2 * order - 1, - len(nodes), - to_initializer_list(nodes), - to_initializer_list(weights), - ) + f"QuadratureType::Cube, {dimension}, {2 * order - 1}, {len(nodes)}, " + f"{{{to_initializer_list(nodes)}, {to_initializer_list(weights)}}}" + ");" ) diff --git a/tests/numeric_diff.py b/tests/numeric_diff.py index 4947d12b..1e210876 100755 --- a/tests/numeric_diff.py +++ b/tests/numeric_diff.py @@ -83,9 +83,7 @@ def diff_iterables( math.isclose(values[0], values[1], rel_tol=rel_tol, abs_tol=abs_tol) or (math.isnan(values[0]) and math.isnan(values[1])) ): - yield "Line {} differs: '{}' is not '{}'".format( - index, strings[0].strip(), strings[1].strip() - ) + yield f"Line {index} differs: '{strings[0].strip()}' is not '{strings[1].strip()}'" def main(): @@ -119,8 +117,8 @@ def main(): arguments = parser.parse_args() - with open(str(arguments.filename_1), "r") as file_1: - with open(str(arguments.filename_2), "r") as file_2: + with open(str(arguments.filename_1), "r", encoding="utf-8") as file_1: + with open(str(arguments.filename_2), "r", encoding="utf-8") as file_2: return sum( 1 for _ in map( diff --git a/tests/run.py b/tests/run.py index 693eda6f..7ea16eaa 100755 --- a/tests/run.py +++ b/tests/run.py @@ -197,8 +197,8 @@ def diff_files( ComparisonType.NUMERIC: diff_numeric_string, } - with open(value, "r") as value_file: - with open(reference, "r") as reference_file: + with open(value, "r", encoding="utf-8") as value_file: + with open(reference, "r", encoding="utf-8") as reference_file: comparison_to_function.get(comparison, lambda _0, _1, _2: None)( value_file.read(), reference_file.read(), case ) @@ -326,7 +326,7 @@ def load_tests( lambda processes, name=test_name: f"test_{name}_with_{processes}_mpi_processes" ) - with open(path, "r") as file: + with open(path, "r", encoding="utf-8") as file: test_case_definitions = as_test_case_definitions( path.parent, json.load(file) ) @@ -365,7 +365,7 @@ def run_testcase( mpi_processes=definition.mpi_processes, ) - with open(directory_path / "stdout.txt", "w") as file: + with open(directory_path / "stdout.txt", "w", encoding="utf-8") as file: file.write(result.stdout) diff_files( -- GitLab