diff --git a/blueprintcompiler/ast_utils.py b/blueprintcompiler/ast_utils.py index 7eebe45..13f6eb1 100644 --- a/blueprintcompiler/ast_utils.py +++ b/blueprintcompiler/ast_utils.py @@ -17,9 +17,9 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later -import typing as T from collections import ChainMap, defaultdict from functools import cached_property +import typing as T from .errors import * from .lsp_utils import SemanticToken diff --git a/blueprintcompiler/completions.py b/blueprintcompiler/completions.py index b189bf1..fc6eeee 100644 --- a/blueprintcompiler/completions.py +++ b/blueprintcompiler/completions.py @@ -20,12 +20,12 @@ import typing as T from . import gir, language +from .language.types import ClassName from .ast_utils import AstNode from .completions_utils import * -from .language.types import ClassName from .lsp_utils import Completion, CompletionItemKind from .parser import SKIP_TOKENS -from .tokenizer import Token, TokenType +from .tokenizer import TokenType, Token Pattern = T.List[T.Tuple[TokenType, T.Optional[str]]] diff --git a/blueprintcompiler/completions_utils.py b/blueprintcompiler/completions_utils.py index 2aae874..094e449 100644 --- a/blueprintcompiler/completions_utils.py +++ b/blueprintcompiler/completions_utils.py @@ -20,8 +20,9 @@ import typing as T -from .lsp_utils import Completion from .tokenizer import Token, TokenType +from .lsp_utils import Completion + new_statement_patterns = [ [(TokenType.PUNCTUATION, "{")], diff --git a/blueprintcompiler/decompiler.py b/blueprintcompiler/decompiler.py index 98e00af..d3bf773 100644 --- a/blueprintcompiler/decompiler.py +++ b/blueprintcompiler/decompiler.py @@ -18,13 +18,14 @@ # SPDX-License-Identifier: LGPL-3.0-or-later import re +from enum import Enum import typing as T from dataclasses import dataclass -from enum import Enum +from .xml_reader import Element, parse, parse_string from .gir import * from .utils import Colors -from .xml_reader import Element, parse, parse_string + __all__ = ["decompile"] diff --git a/blueprintcompiler/errors.py b/blueprintcompiler/errors.py index 2a14040..3fc2666 100644 --- a/blueprintcompiler/errors.py +++ b/blueprintcompiler/errors.py @@ -17,11 +17,9 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later -import sys -import traceback -import typing as T from dataclasses import dataclass - +import typing as T +import sys, traceback from . import utils from .utils import Colors diff --git a/blueprintcompiler/gir.py b/blueprintcompiler/gir.py index 2986447..b289b5e 100644 --- a/blueprintcompiler/gir.py +++ b/blueprintcompiler/gir.py @@ -17,18 +17,17 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later -import os -import sys -import typing as T from functools import cached_property +import typing as T +import os, sys import gi # type: ignore gi.require_version("GIRepository", "2.0") from gi.repository import GIRepository # type: ignore -from . import typelib, xml_reader from .errors import CompileError, CompilerBugError +from . import typelib, xml_reader _namespace_cache: T.Dict[str, "Namespace"] = {} _xml_cache = {} diff --git a/blueprintcompiler/interactive_port.py b/blueprintcompiler/interactive_port.py index 43bb03f..1286f0b 100644 --- a/blueprintcompiler/interactive_port.py +++ b/blueprintcompiler/interactive_port.py @@ -18,15 +18,16 @@ # SPDX-License-Identifier: LGPL-3.0-or-later +import typing as T import difflib import os -import typing as T -from . import decompiler, parser, tokenizer -from .errors import CompilerBugError, MultipleErrors, PrintableError +from . import decompiler, tokenizer, parser from .outputs.xml import XmlOutput +from .errors import MultipleErrors, PrintableError, CompilerBugError from .utils import Colors + # A tool to interactively port projects to blueprints. diff --git a/blueprintcompiler/language/__init__.py b/blueprintcompiler/language/__init__.py index f849c75..d785e56 100644 --- a/blueprintcompiler/language/__init__.py +++ b/blueprintcompiler/language/__init__.py @@ -1,12 +1,12 @@ -from .adw_breakpoint import ( - AdwBreakpointCondition, - AdwBreakpointSetter, - AdwBreakpointSetters, -) +from .gtk_list_item_factory import ExtListItemFactory from .adw_message_dialog import ExtAdwMessageDialog from .attributes import BaseAttribute +from .adw_breakpoint import ( + AdwBreakpointSetters, + AdwBreakpointSetter, + AdwBreakpointCondition, +) from .binding import Binding -from .common import * from .contexts import ScopeCtx, ValueTypeCtx from .expression import ( CastExpr, @@ -23,24 +23,23 @@ from .gobject_signal import Signal from .gtk_a11y import ExtAccessibility from .gtk_combo_box_text import ExtComboBoxItems from .gtk_file_filter import ( - Filters, ext_file_filter_mime_types, ext_file_filter_patterns, ext_file_filter_suffixes, + Filters, ) from .gtk_layout import ExtLayout -from .gtk_list_item_factory import ExtListItemFactory -from .gtk_menu import Menu, MenuAttribute, menu +from .gtk_menu import menu, Menu, MenuAttribute from .gtk_scale import ExtScaleMarks from .gtk_size_group import ExtSizeGroupWidgets from .gtk_string_list import ExtStringListStrings from .gtk_styles import ExtStyles -from .gtkbuilder_child import Child, ChildExtension, ChildInternal, ChildType +from .gtkbuilder_child import Child, ChildType, ChildInternal, ChildExtension from .gtkbuilder_template import Template from .imports import GtkDirective, Import from .property_binding import PropertyBinding -from .types import ClassName from .ui import UI +from .types import ClassName from .values import ( Flag, Flags, @@ -55,6 +54,8 @@ from .values import ( Value, ) +from .common import * + OBJECT_CONTENT_HOOKS.children = [ Signal, Property, diff --git a/blueprintcompiler/language/adw_message_dialog.py b/blueprintcompiler/language/adw_message_dialog.py index 98c40cd..2823f77 100644 --- a/blueprintcompiler/language/adw_message_dialog.py +++ b/blueprintcompiler/language/adw_message_dialog.py @@ -18,7 +18,7 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -from ..decompiler import decompile_translatable, truthy +from ..decompiler import truthy, decompile_translatable from .common import * from .contexts import ValueTypeCtx from .gobject_object import ObjectContent, validate_parent_type diff --git a/blueprintcompiler/language/binding.py b/blueprintcompiler/language/binding.py index e6bffd0..b13d5da 100644 --- a/blueprintcompiler/language/binding.py +++ b/blueprintcompiler/language/binding.py @@ -20,7 +20,7 @@ from dataclasses import dataclass from .common import * -from .expression import Expression, LiteralExpr, LookupOp +from .expression import Expression, LookupOp, LiteralExpr class Binding(AstNode): diff --git a/blueprintcompiler/language/common.py b/blueprintcompiler/language/common.py index f1c6bb9..9938bec 100644 --- a/blueprintcompiler/language/common.py +++ b/blueprintcompiler/language/common.py @@ -18,35 +18,36 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -from .. import decompiler as decompile from .. import gir -from ..ast_utils import AstNode, context, docs, validate +from ..ast_utils import AstNode, validate, docs, context +from ..errors import ( + CompileError, + MultipleErrors, + UpgradeWarning, + CompileWarning, + CodeAction, +) from ..completions_utils import * +from .. import decompiler as decompile from ..decompiler import ( DecompileCtx, - decompile_translatable, decompiler, escape_quote, truthy, -) -from ..errors import ( - CodeAction, - CompileError, - CompileWarning, - MultipleErrors, - UpgradeWarning, + decompile_translatable, ) from ..gir import ( + StringType, BoolType, - Enumeration, - ExternType, + IntType, FloatType, GirType, - IntType, - StringType, + Enumeration, + ExternType, ) from ..lsp_utils import Completion, CompletionItemKind, SemanticToken, SemanticTokenType from ..parse_tree import * + OBJECT_CONTENT_HOOKS = AnyOf() LITERAL = AnyOf() diff --git a/blueprintcompiler/language/contexts.py b/blueprintcompiler/language/contexts.py index fb24f5a..29d95de 100644 --- a/blueprintcompiler/language/contexts.py +++ b/blueprintcompiler/language/contexts.py @@ -38,8 +38,8 @@ class ScopeCtx: @cached_property def template(self): - from .gtk_list_item_factory import ExtListItemFactory from .ui import UI + from .gtk_list_item_factory import ExtListItemFactory if isinstance(self.node, UI): return self.node.template diff --git a/blueprintcompiler/language/expression.py b/blueprintcompiler/language/expression.py index a2185a3..314c753 100644 --- a/blueprintcompiler/language/expression.py +++ b/blueprintcompiler/language/expression.py @@ -20,8 +20,9 @@ from .common import * from .contexts import ScopeCtx, ValueTypeCtx -from .gtkbuilder_template import Template from .types import TypeName +from .gtkbuilder_template import Template + expr = Sequence() diff --git a/blueprintcompiler/language/gobject_object.py b/blueprintcompiler/language/gobject_object.py index d247c61..183ad8e 100644 --- a/blueprintcompiler/language/gobject_object.py +++ b/blueprintcompiler/language/gobject_object.py @@ -25,6 +25,7 @@ from .common import * from .response_id import ExtResponse from .types import ClassName, ConcreteClassName + RESERVED_IDS = {"this", "self", "template", "true", "false", "null", "none"} diff --git a/blueprintcompiler/language/gobject_property.py b/blueprintcompiler/language/gobject_property.py index f65c5ca..09873bc 100644 --- a/blueprintcompiler/language/gobject_property.py +++ b/blueprintcompiler/language/gobject_property.py @@ -18,12 +18,12 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -from .binding import Binding +from .gtkbuilder_template import Template +from .values import Value, ObjectValue from .common import * from .contexts import ValueTypeCtx -from .gtkbuilder_template import Template from .property_binding import PropertyBinding -from .values import ObjectValue, Value +from .binding import Binding class Property(AstNode): diff --git a/blueprintcompiler/language/gobject_signal.py b/blueprintcompiler/language/gobject_signal.py index 2fc4699..f08168f 100644 --- a/blueprintcompiler/language/gobject_signal.py +++ b/blueprintcompiler/language/gobject_signal.py @@ -19,9 +19,9 @@ import typing as T -from .common import * -from .contexts import ScopeCtx from .gtkbuilder_template import Template +from .contexts import ScopeCtx +from .common import * class SignalFlag(AstNode): diff --git a/blueprintcompiler/language/gtk_a11y.py b/blueprintcompiler/language/gtk_a11y.py index f7f89d6..c378927 100644 --- a/blueprintcompiler/language/gtk_a11y.py +++ b/blueprintcompiler/language/gtk_a11y.py @@ -17,12 +17,12 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later -from ..decompiler import escape_quote +from .gobject_object import ObjectContent, validate_parent_type from .attributes import BaseAttribute +from .values import Value from .common import * from .contexts import ValueTypeCtx -from .gobject_object import ObjectContent, validate_parent_type -from .values import Value +from ..decompiler import escape_quote def get_property_types(gir): diff --git a/blueprintcompiler/language/gtk_combo_box_text.py b/blueprintcompiler/language/gtk_combo_box_text.py index e6c804e..275327a 100644 --- a/blueprintcompiler/language/gtk_combo_box_text.py +++ b/blueprintcompiler/language/gtk_combo_box_text.py @@ -18,9 +18,9 @@ # SPDX-License-Identifier: LGPL-3.0-or-later +from .gobject_object import ObjectContent, validate_parent_type from .common import * from .contexts import ValueTypeCtx -from .gobject_object import ObjectContent, validate_parent_type from .values import StringValue diff --git a/blueprintcompiler/language/gtk_file_filter.py b/blueprintcompiler/language/gtk_file_filter.py index 53cd102..492f19e 100644 --- a/blueprintcompiler/language/gtk_file_filter.py +++ b/blueprintcompiler/language/gtk_file_filter.py @@ -18,8 +18,8 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -from .common import * from .gobject_object import ObjectContent, validate_parent_type +from .common import * class Filters(AstNode): diff --git a/blueprintcompiler/language/gtk_layout.py b/blueprintcompiler/language/gtk_layout.py index 7632c7a..cceb6c6 100644 --- a/blueprintcompiler/language/gtk_layout.py +++ b/blueprintcompiler/language/gtk_layout.py @@ -18,9 +18,9 @@ # SPDX-License-Identifier: LGPL-3.0-or-later +from .gobject_object import ObjectContent, validate_parent_type from .common import * from .contexts import ValueTypeCtx -from .gobject_object import ObjectContent, validate_parent_type from .values import Value diff --git a/blueprintcompiler/language/gtk_list_item_factory.py b/blueprintcompiler/language/gtk_list_item_factory.py index f2f9d63..bbb3bda 100644 --- a/blueprintcompiler/language/gtk_list_item_factory.py +++ b/blueprintcompiler/language/gtk_list_item_factory.py @@ -1,9 +1,9 @@ -from ..ast_utils import AstNode, validate -from ..parse_tree import Keyword -from .common import * -from .contexts import ScopeCtx from .gobject_object import ObjectContent, validate_parent_type +from ..parse_tree import Keyword +from ..ast_utils import AstNode, validate +from .common import * from .types import TypeName +from .contexts import ScopeCtx class ExtListItemFactory(AstNode): diff --git a/blueprintcompiler/language/gtk_scale.py b/blueprintcompiler/language/gtk_scale.py index 18452e1..a81e03d 100644 --- a/blueprintcompiler/language/gtk_scale.py +++ b/blueprintcompiler/language/gtk_scale.py @@ -17,8 +17,8 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later +from .gobject_object import validate_parent_type, ObjectContent from .common import * -from .gobject_object import ObjectContent, validate_parent_type from .values import StringValue diff --git a/blueprintcompiler/language/gtk_size_group.py b/blueprintcompiler/language/gtk_size_group.py index 2a10a35..5ba4325 100644 --- a/blueprintcompiler/language/gtk_size_group.py +++ b/blueprintcompiler/language/gtk_size_group.py @@ -18,9 +18,9 @@ # SPDX-License-Identifier: LGPL-3.0-or-later +from .gobject_object import ObjectContent, validate_parent_type from .common import * from .contexts import ScopeCtx -from .gobject_object import ObjectContent, validate_parent_type class Widget(AstNode): diff --git a/blueprintcompiler/language/gtk_string_list.py b/blueprintcompiler/language/gtk_string_list.py index 455960e..78d9c67 100644 --- a/blueprintcompiler/language/gtk_string_list.py +++ b/blueprintcompiler/language/gtk_string_list.py @@ -18,9 +18,9 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -from .common import * from .gobject_object import ObjectContent, validate_parent_type from .values import StringValue +from .common import * class Item(AstNode): diff --git a/blueprintcompiler/language/gtk_styles.py b/blueprintcompiler/language/gtk_styles.py index 8152b82..6591aa5 100644 --- a/blueprintcompiler/language/gtk_styles.py +++ b/blueprintcompiler/language/gtk_styles.py @@ -18,8 +18,8 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -from .common import * from .gobject_object import ObjectContent, validate_parent_type +from .common import * class StyleClass(AstNode): diff --git a/blueprintcompiler/language/gtkbuilder_child.py b/blueprintcompiler/language/gtkbuilder_child.py index 52c8ad4..4de13f2 100644 --- a/blueprintcompiler/language/gtkbuilder_child.py +++ b/blueprintcompiler/language/gtkbuilder_child.py @@ -20,9 +20,9 @@ from functools import cached_property -from .common import * from .gobject_object import Object from .response_id import ExtResponse +from .common import * ALLOWED_PARENTS: T.List[T.Tuple[str, str]] = [ ("Gtk", "Buildable"), diff --git a/blueprintcompiler/language/gtkbuilder_template.py b/blueprintcompiler/language/gtkbuilder_template.py index 9de4d66..149152a 100644 --- a/blueprintcompiler/language/gtkbuilder_template.py +++ b/blueprintcompiler/language/gtkbuilder_template.py @@ -21,9 +21,9 @@ import typing as T from blueprintcompiler.language.common import GirType -from ..gir import TemplateType -from .common import * from .gobject_object import Object, ObjectContent +from .common import * +from ..gir import TemplateType from .types import ClassName, TemplateClassName diff --git a/blueprintcompiler/language/types.py b/blueprintcompiler/language/types.py index e75ebdc..dbce44f 100644 --- a/blueprintcompiler/language/types.py +++ b/blueprintcompiler/language/types.py @@ -18,8 +18,8 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -from ..gir import Class, ExternType, Interface from .common import * +from ..gir import Class, ExternType, Interface class TypeName(AstNode): diff --git a/blueprintcompiler/language/ui.py b/blueprintcompiler/language/ui.py index 1b7e6e9..533d21b 100644 --- a/blueprintcompiler/language/ui.py +++ b/blueprintcompiler/language/ui.py @@ -20,12 +20,12 @@ from functools import cached_property from .. import gir +from .imports import GtkDirective, Import +from .gtkbuilder_template import Template +from .gobject_object import Object +from .gtk_menu import menu, Menu from .common import * from .contexts import ScopeCtx -from .gobject_object import Object -from .gtk_menu import Menu, menu -from .gtkbuilder_template import Template -from .imports import GtkDirective, Import class UI(AstNode): diff --git a/blueprintcompiler/language/values.py b/blueprintcompiler/language/values.py index 6981141..d0f3be5 100644 --- a/blueprintcompiler/language/values.py +++ b/blueprintcompiler/language/values.py @@ -20,9 +20,9 @@ import typing as T from .common import * -from .contexts import ScopeCtx, ValueTypeCtx -from .gobject_object import Object from .types import TypeName +from .gobject_object import Object +from .contexts import ScopeCtx, ValueTypeCtx class Translated(AstNode): diff --git a/blueprintcompiler/lsp.py b/blueprintcompiler/lsp.py index e8c37f3..58d6fac 100644 --- a/blueprintcompiler/lsp.py +++ b/blueprintcompiler/lsp.py @@ -18,16 +18,14 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -import json -import sys -import traceback import typing as T +import json, sys, traceback -from . import decompiler, parser, tokenizer, utils, xml_reader from .completions import complete -from .errors import CompileError, MultipleErrors, PrintableError +from .errors import PrintableError, CompileError, MultipleErrors from .lsp_utils import * from .outputs.xml import XmlOutput +from . import tokenizer, parser, utils, xml_reader, decompiler def printerr(*args, **kwargs): diff --git a/blueprintcompiler/lsp_utils.py b/blueprintcompiler/lsp_utils.py index 7f46680..219cade 100644 --- a/blueprintcompiler/lsp_utils.py +++ b/blueprintcompiler/lsp_utils.py @@ -18,9 +18,9 @@ # SPDX-License-Identifier: LGPL-3.0-or-later +from dataclasses import dataclass import enum import typing as T -from dataclasses import dataclass from .errors import * from .utils import * diff --git a/blueprintcompiler/main.py b/blueprintcompiler/main.py index 8830082..47ddef9 100644 --- a/blueprintcompiler/main.py +++ b/blueprintcompiler/main.py @@ -18,19 +18,15 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -import argparse -import json -import os -import re -import sys import typing as T +import argparse, json, os, sys, re -from . import decompiler, interactive_port, parser, tokenizer -from .errors import CompilerBugError, MultipleErrors, PrintableError, report_bug +from .errors import PrintableError, report_bug, MultipleErrors, CompilerBugError from .gir import add_typelib_search_path from .lsp import LanguageServer -from .outputs import XmlOutput +from . import parser, tokenizer, decompiler, interactive_port from .utils import Colors +from .outputs import XmlOutput VERSION = "uninstalled" LIBDIR = None diff --git a/blueprintcompiler/outputs/xml/__init__.py b/blueprintcompiler/outputs/xml/__init__.py index 3ef7375..7d450d1 100644 --- a/blueprintcompiler/outputs/xml/__init__.py +++ b/blueprintcompiler/outputs/xml/__init__.py @@ -1,7 +1,7 @@ import typing as T -from ...language import * from .. import OutputFormat +from ...language import * from .xml_emitter import XmlEmitter diff --git a/blueprintcompiler/outputs/xml/xml_emitter.py b/blueprintcompiler/outputs/xml/xml_emitter.py index 44013da..3dd09a0 100644 --- a/blueprintcompiler/outputs/xml/xml_emitter.py +++ b/blueprintcompiler/outputs/xml/xml_emitter.py @@ -18,6 +18,7 @@ # SPDX-License-Identifier: LGPL-3.0-or-later import typing as T + from xml.sax import saxutils from blueprintcompiler.gir import GirType diff --git a/blueprintcompiler/parse_tree.py b/blueprintcompiler/parse_tree.py index 48f60b1..ff080ea 100644 --- a/blueprintcompiler/parse_tree.py +++ b/blueprintcompiler/parse_tree.py @@ -20,19 +20,21 @@ """ Utilities for parsing an AST from a token stream. """ import typing as T + from collections import defaultdict from enum import Enum - from .ast_utils import AstNode + from .errors import ( - CompileError, + assert_true, CompilerBugError, + CompileError, CompileWarning, UnexpectedTokenError, - assert_true, ) from .tokenizer import Token, TokenType + SKIP_TOKENS = [TokenType.COMMENT, TokenType.WHITESPACE] diff --git a/blueprintcompiler/parser.py b/blueprintcompiler/parser.py index 8b50de5..edef840 100644 --- a/blueprintcompiler/parser.py +++ b/blueprintcompiler/parser.py @@ -19,9 +19,9 @@ from .errors import MultipleErrors, PrintableError -from .language import OBJECT_CONTENT_HOOKS, UI, Template from .parse_tree import * from .tokenizer import TokenType +from .language import OBJECT_CONTENT_HOOKS, Template, UI def parse( diff --git a/blueprintcompiler/tokenizer.py b/blueprintcompiler/tokenizer.py index 3c98b94..f68f5a7 100644 --- a/blueprintcompiler/tokenizer.py +++ b/blueprintcompiler/tokenizer.py @@ -18,8 +18,8 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -import re import typing as T +import re from enum import Enum from .errors import CompileError, CompilerBugError diff --git a/blueprintcompiler/typelib.py b/blueprintcompiler/typelib.py index 8de06c5..54ee341 100644 --- a/blueprintcompiler/typelib.py +++ b/blueprintcompiler/typelib.py @@ -17,15 +17,15 @@ # # SPDX-License-Identifier: LGPL-3.0-or-later -import math -import mmap -import os import sys import typing as T +import math from ctypes import * +import mmap, os from .errors import CompilerBugError + BLOB_TYPE_STRUCT = 3 BLOB_TYPE_BOXED = 4 BLOB_TYPE_ENUM = 5 diff --git a/blueprintcompiler/xml_reader.py b/blueprintcompiler/xml_reader.py index a3c0e3e..b2d579b 100644 --- a/blueprintcompiler/xml_reader.py +++ b/blueprintcompiler/xml_reader.py @@ -18,11 +18,12 @@ # SPDX-License-Identifier: LGPL-3.0-or-later -import typing as T from collections import defaultdict from functools import cached_property +import typing as T from xml import sax + # To speed up parsing, we ignore all tags except these PARSE_GIR = set( [ diff --git a/tests/fuzz.py b/tests/fuzz.py index 81a9058..ad1c764 100644 --- a/tests/fuzz.py +++ b/tests/fuzz.py @@ -1,21 +1,20 @@ -import os -import sys - +import os, sys from pythonfuzz.main import PythonFuzz from blueprintcompiler.outputs.xml import XmlOutput sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) -from blueprintcompiler import decompiler, gir, parser, tokenizer, utils +from blueprintcompiler import tokenizer, parser, decompiler, gir from blueprintcompiler.completions import complete from blueprintcompiler.errors import ( + PrintableError, + MultipleErrors, CompileError, CompilerBugError, - MultipleErrors, - PrintableError, ) from blueprintcompiler.tokenizer import Token, TokenType, tokenize +from blueprintcompiler import utils @PythonFuzz diff --git a/tests/test_samples.py b/tests/test_samples.py index 7fe7941..30a41aa 100644 --- a/tests/test_samples.py +++ b/tests/test_samples.py @@ -19,19 +19,20 @@ import difflib # I love Python -import unittest from pathlib import Path +import unittest import gi gi.require_version("Gtk", "4.0") from gi.repository import Gtk -from blueprintcompiler import decompiler, parser, tokenizer, utils +from blueprintcompiler import tokenizer, parser, decompiler from blueprintcompiler.completions import complete -from blueprintcompiler.errors import CompileError, MultipleErrors, PrintableError -from blueprintcompiler.outputs.xml import XmlOutput +from blueprintcompiler.errors import PrintableError, MultipleErrors, CompileError from blueprintcompiler.tokenizer import Token, TokenType, tokenize +from blueprintcompiler import utils +from blueprintcompiler.outputs.xml import XmlOutput class TestSamples(unittest.TestCase):