aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/tests/registry/init_platform.py
Commit message (Collapse)AuthorAgeFilesLines
* Simplify Python Imports For EmbeddingChristian Tismer2019-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* Amend The Python 3.5 FixChristian Tismer2019-03-011-5/+1
| | | | | | | | | | | | 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>
* Prevent Python 3.5 From Crashing The BuildChristian Tismer2019-02-261-1/+5
| | | | | | | | | | | | | | | | | | | 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>
* Modernize cmake buildAlexandru Croitor2019-02-071-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Complete The Signature IntrospectionChristian Tismer2018-12-221-19/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Split The Signature Module After The Project SplitChristian Tismer2018-11-241-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Signature: Implement Nested Classes and Functions for ShibokenChristian Tismer2018-11-151-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Prepare the Signature Module For More ApplicationsChristian Tismer2018-10-111-86/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Update the Signature Registry After ResetChristian Tismer2018-09-131-2/+17
| | | | | | | | | | | | | | | | | | | 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>
* Change license from all the filesCristian Maureira-Fredes2018-05-031-1/+1
| | | | | | | | | | | | | | | | | Removing the word 'project' from all the headers, and changing the PySide reference from the examples to Qt for Python: The following line was used inside the source/ and build_scripts/ directory: for i in $(grep -r "the Qt for Python project" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/the\ Qt\ for\ Python\ project/Qt\ for\ Python/g' $i;done and the following line was used inside the examples/ directory: for i in $(grep -r "of the PySide" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/of\ the\ PySide/of\ the\ Qt\ for\ Python/g' $i;done Change-Id: Ic480714686ad62ac4d81c670f87f1c2033d4ffa1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Rename PySide references to Qt for PythonCristian Maureira-Fredes2018-04-271-1/+1
| | | | | | | | | When referring to the project one should use "Qt for Python" and for the module "PySide2" Change-Id: I36497df245c9f6dd60d6e160e2fc805e48cefcae Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Registry: Trigger re-generation of files for Qt3DChristian Tismer2018-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is phase 2. The files are generated. I only changed the date in the license section. After this check-in, the update is done. From Phase 1: The function registry does not contain the new Qt3D module. This produces no error because the test is configured to only break on missing functions but not on new unknown functions. We provoke a reaction of the system by removing of the 5.9 registry files. The system will generate an error once and produce the desired output. But because of the multiple testing, the test will succeed because the generated file exist on the second run and therefore the test will succeed as a flaky test. There is only one run necessary for all platforms at once. A second check-in will then do the update with the generated data. I also had to fix the testrunner to produce a good listing without labels. Task-number: PYSIDE-487 Change-Id: I06a73d244ce306977fd16223eec4dc491fff3429 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Signature existence tests: Fix generation of the signature fileFriedemann Kleint2018-01-041-2/+4
| | | | | | | | Amends cd1037060e0cbc263e601fb67fbd40d85c8801a1. Task-number: PYSIDE-510 Change-Id: Ic93a6ef4ab846b07b369f691f52240aeedbfbec3 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Signature existence tests: Fall back to previous patch releasesFriedemann Kleint2017-12-211-4/+30
| | | | | | | | | | | In case the reference file for a given patch release does not exist, fall back to a previous one. Replace variables in the init_platform module by functions getEffectiveRefPath(), getRefPath(). Task-number: PYSIDE-510 Change-Id: I208f4618be6e20be5023938850ca0eacc43b0101 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Unify signature registry for py2 / py3 and clean upChristian Tismer2017-12-051-77/+138
| | | | | | | | | | | | | | | | | | | | | | | | | It turned out that there are tiny differences between Python2 and Python3 which make the versions of the registry almost, but not totally equal. There are functions which are slot wrappers in Python2 instead of method wrappers in Python3, and we currently don't support slot wrappers. There are other tiny differences when we switch to Qt 5.9, too. Initially, I thought to split the files for Python2 and Python3, but then it turned out that the problems vanish when we ignore the 'next' and '__next__' functions in both python versions. The filter function is both applied to the generating function and the testing function. Therefore we can keep the existing data intact. I further removed an indentation leftover in cppgenerator.cpp, fixed handling of duplicate entries and improved modularisation of the signature enumerator and formatter. This part will later be moved into the signature library. Task-number: PYSIDE-510 Change-Id: I18f5e8f08fb9b07534003919abe55ab4dafeb2c2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix signature registry on Python2 with .pyc files, part 2Christian Tismer2017-12-041-33/+7
| | | | | | | | | | | | | | There is unfortunately another bad side effect with .pyc files. I had to make sure that not the __file__ attribute is used, but the correct filename is computed, because __file__ can refer to the .pyc file under certain circumstances. Improved error handling, more file type checks and short filenames relative to the project path added for convenience. Task-number: PYSIDE-510 Change-Id: Ia0002fdfb382b7d3681156b1aef42739eb22dcc9 Reviewed-by: Simo Fält <simo.falt@qt.io>
* Fix signature registry on Python2 with .pyc filesChristian Tismer2017-11-301-3/+2
| | | | | | | | | | | | | | | | | There was a problem on Python2 when ci was activated. Because there are .pyc files in the same folder, a leftover .pyc file would be imported and lead to weird results. This problem is not recognized now, but would have effects when we turn on the multiple testing. The intended behavior is that a tests generates an error and a listing once and succeeds for the repeated test runs. This worked in Python3. Now this works the same with Python2. Task-number: PYSIDE-510 Change-Id: Id892715faa8eee1322b28c7e109f3b0b7329f12c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Create a function existence registryChristian Tismer2017-11-271-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the signature module, it is now a straight forward task to generate a registry of all known function signatures. We check that these signatures all exist. One file contains all signatures for one platform and version. The test is only activated when run in the CI system. An initial call creates the expected file as output and raises an error. The result can then be picked up from the error log and added to the repository. The linux2 and linux platforms are now unified. There will be a new version of testrunner.py which is more versatile. In future, this teach-in process will be made much easier because we will be able to view the initial versions without raising an error. Done: linux 5.6.4 Done: darwin 5.6.4 Done: win32 5.6.4 Done: darwin 5.9.3 Done: linux 5.9.3 Task-number: PYSIDE-510 Change-Id: Ib57e1e1771649c95435132a9fc65d86f4a3df05b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Create a function existence registryChristian Tismer2017-11-241-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | With the signature module, it is now a straight forward task to generate a registry of all known function signatures. We check that these signatures all exist. One file contains all signatures for one platform and version. The test is only activated when run in the CI system. An initial call creates the expected file as output and raises an error. The result can then be picked up from the error log and added to the repository. Done: linux2 5.6.4 Done: darwin 5.6.4 Done: win32 5.6.4 Done: darwin 5.9.3 Done: linux2 5.9.3 Done: linux 5.9.3 Task-number: PYSIDE-510 Change-Id: I32dfd5fcd56ca8d91d48a81959cc762cd5340c68 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Create a function existence registrymaya1Christian Tismer2017-11-191-0/+172
| | | | | | | | | | | | | | | | | | | | | With the signature module, it is now a straight forward task to generate a registry of all known function signatures. We check that these signatures all exist. One file contains all signatures for one platform and version. The test is only activated when run in the CI system. An initial call creates the expected file as output and raises an error. The result can then be picked up from the error log and added to the repository. Done: linux2 5.6.4 Done: darwin 5.6.4 Done: win32 5.6.4 Task-number: PYSIDE-510 Change-Id: I4f406cf72d25fdd2336814f6f20129079b8be54f Reviewed-by: Christian Tismer <tismer@stackless.com>
* remove pyside2 and shiboken2 submodulesOswald Buddenhagen2017-05-221-15/+0
| | | | to be replaced by a subtree merge.
* update: bring repositories back in syncChristian Tismer2017-02-151-6/+12
| | | | | | | From time to time, it is good to update the master project. Change-Id: I50c45caf7c37ebb4ea865b4e4f5896e5cd8915fd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Update the pyside-setup submodulesChristian Tismer2016-12-121-10/+6
| | | | | | | | | | From time to time, submodules need to be updated. Actually, I would even like to update the master module after every submodule checkin, but this seems to be not easy to do all the time. Change-Id: I52f266c58086186df05ddcc85085f35e2e28ead7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Accept more errors in "testrunner.py"Christian Tismer2016-11-031-25/+10
| | | | | | | | Testrunner has even more variable texts to recognize. We change the regex slightly so that it always succeeds. Change-Id: Iac156592aac48afb5aea522540ae63c92ca2572a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix OS/X inclusion of framework headers.Alexandru Croitor2016-06-161-6/+25
| | | | | | | | | | | | | | | | | | | | | The recent change that made use of framework headers on OS/X did not work with homebrew Qt, and it didn't work with official builds either, because neither of the chosen include folders contained all the necessary headers to lead to a successful build. Fortunately shiboken actually supports being passed multiple include locations, separated by a colon on OS/X, and a semicolon on Windows. This patch makes sure to always pass the Qt include folder, and in case if the Qt build is a framework build, also passes the root frameworks location, with headers found by shiboken under frameworkName.framewework/Headers. This works for homebrew builds, official builds and custom non-installed prefix / in-source builds of Qt. Change-Id: I47b24e197839883de2ab873461efc1f4d4d33743 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add option to link with libc++ on older OSX versions.Alexandru Croitor2016-05-111-5/+8
| | | | | | | | | | | | | | Versions of OSX lower than 10.9 link libstdc++ by default. Also libstdc++ is linked when the osx minimum deployment target is lower than 10.9. The new option allows explicitly linking libc++ in the cases mentioned above. It is not enabled by default, because most libraries and executables on versions lower than 10.9 are compiled with libstdc++, and mixing standard library versions can lead to crashes. Change-Id: I7397d2bbce2cfceaeb848f25e0bbf1a24ac9bde8 Reviewed-by: Christian Tismer <tismer@stackless.com>
* fix the name pyside2uicChristian Tismer2016-04-191-8/+5
| | | | This was modified, but not corrected in setup.py
* updateChristian Tismer2016-03-011-7/+7
|
* updateChristian Tismer2015-12-291-5/+8
|
* move other readme files from pyside2 into the wikiChristian Tismer2015-12-131-8/+5
|
* merge all PRs unto #44 with updated wiki statusChristian Tismer2015-12-131-5/+8
|
* add project status to the wikiChristian Tismer2015-11-241-8/+5
|
* merge all until #33 inclusiveChristian Tismer2015-11-231-6/+8
|
* merge #21 #22Christian Tismer2015-11-151-8/+6
|
* Merge pull request #20 from empyrical/ws_fix_2Christian Tismer2015-11-141-7/+7
| | | | Add forgotten files to WebSockets module
* Merge pull request #19 from empyrical/ws_fixChristian Tismer2015-11-141-7/+7
| | | | Fix up the QtWebSockets module
* merged PR #15 #16 #17 from empyricalChristian Tismer2015-11-141-5/+8
|
* Merge pull request #16 from empyrical/qmlChristian Tismer2015-11-131-5/+5
| | | | Add Qt5 QML modules
* some tests correctedChristian Tismer2015-11-121-10/+5
|
* Fix pysidetest. We are at 74% good tests.Christian Tismer2015-11-101-7/+9
| | | | | | | As Romain correctly told me, QtCore is needed to be included. The other small bug with huge effects was a forgotten rename of pyside2_global.h. The tests now run without segfaults!
* after signals were fixed, we have the first working alpha that is able to ↵Christian Tismer2015-11-071-7/+8
| | | | show windows!
* merge the new signal supportChristian Tismer2015-11-071-0/+8
|
* updateChristian Tismer2015-10-241-6/+0
|
* suppress another sys info warning on OS XChristian Tismer2015-10-021-5/+5
|
* enforce the minimum supported Qt5 version to be 5.3.0Christian Tismer2015-10-021-8/+5
|
* fixing the fix ;-)Christian Tismer2015-09-281-7/+7
| | | | | CMAKE is a nightmare. And if you don't read the meaning of every variable (like UNIX or CMAKE_HOST_UNIX, which _includes_ APPLE), then the empire strikes back. :-)
* updateChristian Tismer2015-09-281-7/+7
|
* sub-reposChristian Tismer2015-09-281-8/+7
|
* )small fixes (right wiki, name changesChristian Tismer2015-09-251-8/+8
|
* fix a problem with QSysInfo::WinVersionChristian Tismer2015-09-241-7/+8
| | | | | | This always refused to link on OS X. To circumvent this, I have split the QSysInfo entry in Mac and Win version files. The "other" file is always giving a warning, that I suppressed.