| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Adapt CMake files, build scripts, tests and examples.
Task-number: PYSIDE-904
Change-Id: I845f7b006e9ad274fed5444ec4c1f9dbe176ff88
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
| |
This change affects mostly only my own sources which were
prepared for the migration to Python 3.6 .
Task-number: PYSIDE-904
Change-Id: I0c2cd59f6f625f51f876099c33005ac70ca39db9
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
| |
Adapt CMake files, build scripts, tests and examples.
Task-number: PYSIDE-904
Change-Id: I4cb5ee4c8df539546014b08202a7b1e98ed3ff07
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It will be assumed that Python is always Python 3.
All checks for Python 2 are removed.
This is the first part of cleaning up the Python code.
We will then also clean the C code.
Task-number: PYSIDE-904
Change-Id: I06050a8c1a18a19583f551b61775833a91673f4e
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |\
| |
| |
| | |
Change-Id: I9c7163094bc934f481002adcea78ef4928ed26be
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PyType_FromSpec breaks the name "A.B.C.D" in module "A.B.C"
and name = qualname = "D".
We fix that for PySide:
module = "A.B"
qualname = "C.D"
name = "D"
and for other prefixes like Shiboken:
module = "A"
qualname = "B.C.D"
name = "D"
This had quite some impact on the signature modules.
Change-Id: Ie94971ba737107b15adbfc2517e1ed32b65fda39
Fixes: PYSIDE-1286
Task-number: PYSIDE-15
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |\|
| |
| |
| | |
Change-Id: Ia9c2e8c7e4fb3665a78020ed154ab9a103368bd1
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
After regeneration of the registry, we need to restore the blacklist.txt
file, fix the scrape script and use the newly generated registry files.
Task-number: PYSIDE-1100
Change-Id: I2f73e36a9cc9bfb1e07b8a08ab67ddd63e211e81
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was a problem with the typing module for Python2
that showed the wrong name.
The generated signature files are further simplified.
They no longer contain fancy definitions like "Char", which
made little sense and was replaced by "int", which our
competitor does as well.
The mypy compatibility should be considered mostly complete.
Update.. QChar was not changed to "int" but "str" because we
got clashes. Therefore, recreation of the registry was necessary.
Hard to solve stay the definitions
"Virtual, Missing, Invalid, Default, Instance".
They are very rarely used for special cases. Mypy cannot
see these definitions since the module path does not exist
in the file system.
I tried hard to fix this by building a mypy plugin, but I seem to
be forced to generate real files in a temp dir. This was too much
effort. A plugin may make sense in the future when we need to
improve the type support.
Change-Id: Id80c2da1a4a379a80ec5f3019a916a9c00cc87ff
Task-number: PYSIDE-1100
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |\|
| |
| |
| | |
Change-Id: I7a94c67fdb9225edf4d605e67839a1f6f7375c2a
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On Windows, DLL directories can no longer be specified
via the PATH environment variable. They need to be added
via os.add_dll_directory().
In order to fix this, move the entire environment setup
from CMake to a python helper and set the environment
variables BUILD_DIR and QT_DIR pointing to the build
directory and Qt directory, respectively, from CMake.
In addition, this has a huge advantage: The tests can
also be executed much more easily without ctest from the
command line by just setting BUILD_DIR and QT_DIR instead
of a complex manipulation of PATH/LD_LIBRARY_PATH.
Change-Id: I7d518ccab19ca184c3112a126c779d4a6d7c6c5e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |/
|
|
|
|
|
|
| |
Generate different instantiations in libsmart and libother.
Task-number: PYSIDE-1024
Change-Id: Id29cea65e48209fa226ce3142f3af72b99bf4662
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When running tests with Python 3.8/Linux, the existence_test fails:
File "pyside-setup/sources/pyside2/tests/registry/existence_test.py", line 73
from init_platform import enum_all, generate_all
File "pyside-setup/sources/pyside2/tests/registry/init_platform.py", line 59
from util import get_refpath, get_script_dir
File "pyside-setup/sources/pyside2/tests/registry/util.py", line 113
platform_name = "".join(distro.linux_distribution()[:2]).lower()
AttributeError module 'platform' has no attribute 'linux_distribution'
since platform.linux_distribution() was removed in 3.8. Extract
into a separate method and warn to install distro.
Task-number: PYSIDE-939
Change-Id: I42d04830d51563cc3fbaddc3941c927402514480
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |\
| |
| |
| | |
Change-Id: I698090a9c9fdc995e00e39873aa35f8edda0f0b1
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The registry files were recreated when they do not exist. This was used
to trigger recreation on a file.
We now include a comment line on top of the files.
#recreate # uncomment this to enforce generation
By uncommenting this line, a NameError is provoked, which has the
desired effect without creating huge deltas in the repository.
Change-Id: Idcc1015abae504f111102e8c9851f8ef45dcbdff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The merge of certain changes into 5.14 had quite a few side effects,
because the registry files had not been generated for 5.13 at all.
When a simplification had the effect of generating more registry
entries, the merge broke because we did not have these entries in
the registry.
The "obvious" but wrong assumption was that the simplification
gives a problem in 5.14. But the truth is that by generating the
files before the merge created too few entries, and that made it
complain. A simple reset was the solution.
We will try to further simplify the generation of new registry files
without creating huge deltas.
Change-Id: I680b3a1d3eeb4b981736ff6fe46857ee3135b735
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The script scrape_testresults.py analyzes log files in order to
find embedded script files for the registry.
This script does not try to be absolute water-proof but handled the
existing cases well.
By chance, the text "BEGIN_FILE", which is used as an indicator,
was found in a traceback from the generating script.
We modified the search to ignore this text in single quotes, but
also changed the originating file testing/runner.py to no longer
contain this text in the future.
Change-Id: I1fef1cf5e9b85fc94b7ee52edbdf4afa4bf4e35a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In 5.13 we did not check the registry.
By change https://codereview.qt-project.org/c/pyside/pyside-setup/+/278244
more functions are generated, which are not yet in 5.14 .
By repeating the removal of that patch, together with the recreation
of the registry files, we add by hand what the merge could not
do automatically.
This took quite a while to understand :-)
"SharedPtr" and maybe other classes may create an infinite recursion
via some "._gorg" property from the typing module for Python 2.7 .
We simply skip that effect.
Change-Id: I85568b08bb6ac87b5dbf6a2823e4a71f69f8b4ad
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Amends ec1121a8768ccdba1788f09ad3147b36b73e5cc2.
Task-number: PYSIDE-795
Change-Id: I957420f961b2c7c1349c32522543c0d31d2d504e
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It was impossible to use the registry in other functions
without many dependencies.
The numpy support made it desirable to write new test
functions which lead to this refactoring.
Task-number: PYSIDE-795
Change-Id: I60bd78a8eaec95dcb4840645c76629b1ef2b50f9
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | |
| |
| |
| |
| |
| |
| | |
Add Python version/build and Qt build to the header.
Change-Id: I1cf39c4cb3663511087af737bbe2257038e19fb6
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| |
| |
| |
| | |
Change-Id: I0c2ebdfd91903f824851590112733025b93eb845
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This concludes the registry start for 5.14 with improved files.
Old versions are removed, since the format has changed
quite much.
Task-number: PYSIDE-795
Change-Id: I3c5dc1480d1eecce4018e4b6a5856d7961fbef86
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| |
| |
| |
| |
| |
| | |
This patch fixes some small quirks and improves the scraping.
Change-Id: Ia0366e2e29c833fe985353768de166fd538f0d24
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The function registry was not enabled for versions greater than 5.12 .
This is now needed, since the function registry will be used in
the tests for the improved NumPy support.
There were new cases of Python keywords touched by enums
which had to be renamed. This was moved into the code
generator instead of the runtime overhead.
The formatting of the enums was rewritten and reports all
enums now that can be found (also those which are copied into
the parent class).
The formatting of the function registry had not
been used for a long time and had entries that showed the
wrong number of subclasses.
The usage of the registry was also simplified by using the full
names of functions. They can now directly be accessed.
Task-number: PYSIDE-795
Change-Id: I734f6811205f3c3528a911975677eb677fedd2dd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use a regular expression with the types, fixing:
qt.shiboken: (gui) signature 'setUniformValue(const char*,GLfloat)' (specified as 'setUniformValue(const char*, GLfloat)') for function modification in 'QOpenGLShaderProgram' not found.
Possible candidates:
...
setUniformValue(const char*,float,float,float,float) in QOpenGLShaderProgram
setUniformValue(const char*,int) in QOpenGLShaderProgram
setUniformValue(const char*,uint) in QOpenGLShaderProgram
...
Amends 05ae61cba5f943eb58343b44f8d474bc88bf0ce4
Task-number: PYSIDE-989
Change-Id: Ib12ca0309dfa46cca87e8deb546378b185a56b66
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The registry had a duplication of code in the self-test that
led to an oversight.
To prevent that in the future, the error handling has been
rewritten, and an extended self-test was written that checks
the correctness of every case.
A truth table has beed added as a reference for questions.
Change-Id: I4570b2388c9b179b33c9520a484e09b9ccb68918
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Situation..
PySide works fine with normal applications. But when installers
are used to pack the application together, then the signature
extension cannot be loaded.
This is a problem that exists since the signature extension was
written. But starting with PySide 5.12.1, the signature extension
is very visible, because it is used to support the __doc__ attribute.
There have beed successful attempts to solve the problem for
PyInstaller and Py2App. But there are more packers available,
and they all need a change both in PySide and in the packer.
Solution..
To solve this problem once and for all, we embed the Python
support files in the binary shiboken package. When the Python
files are not normally accessible, they are unpacked from a ZIP
file.
Details..
- The embedded files shall only be used when the normal files
are not available,
- The signature extension should no longer be lazily loaded.
When the application starts, all files should be present.
- We drop support for shiboken2.support.signature and
use a single, independen folder 'shibokensupport' (proposal).
This avoids problems with multiple existence of the shiboken2
folder. PySide2.support.signature remains the official interface,
but it's only an alias when PySide2 exists.
- The embedding is used when the normal files cannot be
loaded for some reason. It can be enforced by a sys variable
"pyside_uses_embedding".
- Testcase is included.
- Tested with PyInstaller on macOS
Fixes: PYSIDE-932
Fixes: PYSIDE-942
Change-Id: Iaa62dc0623503a2e0943eedd10d2b2484c65cc2d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After the project split, shiboken exposed its own modules, and the
overall structure with shiboken2.support.signature and
PySide2.support.signature was already quite complicated.
When introducing embedding, it is necessary to have some support
folder that gets unpacked from a zipfile. That means, the shiboken2
root directory would be in the zip file in the embedding case.
This does not only increase the complexity, it further means
that we must make shiboken2.so available in the shiboken2
containing zipfile!
In order to avoid that, we stop the dependency from the two
support directories and use shibokensupport, instead. The
simplification of the loader and other modules is also significant.
Task-number: PYSIDE-510
Change-Id: Ic735a8d36f10f03698378f2ac9685a5955e40b0c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
After the bug found in PYSIDE-928, the contextlib problem of
Python 3.5 also vanished.
What remains is the crash on shutdown which is caused by
module 'testbinding'.
Task-number: PYSIDE-953
Change-Id: I07f18fa468fdb0758ee4e4b7663c3a42bec42822
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Python 3.5 has a bug that crashes the build.
See the description in the issue tracker.
The cure is to use a more recent contextlib.py and to avoid
a PySide cleanup function that creates the crash.
The problem is not solved for Python 3.5, and it is not clear
if the testbinding module has a hidden bug, too.
But this fix seems to be good enough for the moment.
We should decide if we are going to fix Python 3.5 or abandon
it altogether.
Change-Id: Iacf2237de1f34d2b3cd1d68f1fb5833bdca3fdc2
Fixes: PYSIDE-953
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a CMake super project that includes the shiboken2, PySide2 and
pyside2-tools subprojects, so that it's possible to build everything
from Qt Creator (or any other IDE that supports CMake)
with minimal set up effort, and thus inform the IDE CMake integration
of all relevant files, for easier code editing, navigation and
refactoring.
This also lays the foundation for allowing 3rd parties to use the
shiboken2 generator to generate custom modules. This is
achieved by eliminating various hardcoded paths for libraries and
include directories.
Start using CMake targets throughout the build code to correctly
propagate link flags and include dirs for libshiboken and
shiboken2 executable targets. Same for the libpyside target.
Generate two separate cmake config files (build-tree / install-tree)
that can be used with find_package(Shiboken2), to make sure that
the PySide2 project can be built as part of the super project build.
This is currently the only way I've found to allow the super build
to work.
Note that for the build-tree find_package() to work, the
CMAKE_MODULE_PATH has to be adjusted in the super project file.
The generated config files contain variables and logic that allow
usage of the installed shiboken package in downstream projects
(PySide2). This involves things like getting the includes and
libraries for the currently found python interpreter, the shiboken
build type (release or debug), was shiboken built with limited
api support, etc.
Generate 2 separate (build-tree and install-tree) config files
for PySide2, similar to how it's done for the shiboken case, for
pyside2-tools to build correctly.
Install shiboken2 target files using install(EXPORT)
to allow building PySide2 with an installed Shiboken2 package
(as opposed to one that is built as part of the super project).
Same with PySide2 targets for pyside2-tools subproject.
Make sure not to redefine uninstall targets if they are already
defined.
Add a --shorter-paths setup.py option, which would be used by
the Windows CI, to circumvent creating paths that are too long,
and thus avoiding build issues.
Output the build characteristics / classifiers into the generated
build_history/YYYY-MM-DD_AAAAAA/build_dir.txt file, so it can be
used by the test runner to properly filter out blacklisted
tests. This was necessary due to the shorter paths options.
Fix various issues regarding target includes and library
dependencies.
Remove certain duplicated cmake code (like limited api check and build
type checks) in PySide2, given that that information will now be
present in the exported shiboken2 config file.
Include a short README.cmake.md file that describes how to build
the super project.
References used
https://rix0r.nl/blog/2015/08/13/cmake-guide/
https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/
https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1
https://cliutils.gitlab.io/modern-cmake/chapters/basics/functions.html
https://cmake.org/cmake/help/v3.0/manual/cmake-packages.7.html
https://github.com/ComicSansMS/libstratcom/blob/master/CMakeLists.txt
Abandoned approach using ExternalProject references:
https://cmake.org/cmake/help/latest/module/ExternalProject.html
https://stackoverflow.com/questions/44990964/how-to-perform-cmakefind-package-at-build-stage-only
Fixes: PYSIDE-919
Change-Id: Iaa15d20b279a04c5e16ce2795d03f912bc44a389
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove duplicate modifications of
QOpenGLExtraFunctions::SamplerParameteri/fv()
that are covered by the below regular expression
- Remove QMatrix4x2::copyDataTo() as is done for the other QMatrix<N>x<M>
classes, fixing:
There's no user provided way (conversion rule, argument removal, custom code,
etc) to handle the primitive type 'float *' of argument 1 in function
'QMatrix4x2::copyDataTo(float * values) const'.
- Remove the array modifications of the QMatrix<N>x<M> constructors
(specializations of QGenericMatrix). They don't work since the
handling is not implemented in shiboken's
AbstractMetaBuilderPrivate::inheritTemplate(). This can be fixed,
but has no effect here since the manually added constructor from a
PySequence always takes preference. This fixes:
There's no user provided way (conversion rule, argument removal, custom code, etc) to handle the primitive type
'const float *' of argument 1 in function 'QMatrix2x2::QMatrix2x2(const float * values)'.
'const float *' of argument 1 in function 'QMatrix2x3::QMatrix2x3(const float * values)'.
'const float *' of argument 1 in function 'QMatrix2x4::QMatrix2x4(const float * values)'.
'const float *' of argument 1 in function 'QMatrix3x2::QMatrix3x2(const float * values)'.
'const float *' of argument 1 in function 'QMatrix3x3::QMatrix3x3(const float * values)'.
'const float *' of argument 1 in function 'QMatrix3x4::QMatrix3x4(const float * values)'.
'const float *' of argument 1 in function 'QMatrix4x2::QMatrix4x2(const float * values)'.
'const float *' of argument 1 in function 'QMatrix4x3::QMatrix4x3(const float * values)'.
Change-Id: Iea9ced35158b31fb006d038cd5c307d5feec839e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Even though we have support for Void*, having to import
it as an additional class to be able to call a separate
function, is adding too much complexity so something
that should be easy to do, like creating an index
for an itemmodel.
The regression is a change that replaced the way of doing:
QAbstractItemModel.createIndex(0, 0, PyObject*)
to
QAbstractItemModel.createIndex(0, 0, VoidPtr(PyObject*))
which is not really intuitive, and is generating other issues.
Included modification in the registries too.
Change-Id: Ie6112c6baeb4fc3b22fc78e7edeb66aa4a17c22b
Fixes: PYSIDE-883
Reviewed-by: Christian Tismer <tismer@stackless.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
|
|
|
|
|
|
|
|
| |
Use METH_STATIC only when there are no instance methods in the same class.
Unearthed by a clash of QPlainTextEdit::find() and static QWidget::find(WId).
Change-Id: I891c678e004a0abc3937437b0cac26e8094853de
Fixes: PYSIDE-886
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
| |
After the existence test war activated, the newly generated
files are ready for checkin.
Change-Id: I5118b83fab1a1c52c56166aaf4e8b026722966e0
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
There have been a lot of changes and enhancements when
recursive classes were enabled and type hinting was created.
When these patches are stable and checked in, this follow-up
should be activated and all signature files re-created.
Task-number: PYSIDE-735
Change-Id: I0c80c7986a5e02e380760d0a6b89faa7be2be2ba
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signature module has been quite far developed.
In the course of making things fit for the TypeErrors with
the signature module, now also all signatures from all
shiboken modules are queried.
Instead of writing an extra signature existence test for
shiboken, it made more sense to extend the existing
init_platform.py by the shiboken modules.
In fact, by this query a corner case was exploited that
worked on Python 2 but assertion-crashed on Python 3.
The mapping.py modules were also completed to support
all new PySide2 modules.
Special care had to be taken because the "shiboken2" module
exists both as directory and as binary module. The fix was
tricky, and I will add a task that replaces such workarounds
by a better design.
Task-number: PYSIDE-510
Change-Id: Ibf8e322d1905976a0044a702ea178b7f98629fb4
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PySide project has been split into three pieces, including
Shiboken. This had far-reaching consequences for the signature project.
Shiboken can be run together with PySide or alone,
with tests or without. In every configuration, the signature
module has to work correctly.
During tests, the shiboken binary also hides the shiboken module,
and we had to use extra efforts to always guarantee the accessibility
of all signature modules.
This commit is the preparation for typeerrors implemented with the
signature module. It has been split off because the splitting
is not directly related, besides these unawaited consequences.
I re-added and corrected voidptr_test and simplified the calls.
Remark.. We should rename shiboken to Shiboken in all imports.
I also simplified initialization. After "from PySide2 import QtCore",
now a simple access like "type.__signature__" triggers initialization.
Further, I removed all traces of "signature_loader" and allowed
loading everything from PySide2.support.signature, again. The
loader is now needed internally, only.
Also, moved the type patching into FinishSignatureInitialization
to support modules with no classes at all.
The "testbinding" problem was finally identified as a name clash
when the same function is also a signal. A further investigation
showed that there exists also a regular PySide method with
that problem. The test was extended to all methods, and it
maps now all these cases to "{name}.overload".
Updated the included typing27.py from https://pypi.org/project/typing/
from version 3.6.2 to version 3.6.6 .
Task-number: PYSIDE-749
Change-Id: Ie33b8c6b0df5640212f8991539088593a041a05c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch again contains a complete overhaul of the signature
module. The code was re-implemented to properly support nested
classes. Also, the code was reduced by AutoDecRef and by
adopting a concise C++ style.
Note.. We will add a shiboken signature test and complete
mapping.py after the split into three projects is done. The split
changes a lot and is needed right now!
Signatures were quite complete for PySide, but the support for Shiboken
was under-developed.
Since we are planning to generally enhance error messages by using
the Signature module, we should be able to rely on them to always
produce a signature. Therefore, a general overhaul was needed
to resolve all cornes cases for Python 2 and 3.
Nested classes are supported, as well as plain module functions.
The usage of the typing module might improve over time, but the
Signature implementation is now considered complete.
The loader will respect now the path settings which might not be
the package dir but the build dir. This is more consistens with COIN
testing.
Task-number: PYSIDE-795
Change-Id: I246449d4df895dadf2bcb4d997eaa13d78463d9b
Reviewed-by: Simo Fält <simo.falt@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the preparation for a number of planned applications
and extensions using the signature module.
This general overhaul contains:
- Extraction of signature enumerations into enum_sigs.py,
- a list of current keyword errors in arguments which are unsolved
in shiboken, but temporarily fixed in parser.py (too many for XML),
- fix spurious duplications in multiple signatures
- corrections for keyword errors in function names which cannot be
fixed by Python (quite few),
- fixing "..." arguments into "*args",
- supporting the "slot wrapper" type. This is necessary for
methods like "__add__", "__mul__" etc.
- Create an extra function "get_signature" that has a parameter to
modify the appearance, i.e. without self, without returntype, etc.
Task-number: PYSIDE-510
Change-Id: If16f7bf02c6e7cbbdc970058bb630ea4db2b854a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
Linux is now renamed in a way that the Linux distributions are
recognized.
The names are a _bit_ verbose, but this works, at least :-)
Task-number: PYSIDE-510
Change-Id: Icd52cc92aa0e0b9c6e6b38e632cb89d09766c190
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New exists_{platf}_{version}_ci.py have created, after the
registry was reset in the last commit.
We had a problem with differences between Linux versions
which led to incompatibilities.
Therefore, the platform name has been changed for Linux:
We now distinguish Linux platforms by name and version
by using platform.linux_distribution([:2]).
Example.. "Ubuntu 16.04" becomes 'ubuntu1604'.
When this checkin succeeds, we will need another last checkin.
Change-Id: I98511ee6fc3273055d1990a2cf4f2c028a430455
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The extraction of exists_{platf}_{version}_ci.py has been done
by editing the testresults of COIN test by hand.
Since the beginning of the year, this has become tedious, because
COIN now surrounds everything with time stamps.
This script scans the whole website and extracts all such files.
Creation of the generated python pages becomes really easy now.
The initial scan takes below 30 minutes.
Then it will only parse new URLs.
Task-number: PYSIDE-510
Change-Id: I1273f8a77596ced16c7a3653c89736c3e1796540
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After scanning the whole COIN test website, a lot of changes were
found which we missed by manually inspectation.
This update contains the essence of all changes which accumulated
on the server. They were sorted by date, and the latest version
was taken. Then, the license headers were updated, because
that had been done already on the repository.
Update
------
This check-in did not work on 2018-09-07.
The reason was that we changed the PySide version to 5.11.2,
which was not yet in my update.
While re-doing the generation, I realized that we will not
automatically get the 5.11.2 version, because of the "fallback".
feature.
To reset the existence file, we need to remove them once.
After the checkin, all the files will be freshly created.
I propose also to disable the "fallback" feature. In the
presence of the multiple COIN testing, it is no more
necessary.
Change-Id: I43af314f7bd233a4190762c7204e8aecf81bfe72
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The file signature_test.py contained together with basic signature property
tests also an early form of the existence test, which is meanwhile
implemented in pyside2/tests/registry/existence_test.py .
This part is redundant in signature_test.py, and we remove it. The basic
signature tests stay, and the module is degraded from registry to a normal
test module in pyside2/tests/QtWidgets .
Remark: This simplification was found when I was finishing the
signature documentation. Instead of describing the intermediate state
of the module, it was more straight-forward to remove the duplication.
Task-number: PYSIDE-510
Change-Id: I7fbf65d6d2803926dc00485f1e82349912742942
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Update of the signature registry files for 5.11 .
This works now in a single go, because the missing files
are generated as a flaky test.
Change-Id: I455eba83ae8b81ce97d5d7bcc41e7ff98c5be8bd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
|
|
|
|
|
|
|
| |
It now looks like:
multi-signature count mismatch for 'QOpenGLShaderProgram.setAttributeArray'. Actual 10 [ (int,PySide2.QtGui.QVector2D,int) (int,PySide2.QtGui.QVector3D,int) (int,PySide2.QtGui.QVector4D,int) (int,float,int,int) (int,int,int,int,int) (str,PySide2.QtGui.QVector2D,int) (str,PySide2.QtGui.QVector3D,int) (str,PySide2.QtGui.QVector4D,int) (str,float,int,int) (str,int,int,int,int)] vs. expected 4 [ (int,float,int,int) (int,int,int,int,int) (str,float,int,int) (str,int,int,int,int)]')
Change-Id: I6c99e1fceeeb1647c8b3b291564190b9a2c0dd32
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The available constructors for QByteArray are now:
bytes, bytearray, and QByteArray, unicode is not
accepted anymore.
Also the concatenation is now possible between QByteArrays.
Even though is not possible to initialize a QByteArray
with an unicode, we include the possibility to compare it with
one (Compatibility with PyQt).
The __repr__ and __str__ are now properly working.
There seemed to be a confusion regarding data types between
Shiboken, Python2 and Python3 related to bytes,
so now the structure is based on the flag SBK_BYTES_NAME,
which is define as "bytes" for Python3 and "str" for Python2.
Many tests were modified to properly handle string,
using the `py3kcompat` module.
Task-number: PYSIDE-232
Change-Id: I8b671f367c60a0870c72dcbe5662106b3225037d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add QCameraFeedbackControl, QMediaService, QMediaServiceCameraInfoInterface,
QMediaServiceDefaultDeviceInterface, QMediaServiceFeaturesInterface,
QMediaServiceProviderHint, QMediaServiceSupportedDevicesInterface,
QMediaServiceSupportedFormatsInterface, QMediaTimeInterval,
QMediaVideoProbeControl, QMetaDataReaderControl and
QMetaDataWriterControl.
Add commented out classes QCameraFlashControl and
QCameraFocusControl with explanatory comment.
Task-number: PYSIDE-487
Change-Id: I4125ee2088bde487c36c3c13dd7b05d6667b0711
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|