From bd4929d81467a21cdd9d6255a91cc58782d4b3f8 Mon Sep 17 00:00:00 2001 From: Joaquin Matres <4514346+joamatab@users.noreply.github.com> Date: Wed, 6 Apr 2022 10:41:32 -0700 Subject: [PATCH 1/2] simpler component_factory thanks to `import_module_factories` function from gf.cell --- CHANGELOG.md | 4 + requirements.txt | 2 +- ubcpdk/__init__.py | 12 ++- ubcpdk/components/__init__.py | 20 ---- .../test_components.gds/gds_ref/coupler.gds | Bin 0 -> 6706 bytes .../gds_ref/mzi_f9d34325.gds | Bin 0 -> 23282 bytes .../gds_ref/ring_single.gds | Bin 0 -> 7886 bytes ubcpdk/tests/test_components.py | 2 +- .../test_pdk_settings_ebeam_dc_te1550_.yml | 33 ++++++ .../test_pdk_settings_mzi_.yml | 95 ++++++++++++++++++ .../test_pdk_settings_ring_single_.yml | 35 +++++++ 11 files changed, 179 insertions(+), 24 deletions(-) create mode 100644 ubcpdk/tests/test_components.gds/gds_ref/coupler.gds create mode 100644 ubcpdk/tests/test_components.gds/gds_ref/mzi_f9d34325.gds create mode 100644 ubcpdk/tests/test_components.gds/gds_ref/ring_single.gds create mode 100644 ubcpdk/tests/test_components/test_pdk_settings_ebeam_dc_te1550_.yml create mode 100644 ubcpdk/tests/test_components/test_pdk_settings_mzi_.yml create mode 100644 ubcpdk/tests/test_components/test_pdk_settings_ring_single_.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 432d199d..cb6d8215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [1.4.0] + +- simpler component_factory thanks to `import_module_factories` function from gf.cell + ## [1.3.9](https://github.com/gdsfactory/ubc/pull/17) - add circuit samples diff --git a/requirements.txt b/requirements.txt index 37e13df9..7077fceb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -e . lygadgets -gdsfactory[full]==4.5.3 +gdsfactory[full]==4.6.1 modes diff --git a/ubcpdk/__init__.py b/ubcpdk/__init__.py index 893883ed..6bcefd02 100644 --- a/ubcpdk/__init__.py +++ b/ubcpdk/__init__.py @@ -1,17 +1,19 @@ """UBC Siepic Ebeam PDK from edx course""" import gdsfactory as gf from gdsfactory.config import logger +from gdsfactory.cell import get_module_factories + + from ubcpdk.config import CONFIG, PATH, module from ubcpdk.tech import LAYER, strip from ubcpdk import components from ubcpdk import tech from ubcpdk import data -from ubcpdk.components import component_factory from ubcpdk.tech import cross_section_factory -gf.asserts.version(">=4.2.1") +gf.asserts.version(">=4.6.1") lys = gf.layers.load_lyp(PATH.lyp) __version__ = "1.3.9" @@ -30,3 +32,9 @@ logger.info(f"Found UBCpdk {__version__!r} installed at {module!r}") +component_factory = get_module_factories(components) + + +if __name__ == "__main__": + f = component_factory + print(f.keys()) diff --git a/ubcpdk/components/__init__.py b/ubcpdk/components/__init__.py index 97d76bb3..48805070 100644 --- a/ubcpdk/components/__init__.py +++ b/ubcpdk/components/__init__.py @@ -33,26 +33,6 @@ straight, ) -component_factory = dict( - add_fiber_array=add_fiber_array, - bend_euler=bend_euler, - crossing=crossing, - dbr=dbr, - dbr_cavity=dbr_cavity, - dc_adiabatic=dc_adiabatic, - dc_broadband_te=dc_broadband_te, - dc_broadband_tm=dc_broadband_tm, - gc_te1310=gc_te1310, - gc_te1550=gc_te1550, - gc_te1550_broadband=gc_te1550_broadband, - gc_tm1550=gc_tm1550, - ring_with_crossing=ring_with_crossing, - spiral=spiral, - straight=straight, - y_adiabatic=y_adiabatic, - y_splitter=y_splitter, -) - __all__ = [ "add_fiber_array", diff --git a/ubcpdk/tests/test_components.gds/gds_ref/coupler.gds b/ubcpdk/tests/test_components.gds/gds_ref/coupler.gds new file mode 100644 index 0000000000000000000000000000000000000000..1cbe8cddcd251e493ab3fdc116b106412cb4baef GIT binary patch literal 6706 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 A;Q#;t literal 0 HcmV?d00001 diff --git a/ubcpdk/tests/test_components.gds/gds_ref/mzi_f9d34325.gds b/ubcpdk/tests/test_components.gds/gds_ref/mzi_f9d34325.gds new file mode 100644 index 0000000000000000000000000000000000000000..3fff75f9c772c54290243161473f5cd21784b05e GIT binary patch literal 23282 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 Date: Wed, 6 Apr 2022 10:45:04 -0700 Subject: [PATCH 2/2] update docs --- docs/components.rst | 68 +++++++++++++++++++++++++++++++++--- docs/write_components_doc.py | 4 +-- 2 files changed, 66 insertions(+), 6 deletions(-) diff --git a/docs/components.rst b/docs/components.rst index 9a2884dc..4f8c994b 100644 --- a/docs/components.rst +++ b/docs/components.rst @@ -17,7 +17,22 @@ add_fiber_array import ubcpdk - c = ubcpdk.components.add_fiber_array(gc_port_name='o1', with_loopback=False, optical_routing_type=0, fanout_length=0.0) + c = ubcpdk.components.add_fiber_array(gc_port_name='opt1', with_loopback=False, optical_routing_type=0, fanout_length=0.0) + c.plot() + + + +bend_euler +---------------------------------------------------- + +.. autofunction:: ubcpdk.components.bend_euler + +.. plot:: + :include-source: + + import ubcpdk + + c = ubcpdk.components.bend_euler(angle=90.0, p=0.5, with_arc_floorplan=True, npoints=720, direction='ccw', with_cladding_box=True) c.plot() @@ -112,6 +127,21 @@ dc_broadband_tm +ebeam_dc_te1550 +---------------------------------------------------- + +.. autofunction:: ubcpdk.components.ebeam_dc_te1550 + +.. plot:: + :include-source: + + import ubcpdk + + c = ubcpdk.components.ebeam_dc_te1550(gap=0.236, length=20.0, dy=5.0, dx=10.0) + c.plot() + + + gc_te1310 ---------------------------------------------------- @@ -172,6 +202,36 @@ gc_tm1550 +mzi +---------------------------------------------------- + +.. autofunction:: ubcpdk.components.mzi + +.. plot:: + :include-source: + + import ubcpdk + + c = ubcpdk.components.mzi(delta_length=10.0, length_y=2.0, length_x=0.1, with_splitter=True, port_e1_splitter='opt2', port_e0_splitter='opt3', port_e1_combiner='opt2', port_e0_combiner='opt3', nbends=2) + c.plot() + + + +ring_single +---------------------------------------------------- + +.. autofunction:: ubcpdk.components.ring_single + +.. plot:: + :include-source: + + import ubcpdk + + c = ubcpdk.components.ring_single(gap=0.2, radius=10.0, length_x=4.0, length_y=0.6) + c.plot() + + + ring_with_crossing ---------------------------------------------------- @@ -182,7 +242,7 @@ ring_with_crossing import ubcpdk - c = ubcpdk.components.ring_with_crossing() + c = ubcpdk.components.ring_with_crossing(gap=0.2, length_x=4, length_y=0, radius=5.0, with_component=True, port_name='opt4') c.plot() @@ -227,7 +287,7 @@ y_adiabatic import ubcpdk - c = ubcpdk.components.y_adiabatic() + c = ubcpdk.components.y_adiabatic(name='ebeam_y_adiabatic') c.plot() @@ -242,5 +302,5 @@ y_splitter import ubcpdk - c = ubcpdk.components.y_splitter() + c = ubcpdk.components.y_splitter(name='ebeam_y_1550') c.plot() diff --git a/docs/write_components_doc.py b/docs/write_components_doc.py index 3793652d..39477689 100644 --- a/docs/write_components_doc.py +++ b/docs/write_components_doc.py @@ -35,11 +35,11 @@ """ ) - for name in sorted(ubcpdk.components.factory.keys()): + for name in sorted(ubcpdk.component_factory.keys()): if name in skip or name.startswith("_"): continue print(name) - sig = inspect.signature(ubcpdk.components.factory[name]) + sig = inspect.signature(ubcpdk.component_factory[name]) kwargs = ", ".join( [ f"{p}={repr(sig.parameters[p].default)}"