diff --git a/.github/workflows/release_linux.yml b/.github/workflows/release_linux.yml index e208224..6434aeb 100644 --- a/.github/workflows/release_linux.yml +++ b/.github/workflows/release_linux.yml @@ -11,20 +11,25 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: 3.9 + - name: Checkout repository + uses: actions/checkout@v2 + - name: Install python + run: | + sudo apt-get update + sudo apt install -y python3.9 python3-pip python3.9-venv \ + python3.9-dev \ + python3-pyqt5 - name: Install dependencies and pyinstall run: | - python -m pip install pip==22.0.3 setuptools==60.7.1 + python3.9 -m venv build + . build/bin/activate + python -m pip install pip==22.0.4 setuptools==60.10.0 pip install -r requirements.txt - pip install PyInstaller==4.9 + pip install PyInstaller==4.10 - name: Build binary run: | + . build/bin/activate pyinstaller --onefile -n nanovna-saver nanovna-saver.py - - name: Archive production artifacts uses: actions/upload-artifact@v1 with: diff --git a/NanoVNASaver/Formatting.py b/NanoVNASaver/Formatting.py index 17b4a9c..7fdf05c 100644 --- a/NanoVNASaver/Formatting.py +++ b/NanoVNASaver/Formatting.py @@ -115,17 +115,13 @@ def format_complex_adm(z: complex, allow_negative: bool = False) -> str: return "- S" adm = 1/z - fmt_re = FMT_COMPLEX - if allow_negative: - fmt_re = FMT_COMPLEX_NEG + fmt_re = FMT_COMPLEX_NEG if allow_negative else FMT_COMPLEX re = SITools.Value(adm.real, fmt=fmt_re) im = SITools.Value(abs(adm.imag), fmt=FMT_COMPLEX) return f"{re}{'-' if adm.imag < 0 else '+'}j{im} S" def format_complex_imp(z: complex, allow_negative: bool = False) -> str: - fmt_re = FMT_COMPLEX - if allow_negative: - fmt_re = FMT_COMPLEX_NEG + fmt_re = FMT_COMPLEX_NEG if allow_negative else FMT_COMPLEX re = SITools.Value(z.real, fmt=fmt_re) im = SITools.Value(abs(z.imag), fmt=FMT_COMPLEX) return f"{re}{'-' if z.imag < 0 else '+'}j{im} ""\N{OHM SIGN}" diff --git a/NanoVNASaver/Hardware/TinySA.py b/NanoVNASaver/Hardware/TinySA.py index cff4e6a..19af3bb 100644 --- a/NanoVNASaver/Hardware/TinySA.py +++ b/NanoVNASaver/Hardware/TinySA.py @@ -114,11 +114,5 @@ class TinySA(VNA): def readValues(self, value) -> List[str]: logger.debug("Read: %s", value) if value == "data 0": - self._sweepdata = [] - for line in self.exec_command("data"): - self._sweepdata.append(f"0 {line.strip()}") + self._sweepdata = [f"0 {line.strip()}" for line in self.exec_command("data")] return self._sweepdata - if value == "data 0": - return [x[0] for x in self._sweepdata] - if value == "data 1": - return [x[0] for x in self._sweepdata] diff --git a/NanoVNASaver/Hardware/VNA.py b/NanoVNASaver/Hardware/VNA.py index 9d60825..f72f82e 100644 --- a/NanoVNASaver/Hardware/VNA.py +++ b/NanoVNASaver/Hardware/VNA.py @@ -141,9 +141,8 @@ class VNA: return [1000, ] def set_bandwidth(self, bandwidth: int): - bw_val = bandwidth - if self.bw_method == "dislord": - bw_val = DISLORD_BW[bandwidth] + bw_val = DISLORD_BW[bandwidth] \ + if self.bw_method == "dislord" else bandwidth result = " ".join(self.exec_command(f"bandwidth {bw_val}")) if self.bw_method == "ttrftech" and result: raise IOError(f"set_bandwith({bandwidth}: {result}") diff --git a/NanoVNASaver/Settings/Bands.py b/NanoVNASaver/Settings/Bands.py index ac89705..3c6844d 100644 --- a/NanoVNASaver/Settings/Bands.py +++ b/NanoVNASaver/Settings/Bands.py @@ -62,10 +62,10 @@ class BandsModel(QtCore.QAbstractTableModel): self.settings.setIniCodec("UTF-8") self.enabled = self.settings.value("ShowBands", False, bool) - self.bands = [] - - for band in self.settings.value("bands", _DEFAULT_BANDS): - self.bands.append(band.split(";")) + self.bands = [ + band.split(";") + for band in self.settings.value("bands", _DEFAULT_BANDS) + ] def saveSettings(self): self.settings.setValue( @@ -74,9 +74,7 @@ class BandsModel(QtCore.QAbstractTableModel): self.settings.sync() def resetBands(self): - self.bands = [] - for band in _DEFAULT_BANDS: - self.bands.append(band.split(";")) + self.bands = [band.split(";") for band in _DEFAULT_BANDS] self.layoutChanged.emit() self.saveSettings() @@ -87,8 +85,9 @@ class BandsModel(QtCore.QAbstractTableModel): return len(self.bands) def data(self, index: QModelIndex, role: int = ...) -> QtCore.QVariant: - if (role == QtCore.Qt.DisplayRole or - role == QtCore.Qt.ItemDataRole or role == QtCore.Qt.EditRole): + if role in [ + QtCore.Qt.DisplayRole, QtCore.Qt.ItemDataRole, QtCore.Qt.EditRole, + ]: return QtCore.QVariant(self.bands[index.row()][index.column()]) if role == QtCore.Qt.TextAlignmentRole: if index.column() == 0: diff --git a/NanoVNASaver/Settings/Sweep.py b/NanoVNASaver/Settings/Sweep.py index ec0d7f6..edcad2b 100644 --- a/NanoVNASaver/Settings/Sweep.py +++ b/NanoVNASaver/Settings/Sweep.py @@ -85,11 +85,13 @@ class Sweep(): return round(self.span / (self.points * self.segments - 1)) def check(self): - if not(self.segments > 0 and - self.points > 0 and - self.start > 0 and - self.end > 0 and - self.stepsize >= 1): + if ( + self.segments <= 0 + or self.points <= 0 + or self.start <= 0 + or self.end <= 0 + or self.stepsize < 1 + ): raise ValueError(f"Illegal sweep settings: {self}") def _exp_factor(self, index: int) -> float: diff --git a/NanoVNASaver/Windows/About.py b/NanoVNASaver/Windows/About.py index 6b3b5d5..f269a96 100644 --- a/NanoVNASaver/Windows/About.py +++ b/NanoVNASaver/Windows/About.py @@ -154,7 +154,7 @@ class AboutWindow(QtWidgets.QWidget): latest_url = "" try: req = request.Request(VERSION_URL) - req.add_header('User-Agent', "NanoVNA-Saver/" + self.app.version) + req.add_header('User-Agent', f'NanoVNA-Saver/{self.app.version}') for line in request.urlopen(req, timeout=3): line = line.decode("utf-8") if line.startswith("VERSION ="):