Source code for spinetoolbox.spine_db_editor.main

#!/usr/bin/env python

from argparse import ArgumentParser
import sys
import locale
import logging
from PySide6.QtGui import QFontDatabase
from PySide6.QtWidgets import QApplication
from PySide6.QtCore import QSettings
from spinetoolbox import resources_icons_rc  # pylint: disable=unused-import
from spinetoolbox.spine_db_manager import SpineDBManager
from spinetoolbox.helpers import pyside6_version_check
from spinetoolbox.spine_db_editor.widgets.multi_spine_db_editor import MultiSpineDBEditor


[docs]def main(): """Launches Spine Db Editor as its own application.""" if not pyside6_version_check(): return 1 parser = _make_argument_parser() args = parser.parse_args() app = QApplication(sys.argv) status = QFontDatabase.addApplicationFont(":/fonts/fontawesome5-solid-webfont.ttf") if status < 0: logging.warning("Could not load fonts from resources file. Some icons may not render properly.") locale.setlocale(locale.LC_NUMERIC, "C") settings = QSettings("SpineProject", "Spine Toolbox") db_mngr = SpineDBManager(settings, None) editor = MultiSpineDBEditor(db_mngr) if args.separate_tabs: for url in args.url: editor.add_new_tab({url: None}) else: editor.add_new_tab({url: None for url in args.url}) editor.show() return_code = app.exec() return return_code
[docs]def _make_argument_parser(): """Builds a command line argument parser. Returns: ArgumentParser: parser """ parser = ArgumentParser() parser.add_argument("-s", "--separate-tabs", action="store_true", help="open databases in separate tabs") parser.add_argument("url", nargs="*", help="database URL") return parser
if __name__ == "__main__": sys.exit(main())