From f37e93a5abc7c3dd7d2e14c8fec245557cc167da Mon Sep 17 00:00:00 2001 From: Oscar Gustafsson <oscar.gustafsson@gmail.com> Date: Sun, 29 Jan 2023 23:09:51 +0100 Subject: [PATCH] Add isort to pre-commit --- .pre-commit-config.yaml | 5 ++++ b_asic/GUI/arrow.py | 2 +- b_asic/GUI/drag_button.py | 10 ++++---- b_asic/GUI/main_window.py | 7 +----- b_asic/operation.py | 7 +++--- b_asic/schedule.py | 5 ++-- b_asic/scheduler_gui/__init__.py | 5 ++-- b_asic/scheduler_gui/compile.py | 7 +++--- b_asic/signal_flow_graph.py | 2 +- examples/secondorderdirectformiir.py | 5 ++-- examples/thirdorderblwdf.py | 6 ++--- examples/threepointwinograddft.py | 7 +++--- examples/twotapfirsfg.py | 35 ++++++++++++++++++++++------ pyproject.toml | 9 ++++++- setup.py | 3 ++- test/conftest.py | 5 ++-- test/fixtures/schedule.py | 4 ++-- test/test_gui.py | 12 ++++++---- test/test_gui/twotapfir.py | 35 ++++++++++++++++++++++------ 19 files changed, 109 insertions(+), 62 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a1d6f179..0decc268 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,3 +13,8 @@ repos: rev: 22.10.0 hooks: - id: black +- repo: https://github.com/pycqa/isort + rev: 5.12.0 + hooks: + - id: isort + name: isort (python) diff --git a/b_asic/GUI/arrow.py b/b_asic/GUI/arrow.py index dfc4cd59..d2bdfe0a 100644 --- a/b_asic/GUI/arrow.py +++ b/b_asic/GUI/arrow.py @@ -1,5 +1,5 @@ from qtpy.QtCore import QPointF -from qtpy.QtGui import QPen, QPainterPath +from qtpy.QtGui import QPainterPath, QPen from qtpy.QtWidgets import QGraphicsPathItem, QMenu from b_asic.GUI._preferences import GRID, LINECOLOR, PORTHEIGHT, PORTWIDTH diff --git a/b_asic/GUI/drag_button.py b/b_asic/GUI/drag_button.py index 495291a3..09184d17 100644 --- a/b_asic/GUI/drag_button.py +++ b/b_asic/GUI/drag_button.py @@ -10,9 +10,6 @@ from qtpy.QtCore import QSize, Qt, Signal from qtpy.QtGui import QIcon from qtpy.QtWidgets import QAction, QMenu, QPushButton -from b_asic.GUI.port_button import PortButton -from b_asic.GUI.properties_window import PropertiesWindow -from b_asic.GUI.utils import decorate_class, handle_error from b_asic.GUI._preferences import ( GAP, GRID, @@ -20,6 +17,9 @@ from b_asic.GUI._preferences import ( PORTHEIGHT, PORTWIDTH, ) +from b_asic.GUI.port_button import PortButton +from b_asic.GUI.properties_window import PropertiesWindow +from b_asic.GUI.utils import decorate_class, handle_error from b_asic.port import InputPort @@ -153,9 +153,7 @@ class DragButton(QPushButton): path_to_image = os.path.join( os.path.dirname(__file__), "operation_icons", - ( - f"{self.operation.type_name().lower()}{'_grey.png' if self.pressed else '.png'}" - ), + f"{self.operation.type_name().lower()}{'_grey.png' if self.pressed else '.png'}", ) self.setIcon(QIcon(path_to_image)) self.setIconSize(QSize(MINBUTTONSIZE, MINBUTTONSIZE)) diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py index f231a4d7..0a9cc982 100644 --- a/b_asic/GUI/main_window.py +++ b/b_asic/GUI/main_window.py @@ -28,17 +28,12 @@ from qtpy.QtWidgets import ( import b_asic.core_operations import b_asic.special_operations +from b_asic.GUI._preferences import GAP, GRID, MINBUTTONSIZE, PORTHEIGHT from b_asic.GUI.about_window import AboutWindow, FaqWindow, KeybindsWindow from b_asic.GUI.arrow import Arrow from b_asic.GUI.drag_button import DragButton from b_asic.GUI.gui_interface import Ui_main_window from b_asic.GUI.select_sfg_window import SelectSFGWindow -from b_asic.GUI._preferences import ( - GAP, - GRID, - MINBUTTONSIZE, - PORTHEIGHT, -) from b_asic.GUI.show_pc_window import ShowPCWindow from b_asic.GUI.simulate_sfg_window import Plot, SimulateSFGWindow from b_asic.GUI.utils import decorate_class, handle_error diff --git a/b_asic/operation.py b/b_asic/operation.py index ecedacef..3da6e4ab 100644 --- a/b_asic/operation.py +++ b/b_asic/operation.py @@ -9,6 +9,7 @@ import itertools as it from abc import abstractmethod from numbers import Number from typing import ( + TYPE_CHECKING, Any, Dict, Iterable, @@ -20,7 +21,6 @@ from typing import ( Sequence, Tuple, Union, - TYPE_CHECKING, ) from b_asic.graph_component import ( @@ -32,15 +32,14 @@ from b_asic.graph_component import ( from b_asic.port import InputPort, OutputPort, SignalSourceProvider from b_asic.signal import Signal - if TYPE_CHECKING: # Conditionally imported to avoid circular imports from b_asic.core_operations import ( Addition, - Subtraction, - Multiplication, ConstantMultiplication, Division, + Multiplication, + Subtraction, ) from b_asic.signal_flow_graph import SFG diff --git a/b_asic/schedule.py b/b_asic/schedule.py index 3a4f0f7b..e76fcccd 100644 --- a/b_asic/schedule.py +++ b/b_asic/schedule.py @@ -7,14 +7,14 @@ Contains the schedule class for scheduling operations in an SFG. import io import sys from collections import defaultdict -from typing import cast, Dict, List, Optional, Tuple +from typing import Dict, List, Optional, Tuple, cast import matplotlib.pyplot as plt +import numpy as np from matplotlib.lines import Line2D from matplotlib.patches import PathPatch, Polygon from matplotlib.path import Path from matplotlib.ticker import MaxNLocator -import numpy as np from b_asic import Signal from b_asic._preferences import ( @@ -30,7 +30,6 @@ from b_asic.process import MemoryVariable, Process from b_asic.signal_flow_graph import SFG from b_asic.special_operations import Delay, Output - _EXECUTION_TIME_COLOR = tuple(c / 255 for c in EXECUTION_TIME_COLOR) _LATENCY_COLOR = tuple(c / 255 for c in LATENCY_COLOR) _SIGNAL_COLOR = tuple(c / 255 for c in SIGNAL_COLOR) diff --git a/b_asic/scheduler_gui/__init__.py b/b_asic/scheduler_gui/__init__.py index b0b416ca..ada1c2c7 100644 --- a/b_asic/scheduler_gui/__init__.py +++ b/b_asic/scheduler_gui/__init__.py @@ -6,12 +6,11 @@ Graphical user interface for B-ASIC scheduler. __author__ = "Andreas Bolin" # __all__ = ['main_window', 'graphics_graph', 'component_item', 'graphics_axes', 'graphics_timeline_item'] from b_asic.scheduler_gui._version import * - from b_asic.scheduler_gui.axes_item import * +from b_asic.scheduler_gui.logger import * +from b_asic.scheduler_gui.main_window import * from b_asic.scheduler_gui.operation_item import * from b_asic.scheduler_gui.scheduler_event import * from b_asic.scheduler_gui.scheduler_item import * from b_asic.scheduler_gui.signal_item import * from b_asic.scheduler_gui.timeline_item import * -from b_asic.scheduler_gui.logger import * -from b_asic.scheduler_gui.main_window import * diff --git a/b_asic/scheduler_gui/compile.py b/b_asic/scheduler_gui/compile.py index 4c24f939..473526f0 100644 --- a/b_asic/scheduler_gui/compile.py +++ b/b_asic/scheduler_gui/compile.py @@ -7,12 +7,13 @@ If no arguments is given, the compiler search for and compiles all form (.ui) files. """ -from qtpy import uic -import sys +import argparse import os import shutil import subprocess -import argparse +import sys + +from qtpy import uic from setuptools_scm import get_version try: diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py index c52d7dba..af4ae353 100644 --- a/b_asic/signal_flow_graph.py +++ b/b_asic/signal_flow_graph.py @@ -11,7 +11,6 @@ from io import StringIO from numbers import Number from queue import PriorityQueue from typing import ( - cast, DefaultDict, Deque, Dict, @@ -23,6 +22,7 @@ from typing import ( Set, Tuple, Union, + cast, ) from graphviz import Digraph diff --git a/examples/secondorderdirectformiir.py b/examples/secondorderdirectformiir.py index 49cb20d3..b30f8bf7 100644 --- a/examples/secondorderdirectformiir.py +++ b/examples/secondorderdirectformiir.py @@ -12,10 +12,9 @@ IN1>--->C0>--->ADD1>----------+--->A0>--->ADD4>--->OUT1 """ from b_asic.core_operations import Addition, ConstantMultiplication -from b_asic.special_operations import Delay, Input, Output -from b_asic.signal_flow_graph import SFG from b_asic.schedule import Schedule - +from b_asic.signal_flow_graph import SFG +from b_asic.special_operations import Delay, Input, Output in1 = Input("IN1") c0 = ConstantMultiplication(5, in1, "C0") diff --git a/examples/thirdorderblwdf.py b/examples/thirdorderblwdf.py index bc2676d4..af59aff9 100644 --- a/examples/thirdorderblwdf.py +++ b/examples/thirdorderblwdf.py @@ -2,10 +2,10 @@ Small bireciprocal lattice wave digital filter. """ from b_asic.core_operations import Addition, SymmetricTwoportAdaptor -from b_asic.special_operations import Delay, Input, Output +from b_asic.schedule import Schedule from b_asic.signal_flow_graph import SFG from b_asic.simulation import Simulation -from b_asic.schedule import Schedule +from b_asic.special_operations import Delay, Input, Output in0 = Input("x") D0 = Delay(in0) @@ -31,8 +31,8 @@ import scipy.signal w, h = scipy.signal.freqz(sim.results['0']) -import numpy as np import matplotlib.pyplot as plt +import numpy as np plt.plot(w, 20 * np.log10(np.abs(h) / 2)) diff --git a/examples/threepointwinograddft.py b/examples/threepointwinograddft.py index 6d81fea8..927cc555 100644 --- a/examples/threepointwinograddft.py +++ b/examples/threepointwinograddft.py @@ -1,15 +1,16 @@ """Three-point Winograd DFT. """ +from math import cos, pi, sin + from b_asic.core_operations import ( Addition, ConstantMultiplication, Subtraction, ) -from b_asic.special_operations import Input, Output -from b_asic.signal_flow_graph import SFG from b_asic.schedule import Schedule -from math import cos, pi, sin +from b_asic.signal_flow_graph import SFG +from b_asic.special_operations import Input, Output u = -2 * pi / 3 c30 = cos(u) - 1 diff --git a/examples/twotapfirsfg.py b/examples/twotapfirsfg.py index 97d76c32..b172e4fa 100644 --- a/examples/twotapfirsfg.py +++ b/examples/twotapfirsfg.py @@ -1,10 +1,18 @@ - """ B-ASIC automatically generated SFG file. Name: twotapfir Last saved: 2023-01-24 14:38:17.654639. """ -from b_asic import SFG, Signal, Input, Output, ConstantMultiplication, Delay, Input, Output, Addition +from b_asic import ( + SFG, + Addition, + ConstantMultiplication, + Delay, + Input, + Output, + Signal, +) + # Inputs: in1 = Input(name="in1") @@ -13,9 +21,15 @@ out1 = Output(name="") # Operations: t1 = Delay(initial_value=0, name="") -cmul1 = ConstantMultiplication(value=0.5, name="cmul2", latency_offsets={'in0': None, 'out0': None}) -add1 = Addition(name="", latency_offsets={'in0': None, 'in1': None, 'out0': None}) -cmul2 = ConstantMultiplication(value=0.5, name="cmul", latency_offsets={'in0': None, 'out0': None}) +cmul1 = ConstantMultiplication( + value=0.5, name="cmul2", latency_offsets={'in0': None, 'out0': None} +) +add1 = Addition( + name="", latency_offsets={'in0': None, 'in1': None, 'out0': None} +) +cmul2 = ConstantMultiplication( + value=0.5, name="cmul", latency_offsets={'in0': None, 'out0': None} +) # Signals: @@ -28,5 +42,12 @@ Signal(source=cmul2.output(0), destination=add1.input(1)) twotapfir = SFG(inputs=[in1], outputs=[out1], name='twotapfir') # SFG Properties: -prop = {'name':twotapfir} -positions = {'t1': (-209, 19), 'cmul1': (-95, 76), 'add1': (0, 95), 'cmul2': (-209, 114), 'out1': (76, 95), 'in1': (-323, 19)} +prop = {'name': twotapfir} +positions = { + 't1': (-209, 19), + 'cmul1': (-95, 76), + 'add1': (0, 95), + 'cmul2': (-209, 114), + 'out1': (76, 95), + 'in1': (-323, 19), +} diff --git a/pyproject.toml b/pyproject.toml index 07f862a2..4f5b7930 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,6 +56,13 @@ skip-string-normalization = true preview = true line-length = 79 exclude = [ - "examples", + "test/test_gui" +] + +[tool.isort] +profile = "black" +line_length = 79 +src_paths = ["b_asic", "test"] +skip = [ "test/test_gui" ] diff --git a/setup.py b/setup.py index 0c8ec302..47897662 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,8 @@ import os -import sys import shutil import subprocess +import sys + import setuptools from setuptools import Extension from setuptools.command.build_ext import build_ext diff --git a/test/conftest.py b/test/conftest.py index baf848e2..179a82c2 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -1,12 +1,11 @@ +import os +from distutils import dir_util from test.fixtures.operation_tree import * from test.fixtures.port import * from test.fixtures.schedule import * from test.fixtures.signal import signal, signals from test.fixtures.signal_flow_graph import * -from distutils import dir_util -import os - import pytest diff --git a/test/fixtures/schedule.py b/test/fixtures/schedule.py index eb94c96d..40b95317 100644 --- a/test/fixtures/schedule.py +++ b/test/fixtures/schedule.py @@ -1,7 +1,7 @@ -import pytest - from test.fixtures.signal_flow_graph import precedence_sfg_delays +import pytest + from b_asic.core_operations import Addition, ConstantMultiplication from b_asic.schedule import Schedule diff --git a/test/test_gui.py b/test/test_gui.py index 7bf9a424..9f182021 100644 --- a/test/test_gui.py +++ b/test/test_gui.py @@ -1,7 +1,5 @@ -from qtpy import QtCore - - import pytest +from qtpy import QtCore try: import b_asic.GUI as GUI @@ -157,7 +155,9 @@ def test_properties_window_smoke_test(qtbot, datadir): dragbutton = widget.operationDragDict[op] dragbutton.show_properties_window() assert dragbutton._properties_window.operation == dragbutton - qtbot.mouseClick(dragbutton._properties_window.ok, QtCore.Qt.MouseButton.LeftButton) + qtbot.mouseClick( + dragbutton._properties_window.ok, QtCore.Qt.MouseButton.LeftButton + ) widget.exit_app() @@ -175,7 +175,9 @@ def test_properties_window_change_name(qtbot, datadir): dragbutton.show_properties_window() assert dragbutton._properties_window.edit_name.text() == "cmul2" dragbutton._properties_window.edit_name.setText("cmul73") - qtbot.mouseClick(dragbutton._properties_window.ok, QtCore.Qt.MouseButton.LeftButton) + qtbot.mouseClick( + dragbutton._properties_window.ok, QtCore.Qt.MouseButton.LeftButton + ) dragbutton._properties_window.save_properties() assert dragbutton.name == "cmul73" assert dragbutton.operation.name == "cmul73" diff --git a/test/test_gui/twotapfir.py b/test/test_gui/twotapfir.py index c0ab4c54..e0d7ca6f 100644 --- a/test/test_gui/twotapfir.py +++ b/test/test_gui/twotapfir.py @@ -1,10 +1,18 @@ - """ B-ASIC automatically generated SFG file. Name: twotapfir Last saved: 2023-01-24 14:38:17.654639. """ -from b_asic import SFG, Signal, Input, Output, ConstantMultiplication, Delay, Input, Output, Addition +from b_asic import ( + SFG, + Addition, + ConstantMultiplication, + Delay, + Input, + Output, + Signal, +) + # Inputs: in1 = Input(name="in1") @@ -13,9 +21,15 @@ out1 = Output(name="") # Operations: t1 = Delay(initial_value=0, name="") -cmul1 = ConstantMultiplication(value=-0.5, name="cmul1", latency_offsets={'in0': None, 'out0': None}) -add1 = Addition(name="add1", latency_offsets={'in0': None, 'in1': None, 'out0': None}) -cmul2 = ConstantMultiplication(value=0.5, name="cmul2", latency_offsets={'in0': None, 'out0': None}) +cmul1 = ConstantMultiplication( + value=-0.5, name="cmul1", latency_offsets={'in0': None, 'out0': None} +) +add1 = Addition( + name="add1", latency_offsets={'in0': None, 'in1': None, 'out0': None} +) +cmul2 = ConstantMultiplication( + value=0.5, name="cmul2", latency_offsets={'in0': None, 'out0': None} +) # Signals: @@ -28,5 +42,12 @@ Signal(source=cmul2.output(0), destination=add1.input(1)) twotapfir = SFG(inputs=[in1], outputs=[out1], name='twotapfir') # SFG Properties: -prop = {'name':twotapfir} -positions = {'t1': (-209, 19), 'cmul1': (-95, 76), 'add1': (0, 95), 'cmul2': (-209, 114), 'out1': (76, 95), 'in1': (-323, 19)} +prop = {'name': twotapfir} +positions = { + 't1': (-209, 19), + 'cmul1': (-95, 76), + 'add1': (0, 95), + 'cmul2': (-209, 114), + 'out1': (76, 95), + 'in1': (-323, 19), +} -- GitLab