Source code for pyspread.pyspread

#!/usr/bin/python3
# -*- coding: utf-8 -*-

# Copyright Martin Manns
# Distributed under the terms of the GNU General Public License

# --------------------------------------------------------------------
# pyspread is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyspread is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with pyspread.  If not, see <http://www.gnu.org/licenses/>.
# --------------------------------------------------------------------

"""

pyspread
========

- Main Python spreadsheet application
- Run this script to start the application.

**Provides**

* MainApplication: Initial command line operations and application launch
* :class:`MainWindow`: Main windows class

"""

import logging
import os
import sys
import traceback

from PyQt6.QtCore import Qt
from PyQt6.QtWidgets import QApplication

try:
    from pyspread.cli import PyspreadArgumentParser
    from pyspread.main_window import MainWindow

except ImportError:
    from cli import PyspreadArgumentParser
    from main_window import MainWindow


LICENSE = "GNU GENERAL PUBLIC LICENSE Version 3"

os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1"


[docs] def excepthook(exception_type, exception_value, exception_traceback): """Exception hook that prevents pyspread from crashing on exceptions""" traceback_msg = "".join(traceback.format_exception(exception_type, exception_value, exception_traceback)) print(f"Error: {traceback_msg}\n")
[docs] def main(): """Pyspread main""" sys.excepthook = excepthook parser = PyspreadArgumentParser() args, _ = parser.parse_known_args() logging.basicConfig(level=args.loglevel) app = QApplication(sys.argv) app.setDesktopFileName("io.gitlab.pyspread.pyspread") main_window = MainWindow(args.file, default_settings=args.default_settings) main_window.show() app.exec() sys.exit()
if __name__ == '__main__': main()