Comments (3)
I think generally this is fine. Maybe I can explain why kfactory is doing this.
If your info (and to some degree settings) are kayout serializable types (mainly shapes, this theoretically includes some potentially interesting types such as a full lyp datastructure, therefore enabling saving the lyp within the gds/oas), you can save your layout (or even pdk) and completely restore a (static) state. Meaning if your pdk only contains static cells, you can package it as a gds.
This comes in extremely handy when you want to load for example special cells from the fab or old designs. They still have all the info and even paramters accessible.
But yes, if info should be fully dynamic, we can rename the attribute in kfactory and with that avoid having to have separate types for info.metadata vs the rest of info.
from gdsfactory.
Thanks for the explanation, the info constraint makes a lot more sense in the context of storing the full state within the GDS file.
Technically we can add extra attributes directly to the Component
object for things like test_info or schematic but I think the way we've been doing it where Info
is a catch-all for whatever is preferable. I would want to just modify the Info
model on the gdsfactory side to add the metadata
field and just constrain that field to be klayout-serializable.
Maybe it would make sense to have there be a Metadata
model where we put all the metadata intended to be written to the GDS and let Info
be fully user-customizable?
from gdsfactory.
Related Issues (20)
- .to_yaml() misses some layer properties defined in Klayout HOT 3
- bend port issue
- General GDS-to-code line mapping with text label during generation HOT 4
- Use exclusively loguru for logging output but `warnings.warn` internally
- Obey `stacklevel` in `warnings.warn` for loguru output
- Propagate `warnings.warn` category to loguru output
- Don't override warnings.showwarning and provide `gf.config.warn` or similar
- Consistent language for position, location and center HOT 1
- gf.route.get_route() does not create a "start straight length" HOT 2
- simpler generic PDK customized components HOT 4
- add models to PDK
- capture cell movememts from layout into
- Improvements for big layouts
- PN Modulator
- Issue on page /api_routing.html all_angle_ routing HOT 2
- CrossSection 'sections' Type-Hinting Issue HOT 1
- The gf.ponents.taper function has no effect on cross_section when it has a bbox parameter. HOT 1
- PDK Component Bugged: coupler_straight_asymmetric HOT 1
- port positions wrong for `components.array` with `centered = True` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gdsfactory.