File indexing completed on 2025-03-09 04:10:20

0001 """
0002 SPDX-FileCopyrightText: 2017 Eliakin Costa <eliakim170@gmail.com>
0003 
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 """
0006 import re
0007 import inspect
0008 
0009 
0010 def format_data(data):
0011     globals()['types'] = __import__('types')
0012 
0013     exclude_keys = ['copyright', 'credits', 'False',
0014                     'True', 'None', 'Ellipsis', 'quit',
0015                     'QtCriticalMsg', 'krita_path',
0016                     'QtWarningMsg', 'QWIDGETSIZE_MAX',
0017                     'QtFatalMsg', 'PYQT_CONFIGURATION',
0018                     'on_load', 'PYQT_VERSION', 'on_pykrita_unloading',
0019                     'on_unload', 'QT_VERSION', 'QtInfoMsg',
0020                     'PYQT_VERSION_STR', 'qApp', 'QtSystemMsg',
0021                     'QtDebugMsg', 'on_pykrita_loaded', 'QT_VERSION_STR']
0022     exclude_valuetypes = [types.BuiltinFunctionType,
0023                           types.BuiltinMethodType,
0024                           types.ModuleType,
0025                           types.FunctionType]
0026 
0027     return [{k: {'value': str(v), 'type': str(type(v))}} for k, v in data.items() if not (k in exclude_keys or
0028                                                                                           type(v) in exclude_valuetypes or
0029                                                                                           re.search(r'^(__).*\1$', k) or
0030                                                                                           inspect.isclass(v) or
0031                                                                                           inspect.isfunction(v))]