Coverage for klayout_pex/plugin_api/v1/__init__.py: 100%
8 statements
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-06 13:14 +0000
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-06 13:14 +0000
1#
2# --------------------------------------------------------------------------------
3# SPDX-FileCopyrightText: 2024-2026 Martin Jan Köhler and Harald Pretl
4# Johannes Kepler University, Institute for Integrated Circuits.
5#
6# This file is part of KPEX
7# (see https://github.com/iic-jku/klayout-pex).
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <http://www.gnu.org/licenses/>.
21# SPDX-License-Identifier: GPL-3.0-or-later
22# --------------------------------------------------------------------------------
23#
25"""Version 1 PEX25D importer and scene exporter plugin API.
27Entry points reference zero-argument factories returning protocol implementations;
28inheritance is optional. Each group versions its Python interface independently
29of PEX25D; version 1 is provisional and may change until it is declared stable.
30Factories and public re-exports live here; each protocol and its related errors
31live in their own module.
33This package imports neither KLayout nor generated protobuf code at runtime.
34"""
36from typing import Callable
38from .pex25d_importer import ImporterError, ImporterUnavailable, PEX25DImporter
39from .pex25d_scene_exporter import ExportError, ExporterUnavailable, PEX25DSceneExporter
42IMPORTER_ENTRY_POINT_GROUP = 'klayout_pex.importers.v1'
43EXPORTER_ENTRY_POINT_GROUP = 'klayout_pex.exporters.v1'
45ImporterFactory = Callable[[], PEX25DImporter]
46ExporterFactory = Callable[[], PEX25DSceneExporter]
48__all__ = [
49 'IMPORTER_ENTRY_POINT_GROUP',
50 'EXPORTER_ENTRY_POINT_GROUP',
51 'ImporterFactory',
52 'ExporterFactory',
53 'ImporterError',
54 'ImporterUnavailable',
55 'PEX25DImporter',
56 'ExportError',
57 'ExporterUnavailable',
58 'PEX25DSceneExporter',
59]