From 8d24effd575e77f4e7e95b97df9ab65bd16f9926 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Thu, 8 Jan 2026 11:16:23 -0800 Subject: [PATCH 1/6] Cleanup --- engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine.py b/engine.py index 0de4840..2819c87 100644 --- a/engine.py +++ b/engine.py @@ -241,7 +241,7 @@ def __getattr__(self, name): raise tank.TankError( "The Flow Production Tracking App you are trying to execute " "requires a full QT environment in order to render its UI. A valid " - "PySide2/PySide/PyQt installation could not be found in your python " + "PySide2/PySide6 installation could not be found in your python " "system path." ) From 829861e98b132bb9871bed649d1ed9efcf93b57d Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Thu, 8 Jan 2026 11:17:37 -0800 Subject: [PATCH 2/6] TEMP test Py 3.13 --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0aea3a3..9afcbb5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -14,7 +14,7 @@ resources: - repository: templates type: github name: shotgunsoftware/tk-ci-tools - ref: refs/heads/master + ref: refs/heads/ticket/SG-40980-python-3-13-ci endpoint: shotgunsoftware # We want builds to trigger for 3 reasons: From 67674ba8570b0016cad6745088a85b40ae9f9d96 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Thu, 8 Jan 2026 11:18:55 -0800 Subject: [PATCH 3/6] Badge --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6905a88..2cb17e7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ -[![VFX Platform](https://img.shields.io/badge/vfxplatform-2025%20%7C%202024%20%7C%202023%20%7C%202022-blue.svg)](http://www.vfxplatform.com/) -[![Python](https://img.shields.io/badge/python-3.11%20%7C%203.10%20%7C%203.9-blue.svg)](https://www.python.org/) +[![Supported VFX Platform: CY2022 - CY2026](https://img.shields.io/badge/VFX_Reference_Platform-CY2022_|_CY2023_|_CY2024_|_CY2025_|_CY2026-blue)](http://www.vfxplatform.com/ "Supported VFX Reference Platform versions") +[![Supported Python versions: 3.9, 3.10, 3.11, 3.13](https://img.shields.io/badge/Python-3.9_|_3.10_|_3.11_|_3.13-blue?logo=python&logoColor=f5f5f5)](https://www.python.org/ "Supported Python versions") + [![codecov](https://codecov.io/gh/shotgunsoftware/tk-shell/branch/master/graph/badge.svg)](https://codecov.io/gh/shotgunsoftware/tk-shell) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Linting](https://img.shields.io/badge/PEP8%20by-Hound%20CI-a873d1.svg)](https://houndci.com) From d47a57b5584d3eff97edb1fb53f8fb95a082ef23 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Thu, 8 Jan 2026 11:27:22 -0800 Subject: [PATCH 4/6] Address warnings --- engine.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine.py b/engine.py index 2819c87..9cc3e8b 100644 --- a/engine.py +++ b/engine.py @@ -187,7 +187,7 @@ def execute_command(self, cmd_key, args): # start the application loop. This will block the process until the task # has completed - this is either triggered by a main window closing or # byt the finished signal being called from the task class above. - qt_application.exec_() + qt_application.exec() else: # we can run the command now, as the QApp is already started t.run_command() @@ -265,7 +265,7 @@ def show(self): self.activateWindow() self.raise_() - def exec_(self): + def exec(self): self.activateWindow() self.raise_() # the trick of activating + raising does not seem to be enough for @@ -273,7 +273,7 @@ def exec_(self): self.setWindowFlags( QtCore.Qt.WindowStaysOnTopHint | self.windowFlags() ) - return QtGui.QDialog.exec_(self) + return QtGui.QDialog.exec(self) base["dialog_base"] = ProxyDialogPyQt From cb964d460295aa6b1b235f4ec1816c8e278b8e55 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Thu, 8 Jan 2026 15:30:41 -0800 Subject: [PATCH 5/6] fixup --- engine.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine.py b/engine.py index 9cc3e8b..2819c87 100644 --- a/engine.py +++ b/engine.py @@ -187,7 +187,7 @@ def execute_command(self, cmd_key, args): # start the application loop. This will block the process until the task # has completed - this is either triggered by a main window closing or # byt the finished signal being called from the task class above. - qt_application.exec() + qt_application.exec_() else: # we can run the command now, as the QApp is already started t.run_command() @@ -265,7 +265,7 @@ def show(self): self.activateWindow() self.raise_() - def exec(self): + def exec_(self): self.activateWindow() self.raise_() # the trick of activating + raising does not seem to be enough for @@ -273,7 +273,7 @@ def exec(self): self.setWindowFlags( QtCore.Qt.WindowStaysOnTopHint | self.windowFlags() ) - return QtGui.QDialog.exec(self) + return QtGui.QDialog.exec_(self) base["dialog_base"] = ProxyDialogPyQt From 72b91afe9356b9354255013be7e8bcdeb1336091 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Thu, 8 Jan 2026 15:31:49 -0800 Subject: [PATCH 6/6] fixup --- engine.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine.py b/engine.py index 2819c87..0de4840 100644 --- a/engine.py +++ b/engine.py @@ -241,7 +241,7 @@ def __getattr__(self, name): raise tank.TankError( "The Flow Production Tracking App you are trying to execute " "requires a full QT environment in order to render its UI. A valid " - "PySide2/PySide6 installation could not be found in your python " + "PySide2/PySide/PyQt installation could not be found in your python " "system path." )