Commit Graph

50 Commits

Author SHA1 Message Date
Matthias Koefferlein ff824af311 Regenerating Python stubs 2024-06-08 16:06:51 +02:00
Matthias Koefferlein 43066284d5 Updating stubs and DRC/LVS doc 2024-04-30 19:27:34 +02:00
Matthias Koefferlein 529d69c901 regenerating stubs and DRC/LVS doc. 2024-03-28 22:11:47 +01:00
Matthias Köfferlein fa14afbbf3
Pcell limits (#1654)
* Klayout PyCell integration
-added tl::optional as derivate of std::optional for c++17 and above, reduced
 implementation otherwise
-fixed missing include for c++17 and above
-added range constraints for PCell parameter

Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>

* tl::optional now based on internal implementation, added tests and tl::to_string binding

* Refactoring the range into min_value and max_value attributes without action and resolution.

* Integration of feature into PCell framework

* Cleanup and fixed some compile issues

* Cleanup, added tests

* [consider merging] Added pymod distutil_src files to dependencies.

* Updated Python stubs

* User feedback: upon entering an invalid value string into an edit box, do not reset the field

---------

Signed-off-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: ThomasZecha <zecha@ihp-microelectronics.com>
Co-authored-by: Matthias Koefferlein <matthias@klayout.de>
2024-03-13 21:50:48 +01:00
Matthias Koefferlein 4789e2effb Merge tag 'v0.28.17' 2024-02-18 22:30:05 +01:00
Matthias Koefferlein 250c23eb97 Update of Python stubs 2024-02-16 15:51:40 +01:00
Matthias Koefferlein 1e7bd5b765 Updating Pythong stubs and doc. 2024-02-12 11:36:28 +01:00
Matthias Koefferlein d1695b88af Merge branch 'wip' 2023-12-23 18:05:54 +01:00
Matthias Koefferlein 16766a21f9 Updating python stubs 2023-12-08 22:07:22 +01:00
Matthias Koefferlein 5961eab84b Regenerating stubs and DRC/LVS doc 2023-11-21 23:10:10 +01:00
Matthias Koefferlein b1d8234b61 Trying to fix fails on Windows 2023-10-19 23:03:46 +02:00
Matthias Koefferlein 261d0249e8 Merge branch 'wip' 2023-10-19 21:23:07 +02:00
Matthias Koefferlein 8212b7cefd Updated Python stubs 2023-09-12 07:46:38 +02:00
Matthias Koefferlein 7bf23e7471 Fixed Python module name 2023-08-11 21:48:00 +02:00
Matthias Koefferlein 254015617d Merge branch 'wip' into wip2 2023-08-11 19:17:01 +02:00
Matthias Koefferlein ef493795cc Updated stubs 2023-08-07 22:42:00 +02:00
Matthias Koefferlein e965f87f58 Merge branch 'master' into wip 2023-07-15 22:48:53 +02:00
Matthias Koefferlein 2ed27ff937 Preparations for 0.28.10 2023-07-05 18:53:45 +02:00
Matthias Koefferlein 3a5ac0d901 Based python stubs on PyPI module now instead of pymod (no Qt dependencies) 2023-06-11 16:47:15 +02:00
Matthias Koefferlein 92e213aaab Preparations for 0.28.9, updated python stubs 2023-06-10 10:17:52 +02: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 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 068849a634 Refactoring, primary goal is to centralize the definition of PCellDeclarationHelper in Python 2023-03-10 23:22:30 +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 3e8f03ef5f Synchronizing Python PCellDeclarationHelper between the two implementations (for standalone module + build-in for app) 2023-03-07 23:43:12 +01:00
Matthias Köfferlein addb7148f6
Merge pull request #1301 from KLayout/wip
Wip
2023-03-04 19:32:06 +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 04626f9c2b python module: import klayout.lay implies klayout.db now to always enable stream readers 2023-02-25 12:14:19 +01:00
Thomas Ferreira de Lima 094768997f backporting importlib.metadata for python<3.8 2023-02-15 10:14:55 -05:00
Matthias Koefferlein dd466beca8 Simple implementation of __version__ 2023-02-14 22:41:03 +01:00
Matthias Koefferlein 43089f31e4 Doc updates 2022-12-09 23:53:41 +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 2b60e2f6e9 Preventing overriding of getters by is_.. predicates 2022-10-24 21:06:03 +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 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 249642d5f3 Python module tests generalized 2022-05-15 20:17:23 +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 b2b5e5ad55 Modifications to enable building of Qt-less canvas in setup.py 2022-05-12 01:53:16 +02:00
Matthias Koefferlein 1a30fdf4b7 Exceptions must not be strings in Python 2020-04-25 23:25:53 +02:00
Matthias Koefferlein 61a61a2a5a WIP: added lib module to qmake-based python module build
This works:

  import klayout.db
  import klayout.lib
  print(klayout.db.Library.library_names())   # says ["Basic"]

Also works:

  from klayout import *

Does not work:

  # import klayout.lib needs to be done before the libraries
  # are used initially
  import klayout.db
  print(klayout.db.Library.library_names())   # says []
  import klayout.lib
  print(klayout.db.Library.library_names())   # says []
2019-04-03 01:07:22 +02:00
Thomas Ferreira de Lima 6b37e67de6
fixing pya module. adding tests 2018-12-20 16:10:55 -05:00
Matthias Koefferlein 00a124ce64 Added pya compatibility module 2018-10-23 23:43:52 +02:00
Matthias Koefferlein b80ce12c12 Some refactoring to fix qmake-based pymod builds
- Unify structure of Python module sources so the pymod.pri can be used for all modules
- switch to tlcore, dbcore and rdbcore + distutils_src wrapper modules
2018-10-22 20:53:49 +02:00
Thomas Ferreira de Lima c1dbb023ae
fixing editable install 'python setup.py develop' 2018-10-19 19:09:20 -04:00
Thomas Ferreira de Lima c3ab951c8a
passing python unit tests 2018-10-19 19:02:38 -04:00
Thomas Ferreira de Lima 87a49007ff
Fixing distutils_src folder structure due to setuptools bug
Also: adding PCellDeclarationHelper to klayout.db
2018-10-19 18:53:37 -04:00
Thomas Ferreira de Lima d3fa4465f6
Renaming core modules to klayout.dbcore, klayout.rdbcore and klayout.tlcore 2018-10-19 17:55:56 -04:00
Matthias Koefferlein 9dcfa140c3 Added __init__.py file to Python package. 2018-07-15 19:33:44 +00:00