TilingProcessor: ReportDatabase overload not available in Python
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 50/100
Línea de trabajo
Start by running the reproducer in the issue, which calls TilingProcessor.output with a ReportDatabase, and compare it with the output overload declared in the .pyi stub. The error lists the registered overloads, and none of them accepts a report database with cell and category ids, so the binding is missing. Done means the reproducer runs and writes the XOR result into the report database.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I was porting our XOR script from Ruby to Python, when I noticed something: this overload which is declared in the .pyi file:
@overload
def output(self, name: str, rdb: rdb.ReportDatabase, cell_id: int, category_id: int) -> None:
…doesn't seem to actually work.
from klayout.dbcore import Layout, TilingProcessor
from klayout.rdbcore import ReportDatabase
layout_a = Layout()
cell_a = layout_a.create_cell("a")
layout_b = Layout()
cell_b = layout_b.create_cell("b")
rdb = ReportDatabase("XOR")
rdb_cell = rdb.create_cell("a_xor_b")
layer_0_cat = rdb.create_category("layer_0")
tp = TilingProcessor()
tp.input("a", layout_a, cell_a.cell_index(), 0)
tp.input("b", layout_b, cell_b.cell_index(), 0)
tp.output("xor", rdb, rdb_cell.rdb_id(), layer_0_cat.rdb_id())
"""
Traceback (most recent call last):
File "/Users/donn/Code/librelane/librelane-tree/python-tools/./klayout_issue.py", line 17, in <module>
tp.output("xor", rdb, rdb_cell.rdb_id(), layer_0_cat.rdb_id())
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: No overload with matching arguments. Variants are:
void output(string name, Region region) [2 argument(s) expected, but 4 given]
void output(string name, EdgePairs edge_pairs) [2 argument(s) expected, but 4 given]
void output(string name, TileOutputReceiverBase ptr rec) [2 argument(s) expected, but 4 given]
void output(string name, Edges edges) [2 argument(s) expected, but 4 given]
void output(string name, Texts texts) [2 argument(s) expected, but 4 given]
void output(string name, double ptr sum) [2 argument(s) expected, but 4 given]
void output(string name, Layout layout, unsigned int cell, const LayerInfo lp) [match candidate]
void output(string name, Layout layout, unsigned int cell, unsigned int layer_index) [match candidate]
in TilingProcessor.output
"""
I was able to work around it by creating a new cell, see https://github.com/librelane/librelane/blob/cf49f0fcfdd7ddc284b9e703a8a9c353f8378004/librelane/scripts/klayout/xor.py for the full script, but needless to say that's a bit slower.
- Lenguaje dominante
- C++
- Estrellas
- 1.2k
- Forks
- 305
- Merge medio
- 3 d 2 h
- PR fusionados (30 d)
- 11
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de KLayout/klayout
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
KLayout/klayout#2554 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
KLayout/klayout#2412 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
DRC functions not working properly with clip in placePosiblemente ocupada @klayoutmatthias la tomó hoy. Abiertobug
KLayout/klayout#2553 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Deep DRC can miss violations when a cell has many shapesQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
KLayout/klayout#2546 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
Python API: edge neighborhood nodes retain visitors after leaving scopePosiblemente ocupada @klayoutmatthias la tomó hace 4 días. Abiertobug
KLayout/klayout#2542 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de KLayout/klayout
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Integer underflow and buffer overrun in detail::count_rows on disconnected distance matricesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
LaneDibello/Kotor-Patch-Manager#375 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día