Phidl

Latest version: v1.7.0

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

Scan your dependencies

Page 1 of 9

1.7.0

Major optimization update!

New features
- New KLayout-based boolean/offset/outline functions! These are under the name `pg.kl_boolean()`, `pg.kl_offset`, etc. They utilize the excellent KLayout tile processor, which allows breaking down & parallelizing these operations--in a nutshell, these operations should be much, much faster.
- Added `D.simplify()`, which allows you to significantly reduce memory usage of a geometry by discarding unnecessarily-precise points from all polygons within a Device. Uses the very robust Ramer–Douglas–Peucker algorithm for simplification.
- Now `pg.gridsweep()` allows `param_x` or `param_y` to be integers, which creates copies of the same parameters in the x or y direction.

Bugfixes
- 20x speedup to the internal operation `_merge_nearby_floating_points()` which should significantly speed up large operations (thanks Alex Tait atait)
- New pre-commit using ruff (thanks Bas Nijholt basnijholt)
- Grammar fix to documentation (thanks Ashish Panigrahi paniash)

1.6.4

New features
- Optimized/vectorized point rotation, speeding up the `rotate()` operation by as much as 150x(!) (thanks Bas Nijholt basnijholt)
- Added proper `pg.fill_rectangle()` [examples and documentation](https://phidl.readthedocs.io/en/latest/geometry_reference.html#Fill-tool)

Bugfixes
- Fixed `pg.grid()` to allow for empty `shape` parameter (thanks Samuel Gyger gyger)
- Allow `pg.grid()` spacing to be a single integer (thanks Samuel Gyger gyger)
- Fix to np.bool

1.6.3

Bugfixes
- Fixed error in `pg.euler()` and `pp.smooth()` for edge case of nearly-colinear points
- Specify certain numpy arrays as `object` to avoid numpy deprecation (thanks Bas Nijholt basnijholt and Samuel Gyger gyger)
- Corrected docstring for `pg.union()` as it does not accept lists of Devices (improvement for future, thanks Samuel Gyger gyger)

1.6.2

New features
- Addition of `pg.snspd_candelabra()` which creates an optimally-rounded SNSPD with low current crowding and arbtitrarily-high fill factor (thanks Dileep Reddy dileepvr)
- Lazy loading of `matplotlib`, allowing loading the base phidl libraries much faster (thanks Joaquin Matres joamatab)


Changes
- Modification to `pg.boolean()` s othat `OR`/union will merge all shapes within one Device, even if the second Device is `None` (thanks
Stijn Balk sbalk)

Bugfixes
- Modifying the `parent` of a `DeviceReference` now correctly updates the reference cell (thanks Joaquin Matres joamatab)
- Fix bug in `pg.outline()` when `distance < 0` (thanks yoshi74ls181)
- GDS path objects now copy over when using `pg.import_gds()` (thanks Bas Nijholt basnijholt)
- Preserve Polygon.properties and DeviceReference.properties when saving and loading (thanks Bas Nijholt basnijholt)
- `D.remove_layers()` works also with GDS path objects (thanks Joaquin Matres joamatab)

1.6.1

New features
- Re-added `Device.get_info()` that gathers the Device.info dictionaries from every sub-Device and returns them in a list. Useful for collecting information about every Device in a layout
- Updated documentation

Changes
- Deprecated Python 2
- Removal of 1023-character limit for labels (will only show warning instead now)
- Deprecated `reflect()` has been fully removed, use `mirror()` instead

Bugfixes
- Much code sanitization under the hood (thanks Bas Nijholt basnijholt)
- `Device.absorb()` now preserves labels from the parent component (thanks Joaquin Matres joamatab)
- Fixed extrusion error of `pp.spiral()` caused by overlapping points
- Bugfix for `pg.optimal_step()`, now works correctly when `start_width == end_width`
- Fixed naming of some previously-unnamed geometries
- Future-proofing for upcoming Numpy changes
- Bugfix for `CrossSection.extrude()` since cross_section parameter renamed to `width`

1.6.0

New features
- Huge new routing rewrite for `phidl.routing`, including automatic manhattan routing with custom cross-sections! See [the routing documentation](https://phidl.readthedocs.io/en/latest/tutorials/routing.html) for details. Big thanks to Jeffrey Holzgrafe jolzgrafe for this contribution
- `Path`s can now be used to produce sharp angles, in addition to smooth bends. See [the Path documentation](https://phidl.readthedocs.io/en/latest/tutorials/waveguides.html#Sharp/angular-paths)

Changes
- The `Path()` constructor no longer forces the path to start at (0,0)

Bugfixes
- Interactive zoom for `quickplot()` is now disabled by default in Jupyter-type notebooks to avoid strange scrolling behavior. This can be manually changed using `set_quickplot_options(interactive_zoom = True)`

Page 1 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.