From 7b48e5e17e005d177e4e417474bdeea13fd226d1 Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 19:48:25 -0600 Subject: [PATCH 1/8] Prevent Import collisions Rename tagstudio.py to tag_studio.py --- tagstudio/{tagstudio.py => tag_studio.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tagstudio/{tagstudio.py => tag_studio.py} (100%) diff --git a/tagstudio/tagstudio.py b/tagstudio/tag_studio.py similarity index 100% rename from tagstudio/tagstudio.py rename to tagstudio/tag_studio.py From c0c18dabc135409dc94508bf62179c245aa8266a Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 19:52:10 -0600 Subject: [PATCH 2/8] Optimize & Sort Imports --- tagstudio/src/core/library.py | 25 ++++++++++---------- tagstudio/src/core/ts_core.py | 7 ++---- tagstudio/src/qt/flowlayout.py | 3 +-- tagstudio/src/qt/main_window.py | 15 ++++-------- tagstudio/src/qt/pagination.py | 4 ++-- tagstudio/src/qt/ts_qt.py | 41 +++++++++++++++------------------ 6 files changed, 39 insertions(+), 56 deletions(-) diff --git a/tagstudio/src/core/library.py b/tagstudio/src/core/library.py index ac35ec7f..e64b1b26 100644 --- a/tagstudio/src/core/library.py +++ b/tagstudio/src/core/library.py @@ -5,24 +5,23 @@ """The Library object and related methods for TagStudio.""" import datetime -from enum import Enum -import os -import traceback -from typing import Optional -import json import glob -from pathlib import Path -# from typing_extensions import deprecated -import src.core.ts_core as ts_core -from src.core.utils.web import * -from src.core.utils.str import * -from src.core.utils.fs import * -import xml.etree.ElementTree as ET +import json +import logging import sys import time -import logging +import traceback +import xml.etree.ElementTree as ET +from enum import Enum + import ujson +# from typing_extensions import deprecated +import tagstudio.src.core.ts_core as ts_core +from tagstudio.src.core.utils.fs import * +from tagstudio.src.core.utils.str import * +from tagstudio.src.core.utils.web import * + TYPE = ['file', 'meta', 'alt', 'mask'] # RESULT_TYPE = Enum('Result', ['ENTRY', 'COLLATION', 'TAG_GROUP']) class ItemType(Enum): diff --git a/tagstudio/src/core/ts_core.py b/tagstudio/src/core/ts_core.py index 1ef7f028..da507e23 100644 --- a/tagstudio/src/core/ts_core.py +++ b/tagstudio/src/core/ts_core.py @@ -4,16 +4,13 @@ """The core classes and methods of TagStudio.""" -import os -from types import FunctionType # from typing import Dict, Optional, TypedDict, List import json -from pathlib import Path -import traceback +import os + # import requests # from bs4 import BeautifulSoup as bs from src.core.library import * -from src.core.field_template import FieldTemplate VERSION: str = '9.1.0' # Major.Minor.Patch VERSION_BRANCH: str = 'Alpha' # 'Alpha', 'Beta', or '' for Full Release diff --git a/tagstudio/src/qt/flowlayout.py b/tagstudio/src/qt/flowlayout.py index 1e3c5075..b71c962d 100644 --- a/tagstudio/src/qt/flowlayout.py +++ b/tagstudio/src/qt/flowlayout.py @@ -4,9 +4,8 @@ """PySide6 port of the widgets/layouts/flowlayout example from Qt v6.x""" -import sys from PySide6.QtCore import Qt, QMargins, QPoint, QRect, QSize -from PySide6.QtWidgets import QApplication, QLayout, QPushButton, QSizePolicy, QWidget +from PySide6.QtWidgets import QLayout, QSizePolicy, QWidget # class Window(QWidget): diff --git a/tagstudio/src/qt/main_window.py b/tagstudio/src/qt/main_window.py index 38c1c099..b82946c0 100644 --- a/tagstudio/src/qt/main_window.py +++ b/tagstudio/src/qt/main_window.py @@ -12,17 +12,10 @@ # Licensed under the GPL-3.0 License. # Created for TagStudio: https://github.com/CyanVoxel/TagStudio -from re import S -import time -from typing import Optional -from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, - QMetaObject, QObject, QPoint, QRect, - QSize, QTime, QUrl, Qt) -from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, - QFont, QFontDatabase, QGradient, QIcon, - QImage, QKeySequence, QLinearGradient, QPainter, - QPalette, QPixmap, QRadialGradient, QTransform, QAction) -from PySide6.QtWidgets import (QApplication, QComboBox, QFrame, QGridLayout, +from PySide6.QtCore import (QCoreApplication, QMetaObject, QRect, + QSize, Qt) +from PySide6.QtGui import (QFont, QAction) +from PySide6.QtWidgets import (QComboBox, QFrame, QGridLayout, QHBoxLayout, QVBoxLayout, QLayout, QLineEdit, QMainWindow, QMenuBar, QPushButton, QScrollArea, QSizePolicy, QStatusBar, QWidget, QSplitter, QMenu) diff --git a/tagstudio/src/qt/pagination.py b/tagstudio/src/qt/pagination.py index 642cd103..c190fa14 100644 --- a/tagstudio/src/qt/pagination.py +++ b/tagstudio/src/qt/pagination.py @@ -5,10 +5,10 @@ """A pagination widget created for TagStudio.""" # I never want to see this code again. -from PySide6 import QtCore +from PySide6.QtCore import QObject, Signal, QSize from PySide6.QtGui import * from PySide6.QtWidgets import * -from PySide6.QtCore import QFile, QObject, QThread, Signal, QRunnable, Qt, QThreadPool, QSize, QEvent, QMimeData + # class NumberEdit(QLineEdit): # def __init__(self, parent=None) -> None: diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 45ebd0d8..0b7f1239 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -7,39 +7,34 @@ """A Qt driver for TagStudio.""" -from copy import copy, deepcopy import ctypes -import math -from os import times -import sys import logging -import threading -from time import sleep -from queue import Empty, Queue +import math +import sys import time -from typing import Optional, Union -from PySide6 import QtCore -import PySide6 -from PySide6.QtGui import * -from PySide6.QtWidgets import * -from PySide6.QtCore import QFile, QObject, QThread, Signal, QRunnable, Qt, QThreadPool, QSize, QEvent, QMimeData, QTimer -from PySide6.QtUiTools import QUiLoader -from PIL import Image, ImageOps, ImageChops, UnidentifiedImageError, ImageQt, ImageDraw, ImageFont, ImageEnhance -import PySide6.QtWidgets -import humanfriendly -import pillow_avif -import cv2 from datetime import datetime as dt -from src.core.ts_core import * +from queue import Empty, Queue +from time import sleep +from typing import Optional + +import cv2 +import humanfriendly +from PIL import Image, ImageChops, UnidentifiedImageError, ImageQt, ImageDraw, ImageFont, ImageEnhance +from PySide6 import QtCore +from PySide6.QtCore import QObject, QThread, Signal, QRunnable, Qt, QThreadPool, QSize, QEvent, QTimer +from PySide6.QtGui import * +from PySide6.QtUiTools import QUiLoader +from PySide6.QtWidgets import * +# from typing_extensions import deprecated +from humanfriendly import format_timespan # from src.core.utils.web import * # from src.core.utils.fs import * from src.core.library import * from src.core.palette import ColorType, get_tag_color +from src.core.ts_core import * from src.qt.flowlayout import FlowLayout, FlowWidget from src.qt.main_window import Ui_MainWindow -import src.qt.resources_rc -# from typing_extensions import deprecated -from humanfriendly import format_timespan + # from src.qt.qtacrylic.qtacrylic import WindowEffect # SIGQUIT is not defined on Windows From 952ed8f27db51d48d906d471282b20c579c32b48 Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 19:53:01 -0600 Subject: [PATCH 3/8] Remove Unused Imports --- tagstudio/src/core/library.py | 1 - tagstudio/src/core/ts_core.py | 3 --- tagstudio/src/core/utils/fs.py | 3 --- tagstudio/src/qt/main_window.py | 2 -- tagstudio/src/qt/ts_qt.py | 4 ---- 5 files changed, 13 deletions(-) diff --git a/tagstudio/src/core/library.py b/tagstudio/src/core/library.py index e64b1b26..485e30b6 100644 --- a/tagstudio/src/core/library.py +++ b/tagstudio/src/core/library.py @@ -16,7 +16,6 @@ from enum import Enum import ujson -# from typing_extensions import deprecated import tagstudio.src.core.ts_core as ts_core from tagstudio.src.core.utils.fs import * from tagstudio.src.core.utils.str import * diff --git a/tagstudio/src/core/ts_core.py b/tagstudio/src/core/ts_core.py index da507e23..bb6ad790 100644 --- a/tagstudio/src/core/ts_core.py +++ b/tagstudio/src/core/ts_core.py @@ -4,12 +4,9 @@ """The core classes and methods of TagStudio.""" -# from typing import Dict, Optional, TypedDict, List import json import os -# import requests -# from bs4 import BeautifulSoup as bs from src.core.library import * VERSION: str = '9.1.0' # Major.Minor.Patch diff --git a/tagstudio/src/core/utils/fs.py b/tagstudio/src/core/utils/fs.py index 1307b0e8..7c1052a6 100644 --- a/tagstudio/src/core/utils/fs.py +++ b/tagstudio/src/core/utils/fs.py @@ -2,9 +2,6 @@ # Licensed under the GPL-3.0 License. # Created for TagStudio: https://github.com/CyanVoxel/TagStudio -import os - - def clean_folder_name(folder_name: str) -> str: cleaned_name = folder_name invalid_chars = "<>:\"/\\|?*." diff --git a/tagstudio/src/qt/main_window.py b/tagstudio/src/qt/main_window.py index b82946c0..8055d930 100644 --- a/tagstudio/src/qt/main_window.py +++ b/tagstudio/src/qt/main_window.py @@ -20,8 +20,6 @@ from PySide6.QtWidgets import (QComboBox, QFrame, QGridLayout, QMenuBar, QPushButton, QScrollArea, QSizePolicy, QStatusBar, QWidget, QSplitter, QMenu) from src.qt.pagination import Pagination -# from src.qt.qtacrylic.qtacrylic import WindowEffect -# from qframelesswindow import FramelessMainWindow, StandardTitleBar class Ui_MainWindow(QMainWindow): diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 0b7f1239..96ac7b29 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -25,17 +25,13 @@ from PySide6.QtCore import QObject, QThread, Signal, QRunnable, Qt, QThreadPool, from PySide6.QtGui import * from PySide6.QtUiTools import QUiLoader from PySide6.QtWidgets import * -# from typing_extensions import deprecated from humanfriendly import format_timespan -# from src.core.utils.web import * -# from src.core.utils.fs import * from src.core.library import * from src.core.palette import ColorType, get_tag_color from src.core.ts_core import * from src.qt.flowlayout import FlowLayout, FlowWidget from src.qt.main_window import Ui_MainWindow -# from src.qt.qtacrylic.qtacrylic import WindowEffect # SIGQUIT is not defined on Windows if sys.platform == "win32": From 0b4ccac5ff2006cf2722547754542324504e8cba Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 21:14:13 -0600 Subject: [PATCH 4/8] Import Humanfriendly format_size when importing format_timespan --- tagstudio/src/qt/ts_qt.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 96ac7b29..67c48449 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -18,7 +18,6 @@ from time import sleep from typing import Optional import cv2 -import humanfriendly from PIL import Image, ImageChops, UnidentifiedImageError, ImageQt, ImageDraw, ImageFont, ImageEnhance from PySide6 import QtCore from PySide6.QtCore import QObject, QThread, Signal, QRunnable, Qt, QThreadPool, QSize, QEvent, QTimer @@ -31,6 +30,7 @@ from src.core.palette import ColorType, get_tag_color from src.core.ts_core import * from src.qt.flowlayout import FlowLayout, FlowWidget from src.qt.main_window import Ui_MainWindow +from humanfriendly import format_timespan, format_size # SIGQUIT is not defined on Windows @@ -2106,12 +2106,12 @@ class PreviewPanel(QWidget): # Stats for specific file types are displayed here. if extension in (IMAGE_TYPES + VIDEO_TYPES): - self.dimensions_label.setText(f"{extension.upper()} • {humanfriendly.format_size(os.stat(filepath).st_size)}\n{image.width} x {image.height} px") + self.dimensions_label.setText(f"{extension.upper()} • {format_size(os.stat(filepath).st_size)}\n{image.width} x {image.height} px") else: self.dimensions_label.setText(f"{extension.upper()}") if not image: - self.dimensions_label.setText(f"{extension.upper()} • {humanfriendly.format_size(os.stat(filepath).st_size)}") + self.dimensions_label.setText(f"{extension.upper()} • {format_size(os.stat(filepath).st_size)}") raise UnidentifiedImageError except (UnidentifiedImageError, FileNotFoundError, cv2.error): From 4e5b7b1c7df1810c8bdfda0bba4ea4f460e5ec85 Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 21:51:22 -0600 Subject: [PATCH 5/8] Fix reference to datetime --- tagstudio/src/qt/ts_qt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 67c48449..ec304f83 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -4505,7 +4505,7 @@ class QtDriver(QObject): self.completed += 1 # logging.info(f'threshold:{len(self.lib.entries}, completed:{self.completed}') if self.completed == len(self.lib.entries): - filename = os.path.normpath(f'{self.lib.library_dir}/{TS_FOLDER_NAME}/{COLLAGE_FOLDER_NAME}/collage_{datetime.datetime.utcnow().strftime("%F_%T").replace(":", "")}.png') + filename = os.path.normpath(f'{self.lib.library_dir}/{TS_FOLDER_NAME}/{COLLAGE_FOLDER_NAME}/collage_{dt.utcnow().strftime("%F_%T").replace(":", "")}.png') self.collage.save(filename) self.collage = None From 2b5697ea50ecf665c7b0d5862672cbb36efdbc40 Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 21:51:43 -0600 Subject: [PATCH 6/8] Remove wildcard Imports --- tagstudio/src/core/library.py | 8 ++++---- tagstudio/src/core/ts_core.py | 2 +- tagstudio/src/qt/main_window.py | 2 +- tagstudio/src/qt/pagination.py | 4 ++-- tagstudio/src/qt/ts_qt.py | 29 +++++++++++++++++++++-------- tagstudio/tag_studio.py | 7 +++---- tagstudio/tests/core/test_tags.py | 2 +- 7 files changed, 33 insertions(+), 21 deletions(-) diff --git a/tagstudio/src/core/library.py b/tagstudio/src/core/library.py index 485e30b6..0ece31d1 100644 --- a/tagstudio/src/core/library.py +++ b/tagstudio/src/core/library.py @@ -8,6 +8,7 @@ import datetime import glob import json import logging +import os import sys import time import traceback @@ -16,10 +17,9 @@ from enum import Enum import ujson -import tagstudio.src.core.ts_core as ts_core -from tagstudio.src.core.utils.fs import * -from tagstudio.src.core.utils.str import * -from tagstudio.src.core.utils.web import * +from tagstudio.src.core import ts_core +from tagstudio.src.core.utils.str import strip_punctuation +from tagstudio.src.core.utils.web import strip_web_protocol TYPE = ['file', 'meta', 'alt', 'mask'] # RESULT_TYPE = Enum('Result', ['ENTRY', 'COLLATION', 'TAG_GROUP']) diff --git a/tagstudio/src/core/ts_core.py b/tagstudio/src/core/ts_core.py index bb6ad790..4115cbb2 100644 --- a/tagstudio/src/core/ts_core.py +++ b/tagstudio/src/core/ts_core.py @@ -7,7 +7,7 @@ import json import os -from src.core.library import * +from tagstudio.src.core.library import Entry, Library VERSION: str = '9.1.0' # Major.Minor.Patch VERSION_BRANCH: str = 'Alpha' # 'Alpha', 'Beta', or '' for Full Release diff --git a/tagstudio/src/qt/main_window.py b/tagstudio/src/qt/main_window.py index 8055d930..daa79d6f 100644 --- a/tagstudio/src/qt/main_window.py +++ b/tagstudio/src/qt/main_window.py @@ -19,7 +19,7 @@ from PySide6.QtWidgets import (QComboBox, QFrame, QGridLayout, QHBoxLayout, QVBoxLayout, QLayout, QLineEdit, QMainWindow, QMenuBar, QPushButton, QScrollArea, QSizePolicy, QStatusBar, QWidget, QSplitter, QMenu) -from src.qt.pagination import Pagination +from tagstudio.src.qt.pagination import Pagination class Ui_MainWindow(QMainWindow): diff --git a/tagstudio/src/qt/pagination.py b/tagstudio/src/qt/pagination.py index c190fa14..074bf869 100644 --- a/tagstudio/src/qt/pagination.py +++ b/tagstudio/src/qt/pagination.py @@ -6,8 +6,8 @@ # I never want to see this code again. from PySide6.QtCore import QObject, Signal, QSize -from PySide6.QtGui import * -from PySide6.QtWidgets import * +from PySide6.QtGui import QIntValidator +from PySide6.QtWidgets import QWidget, QHBoxLayout, QPushButton, QLabel, QLineEdit, QSizePolicy # class NumberEdit(QLineEdit): diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index ec304f83..61c6a5c9 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -10,9 +10,13 @@ import ctypes import logging import math +import os import sys import time +import traceback +from types import FunctionType from datetime import datetime as dt +from pathlib import Path from queue import Empty, Queue from time import sleep from typing import Optional @@ -21,17 +25,26 @@ import cv2 from PIL import Image, ImageChops, UnidentifiedImageError, ImageQt, ImageDraw, ImageFont, ImageEnhance from PySide6 import QtCore from PySide6.QtCore import QObject, QThread, Signal, QRunnable, Qt, QThreadPool, QSize, QEvent, QTimer -from PySide6.QtGui import * +from PySide6.QtGui import (QGuiApplication, QPixmap, QEnterEvent, QMouseEvent, QResizeEvent, QPainter, QColor, QPen, + QAction, QStandardItemModel, QStandardItem, QPainterPath, QFontDatabase, QIcon) from PySide6.QtUiTools import QUiLoader -from PySide6.QtWidgets import * -from humanfriendly import format_timespan -from src.core.library import * -from src.core.palette import ColorType, get_tag_color -from src.core.ts_core import * -from src.qt.flowlayout import FlowLayout, FlowWidget -from src.qt.main_window import Ui_MainWindow +from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QPlainTextEdit, + QLineEdit, QScrollArea, QFrame, QTextEdit, QComboBox, QProgressDialog, QFileDialog, + QListView, QSplitter, QSizePolicy, QMessageBox, QBoxLayout, QCheckBox, QSplashScreen, + QMenu) from humanfriendly import format_timespan, format_size +from tagstudio.src.core.library import Collation, Entry, ItemType, Library, Tag +from tagstudio.src.core.palette import ColorType, get_tag_color +from tagstudio.src.core.ts_core import (TagStudioCore, TAG_COLORS, DATE_FIELDS, TEXT_FIELDS, BOX_FIELDS, ALL_FILE_TYPES, + SHORTCUT_TYPES, PROGRAM_TYPES, ARCHIVE_TYPES, PRESENTATION_TYPES, + SPREADSHEET_TYPES, TEXT_TYPES, AUDIO_TYPES, VIDEO_TYPES, IMAGE_TYPES, + LIBRARY_FILENAME, COLLAGE_FOLDER_NAME, BACKUP_FOLDER_NAME, TS_FOLDER_NAME, + VERSION_BRANCH, VERSION) +from tagstudio.src.core.utils.web import strip_web_protocol +from tagstudio.src.qt.flowlayout import FlowLayout, FlowWidget +from tagstudio.src.qt.main_window import Ui_MainWindow +import tagstudio.src.qt.resources_rc # SIGQUIT is not defined on Windows if sys.platform == "win32": diff --git a/tagstudio/tag_studio.py b/tagstudio/tag_studio.py index 50f48d6d..683529f4 100644 --- a/tagstudio/tag_studio.py +++ b/tagstudio/tag_studio.py @@ -4,12 +4,11 @@ """TagStudio launcher.""" -from src.core.ts_core import TagStudioCore -from src.cli.ts_cli import CliDriver -from src.qt.ts_qt import QtDriver +from tagstudio.src.core.ts_core import TagStudioCore +from tagstudio.src.cli.ts_cli import CliDriver +from tagstudio.src.qt.ts_qt import QtDriver import argparse import traceback -# import ctypes def main(): diff --git a/tagstudio/tests/core/test_tags.py b/tagstudio/tests/core/test_tags.py index 33c8e895..7ff70d0b 100644 --- a/tagstudio/tests/core/test_tags.py +++ b/tagstudio/tests/core/test_tags.py @@ -1,4 +1,4 @@ -from src.core.library import Tag +from tagstudio.src.core.library import Tag class TestTags: From 0b1c097f978dc60f16d9646b62021a5e8e76be16 Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 22:00:40 -0600 Subject: [PATCH 7/8] update tagstudio.py refrences to tag_studio.py --- .vscode/launch.json | 2 +- README.md | 4 ++-- TagStudio.sh | 2 +- start_win.bat | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index f3e42404..8838fbb3 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,7 +8,7 @@ "name": "TagStudio", "type": "python", "request": "launch", - "program": "${workspaceRoot}/tagstudio/tagstudio.py", + "program": "${workspaceRoot}/tagstudio/tag_studio.py", "console": "integratedTerminal", "justMyCode": true, "args": [] diff --git a/README.md b/README.md index 3563733f..dd78737e 100644 --- a/README.md +++ b/README.md @@ -90,14 +90,14 @@ _Learn more about setting up a virtual environment [here](https://docs.python.or To launch TagStudio, launch the `start_win.bat` file. You can modify this .bat file or create a shortcut and add one or more additional arguments if desired. -Alternatively, with the virtual environment loaded, run the python file at `tagstudio\tagstudio.py` from your terminal. If you're in the project's root directory, simply run `python3 tagstudio/tagstudio.py`. +Alternatively, with the virtual environment loaded, run the python file at `tagstudio\tag_studio.py` from your terminal. If you're in the project's root directory, simply run `python3 tagstudio/tag_studio.py`. > [!CAUTION] > TagStudio on Linux & macOS likely won't function correctly at this time. If you're trying to run this in order to help test, debug, and improve compatibility, then charge on ahead! #### macOS -With the virtual environment loaded, run the python file at "tagstudio/tagstudio.py" from your terminal. If you're in the project's root directory, simply run `python3 tagstudio/tagstudio.py`. When launching the program in the future, remember to activate the virtual environment each time before launching *(an easier method is currently being worked on).* +With the virtual environment loaded, run the python file at "tagstudio/tag_studio.py" from your terminal. If you're in the project's root directory, simply run `python3 tagstudio/tag_studio.py`. When launching the program in the future, remember to activate the virtual environment each time before launching *(an easier method is currently being worked on).* #### Linux diff --git a/TagStudio.sh b/TagStudio.sh index cff969c3..762f752f 100755 --- a/TagStudio.sh +++ b/TagStudio.sh @@ -2,4 +2,4 @@ python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt -python tagstudio/tagstudio.py +python tagstudio/tag_studio.py diff --git a/start_win.bat b/start_win.bat index 51a5ddf8..73dcfb0f 100644 --- a/start_win.bat +++ b/start_win.bat @@ -1,2 +1,2 @@ @echo off -.venv\Scripts\python.exe .\TagStudio\tagstudio.py --ui qt %* \ No newline at end of file +.venv\Scripts\python.exe .\TagStudio\tag_studio.py --ui qt %* \ No newline at end of file From de09da1592202a2d1821b010bcd668fe6f726a5a Mon Sep 17 00:00:00 2001 From: Andrew Arneson Date: Wed, 24 Apr 2024 23:18:16 -0600 Subject: [PATCH 8/8] remove tagstudio prefix for source libraries --- tagstudio/src/core/library.py | 6 +++--- tagstudio/src/core/ts_core.py | 2 +- tagstudio/src/qt/main_window.py | 2 +- tagstudio/src/qt/ts_qt.py | 14 +++++++------- tagstudio/tag_studio.py | 6 +++--- tagstudio/tests/core/test_tags.py | 2 +- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/tagstudio/src/core/library.py b/tagstudio/src/core/library.py index 0ece31d1..97f2e871 100644 --- a/tagstudio/src/core/library.py +++ b/tagstudio/src/core/library.py @@ -17,9 +17,9 @@ from enum import Enum import ujson -from tagstudio.src.core import ts_core -from tagstudio.src.core.utils.str import strip_punctuation -from tagstudio.src.core.utils.web import strip_web_protocol +from src.core import ts_core +from src.core.utils.str import strip_punctuation +from src.core.utils.web import strip_web_protocol TYPE = ['file', 'meta', 'alt', 'mask'] # RESULT_TYPE = Enum('Result', ['ENTRY', 'COLLATION', 'TAG_GROUP']) diff --git a/tagstudio/src/core/ts_core.py b/tagstudio/src/core/ts_core.py index 4115cbb2..5f50954d 100644 --- a/tagstudio/src/core/ts_core.py +++ b/tagstudio/src/core/ts_core.py @@ -7,7 +7,7 @@ import json import os -from tagstudio.src.core.library import Entry, Library +from src.core.library import Entry, Library VERSION: str = '9.1.0' # Major.Minor.Patch VERSION_BRANCH: str = 'Alpha' # 'Alpha', 'Beta', or '' for Full Release diff --git a/tagstudio/src/qt/main_window.py b/tagstudio/src/qt/main_window.py index daa79d6f..8055d930 100644 --- a/tagstudio/src/qt/main_window.py +++ b/tagstudio/src/qt/main_window.py @@ -19,7 +19,7 @@ from PySide6.QtWidgets import (QComboBox, QFrame, QGridLayout, QHBoxLayout, QVBoxLayout, QLayout, QLineEdit, QMainWindow, QMenuBar, QPushButton, QScrollArea, QSizePolicy, QStatusBar, QWidget, QSplitter, QMenu) -from tagstudio.src.qt.pagination import Pagination +from src.qt.pagination import Pagination class Ui_MainWindow(QMainWindow): diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 61c6a5c9..729f7657 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -34,17 +34,17 @@ from PySide6.QtWidgets import (QApplication, QWidget, QVBoxLayout, QHBoxLayout, QMenu) from humanfriendly import format_timespan, format_size -from tagstudio.src.core.library import Collation, Entry, ItemType, Library, Tag -from tagstudio.src.core.palette import ColorType, get_tag_color -from tagstudio.src.core.ts_core import (TagStudioCore, TAG_COLORS, DATE_FIELDS, TEXT_FIELDS, BOX_FIELDS, ALL_FILE_TYPES, +from src.core.library import Collation, Entry, ItemType, Library, Tag +from src.core.palette import ColorType, get_tag_color +from src.core.ts_core import (TagStudioCore, TAG_COLORS, DATE_FIELDS, TEXT_FIELDS, BOX_FIELDS, ALL_FILE_TYPES, SHORTCUT_TYPES, PROGRAM_TYPES, ARCHIVE_TYPES, PRESENTATION_TYPES, SPREADSHEET_TYPES, TEXT_TYPES, AUDIO_TYPES, VIDEO_TYPES, IMAGE_TYPES, LIBRARY_FILENAME, COLLAGE_FOLDER_NAME, BACKUP_FOLDER_NAME, TS_FOLDER_NAME, VERSION_BRANCH, VERSION) -from tagstudio.src.core.utils.web import strip_web_protocol -from tagstudio.src.qt.flowlayout import FlowLayout, FlowWidget -from tagstudio.src.qt.main_window import Ui_MainWindow -import tagstudio.src.qt.resources_rc +from src.core.utils.web import strip_web_protocol +from src.qt.flowlayout import FlowLayout, FlowWidget +from src.qt.main_window import Ui_MainWindow +import src.qt.resources_rc # SIGQUIT is not defined on Windows if sys.platform == "win32": diff --git a/tagstudio/tag_studio.py b/tagstudio/tag_studio.py index 683529f4..54039eb7 100644 --- a/tagstudio/tag_studio.py +++ b/tagstudio/tag_studio.py @@ -4,9 +4,9 @@ """TagStudio launcher.""" -from tagstudio.src.core.ts_core import TagStudioCore -from tagstudio.src.cli.ts_cli import CliDriver -from tagstudio.src.qt.ts_qt import QtDriver +from src.core.ts_core import TagStudioCore +from src.cli.ts_cli import CliDriver +from src.qt.ts_qt import QtDriver import argparse import traceback diff --git a/tagstudio/tests/core/test_tags.py b/tagstudio/tests/core/test_tags.py index 7ff70d0b..33c8e895 100644 --- a/tagstudio/tests/core/test_tags.py +++ b/tagstudio/tests/core/test_tags.py @@ -1,4 +1,4 @@ -from tagstudio.src.core.library import Tag +from src.core.library import Tag class TestTags: