Commit Graph

4181 Commits

Author SHA1 Message Date
Matthias Koefferlein b35113b80e Bugfix. 2023-04-18 22:52:05 +02:00
Matthias Koefferlein b36eb04afa Meta info persistency also for OASIS 2023-04-18 22:34:11 +02:00
Matthias Koefferlein 78da3effa2 Next steps - persistency of meta info 2023-04-18 21:24:26 +02:00
Matthias Koefferlein b14c630ce9 Scheduling update for 0.28.8 2023-04-16 21:40:53 +02:00
Matthias Koefferlein 541f9a377f Small refactoring, added persisted flag for meta info 2023-04-16 21:31:25 +02:00
Matthias Koefferlein 1a0542f155 Fixed two compiler warnings of hidden virtual methods 2023-04-16 21:31:02 +02:00
Matthias Koefferlein df4221cfc9 First features to support cell meta data 2023-04-16 20:25:30 +02:00
Matthias Köfferlein 5083e6e45e
Merge pull request #1340 from KLayout/issue-1339
Added a method 'widget' to LayoutView to deliver the QWidget object f…
2023-04-16 15:09:28 +02:00
Matthias Köfferlein d560027790
Merge pull request #1334 from KLayout/issue-1327
Issue #1327 fixed (segfault in pymod finalization code)
2023-04-13 22:55:02 +02:00
Matthias Köfferlein 31b34eeb8c
Merge pull request #1333 from KLayout/issue-1328
Fixed issue #1328 (width of layer selection boxes too small)
2023-04-13 22:54:48 +02:00
Matthias Köfferlein 69097bbf04
Merge pull request #1332 from KLayout/issue-1322
Issue #1322 (Net tracer tech component manipulation methods)
2023-04-13 22:54:29 +02:00
Matthias Köfferlein fc014efe80
Merge pull request #1331 from KLayout/issue-1321
Implemented tilde expansion, internal stream path names are now absol…
2023-04-13 22:54:12 +02:00
Matthias Koefferlein dc689e52d1 Added a method 'widget' to LayoutView to deliver the QWidget object for the view 2023-04-13 22:50:58 +02:00
Matthias Koefferlein 317617a14a Fixed unit tests for Windows 2023-04-08 09:08:31 +02:00
Matthias Koefferlein 015263fb0e Trying to fix unit test fails 2023-04-07 17:34:23 +02:00
Matthias Koefferlein 9c1da8d3e1 Fixed issue #1328 (width of layer selection boxes too small)
Also: clip and fill dialog now display layer names from
the layer view. Fixed geometry of fill dialog.

Hope I got all places where the layer selection box was
configured as adjust size = on first show.
2023-04-07 11:44:20 +02:00
Matthias Koefferlein 63a4fe8d77 Issue #1327 fixed (segfault in pymod finalization code) 2023-04-07 10:59:30 +02:00
Matthias Koefferlein 30d2992f56 Issue #1322 (Net tracer tech component manipulation methods) 2023-04-07 10:20:17 +02:00
Matthias Koefferlein 0802bc845d Extended unit test 2023-04-07 10:07:26 +02:00
Matthias Koefferlein 19fbc5c144 Implemented tilde expansion, internal stream path names are now absolute, fixed tests 2023-04-07 00:19:10 +02:00
Matthias Koefferlein 0fd052baa6 Simplify pymod test for better CI integration 2023-04-01 09:13:32 +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 ed20ced941 Using data holder approach also for Qt4 QImage 2023-03-27 21:59:41 +02:00
Matthias Koefferlein 80987a6408 Provide more lifetime management in Qt bindings also for Qt4 2023-03-26 22:51:06 +02:00
Matthias Koefferlein acd9d6b8c5 Backward compatibility to Qt 5.12.8 and 5.12.11, fixed some test fails for Qt4 2023-03-26 22:47:56 +02:00
Matthias Koefferlein 0cae15c6fa Docu updates 2023-03-26 22:11:05 +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 1cd033e168 Qt bindings: preventing signals to shadow properaties, added script to generate tables 2023-03-26 18:01:22 +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 79ad6b3fae Qt binding: Removing ambiguitiy between QLatin1String and const char * 2023-03-26 00:56:01 +01:00
Matthias Koefferlein 40d3fd41b1 Regenerating Qt binding sources with the event/property caches 2023-03-26 00:35:46 +01:00
Matthias Koefferlein ba27951991 Regenerating Qt6 bindings with the latest Qt5 enhancements 2023-03-26 00:19:21 +01:00
Matthias Koefferlein 31aa45dce4 Qt5 binding enhancements
- Based on Qt 5.12.12 now (tested to build on 5.15)
- QImage constructor with binary data
- More classes, specifically QLibraryInfo for Qt version
- QLayout and derivatives take ownership over widgets added
2023-03-25 22:54:54 +01: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 fd0c60761f Merge branch 'master' into wip 2023-03-24 15:56:48 +01:00
Matthias Koefferlein 02e9f605d9 Implemented .lib for Spice reader - issue #1320 2023-03-24 14:31:49 +01:00
Matthias Koefferlein a39441cdbd Some alignment of Spice reader details with ngspice (not all possible ways of specifying R, L or C elements are supported currently) 2023-03-24 13:29:14 +01:00
Matthias Koefferlein b979219007 Fixed previous implementation - was not fully effective 2023-03-16 20:06:07 +01:00
Matthias Koefferlein 178cb29773 Fixed a function call typo 2023-03-16 10:05:36 +01:00
Matthias Koefferlein 1182979a5c Fixed issue #1315 (Cannot export layers from Marker Browser in viewer mode) 2023-03-15 23:35:39 +01:00
Matthias Koefferlein 2166f2bb21 Some memory optimization potential with tiled processor to improve XOR memory footprint (box-like polygons stored as boxes, polygon references) 2023-03-15 23:22:04 +01:00
Matthias Koefferlein ffbcfc5490 Trying to reduce memory overhead of tiling processor - using box objects when possible 2023-03-12 22:10:49 +01:00
Matthias Koefferlein bcaefefded Cleanup of box scanner implementation 2023-03-12 19:45:39 +01:00
Matthias Koefferlein 741c9d9ac5 Performance enhancement of flat space DRC in some cases 2023-03-12 19:45:24 +01:00
Matthias Koefferlein 55dbf85b4b Some refactoring of Spice reader with the goal to simplify delegate implementation, removing static instance of default delegate 2023-03-12 17:03:15 +01:00
Matthias Koefferlein db8f9d5bcb Spice reader enhancements
Basic goal is to align ngspice and KLayout Spice
format comprehension. ".options scale" was implemented
together with a number of other patches.
Consistency has been confirmed with respect to these
features and formula evaluation.
2023-03-12 15:36:50 +01:00
Matthias Koefferlein f5fd47bd4b Fixed standalone Python module builds 2023-03-12 00:53:42 +01:00
Matthias Koefferlein 6955d7d0c7 Better handling of inputs in deep mode after manipulating the hierarchy of the input layout 2023-03-12 00:26:18 +01:00
Matthias Koefferlein 047455c560 Merge branch 'master' into wip2 2023-03-12 00:10:23 +01:00
Matthias Koefferlein 5a1e845a64 [consider merging] regenerating pyi stubs, sorting methods by name for better stability of files, small patch (missing box ctor arg names) 2023-03-11 19:56:02 +01:00
Matthias Koefferlein ebac0796e0 [consider merging] Fixed Qt Binding for Qt 5.15.2 where an include is missing 2023-03-11 19:55:59 +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 ce31f47918 [consider merging] regenerating pyi stubs, sorting methods by name for better stability of files, small patch (missing box ctor arg names) 2023-03-11 19:55:06 +01:00
Matthias Koefferlein 18ae970671 Fixed Qt bindings in pya module 2023-03-11 01:03:50 +01:00
Matthias Koefferlein d97942ac3a [consider merging] Fixed Qt Binding for Qt 5.15.2 where an include is missing 2023-03-11 00:24:21 +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 068849a634 Refactoring, primary goal is to centralize the definition of PCellDeclarationHelper in Python 2023-03-10 23:22:30 +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 92204915a4 Refactoring: pya is a native binary package now. It's available to pymod, but may also be the basis of the built-in pya module. 2023-03-08 23:54:32 +01:00
Matthias Koefferlein 0253c25b30 Avoids a Qt warning internally 2023-03-08 22:37:56 +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 c3e831f96f Enhancing pymod tests (added lib, more robust, added pya also for Qt bindings off) 2023-03-07 23:44:12 +01:00
Matthias Koefferlein 3e8f03ef5f Synchronizing Python PCellDeclarationHelper between the two implementations (for standalone module + build-in for app) 2023-03-07 23:43:12 +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 1b3e8e14c5 Netlist reader: anonymous circuits are not checked for known parameters 2023-03-06 22:38:10 +01:00
Matthias Koefferlein be0d155848 Fixed issue #1309
Fixed polygon rasterizer.
Reason was the clip edge function that delivered
vertical edges from skew ones due to rounding.
These must not be skipped when exactly on a pixel
boundary as true vertical edges are.
2023-03-04 22:20:06 +01:00
Matthias Koefferlein feb50f49dd Enabling some more PNG related features by falling back to Qt without libpng 2023-03-04 20:32:44 +01:00
Matthias Köfferlein 2facc75807
Merge pull request #1305 from KLayout/issue-1304
Fixed issue #1304 (terminal order for MOS devices)
2023-03-04 19:32:46 +01:00
Matthias Köfferlein f413635deb
Merge pull request #1303 from KLayout/issue-1302
Implemented solution for issue #1302 (Select filter is not applied in…
2023-03-04 19:32:29 +01:00
Matthias Köfferlein addb7148f6
Merge pull request #1301 from KLayout/wip
Wip
2023-03-04 19:32:06 +01:00
Matthias Köfferlein 3e325763d9
Merge pull request #1296 from KLayout/issue-1271
Issue 1271
2023-03-04 19:31:39 +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
Matthias Koefferlein 4ead7b46a1 Test updates 2023-02-27 21:27:19 +01:00
Matthias Koefferlein 2236ced5ae Refining solution for issue-1249: properly reading the edge we project to in single-edge partial move mode 2023-02-27 20:49:45 +01:00
Matthias Koefferlein af647e2efd Test updates 2023-02-27 19:37:59 +01:00
Matthias Koefferlein 1ce221794b More test data updates 2023-02-27 01:08:37 +01:00
Matthias Koefferlein ceb82a15d8 Fixed merge issues 2023-02-27 00:27:23 +01:00
Matthias Koefferlein ebcf242a9e Merge branch 'more-spice' into issue-1304 2023-02-27 00:21:20 +01:00
Matthias Koefferlein 69d975c736 Update to test data 2023-02-27 00:19:14 +01:00
Matthias Koefferlein 0fa9bc6e2b Fixed issue #1304 (terminal order for MOS devices) 2023-02-26 23:30:17 +01:00
Matthias Koefferlein 90cf06b3ac More precise help text for generic reader options. 2023-02-26 21:57:04 +01:00
Matthias Koefferlein 3ac1385d87 Another testcase for Spice reader with parametric subcircuits, .param statements, bug fixes 2023-02-26 21:31:34 +01:00
Matthias Koefferlein 2e3c859cd3 Specified release version for Spice reader enhancements 2023-02-26 19:52:05 +01:00
Matthias Koefferlein 82b372ab14 Implemented solution for issue #1302 (Select filter is not applied in partial mode) 2023-02-26 17:07:04 +01:00
Matthias Koefferlein 04626f9c2b python module: import klayout.lay implies klayout.db now to always enable stream readers 2023-02-25 12:14:19 +01:00
Matthias Koefferlein a3ff671eb9 Python debugger compatible with PyQt
Problem was that PyQt generates spontaneous Python events
that do not originate from KLayout itself. This made the
IDE detect a stop request and the application crashed.
2023-02-23 17:07:41 +01:00
Matthias Koefferlein 90b59ca14d Bugfix - properly removing plugins when they are unregistered (unlikely) 2023-02-23 17:07:22 +01:00
Matthias Koefferlein 08bfbbae81 Test updates 2023-02-22 16:08:48 +01:00
Matthias Koefferlein d20e4b2128 Bug fixes, adjusted test data 2023-02-22 15:54:28 +01:00
Matthias Koefferlein be5e16c125 WIP: bug fixing, new test cases 2023-02-22 13:11:30 +01:00
Matthias Koefferlein 44e123f343 WIP: Spice reader - resolve model and net names by variables 2023-02-22 10:20:48 +01:00
Matthias Koefferlein 18f2b57c3d WIP: generlizing parameter values for spice reader - can be strings too 2023-02-22 10:15:05 +01:00
Matthias Koefferlein 51c4b7ed28 WIP 2023-02-22 09:48:08 +01:00
Matthias Koefferlein 715c7ed282 WIP: rewriting Spice expression parser to support more functions 2023-02-21 18:10:36 +01:00
Matthias Koefferlein b421f1e499 WIP: added tests for variant fuzzy compare 2023-02-21 16:05:45 +01:00
Matthias Koefferlein e709218db9 WIP: fuzzy compare for tl::Variant with float values 2023-02-21 15:57:54 +01:00
Matthias Koefferlein 80fa7e47e2 WIP: tests pass 2023-02-21 00:49:23 +01:00
Matthias Koefferlein 49d3edd26a WIP: debugging, first tests pass. 2023-02-21 00:17:41 +01:00
Matthias Koefferlein ac5616a583 WIP 2023-02-21 00:15:22 +01:00
Matthias Koefferlein 736676701d WIP 2023-02-20 23:54:04 +01:00
Matthias Koefferlein 459de47448 WIP: spice reader refactoring to support parametric subcircuits 2023-02-20 23:25:23 +01:00
Matthias Koefferlein 2214345df2 WIP 2023-02-20 22:59:03 +01:00
Matthias Koefferlein 40fd350d85 WIP 2023-02-20 22:06:45 +01:00
Matthias Koefferlein 432b542f3c Merge branch 'master' into wip 2023-02-19 20:30:49 +01:00
Matthias Köfferlein a04f2940ac
Merge pull request #1298 from KLayout/lefdef-wip
Lefdef wip
2023-02-19 20:29:03 +01:00
Matthias Koefferlein 817bb396f6 PNG support for PixelBuffer taken from Qt also if Qt bindings are off 2023-02-19 20:25:21 +01:00
Matthias Koefferlein 79868c40cd Some enhancements for image editing (e.g. selection remains after moving handles) 2023-02-19 19:54:40 +01:00
Matthias Koefferlein df562f502a Avoid a segfault while editing a ruler. This happens is both a selection and a transient selection is active. 2023-02-19 19:00:02 +01:00
Matthias Koefferlein 8038acc236 Updated test data 2023-02-18 09:50:34 +01:00
Matthias Koefferlein 4e3c106b27 Merge branch 'master' into issue-1249 2023-02-18 09:44:48 +01:00
Matthias Köfferlein 868650a61c
Merge pull request #1295 from KLayout/issue-1294
Fixed issue #1294 (grid snap not working in partial mode)
2023-02-18 00:11:45 +01:00
Matthias Koefferlein f6edc9c802 Implemented solution for issue #1249 (persist layer properties in session) 2023-02-17 23:41:36 +01:00
Matthias Koefferlein 4eb48738e4 Confirming that issue #1282 is fixed 2023-02-17 00:02:59 +01:00
Matthias Koefferlein 33c858924f Some LEF reader fixes based on the complete sample 2023-02-16 23:51:11 +01:00
Matthias Köfferlein 3eee8a6404
Merge pull request #1289 from KLayout/issue-1287
Fixed issue #1287
2023-02-16 21:26:02 +01:00
Matthias Koefferlein 7903b9d70d Fixed issue #1294 (grid snap not working in partial mode) 2023-02-16 21:23:59 +01:00
Matthias Koefferlein 66a6832594 Some enhancements to DEF reader based on the 'complete' example. VIAs in FILL und PIN, a variety of syntax fixes. 2023-02-15 22:11:12 +01:00
Thomas Ferreira de Lima 3c9507ab63 added test for issue 1265 (writing and reading pngs) 2023-02-15 11:01:47 -05:00
Thomas Ferreira de Lima 094768997f backporting importlib.metadata for python<3.8 2023-02-15 10:14:55 -05:00
Matthias Koefferlein f73b229024 WIP 2023-02-15 00:29:43 +01:00
Matthias Koefferlein 93d9298b51 Formally minkowsky sum now is allowed with empty polygon arguments 2023-02-15 00:29:26 +01:00
Matthias Koefferlein a54ea1f273 DEF reader bug fixes, turned some errors into warnings temporarily. 2023-02-15 00:28:41 +01:00
Matthias Koefferlein dd466beca8 Simple implementation of __version__ 2023-02-14 22:41:03 +01:00
Matthias Koefferlein a2aead8c5c Fixed issue #1287
The problem was introduced during implementation
of multi-segment rulers.

This patch also fixes the tab order of the ruler
properties dialog and adds some tests.
2023-02-12 22:10:27 +01:00
Matthias Koefferlein 026e0fa591 Fixed issue #1275 (size after smooth does not work) 2023-02-04 19:56:06 +01:00
Matthias Koefferlein 48ec208843 Bugfix: LVS - same_nets should not be picky about net names - they may be missing in some circuits 2023-02-02 12:24:50 +01:00
Matthias Koefferlein 0e60c90514 Bugfix LVS: same_nets with two arguments was not working as described 2023-02-02 00:30:00 +01:00
Matthias Koefferlein 6941976cfb Merge branch 'wip' 2023-01-29 17:18:30 +01:00
Matthias Koefferlein 115b89c711 Merge branch 'issue-1259' 2023-01-29 17:18:25 +01:00
Matthias Koefferlein 1a1139299a Properly populating the editor options pages 2023-01-29 00:12:31 +01:00
Matthias Koefferlein 2d6091cf0a Fixed MSVC builds 2023-01-26 21:51:07 +01:00
Matthias Koefferlein 12693ed212 More steps to fully (hopefully) fix issue #1259 - basically it is important to issue enough active_view_changed and active_technology_change events 2023-01-26 20:31:43 +01:00
Matthias Koefferlein cfd21d98bf Merge branch 'issue-1259' 2023-01-26 12:52:23 +01:00
Matthias Koefferlein 500fa5b62d Avoid loooong error messages in DRC and LVS by bypassing the engine's inspect implementation which emits a lot of internal members 2023-01-25 20:42:30 +01:00
Matthias Koefferlein cb4501787f Solved: Partial mode does not support Ctrl+Shift to confine movement direction 2023-01-25 20:41:55 +01:00
Matthias Köfferlein ab8cfee1ea
Merge pull request #1258 from KLayout/wip
Wip
2023-01-24 21:48:27 +01:00
Matthias Koefferlein 85cc50e2c1 Flaw fixed: tech status persisted after last view was closed 2023-01-24 21:35:47 +01:00
Matthias Koefferlein 7600eac8a0 Fixed issue-1259 2023-01-24 21:14:36 +01:00
Matthias Köfferlein 18900215e6
Merge pull request #1262 from KLayout/issue-1253
Fixed isse #1253
2023-01-24 20:38:25 +01:00
Matthias Köfferlein 4b4551338b
Merge pull request #1261 from KLayout/issue-1260
Seems to fix issue #1260
2023-01-24 20:38:10 +01:00
Matthias Köfferlein 2cc1f390ca
Merge pull request #1255 from KLayout/issue-1237
Provide a fix for issue-1237 (Python error messages should include mo…
2023-01-24 20:37:50 +01:00