# Bundle django DB schema migration scripts as data files. # They are necessary for some commands. logger.info('Collecting Django migration scripts.') migration_modules = [ 'django.conf.app_template.migrations', 'django.contrib.admin.migrations', 'django.contrib.auth.migrations', 'django.contrib.contenttypes.migrations', 'django.contrib.flatpages.migrations', 'django.contrib.redirects.migrations', 'django.contrib.sessions.migrations', 'django.contrib.sites.migrations', ] # Include migration scripts of Django-based apps too. installed_apps = eval(get_module_attribute(package_name + '.settings', 'INSTALLED_APPS')) migration_modules.extend(set(app + '.migrations' for app in installed_apps)) # Copy migration files. for mod in migration_modules: mod_name, bundle_name = mod.split('.', 1) mod_dir = os.path.dirname(get_module_file_attribute(mod_name)) bundle_dir = bundle_name.replace('.', os.sep) pattern = os.path.join(mod_dir, bundle_dir, '*.py') files = glob.glob(pattern) for f in files: datas.append((f, os.path.join(mod_name, bundle_dir))) # Include data files from your Django project found in your django root package. datas += collect_data_files(package_name) # Include database file if using sqlite. The sqlite database is usually next to the manage.py script.
# Bundle django DB schema migration scripts as data files. # They are necessary for some commands. logger.info('Collecting Django migration scripts.') migration_modules = [ 'django.conf.app_template.migrations', 'django.contrib.admin.migrations', 'django.contrib.auth.migrations', 'django.contrib.contenttypes.migrations', 'django.contrib.flatpages.migrations', 'django.contrib.redirects.migrations', 'django.contrib.sessions.migrations', 'django.contrib.sites.migrations', ] # Include migration scripts of Django-based apps too. installed_apps = eval(get_module_attribute(package_name + '.settings', 'INSTALLED_APPS')) migration_modules.extend(set(app + '.migrations' for app in installed_apps)) # Copy migration files. for mod in migration_modules: mod_name, bundle_name = mod.split('.', 1) mod_dir = os.path.dirname(get_module_file_attribute(mod_name)) bundle_dir = bundle_name.replace('.', os.sep) pattern = os.path.join(mod_dir, bundle_dir, '*.py') files = glob.glob(pattern) for f in files: datas.append((f, os.path.join(mod_name, bundle_dir))) # Include data files from your Django project found in your django root package. datas += collect_data_files(package_name) # Include database file if using sqlite. The sqlite database is usually next to the manage.py script.
# Distributed under the terms of the GNU General Public License with exception # for distributing bootloader. # # The full license is in the file COPYING.txt, distributed with this software. #----------------------------------------------------------------------------- import os from PyInstaller.utils.hooks import (get_module_attribute, is_module_satisfies, qt5_menu_nib_dir) from PyInstaller.compat import getsitepackages, is_darwin, is_win # On Windows system PATH has to be extended to point to the PyQt5 directory. # The PySide directory contains Qt dlls. We need to avoid including different # version of Qt libraries when there is installed another application (e.g. QtCreator) if is_win: from PyInstaller.utils.win32.winutils import extend_system_path extend_system_path([os.path.join(x, 'PyQt5') for x in getsitepackages()]) # In the new consolidated mode any PyQt depends on _qt hiddenimports = ['sip', 'PyQt5.Qt'] # For Qt<5.4 to work on Mac OS X it is necessary to include `qt_menu.nib`. # This directory contains some resource files necessary to run PyQt or PySide # app. if is_darwin: # Version of the currently installed Qt 5.x shared library. qt_version = get_module_attribute('PyQt5.QtCore', 'QT_VERSION_STR') if is_module_satisfies('Qt < 5.4', qt_version): datas = [(qt5_menu_nib_dir(), '')]
#----------------------------------------------------------------------------- import os from PyInstaller.utils.hooks import ( get_module_attribute, is_module_satisfies, qt5_menu_nib_dir) from PyInstaller.compat import getsitepackages, is_darwin, is_win # On Windows system PATH has to be extended to point to the PyQt5 directory. # The PySide directory contains Qt dlls. We need to avoid including different # version of Qt libraries when there is installed another application (e.g. QtCreator) if is_win: from PyInstaller.utils.win32.winutils import extend_system_path extend_system_path([os.path.join(x, 'PyQt5') for x in getsitepackages()]) # In the new consolidated mode any PyQt depends on _qt hiddenimports = ['sip', 'PyQt5.Qt'] # For Qt<5.4 to work on Mac OS X it is necessary to include `qt_menu.nib`. # This directory contains some resource files necessary to run PyQt or PySide # app. if is_darwin: # Version of the currently installed Qt 5.x shared library. qt_version = get_module_attribute('PyQt5.QtCore', 'QT_VERSION_STR') if is_module_satisfies('Qt < 5.4', qt_version): datas = [(qt5_menu_nib_dir(), '')]
# Copyright (c) 2020 PyInstaller Development Team. # # This file is distributed under the terms of the GNU General Public # License (version 2.0 or later). # # The full license is available in LICENSE.GPL.txt, distributed with # this software. # # SPDX-License-Identifier: GPL-2.0-or-later # ------------------------------------------------------------------ from PyInstaller.utils.hooks import get_module_attribute, collect_submodules # By default, pydantic from PyPi comes with all modules compiled as # cpython extensions, which seems to prevent pyinstaller from automatically # picking up the submodules is_compiled = get_module_attribute('pydantic', 'compiled') == 'True' if is_compiled: # Compiled version; we need to manually collect the submodules from # pydantic... hiddenimports = collect_submodules('pydantic') # ... as well as the following modules from the standard library hiddenimports += [ 'colorsys', 'decimal', 'json', 'ipaddress', 'pathlib', 'uuid', ]
view.show() # Exit Qt when the main loop becomes idle. QTimer.singleShot(0, app.exit) # Run the main loop, displaying the WebKit widget. app.exec_() """) @importorskip('PyQt4') def test_PyQt4_uic(tmpdir, pyi_builder, data_dir): # Note that including the data_dir fixture copies files needed by this test. pyi_builder.test_script('pyi_lib_PyQt4-uic.py') @pytest.mark.skipif(is_module_satisfies( 'Qt >= 5.6', get_module_attribute('PyQt5.QtCore', 'QT_VERSION_STR')), reason='QtWebKit is depreciated in Qt 5.6+') @importorskip('PyQt5') def test_PyQt5_QtWebKit(pyi_builder): pyi_builder.test_script('pyi_lib_PyQt5-QtWebKit.py') @importorskip('PyQt5') def test_PyQt5_uic(tmpdir, pyi_builder, data_dir): # Note that including the data_dir fixture copies files needed by this test. pyi_builder.test_script('pyi_lib_PyQt5-uic.py') @xfail(is_darwin, reason='Please help debug this. See issue #3233.') @importorskip('PyQt5') def test_PyQt5_QWebEngine(pyi_builder, data_dir):
# Bundle django DB schema migration scripts as data files. # They are necessary for some commands. logger.info('Collecting Django migration scripts.') migration_modules = [ 'django.conf.app_template.migrations', 'django.contrib.admin.migrations', 'django.contrib.auth.migrations', 'django.contrib.contenttypes.migrations', 'django.contrib.flatpages.migrations', 'django.contrib.redirects.migrations', 'django.contrib.sessions.migrations', 'django.contrib.sites.migrations', ] # Include migration scripts of Django-based apps too. installed_apps = eval( get_module_attribute(package_name + '.settings', 'INSTALLED_APPS')) migration_modules.extend(set(app + '.migrations' for app in installed_apps)) # Copy migration files. for mod in migration_modules: mod_name, bundle_name = mod.split('.', 1) mod_dir = os.path.dirname(get_module_file_attribute(mod_name)) bundle_dir = bundle_name.replace('.', os.sep) pattern = os.path.join(mod_dir, bundle_dir, '*.py') files = glob.glob(pattern) for f in files: datas.append((f, os.path.join(mod_name, bundle_dir))) # Include data files from your Django project found in your django root package. datas += collect_data_files(package_name)
# The full license is available in LICENSE.GPL.txt, distributed with # this software. # # SPDX-License-Identifier: GPL-2.0-or-later # ------------------------------------------------------------------ from PyInstaller.utils.hooks import get_module_attribute, collect_submodules from PyInstaller.utils.hooks import is_module_satisfies # By default, pydantic from PyPi comes with all modules compiled as # cpython extensions, which seems to prevent pyinstaller from automatically # picking up the submodules. # NOTE: in PyInstaller 4.x and earlier, get_module_attribute() returns the # string representation of the value ('True'), while in PyInstaller 5.x # and later, the actual value is returned (True). is_compiled = get_module_attribute('pydantic', 'compiled') in {'True', True} if is_compiled: # Compiled version; we need to manually collect the submodules from # pydantic... hiddenimports = collect_submodules('pydantic') # ... as well as the following modules from the standard library hiddenimports += [ 'colorsys', 'dataclasses', 'decimal', 'json', 'ipaddress', 'pathlib', 'uuid', ] # Older releases (prior 1.4) also import distutils.version
# Bundle django DB schema migration scripts as data files. # They are necessary for some commands. logger.info('Collecting Django migration scripts.') migration_modules = [ 'django.conf.app_template.migrations', 'django.contrib.admin.migrations', 'django.contrib.auth.migrations', 'django.contrib.contenttypes.migrations', 'django.contrib.flatpages.migrations', 'django.contrib.redirects.migrations', 'django.contrib.sessions.migrations', 'django.contrib.sites.migrations', ] # Include migration scripts of Django-based apps too. installed_apps = eval(get_module_attribute(settings_module, 'INSTALLED_APPS')) migration_modules.extend(set(app + '.migrations' for app in installed_apps)) # Copy migration files. for mod in migration_modules: mod_name, bundle_name = mod.split('.', 1) mod_dir = os.path.dirname(get_module_file_attribute(mod_name)) bundle_dir = bundle_name.replace('.', os.sep) pattern = os.path.join(mod_dir, bundle_dir, '*.py') files = glob.glob(pattern) for f in files: datas.append((f, os.path.join(mod_name, bundle_dir))) # Include data files from your Django project found in your django root package. datas += collect_data_files(package_name) # Include database file if using sqlite. The sqlite database is usually next to the manage.py script.
view = QWebView() view.show() # Exit Qt when the main loop becomes idle. QTimer.singleShot(0, app.exit) # Run the main loop, displaying the WebKit widget. app.exec_() """) @importorskip('PyQt4') def test_PyQt4_uic(tmpdir, pyi_builder, data_dir): # Note that including the data_dir fixture copies files needed by this test. pyi_builder.test_script('pyi_lib_PyQt4-uic.py') @pytest.mark.skipif(is_module_satisfies('Qt >= 5.6', get_module_attribute('PyQt5.QtCore', 'QT_VERSION_STR')), reason='QtWebKit is depreciated in Qt 5.6+') @importorskip('PyQt5') def test_PyQt5_QtWebKit(pyi_builder): pyi_builder.test_script('pyi_lib_PyQt5-QtWebKit.py') PYQT5_NEED_OPENGL = pytest.mark.skipif(is_module_satisfies('PyQt5 <= 5.10.1'), reason='PyQt5 v5.10.1 and older does not package ``opengl32sw.dll``, the ' 'OpenGL software renderer, which this test requires.') @PYQT5_NEED_OPENGL @importorskip('PyQt5') def test_PyQt5_uic(tmpdir, pyi_builder, data_dir): # Note that including the data_dir fixture copies files needed by this test.
# Bundle django DB schema migration scripts as data files. # They are necessary for some commands. logger.info('Collecting Django migration scripts.') migration_modules = [ 'django.conf.app_template.migrations', 'django.contrib.admin.migrations', 'django.contrib.auth.migrations', 'django.contrib.contenttypes.migrations', 'django.contrib.flatpages.migrations', 'django.contrib.redirects.migrations', 'django.contrib.sessions.migrations', 'django.contrib.sites.migrations', ] # Include migration scripts of Django-based apps too. installed_apps = eval( get_module_attribute(settings_module, 'INSTALLED_APPS')) migration_modules.extend(set(app + '.migrations' for app in installed_apps)) # Copy migration files. for mod in migration_modules: mod_name, bundle_name = mod.split('.', 1) mod_dir = os.path.dirname(get_module_file_attribute(mod_name)) bundle_dir = bundle_name.replace('.', os.sep) pattern = os.path.join(mod_dir, bundle_dir, '*.py') files = glob.glob(pattern) for f in files: datas.append((f, os.path.join(mod_name, bundle_dir))) # Include data files from your Django project found in your django root package. datas += collect_data_files(package_name)