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!
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.
* 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>
* Applied patch as discussed in #1040
* Adding extra compilation flags to extensions #1040
tlcore, dbcore and libcore did not have compilation flags.
It failed compiling on Macos because it did not use C++11.
Co-authored-by: Thomas Ferreira de Lima <tlima@princeton.edu>
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 []