diff --git a/api/libretime_api/permission_constants.py b/api/libretime_api/permission_constants.py index 01890e24a..51a95e100 100644 --- a/api/libretime_api/permission_constants.py +++ b/api/libretime_api/permission_constants.py @@ -1,4 +1,4 @@ -from .core.models import Role +from .core.models.role import Role GUEST_PERMISSIONS = [ "view_schedule", diff --git a/api/libretime_api/schedule/models/show.py b/api/libretime_api/schedule/models/show.py index ce13f689e..a1a6cecf3 100644 --- a/api/libretime_api/schedule/models/show.py +++ b/api/libretime_api/schedule/models/show.py @@ -69,7 +69,7 @@ class Show(models.Model): auto_playlist_enabled = models.BooleanField(db_column="has_autoplaylist") auto_playlist_repeat = models.BooleanField(db_column="autoplaylist_repeat") - hosts = models.ManyToManyField( + hosts = models.ManyToManyField( # type: ignore[var-annotated] "core.User", through="ShowHost", ) diff --git a/api/pyproject.toml b/api/pyproject.toml index 6cb37f6cd..4a31d530b 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -10,6 +10,7 @@ django-settings-module = "libretime_api.settings.testing" [tool.pylint.messages_control] extension-pkg-whitelist = "pydantic" disable = [ + "duplicate-code", "fixme", "missing-class-docstring", "missing-function-docstring", diff --git a/api/requirements.txt b/api/requirements.txt index a2362862f..2695eab72 100644 --- a/api/requirements.txt +++ b/api/requirements.txt @@ -1,11 +1,11 @@ # Please do not edit this file, edit the setup.py file! # This file is auto-generated by tools/extract_requirements.py. django-cors-headers>=3.14.0,<4.4 -django-filter>=2.4.0,<23.4 +django-filter>=2.4.0,<23.6 django>=4.2.0,<4.3 djangorestframework>=3.14.0,<3.15 -drf-spectacular>=0.22.1,<0.27 +drf-spectacular>=0.22.1,<0.28 gunicorn>=20.1.0,<21.3 psycopg[c]>=3.1.8,<3.2 requests>=2.31.0,<2.32 -uvicorn[standard]>=0.17.6,<0.24.0 +uvicorn[standard]>=0.17.6,<0.25.0 diff --git a/api/setup.py b/api/setup.py index a4ed2dd92..ae69b9731 100644 --- a/api/setup.py +++ b/api/setup.py @@ -25,17 +25,17 @@ setup( }, install_requires=[ "django-cors-headers>=3.14.0,<4.4", - "django-filter>=2.4.0,<23.4", + "django-filter>=2.4.0,<23.6", "django>=4.2.0,<4.3", "djangorestframework>=3.14.0,<3.15", - "drf-spectacular>=0.22.1,<0.27", + "drf-spectacular>=0.22.1,<0.28", "requests>=2.31.0,<2.32", ], extras_require={ "prod": [ "gunicorn>=20.1.0,<21.3", "psycopg[c]>=3.1.8,<3.2", - "uvicorn[standard]>=0.17.6,<0.24.0", + "uvicorn[standard]>=0.17.6,<0.25.0", ], "dev": [ "django-coverage-plugin>=3.0.0,<4", diff --git a/legacy/application/controllers/PlaylistController.php b/legacy/application/controllers/PlaylistController.php index 16c0b3284..7b045e4cf 100644 --- a/legacy/application/controllers/PlaylistController.php +++ b/legacy/application/controllers/PlaylistController.php @@ -253,7 +253,7 @@ class PlaylistController extends Zend_Controller_Action Logging::info("Currently active {$type} {$obj_sess->id}"); if (in_array($obj_sess->id, $ids)) { Logging::info("Deleting currently active {$type}"); - // Application_Model_Library::changePlaylist(null, $type); + // Application_Model_Library::changePlaylist(null, $type); } else { Logging::info("Not deleting currently active {$type}"); $obj = new $objInfo['className']($obj_sess->id); @@ -562,7 +562,7 @@ class PlaylistController extends Zend_Controller_Action $bl->saveSmartBlockCriteria($params['data']); $this->createUpdateResponse($bl, true); $this->view->result = 0; - // $result['html'] = $this->createFullResponse($bl, true, true); + // $result['html'] = $this->createFullResponse($bl, true, true); } else { $this->view->form = $form; $this->view->unsavedName = $params['name']; @@ -601,7 +601,7 @@ class PlaylistController extends Zend_Controller_Action $result = $bl->generateSmartBlock($params['data']); $this->view->result = $result['result']; $this->createUpdateResponse($bl, true); - // $this->_helper->json->sendJson(array("result"=>0, "html"=>$this->createFullResponse($bl, true, true))); + // $this->_helper->json->sendJson(array("result"=>0, "html"=>$this->createFullResponse($bl, true, true))); } else { $this->view->obj = $bl; $this->view->id = $bl->getId(); diff --git a/legacy/application/controllers/PreferenceController.php b/legacy/application/controllers/PreferenceController.php index 42a107e66..3b2f0c530 100644 --- a/legacy/application/controllers/PreferenceController.php +++ b/legacy/application/controllers/PreferenceController.php @@ -69,7 +69,7 @@ class PreferenceController extends Zend_Controller_Action $this->view->statusMsg = "
" . _('Preferences updated.') . '
'; $form = new Application_Form_Preferences(); $this->view->form = $form; - // $this->_helper->json->sendJson(array("valid"=>"true", "html"=>$this->view->render('preference/index.phtml'))); + // $this->_helper->json->sendJson(array("valid"=>"true", "html"=>$this->view->render('preference/index.phtml'))); } else { $this->view->form = $form; // $this->_helper->json->sendJson(array("valid"=>"false", "html"=>$this->view->render('preference/index.phtml'))); diff --git a/legacy/application/models/Block.php b/legacy/application/models/Block.php index b1e954519..e2248a7b7 100644 --- a/legacy/application/models/Block.php +++ b/legacy/application/models/Block.php @@ -1652,12 +1652,12 @@ SQL; if (isset($criteria['extra'])) { $spCriteriaExtra = $criteria['extra'] * 1000; } - /* - * If user is searching for an exact match of length we need to - * search as if it starts with the specified length because the - * user only sees the rounded version (i.e. 4:02.7 is 4:02.761625 - * in the database) - */ + /* + * If user is searching for an exact match of length we need to + * search as if it starts with the specified length because the + * user only sees the rounded version (i.e. 4:02.7 is 4:02.761625 + * in the database) + */ } elseif (in_array($spCriteria, ['length', 'cuein', 'cueout']) && $spCriteriaModifier == 'is') { $spCriteriaModifier = 'starts with'; $spCriteria .= '::text'; diff --git a/legacy/application/models/Preference.php b/legacy/application/models/Preference.php index c126502e9..4297e874c 100644 --- a/legacy/application/models/Preference.php +++ b/legacy/application/models/Preference.php @@ -63,8 +63,10 @@ class Application_Model_Preference $paramMap = []; if ($result > 1) { // this case should not happen. + $caller = debug_backtrace()[1]['function']; + throw new Exception('Invalid number of results returned. Should be ' . - "0 or 1, but is '{$result}' instead"); + "0 or 1, but is '{$result}' instead, caller={$caller}"); } if ($result == 1) { // result found diff --git a/legacy/application/services/ShowService.php b/legacy/application/services/ShowService.php index b1302b92d..db1b609ac 100644 --- a/legacy/application/services/ShowService.php +++ b/legacy/application/services/ShowService.php @@ -595,7 +595,7 @@ SQL; $this->deleteAllInstances($showId); $this->deleteAllShowDays($showId); - // when repeating by day of the month (1st, 2nd, etc.) we do not store the repeat week days + // when repeating by day of the month (1st, 2nd, etc.) we do not store the repeat week days } elseif ($currentRepeatType != 2) { // repeat type is the same, check if the days of the week are the same $repeatingDaysChanged = false; @@ -881,10 +881,10 @@ SQL; CcShowQuery::create() ->filterByDbId($showId) ->delete(); - // There is only one cc_show_instance if the user selects 'Delete This Instance' - // There is more than one cc_show_instance if the user selects 'Delete This - // Instance and All Following'. We only need to set the last_show value - // when 'Delete This Instance and All Following' has been selected + // There is only one cc_show_instance if the user selects 'Delete This Instance' + // There is more than one cc_show_instance if the user selects 'Delete This + // Instance and All Following'. We only need to set the last_show value + // when 'Delete This Instance and All Following' has been selected } elseif (count($ccShowInstances) > 1) { $this->setLastRepeatingShowDate($showId); } diff --git a/legacy/tools/composer.json b/legacy/tools/composer.json index eec766b85..307853c3d 100644 --- a/legacy/tools/composer.json +++ b/legacy/tools/composer.json @@ -1,6 +1,6 @@ { "require": { "php": "^7.4", - "friendsofphp/php-cs-fixer": "<3.35.2" + "friendsofphp/php-cs-fixer": "<3.41.2" } } diff --git a/tools/python.mk b/tools/python.mk index dfdfef6ca..deb20d60c 100644 --- a/tools/python.mk +++ b/tools/python.mk @@ -8,15 +8,11 @@ CPU_CORES := $(shell N=$$(nproc); echo $$(( $$N > 4 ? 4 : $$N ))) # BANDIT_ARG = # PYTEST_ARG = -# SETUPTOOLS_ENABLE_FEATURES=legacy-editable is required to work -# around https://github.com/PyCQA/pylint/issues/7306 VENV = .venv install: $(VENV) $(VENV): python3 -m venv $(VENV) $(VENV)/bin/pip install --upgrade pip setuptools wheel - - SETUPTOOLS_ENABLE_FEATURES=legacy-editable \ $(VENV)/bin/pip install \ --requirement ../tools/python-requirements.txt \ $(PIP_INSTALL)