Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions pyqt-apps/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ INSTALL_DESIGNER_DIR ?= /usr/local/share/Qt/designer
PACKAGE=siriushla
PREFIX ?=
PIP ?= pip
PYTHON ?= python
ifeq ($(CONDA_PREFIX),)
PREFIX=sudo -H
PIP=pip-sirius
PYTHON=python-sirius
endif

install-designer:
Expand All @@ -27,3 +29,6 @@ develop-install: develop-uninstall

develop-uninstall:
$(PIP) uninstall -y $(PACKAGE)

run-tests:
$(PYTHON) tests/run_tests.py
177 changes: 177 additions & 0 deletions pyqt-apps/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
[build-system]
requires = ["setuptools>=44"]
build-backend = "setuptools.build_meta"

[project]
name = "siriushla"
authors = [{ name = "lnls-sirius" } ]
maintainers = [
{name = "Ana Oliveira", email = "ana.clara@lnls.br"},
{name = "Ximenes Resende", email = "xresende@gmail.com"},
{name = "Fernando H. de Sá", email = "fernandohds564@gmail.com"},
{name = "Murilo Barbosa Alves", email= "alvesb.murilo@gmail.com"}
]
description = "Client Applications for Sirius"
readme = "README.md"
dynamic = ["version", "dependencies"]
requires-python = ">=3.6"
classifiers = [
"Intended Audience :: Science/Research",
"Programming Language :: Python",
"Topic :: Scientific/Engineering",
]
keywords = ["SIRIUS", "python", "EPICS"]

license = "GPL-3.0"
license-files= [ "LICENSE", ]

[project.urls]
Homepage = "https://github.com/lnls-sirius/hla"
Download = "https://github.com/lnls-sirius/hla"
Repository = "https://github.com/lnls-sirius/hla.git"
Issues = "https://github.com/lnls-sirius/hla/issues"

# --- Setuptools specific configurations ---
[tool.setuptools]
include-package-data = true
# NOTE: This is not the standard way of defining scripts.
# Once we abandon phython3.6 and the setup.py file, we should
# consider using the table [projec.scripts], defining valid entrypoints.
script-files = [
"scripts/sirius-hla-as-ap-configdb.py",
"scripts/sirius-hla-as-ap-effmon.py",
"scripts/sirius-hla-as-ap-energybutton.py",
"scripts/sirius-hla-as-ap-injection.py",
"scripts/sirius-hla-as-ap-launcher.py",
"scripts/sirius-hla-as-ap-macreport.py",
"scripts/sirius-hla-as-ap-magoffconv.py",
"scripts/sirius-hla-as-ap-monitor.py",
"scripts/sirius-hla-as-ap-pvsconfigs.py",
"scripts/sirius-hla-as-ap-pvsconfigs-save.py",
"scripts/sirius-hla-as-ap-pvsconfigs-load.py",
"scripts/sirius-hla-as-ap-rabpmmon.py",
"scripts/sirius-hla-as-ap-radmon.py",
"scripts/sirius-hla-as-di-bpm.py",
"scripts/sirius-hla-as-di-dcct.py",
"scripts/sirius-hla-as-di-scrn.py",
"scripts/sirius-hla-as-ps-commands.py",
"scripts/sirius-hla-as-ps-cycle.py",
"scripts/sirius-hla-as-ps-detail.py",
"scripts/sirius-hla-as-ps-diag.py",
"scripts/sirius-hla-as-ps-graphmon.py",
"scripts/sirius-hla-as-ps-monitor.py",
"scripts/sirius-hla-as-pu-control.py",
"scripts/sirius-hla-as-pu-detail.py",
"scripts/sirius-hla-as-ti-afc.py",
"scripts/sirius-hla-as-ti-control.py",
"scripts/sirius-hla-as-ti-eve.py",
"scripts/sirius-hla-as-ti-evg.py",
"scripts/sirius-hla-as-ti-evr.py",
"scripts/sirius-hla-as-ti-fout.py",
"scripts/sirius-hla-bl-ap-imgproc.py",
"scripts/sirius-hla-bo-ap-chargemon.py",
"scripts/sirius-hla-bo-ap-chromcorr.py",
"scripts/sirius-hla-bo-ap-injcontrol.py",
"scripts/sirius-hla-bo-ap-ramp.py",
"scripts/sirius-hla-bo-ap-sofb.py",
"scripts/sirius-hla-bo-ap-tunecorr.py",
"scripts/sirius-hla-bo-di-tune.py",
"scripts/sirius-hla-bo-di-vlight.py",
"scripts/sirius-hla-bo-offconfig.py",
"scripts/sirius-hla-bo-ps-control.py",
"scripts/sirius-hla-bo-ps-wfmerror.py",
"scripts/sirius-hla-bo-pu-control.py",
"scripts/sirius-hla-bo-rf-control.py",
"scripts/sirius-hla-it-di-vlight.py",
"scripts/sirius-hla-it-eg-control.py",
"scripts/sirius-hla-it-ps-control.py",
"scripts/sirius-hla-it-ti-control.py",
"scripts/sirius-hla-li-ap-emittance.py",
"scripts/sirius-hla-li-ap-energy.py",
"scripts/sirius-hla-li-ap-mpscon.py",
"scripts/sirius-hla-li-ap-mpsmon.py",
"scripts/sirius-hla-li-di-bpms.py",
"scripts/sirius-hla-li-di-scrns.py",
"scripts/sirius-hla-li-eg-control.py",
"scripts/sirius-hla-li-ps-control.py",
"scripts/sirius-hla-li-pu-modltr.py",
"scripts/sirius-hla-li-rf-llrf.py",
"scripts/sirius-hla-li-va-control.py",
"scripts/sirius-hla-as-cr-control.py",
"scripts/sirius-hla-si-ap-chromcorr.py",
"scripts/sirius-hla-si-ap-currlt.py",
"scripts/sirius-hla-si-ap-fofb.py",
"scripts/sirius-hla-si-ap-genstatus.py",
"scripts/sirius-hla-si-ap-idff.py",
"scripts/sirius-hla-si-ap-orbintlk.py",
"scripts/sirius-hla-si-ap-sofb.py",
"scripts/sirius-hla-si-ap-tunecorr.py",
"scripts/sirius-hla-si-bs-fofbsysid.py",
"scripts/sirius-hla-si-di-bbb.py",
"scripts/sirius-hla-si-di-equalize_bpms_switching.py",
"scripts/sirius-hla-si-di-fpmosc.py",
"scripts/sirius-hla-si-di-scraps.py",
"scripts/sirius-hla-si-di-tune.py",
"scripts/sirius-hla-si-di-vlight.py",
"scripts/sirius-hla-si-id-control.py",
"scripts/sirius-hla-si-offconfig.py",
"scripts/sirius-hla-si-ps-control.py",
"scripts/sirius-hla-si-ps-fastcorracq.py",
"scripts/sirius-hla-si-pu-control.py",
"scripts/sirius-hla-si-rf-control.py",
"scripts/sirius-hla-tb-ap-control.py",
"scripts/sirius-hla-tb-ap-emittance.py",
"scripts/sirius-hla-tb-ap-posang.py",
"scripts/sirius-hla-tb-ap-sofb.py",
"scripts/sirius-hla-tb-di-icts.py",
"scripts/sirius-hla-tb-di-slits.py",
"scripts/sirius-hla-tb-ps-control.py",
"scripts/sirius-hla-tb-pu-control.py",
"scripts/sirius-hla-ts-ap-control.py",
"scripts/sirius-hla-ts-ap-posang.py",
"scripts/sirius-hla-ts-ap-sofb.py",
"scripts/sirius-hla-ts-di-icts.py",
"scripts/sirius-hla-ts-ps-control.py",
"scripts/sirius-hla-ts-pu-control.py",
]

[tool.setuptools.dynamic]
version = { file = "VERSION" }
dependencies = { file = "requirements.txt" }

[tool.setuptools.package-data]
siriushla = ["VERSION"]
"siriushla.si_di_bbb" = ["*.png", ]
"siriushla.si_id_control" = ["*.gif", ]

# --- linter and formatter configurations ---
[tool.ruff]
select = [
"W", "E", "A", "B", "C90", "D", "I002", "N", "F", "G", "ARG", "S", "NPY"]
ignore = [
"D203", "D204", "D213", "D215", "D400", "D401", "D404", "D406", "D407",
"D408", "D409", "D413", "E203", "E226"]
ignore-init-module-imports = true
preview = true
line-length = 79
fix = true

[tool.ruff.extend-per-file-ignores]
"__init__.py" = ["F401", "F821"]

[tool.ruff.format]
skip-magic-trailing-comma = true

[tool.ruff.lint.isort]
split-on-trailing-comma = false
combine-as-imports = true

[tool.isort]
split_on_trailing_comma = false
combine_as_imports = true
combine_star = true
multi_line_output = "HANGING_INDENT"
order_by_type = false

[tool.black]
line-length = 79
19 changes: 14 additions & 5 deletions pyqt-apps/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

"""HLA Setup."""

from setuptools import setup, find_packages
import pathlib
import unittest

from setuptools import find_packages, setup


def my_test_suite():
"""."""
Expand All @@ -13,19 +15,26 @@ def my_test_suite():
return test_suite


with open('VERSION', 'r') as _f:
__version__ = _f.read().strip()
def get_abs_path(relative):
"""."""
return str(pathlib.Path(__file__).parent / relative)


with open('requirements.txt', 'r') as _f:
_requirements = _f.read().strip().split('\n')
with open(get_abs_path("README.md"), "r") as _f:
_long_description = _f.read().strip()

with open(get_abs_path("VERSION"), "r") as _f:
__version__ = _f.read().strip()

with open(get_abs_path("requirements.txt"), "r") as _f:
_requirements = _f.read().strip().split("\n")

setup(
name='siriushla',
version=__version__,
author='lnls-sirius',
description='Client Applications for Sirius',
long_description=_long_description,
url='https://github.com/lnls-sirius/hla/pyqt-apps',
download_url='https://github.com/lnls-sirius/hla',
license='GNU GPLv3',
Expand Down
6 changes: 4 additions & 2 deletions pyqt-apps/siriushla/as_ap_launcher/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,9 @@ def _create_tool_menu(self):

try:
host = _sbp.getoutput('hostname')
exist_xrandr = not bool(_sbp.getoutput('xrandr | grep missing'))
exist_xrandr = not bool(
_sbp.getoutput('xrandr | grep missing')
)
hosts = {'lnls449-linux', 'lnls451-linux', 'lnls454-linux'}
except Exception:
return menu
Expand Down Expand Up @@ -985,7 +987,7 @@ def _change_resolution(self):
disps = [o for o in out if ' connected' in o]
ds_names = [d.split(' ')[0] for d in disps]

reg = '[0-9]{4}x[0-9]{4}\+([0-9]{1,4})\+[0-9]{1,4}'
reg = r'[0-9]{4}x[0-9]{4}\+([0-9]{1,4})\+[0-9]{1,4}'
ds_pos = [
_re.findall(reg, d)[0] for di in disps
for d in di.split(' ') if _re.match(reg, d)]
Expand Down
28 changes: 14 additions & 14 deletions pyqt-apps/siriushla/util.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,22 @@
"""Util module."""
import os as _os
import time as _time
import subprocess as _subprocess
import pkg_resources as _pkg_resources
import time as _time
from functools import partial as _part

from qtpy.QtCore import QFile as _QFile, Signal as _Signal, QThread as _QThread
from qtpy.QtGui import QColor
from qtpy.QtWidgets import QPushButton, QAction, QApplication, QDialog, \
QHBoxLayout, QLabel
import qtawesome as qta
from pydm.utilities.stylesheet import _get_style_data as pydm_get_style_data

from qtpy.QtCore import QFile as _QFile, QThread as _QThread, Signal as _Signal
from qtpy.QtGui import QColor
from qtpy.QtWidgets import QAction, QApplication, QDialog, QHBoxLayout, \
QLabel, QPushButton

THREAD = None


def get_package_version():
fname = _pkg_resources.resource_filename(__name__, 'VERSION')
with open(fname, 'r') as _f:
version = _f.read().strip()
"""Return siriushla version string."""
from siriushla import __version__ as version
return version


Expand Down Expand Up @@ -124,10 +121,12 @@ def check_process(cmd, is_window=True, is_pydm=False):

def check_window_by_pid(pid, comm):
if 'edm' in comm:
wind = _subprocess.getoutput('wmctrl -lpx | grep edm | grep SIRIUS')
sts, wind = _subprocess.getstatusoutput(
'wmctrl -lpx | grep edm | grep SIRIUS'
)
else:
wind = _subprocess.getoutput('wmctrl -lpx | grep ' + pid)
if not wind:
sts, wind = _subprocess.getstatusoutput('wmctrl -lpx | grep ' + pid)
if sts or not wind:
return ''
window = wind.split('\n')[0].split()[0]
return window
Expand All @@ -137,7 +136,8 @@ def run_newprocess(cmd, is_window=True, is_pydm=False, **kwargs):
pid, window = check_process(cmd, is_window=is_window, is_pydm=is_pydm)
if window:
_subprocess.run(
"wmctrl -iR " + window, stdin=_subprocess.PIPE, shell=True)
"wmctrl -iR " + window, stdin=_subprocess.PIPE, shell=True
)
elif not pid:
_subprocess.Popen(cmd, **kwargs)

Expand Down
14 changes: 14 additions & 0 deletions pyqt-apps/tests/run_tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"""Run all tests."""

import unittest


def main():
test_loader = unittest.TestLoader()
test_suite = test_loader.discover('tests', pattern='test_*.py')
runner = unittest.TextTestRunner()
runner.run(test_suite)


if __name__ == "__main__":
main()