Phidl

Latest version: v1.7.1

Safety actively analyzes 634425 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 9

0.8.7

Bugfixes
- Minor bugfixes to `pg.litho_calipers()` and `pg.litho_star()`

0.8.6

New features
- `D.absorb(my_reference)` can be used to easily absorb references into a Device; polygons will be extracted from the reference, added to the Device, and then the reference will be removed. See the [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py) for more details
- Added lithographic-resolution test structures including stars (`pg.litho_star()`), calipers (`pg.litho_calipers()`), and variable-size negative-tone and positive-tone steps (`pg.litho_steps()`) (Contribution from Dylan Oh dmwo).

Changes
- Made `write_gds()` autofix names to guarantee no duplicates cell names ever appear

Bugfixes
- The gdspy bounding box caching has been reallowed
- Single-layer flatten fix for `D.flatten()`
- `quickplot` and `quickplot2` now fail gracefully if the user does not have matlplotlib or Qt respectively.

0.8.5

New features
- Added `pg.optimal_90deg()`, the optimal 90-degree turn for superconducting nanowires from Clem & Berggren

Bugfixes
- `quickplot2` visual improvement: Ports now show up on top of subports
- `quickplot2` visual improvement: Port colors now colorblind-friendly
- Fixed very rare `make_device()` error

0.8.4

New features
- Added `<<` operator to add references. `r = D.add_ref(Rect)` can now be (optionally) written as `r = D << Rect`.
- Added `D.get_ports()` which allows you to gather the locations and information about all ports in Device.
- A `LayerSet` can now be previewed. Running the geometry function `pg.preview_layerset()` will generate a `Device` which shows all of the layers, useful for previewing color schemes.
- `quickplot()` now shows zero-width ports (e.g. a "pin") as a + sign.
- `quickplot()` now defaults to redrawing within a single window, rather than creating a new window for every call
- Added a `.info` dictionary to `Port`, useful for recording information about a port (e.g. `myport.info['wavelength'] = 1550`)
- Updated [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py)

Changes
- `pg.optimal_hairpin()`, `pg.snspd()`, and `pg.snspd_expanded()` now have the argument `turn_ratio` which defines how wide the turn is w.r.t. the argument `wire_width`
- The `layer` argument in `D.add_polygon()` can now accept lists of `Layer`s. Use this if you want to a single polygon shape to multiple layers.
- Rearranged an argument location: The `name` argument for the `Layer()` class is now the third argument to allow the ability to make `Layer`s like Layer(1,0)
- Removed some deprecated old geometry

Bugfixes
- Minor bugfix to guarantee quickplot() shows up from the Python/IPython console.
- Minor bugfix in [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py) example file

0.8.2

New features
- Added the LayerSet class. See the [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py), but essentially this class makes a convenient container to stores layers
- Added `phidl.utilities.write_lyp()` (Contribution from Dylan Oh dmwo). Using a LayerSet, you can now create KLayout-compatible .lyp files. This allows you to get the same coloring in the KLayout viewer as you have specified in PHIDL.
- Several new electrical test structures (Contribution from Jacob Melonis melonisj) Specifically: via chain tests (`pg.test_via()`), inter- and intra-layer comb insulation tests (`pg.test_comb()`), and critical current test structures (`pg.test_ic`).
- `add_ref()` can now take a list of input Devices and will return a list of the generated references, e.g. `ref_a,ref_b,ref_c = D.add_ref([A,B,C])`

Changes

Bugfixes
- Fixed issue with pg.import_gds() when `layers` (remapping argument) was None.
- Bugfix in pg.copy() which produced incorrectly-copied ports

0.8.1

New features
- New function `pg.extract()` which extracts all the polygons from a set of specified layers from a Device, and creates a new Device with those polygons in them. See [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py) for details
- New Device-copying functions `pg.copy()` and `pg.deepcopy()` which allows you to copy a Device wholesale (very useful if you want to flatten() a Device but not destroy the original). `pg.copy` maintains the underlying connections & references to other Devices, while `pg.deepcopy` creates completely new copies of every underlying polygon and reference. See [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py) for details
- Introduced an LRU cache for computationally-intensive Device-making functions. By using the `device_lru_cache` decorator, any function which returns a Device can be memoized. See [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py) for more details

Changes
- Since the `extract()` process creates new geometry, `D.extract()` has been removed in favor of placing it in the geometry library `pg.extract()`
- `pg.import_gds` default argument is now `flatten = False`
- Updated [tutorial](https://github.com/amccaugh/phidl/blob/master/phidl/phidl_tutorial_example.py) text

Bugfixes
- Fixed port deepcopy bug, should result in large performance enhancement for Devices with lots of sub-references and ports
- Fixed some rare errors with D.flatten()
- Some internal changes to make working with Device.uid easier

Page 6 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.