Source code for 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 os
import sys
import traceback

from PyQt5.QtCore import Qt
from PyQt5.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"
QApplication.setAttribute(Qt.AA_EnableHighDpiScaling, True)
QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps, True)


[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() app = QApplication(sys.argv) main_window = MainWindow(args.file, default_settings=args.default_settings) main_window.show() app.exec_() sys.exit()
if __name__ == '__main__': main()