Matthias Koefferlein
dd0cfe9b97
Trying to fix issue
2023-11-25 01:00:20 +01:00
Matthias Koefferlein
bcec400e09
Fixed a crash with -without-qt: Python appears to need a non-empty application path upon initialization
2023-11-11 10:47:39 +01:00
Matthias Koefferlein
261d0249e8
Merge branch 'wip'
2023-10-19 21:23:07 +02:00
Matthias Koefferlein
4e83cab061
Proper Python stack trace in debugger for Python 3.10
2023-08-26 15:44:54 +02:00
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
Matthias Koefferlein
c012bb846e
Cherry-picked Python type hint enhancements from master
2022-10-19 22:13:03 +02:00
Thomas Ferreira de Lima
4d4f4b643b
Added python stubs with type hinting and documentation. ( #1125 )
...
* Added python stubs with type hinting and documentation.
The documentation was extracted by inspecting the docstrings within each class and methods.
This should enable type hinting and checking by IDEs like VSCode.
The stubs were automatically generated, and have not been manually curated. (TODO)
* created tl ArgType to python type translator
* Fixing a pyaModule.cc bug
* almost finished stubgen
* fixing little bug in classes defined within classes
* Release version of the stubgen script. Good enough for release.
* Adding notes
* Including stubs when installing from source
* typechecking bugfix: missed checking is_iter()
* Cleaning up unused code for merge review
* Including stubs when installing from source (part deux)
* Putting the GenericDeviceExtractor name setting into the right place.
* Updating python stubs
Co-authored-by: Matthias Koefferlein <matthias@koefferlein.de>
2022-09-01 00:41:42 +02:00
Matthias Koefferlein
590c4a6b31
Argument numbers/names for Ruby too
2022-07-30 01:32:27 +02:00
Matthias Koefferlein
7d078ed041
Express argument details in Python call errors
2022-07-29 23:58:19 +02:00
Balint Cristian
8705de49f7
Support python 3.11 changes. ( #1104 )
2022-06-29 00:58:23 +02:00
Matthias Koefferlein
26dbb4003e
Better error messages on missing module imports in Python modules
2022-05-13 23:20:58 +02:00
Matthias Koefferlein
5facc418cb
WIP: futher improvements on Python module for Qt-less case
2022-05-12 23:42:21 +02:00
Matthias Koefferlein
a1318599fe
Fixed #1054 (only an issue in debug builds so far)
2022-04-04 23:28:16 +02:00
Matthias Köfferlein
51cf918f56
Issue 1029 - Crash on QTreeViewItem#setBackgroundColor ( #1032 )
...
* Fixed issue #1029
The problem happened because in the described case the
tl::Variant used as a intermediate container holds the
Python QBrush object and when it gets deleted, the
QBrush object is deleted too.
* Added tests
2022-03-16 23:27:25 +01:00
Matthias Koefferlein
ffb81a66ea
Fixed Python 3.10 builds
2022-02-05 19:46:53 +01:00
Matthias Koefferlein
12fd26663d
Merge branch 'qt6'
2022-01-06 21:48:02 +01:00
Matthias Koefferlein
10456516db
Updated copyright to 2022, preparations for 0.27.6 (was delayed due to code signing certificate issues)
2022-01-04 21:20:04 +01:00
Matthias Koefferlein
2d334bd88d
Some code simplification
2021-12-11 01:09:07 +01:00
Matthias Koefferlein
ca304b15c8
Enable multi-base support for RBA + Qt binding
2021-12-11 00:14:10 +01:00
Matthias Koefferlein
f15db66fc4
Providing a different implementation of the multi-base mixin concept for Python to support multiple bases in Qt binding (e.g. QIODeviceBase)
2021-12-10 00:53:51 +01:00
Matthias Koefferlein
202ac55200
Preparations for multiple bases for Python objects
2021-12-08 23:53:38 +01:00
Matthias Koefferlein
9c0e94e63c
WIP: Allowing extension (mixin) classes
...
Needed to represent QIODeviceBase as a second base class for
QIOdevice, QFile etc. Additional base classes are supported but
in a rather limited way. They only contribute constants like enums.
No methods can be provided this way (a limitation of the method
enumeration scheme which only supports one base classe)
2021-12-07 23:24:08 +01:00
Matthias Koefferlein
ab97a4722d
WIP: fixed some Qt binding and GSI issues, added tests
2021-12-04 22:15:04 +01:00
Matthias Koefferlein
709ed19e13
Added first version of Qt binding for Qt6
2021-12-02 23:40:31 +01:00
Matthias Koefferlein
ab350078a0
Cross-calling of Python from Ruby and much more ...
2021-11-13 19:57:31 +01:00
Eugene Zelenko
d5c9067d8f
Fix misspellings in various modules.
2021-06-11 20:11:37 -07:00
Matthias Köfferlein
e6ab8c2483
Issue 771 ( #773 )
...
* Fixed the issue - Byte array variant was not properly converted to Python/Ruby objects.
* Added tests + properly converting byte arrays to byte array variants in Python.
2021-04-19 22:28:27 +02:00
Matthias Koefferlein
d31f87f053
Some issues with the byte array binding fixed, less ambiguitites with Qt bindings, tests added.
2021-01-24 23:44:40 +01:00
Matthias Koefferlein
5aac018503
Mapping QByteArray (and std::vector<char>) to Python 'bytes' now.
2021-01-24 17:36:40 +01:00
Matthias Koefferlein
d1e6845ae4
Replaced std::auto_ptr by std::unique_ptr because the latter is deprecated
2021-01-23 21:55:51 +01:00
Matthias Koefferlein
11e9f89fc2
Introduced normalization into region/edges/edge pairs/texts tests to get rid of platform dependency because of unordered_set implementation details.
2021-01-19 08:03:42 +01:00
Matthias Koefferlein
7d4310d343
Updated copyright to 2021
2021-01-05 22:57:48 +01:00
Matthias Koefferlein
4ec00fb129
Fixed an issue with wrapping new objects into tl::Variants which are returned directly. For these objects, ownership needs to be transferred to the script.
2020-12-27 17:09:06 +01:00
Matthias Koefferlein
a20f0d5891
Also provide 'void to self' return values for Python.
2020-08-31 23:55:26 +02:00
Matthias Koefferlein
6aff74c844
Merge branch 'master' into issue-588
2020-07-08 23:29:27 +02:00
Matthias Koefferlein
beec19951d
Candidate for fix.
2020-07-05 14:09:23 +02:00
Matthias Koefferlein
fc75bf72f8
Avoid a segfault when the owner of a callable went out of scope and got deleted (pya): null weak pointer happens
2020-06-15 01:28:49 +02:00
Matthias Koefferlein
880b9904cf
WIP Netlist probing will deliver an instantiation path now.
2020-06-14 22:04:16 +02:00
Matthias Koefferlein
15567d3d27
Some small fixes to make clang-analyze happy.
2020-04-26 09:33:10 +02:00
Matthias Koefferlein
5bedd3cd04
Removed tab characters from sources.
2020-04-25 23:27:29 +02:00
Matthias Koefferlein
8050a54bc8
Fixed a potential null derference issue.
2020-04-25 23:06:41 +02:00
Matthias Köfferlein
865076588b
Fixed issue #530 (events are mentioned as getters two times) ( #531 )
2020-04-05 15:11:18 +02:00
Matthias Koefferlein
9afcec25bc
Fixed #526 - Make scripe debugging more reliable
...
Problem: the debugger was printing an object's value as string.
The effect is that for big objects "to_s" will deliver huge strings
(e.g. polygons, netlists ...). "inspect" is better (already used
for Python), but it's aliased to "to_s" in Python and Ruby.
Huge strings will stall the debugger.
The solution is to stop this aliasing (Ruby 2.x doesn't do it
itself anymore) and use "inspect" consistently for Python and
Ruby.
Details can still be printed in the console.
2020-03-26 22:50:12 +01:00
Matthias Koefferlein
b8c82c4f8b
Updated copyright notice to 2020
2020-01-05 00:59:43 +01:00
Matthias Koefferlein
3bf45f3638
Fixed MSVC build error.
2019-11-11 23:23:47 +01:00
Matthias Koefferlein
b7094affa4
Fixed a dummy error message on Windows/Python 3.7 and really ignore
2019-11-11 21:53:19 +01:00
Matthias Koefferlein
9e4bd31010
Fixed issue #386 by mapping 'None' to 'None_' in Python
2019-11-01 17:53:31 +01:00
Matthias Koefferlein
67526c7f4e
Fixed #372 (build issue with 64 bit coordinates)
2019-10-05 20:06:30 +00:00
Matthias Köfferlein
f82e7929d8
Fixed a conversion issue with ints on MSVC
...
Because long is 32bit on Windows (like int), the
conversion from long to unsigned int was subject
to sign overflow. This was fixed by going to
unsigned int via unsigned long.
2019-07-20 00:28:32 +02:00
Matthias Koefferlein
a4d2be7fbf
Merge remote-tracking branch 'origin/master' into dvb
2019-06-19 23:14:27 +02:00
Matthias Köfferlein
38ec560458
Merge pull request #280 from KLayout/issue-276
...
Fixed #276 (Layer properties name cannot be updated)
2019-06-18 18:44:55 +02:00