Commit Graph

167 Commits

Author SHA1 Message Date
Matthias Koefferlein 254015617d Merge branch 'wip' into wip2 2023-08-11 19:17:01 +02:00
Matthias Koefferlein ad114f6137 Fixed unit tests (error messages now have the message class attached) 2023-07-29 01:13:25 +02:00
Matthias Koefferlein 7ac51337ca Script errors now include the class for better readability in Python, normalizing errors in Python 2023-07-28 21:28:09 +02:00
Matthias Koefferlein 58417d5700 pya: adding hint about disambiuation of methods/properties to Python specific doc. 2023-07-23 18:35:36 +02:00
Matthias Koefferlein 292892d1ae Some performance enhancement for Python binding 2023-07-15 22:50:29 +02:00
Matthias Koefferlein e965f87f58 Merge branch 'master' into wip 2023-07-15 22:48:53 +02:00
Matthias Koefferlein 41c5d3f4ff Issue-1397: possible solution 2023-06-13 00:44:42 +02:00
Matthias Koefferlein 5438b9a82f configuration for debugger scope override 2023-06-03 21:25:30 +02:00
Matthias Koefferlein 53fa78c01f Ruby debugger performance boost
Problem was that the file-to-id cache was cleared
upon calling internal Ruby functions (begin_exec
was triggered). In one test case, the execution
performance improved from 6s/320s (without/with debugger)
to 6s/7s (without/with debugger)
2023-05-18 19:43:44 +02:00
Matthias Koefferlein 7ff9b4d8e6 [consider merging] more consistent behavior of RBA/pya: enum classes are properly made available (was for example RBA::Qt::Qt_Keys instead of RBA::Qt_Keys and pya.Qt.Keys was no fully initialized type object) 2023-05-06 00:04:14 +02:00
Matthias Koefferlein 2166437480 Compatibility with other Python version 2023-03-30 20:09:17 +02:00
Matthias Koefferlein 692e5b4a01 Fixed a reference counting bug (Python) 2023-03-29 23:33:00 +02:00
Matthias Koefferlein cb0f2b4166 Enabling pya initialization for app and ut_runner only. 2023-03-29 00:09:26 +02:00
Matthias Koefferlein 1cfe7b10ba Another attempt trying to fix the DLL load issue for pya on Windows - force-load all DLL that are needed by pyacore into the app before importing the module 2023-03-28 00:39:32 +02:00
Matthias Koefferlein 5c57f5ddf8 Maybe fixing ut_runner errors on MSVC 2023-03-28 00:11:34 +02:00
Matthias Koefferlein 7d41078e8c Avoid a segfault: an event may kill the event object itself indirectly. 2023-03-26 21:29:06 +02:00
Matthias Koefferlein fa61f96194 GSI: enabling enums as hash keys and int(enum) in Python 2023-03-26 17:52:33 +02:00
Matthias Koefferlein 2e2ba41250 [consider merging] more consistent behavior of RBA/pya: enum classes are properly made available (was for example RBA::Qt::Qt_Keys instead of RBA::Qt_Keys and pya.Qt.Keys was no fully initialized type object) 2023-03-26 14:21:30 +02:00
Matthias Koefferlein 9a1c776475 Make sure the Python modules are found from the application's installation by prepending their path to sys.path 2023-03-24 19:15:57 +01:00
Matthias Koefferlein bee3d11f62 [consider merging] avoid an assertion in the Python exit code for accessing an already destroyed Python object 2023-03-11 19:55:51 +01:00
Matthias Koefferlein 293a898ae0 [consider merging] avoid an assertion in the Python exit code for accessing an already destroyed Python object 2023-03-10 23:45:37 +01:00
Matthias Koefferlein 8b7e2b2b40 Refactoring of pya - using external module defintions for pya initialization 2023-03-10 21:58:01 +01:00
Matthias Koefferlein 35d9cdb656 Reworked Python initialization
KLAYOUT_PYTHONPATH is copied into PYTHONPATH, so it
is essentially equivalent (no more copying of internally
generated paths).

The installation's pymod folder is added to the path, so
that we can put "klayout.db" etc. there.
2023-03-08 01:15:53 +01:00
Matthias Koefferlein 0204f293b5 Generic environment set/clear functions, file function to get app exe path 2023-03-08 00:52:42 +01:00
Matthias Koefferlein 7d0964655d Experimental: allow importing klayout.x pymods into KLayout itself. 2023-03-06 23:51:58 +01:00
Matthias Koefferlein 9cfc284b8c Synonyms: connect/disconnect for events to get closer to PyQt5 2023-03-06 23:04:55 +01:00
Matthias Koefferlein 1b13d8b591 Merge branch 'master' into issue-1271 2023-03-03 18:42:53 +01:00
Matthias Koefferlein 9335ef8c21 Fixed builds on MSVC 2023-03-03 18:00:24 +01:00
Matthias Koefferlein 6db6e77458 Tired of patching around __version__ ...
This doesn't work. Either Python is too old, import_metadata
isn't there or Azure pipelines do not support that.
Stopping that. Good old plain C++ is still the best solution.
Take that dynamic language hackers!
2023-03-01 00:50:30 +01:00
Thomas Ferreira de Lima 3c9507ab63 added test for issue 1265 (writing and reading pngs) 2023-02-15 11:01:47 -05:00
Matthias Koefferlein d1c28bc3bd Provide a fix for issue-1237 (Python error messages should include more information)
In Python 3.10 the format of the syntax error exception was changed
and parsing through PyArgs_ParseTuple no longer worked. The code
change will re-enable proper syntax error parsing for Python 3.10.
2023-01-17 20:43:13 +01:00
Matthias Koefferlein 8677b38d69 Merge branch 'master' into wip 2023-01-01 22:28:14 +01:00
Matthias Koefferlein a85dbd3d31 Updating copyright notice to 2023 2023-01-01 22:27:22 +01:00
Matthias Koefferlein ca32b34dff Restored ability to build on Python 2 2022-12-28 23:50:38 +01:00
Matthias Koefferlein ea2486eaed Fixed a merge issue 2022-11-09 23:30:08 +01:00
Matthias Koefferlein 1edbd6232f Merge branch 'python-typehints' 2022-11-09 23:13:31 +01:00
Matthias Koefferlein 240281d9ff [consider merging] Important patch: avoids incorrect initialization of Python classes 2022-11-06 01:12:16 +01:00
Matthias Koefferlein 0262926b11 Moved __deepcopy__ implementation and NotImplemented fallback from db.__init__ to C++ implementation for better performance and generalization. Added tests 2022-10-26 10:40:20 +02:00
Matthias Koefferlein a72888e331 Enabling polymorphic re-throw, hence supporting TypeError 2022-10-24 22:03:31 +02:00
Matthias Koefferlein 2b60e2f6e9 Preventing overriding of getters by is_.. predicates 2022-10-24 21:06:03 +02:00
Matthias Koefferlein c8d86f8e73 Improved doc, enough slots for getters and setters for Qt namespace 2022-10-24 20:53:58 +02:00
Matthias Koefferlein 24c6224a84 Do not produce Python methods masked by properties. 2022-10-24 20:31:46 +02:00
Matthias Koefferlein a39d22c438 Fixed problems with reserved words 2022-10-24 19:44:28 +02:00
Matthias Koefferlein 9011af54ac Class properties 2022-10-23 23:47:26 +02:00
Matthias Koefferlein eb31f67aeb Include .pyi in deployment, scrips enhanced for more compatibility with stubtest 2022-10-23 23:18:09 +02:00
Matthias Koefferlein daad80d5d5 Synthesize getters from is_... predicates, added getter for RecursiveShapeIterator#shape_flags 2022-10-23 22:08:06 +02:00
Matthias Koefferlein be6e05da55 WIP: refactoring, added special GSI methods for Python binding 2022-10-23 19:00:41 +02:00
Matthias Koefferlein 2c18bc6c46 WIP: refactoring 2022-10-23 18:31:13 +02:00
Matthias Koefferlein d3a36e66f2 Fixed a compiler warning 2022-10-20 23:29:35 +02:00
Matthias Koefferlein fbd4c84d84 Refactoring of pya/rba/expressions
Goal is to support "*!" which is a variant of multiplication
without the commutative nature.

The refactoring yields a more consistent handling of
Python specializations. Now this happens when the methods
are collected, rather than later. This way, specific behavior
for identically named synonyms can be implemented for example.
This is the case for the "*" operator in Trans which is partially
commutative and partially not.
2022-10-20 23:26:14 +02:00