From a8269dc55ac8af386158c4e296de3badde8ee317 Mon Sep 17 00:00:00 2001 From: Mattia Basaglia Date: Fri, 12 Jul 2024 09:04:21 +0200 Subject: [PATCH 1/2] Check python code style --- .github/workflows/lint.yml | 21 +++++++++++++++++++++ tools/.flake8 | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 .github/workflows/lint.yml create mode 100644 tools/.flake8 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..815fa9c --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,21 @@ +name: Lint +on: + - push + - pull_request +jobs: + pep8: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v4 + - + name: Setup + run: | + sudo apt update -q + sudo apt install -yy python3 python3-pip + pip install flake8 + - + name: Check code style + run: | + cd tools && flake8 diff --git a/tools/.flake8 b/tools/.flake8 new file mode 100644 index 0000000..f79cba5 --- /dev/null +++ b/tools/.flake8 @@ -0,0 +1,2 @@ +[flake8] +max-line-length = 128 From 15a11a4fe359651a538a218a7a78cebedb93064f Mon Sep 17 00:00:00 2001 From: Mattia Basaglia Date: Fri, 12 Jul 2024 09:14:50 +0200 Subject: [PATCH 2/2] Fix python linting errors --- tools/.flake8 | 5 ++++- tools/lottie_markdown.py | 13 ++++--------- tools/schema-merge.py | 7 +++++-- tools/schema-validate.py | 8 ++++---- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/tools/.flake8 b/tools/.flake8 index f79cba5..a6c7571 100644 --- a/tools/.flake8 +++ b/tools/.flake8 @@ -1,2 +1,5 @@ [flake8] -max-line-length = 128 +# E227 missing whitespace around bitwise or shift operator +# W504 line break after binary operator +ignore = E227,W504 +max-line-length = 150 diff --git a/tools/lottie_markdown.py b/tools/lottie_markdown.py index d9b2d51..a8dacfa 100644 --- a/tools/lottie_markdown.py +++ b/tools/lottie_markdown.py @@ -1,9 +1,6 @@ import re import sys import json -import inspect -import dataclasses -from typing import Any from pathlib import Path import xml.etree.ElementTree as etree @@ -11,7 +8,6 @@ from markdown.extensions import Extension from markdown.inlinepatterns import InlineProcessor from markdown.blockprocessors import BlockProcessor -from markdown.preprocessors import Preprocessor from markdown.util import HTML_PLACEHOLDER_RE, AtomicString from mkdocs.utils import get_relative_url @@ -158,7 +154,7 @@ def encode(self, json_object, indent, id=None): raise TypeError(json_object) def encode_item(self, json_object, hljs_type, href=None): - span = etree.Element("span", {"class": "hljs-"+hljs_type}) + span = etree.Element("span", {"class": "hljs-" + hljs_type}) span.text = self.encoder.encode(json_object) if href: @@ -304,7 +300,7 @@ def run(self, parent, blocks): prop_dict = type.all_properties() - rows = blocks.pop(0) + blocks.pop(0) div = etree.SubElement(parent, "div") @@ -776,7 +772,7 @@ def add_control(self, label, input): default_value = input.attrib.get("value", "") input = input_wrapper = etree.Element("select") - for value in self.schema_data.from_path("constants/"+enum_id).values: + for value in self.schema_data.from_path("constants/" + enum_id).values: option = etree.SubElement(input, "option", {"value": str(value.value)}) option.text = value.title if str(value.value) == default_value: @@ -811,7 +807,6 @@ def add_control(self, label, input): ); """.format( pg=input_wrapper.attrib["id"], - id=id_base, initial=input.attrib.get("value", "null"), anim_id=self.anim_id, ) @@ -1038,7 +1033,7 @@ def run(self, parent, blocks): element = etree.SubElement(parent, "div", {"class": "playground playground-columns"}) - editor = etree.SubElement(element, "div", {"id": "editor_" + id_base}) + etree.SubElement(element, "div", {"id": "editor_" + id_base}) json_viewer = "json_viewer_%s" % id_base json_viewer_parent = json_viewer + "_parent" diff --git a/tools/schema-merge.py b/tools/schema-merge.py index 7900c1b..bd56f09 100755 --- a/tools/schema-merge.py +++ b/tools/schema-merge.py @@ -7,6 +7,7 @@ from schema_tools.schema import SchemaPath, Schema from schema_tools import type_info + def join_parts( json_data: dict, path: pathlib.Path, @@ -32,6 +33,7 @@ def join_parts( return json_data + def add_vals_to_unknown_object( objects, unknown_type_dict: dict @@ -42,9 +44,10 @@ def add_vals_to_unknown_object( type = ele.properties['ty'].const if type is not None: types.append(type) - + unknown_type_dict["properties"]["ty"]["not"]["enum"] = types - + + root = pathlib.Path(__file__).absolute().parent.parent parser = argparse.ArgumentParser(description="Joins JSON schema in a single file") diff --git a/tools/schema-validate.py b/tools/schema-validate.py index 3d55f88..6db4d53 100755 --- a/tools/schema-validate.py +++ b/tools/schema-validate.py @@ -11,11 +11,12 @@ # By default, tool expects a link for all schema files. # This is generally true, but may not always be the case unneededLinks = [ - ("shapes","base-gradient"), - ("layers","unknown-layer"), - ("shapes","unknown-shape") + ("shapes", "base-gradient"), + ("layers", "unknown-layer"), + ("shapes", "unknown-shape") ] + class Validator: def __init__(self): self.valid_refs = set() @@ -118,4 +119,3 @@ def check_links(self, html_path: pathlib.Path): if validator.has_error: sys.exit(1) -