semvec/pypi-packages huggingface dataset:
siepic-forge 1.1.2
SiEPIC PDK implementation for PhotonForge

# SiEPIC Forge

This python module implements the [SiEPIC EBeam
PDK](https://github.com/SiEPIC/SiEPIC_EBeam_PDK) PDK as components and
technology specification for
[PhotonForge](https://docs.flexcompute.com/projects/photonforge/)


## Installation

### Python interface

Installation via `pip`:

    pip install siepic-forge


## Usage

The simplest way to use the this PDK in PhotonForge is to set its technology as
default:

    import photonforge as pf
    import siepic_forge as siepic

    tech = siepic.ebeam()
    pf.config.default_technology = tech


The `ebeam` function creates a parametric technology and accepts a number of
parameters to fine-tune the technology.

PDK components are available through the `component` function, which takes a
component name as first argument. The list of component names is available as a
set `component_names`:

    print(siepic.component_names)
    
    pdk_component = siepic.component("ebeam_y_1550")


More information can be obtained in the documentation for each function:

    help(siepic.ebeam)

    help(siepic.component)


## Warnings

Please note that the 3D structures obtained by extrusion through this module's
technologies are a best approximation of the intended fabricated structures,
but the actual final dimensions may differ due to several fabrication-specific
effects. In particular, doping profiles are represented with hard-boundary,
homogeneous solids, but, in practice will present process-dependent variations
with smooth boundaries.


## Third-Party Licenses

- [`SiEPIC_EBeam_PDK`](https://github.com/SiEPIC/SiEPIC_EBeam_PDK)

  > This project is licensed under the terms of the MIT license.
  > 
  > Copyright (c) 2016-2020, Lukas Chrostowski and contributors
  > 
  > Permission is hereby granted, free of charge, to any person obtaining a
  > copy of this software and associated documentation files (the "Software"),
  > to deal in the Software without restriction, including without limitation
  > the rights to use, copy, modify, merge, publish, distribute, sublicense,
  > and/or sell copies of the Software, and to permit persons to whom the
  > Software is furnished to do so, subject to the following conditions:
  > 
  > The above copyright notice and this permission notice shall be included in
  > all copies or substantial portions of the Software.
  > 
  > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  > FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  > DEALINGS IN THE SOFTWARE.


## Changelog

### v1.1.0 - 2025-03-04

- Added Electrical interfaces.
- Added TM port specification for 1310 nm with 350 nm width.
luxtelligence-lnoi400-forge 1.4.0
Luxtelligence LNOI400 PDK implementation for PhotonForge

# Luxtelligence LNOI400

This python module implements the [Luxtelligence](https://luxtelligence.ai/)
LNOI400 PDK as components and technology specification for
[PhotonForge](https://docs.flexcompute.com/projects/photonforge/)

For LNOI400 design rules, design manual and PDK specifications, please [contact
Luxtelligence](https://luxtelligence.ai/service-request/).


## Installation

Installation via `pip`:

    pip install luxtelligence-lnoi400-forge


## Usage

The simplest way to use the this PDK in PhotonForge is to set its technology as
default:

    import photonforge as pf
    import luxtelligence_lnoi400_forge as lxt

    tech = lxt.lnoi400()
    pf.config.default_technology = tech


The `lnoi400` function creates a parametric technology and accepts a number of
parameters to fine-tune the technology.

PDK components are available in the `component` submodule. The list of
components can be discovered by:

    dir(lxt.component)
    
    pdk_component = lxt.component.mmi1x2()


Utility functions `cpw_spec` and `place_edge_couplers` are also available for
generating CPW port specifications and placing edge couplers at chip boudaries.

More information can be obtained in the documentation for each function:

    help(lxt.lnoi400)

    help(lxt.component.mmi1x2)

    help(lxt.place_edge_couplers)


Finally, an extrusion demo for the technology can be seen by running:

    lxt.plot_cross_section()


## Warnings

Please note that the 3D structures obtained by extrusion through this module's
technologies are a best approximation of the intended fabricated structures,
but the actual final dimensions may differ due to several fabrication-specific
effects. In particular, doping profiles are represented with hard-boundary,
homogeneous solids, but, in practice will present process-dependent variations
with smooth boundaries.


## Changelog

### 1.4.0 - 2025-12-12

- Added `eo_phase_shifter_high_speed` and `mz_modulator_unbalanced_high_speed`.
- Added RF pads to `eo_phase_shifter` and corresponding terminals.
- Replace and deprecate the use of `*_kwargs` model parameters with model
  instances.
- Changed default values in accordance to 1.4.0 PDK release.
- Fixed missing terminal in straight heater.


### 1.2.4 - 2025-04-18

- Better error detection when inspecting port specifications


### 1.2.0 - 2025-03-04

- Added electrical ports and terminals.


### 1.1.0 - 2024-12-03

- Added arguments `slab_removal_width` and `input_ext` to
  `double_linear_inverse_taper`.
- Added arguments `center` and `exclusion_zone_width` to `chip_frame`.
- Added argument `start_section_width` to `s_bend_vert`.
- Added parametric components `dir_coupl`, `heater_pad`, `heater_straight`, and
  `heated_straight_waveguide`.
- `chip_frame` is centered around the origin by default.
- Changed `mz_modulator_unbalanced` default length.
- Removed port symmetries that were only valid for fundamental modes.


### 1.0.1 - 2024-10-17

- Add missing technology docstring.
- Fixed port symmetries in MMI2x2.
qnote 0.1.5
A terminal-based, local-first, note-taking app powered by Textual
Requires Python: >=3.10
Keywords: notes, textual, terminal, cli

# QNote

QNote is a terminal-based, local-first note-taking app powered by [Textual](https://github.com/Textualize/textual).
It provides a fast, intuitive, keyboard-driven way to capture and manage notes — all without leaving your terminal.

[![Demo](demo.gif)](demo.mp4)
---

## Why another note-taking app?

Because taking a quick note shouldn’t feel like a project.

Most note apps make you:
- choose a notebook
- choose a folder
- choose a tag
- choose a title
- confirm sync
- worry about the cloud

…and somehow your note still gets lost later

QNote fixes that by staying out of your way.

- No accounts
- No cloud
- No decisions
- No ceremony

Just:

- One command to install
- One command to launch (or startup)
- One hotkey → type → done

Your notes stay local, fast, and easy to navigate with simple categories and metadata that help you keep things tidy without effort.

---

## Features

- **Terminal UI**: Sidebar, stats panel with *Lumen* - a visual widget, and content area for easy navigation and editing.
- **Intuitive design**: Dynamic hotkeys and keyboard-centric approach.
- **SQLite backend**: Local note storage with fast queries.
- **Cross-platform**: Works on Windows, macOS, and Linux.
- **Console script**: Launch with `qnote` after installation.

---

## Installation

### Using pip (recommended)

```bash
pip install qnote
```

### Runing
```bash
qnote
```

---

### Support the Project

If you find QNote useful, consider starring the repository - it helps more people discover it!