From c7d1ca19acf1f89fd23bcf68d0eb0f87f5b08757 Mon Sep 17 00:00:00 2001 From: Twinkle-3000 Date: Tue, 10 Nov 2026 16:03:10 +0100 Subject: [PATCH] Rename package to layout_viewer_core Update imports, packaging metadata, build paths, docs, and tests for the new package name. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CONTRIBUTING.md | 4 +-- README.md | 14 +++++----- _build_backend/layout_viewer_build.py | 6 ++--- _build_backend/layout_viewer_shader_tools.py | 4 +-- pyproject.toml | 4 +-- .../__init__.py | 12 ++++----- .../__main__.py | 6 ++--- .../camera.py | 0 .../capture.py | 2 +- .../colors.py | 0 .../demo.py | 2 +- .../incremental.py | 4 +-- .../mesh.py | 8 +++--- .../picking.py | 2 +- .../progress.py | 0 .../qt/__init__.py | 0 .../qt/app.py | 4 +-- .../qt/render/__init__.py | 0 .../qt/render/component_labels.py | 10 ++++---- .../qt/render/coverage.py | 2 +- .../qt/render/grid.py | 0 .../qt/render/renderer.py | 12 ++++----- .../qt/render/rhi.py | 2 +- .../qt/render/shaders/THIRD_PARTY_NOTICES.txt | 0 .../qt/render/shaders/common.glsl | 0 .../qt/render/shaders/copper.frag | 0 .../qt/render/shaders/copper.frag.qsb | Bin .../qt/render/shaders/copper.vert | 0 .../qt/render/shaders/copper.vert.qsb | Bin .../qt/render/shaders/coverage.frag | 0 .../qt/render/shaders/coverage.frag.qsb | Bin .../qt/render/shaders/coverage.vert | 0 .../qt/render/shaders/coverage.vert.qsb | Bin .../qt/render/shaders/grid.frag | 0 .../qt/render/shaders/grid.frag.qsb | Bin .../qt/render/shaders/join.glsl | 0 .../qt/render/shaders/label.frag | 0 .../qt/render/shaders/label.frag.qsb | Bin .../qt/render/shaders/label.vert | 0 .../qt/render/shaders/label.vert.qsb | Bin .../qt/render/shaders/outline.frag | 0 .../qt/render/shaders/outline.frag.qsb | Bin .../qt/render/shaders/outline.vert | 0 .../qt/render/shaders/outline.vert.qsb | Bin .../qt/render/shaders/pad.glsl | 0 .../qt/render/shaders/rectangle.vert | 0 .../qt/render/shaders/rectangle.vert.qsb | Bin .../qt/render/shaders/sdf.frag | 0 .../qt/render/shaders/sdf.frag.qsb | Bin .../qt/render/shaders/sdf.vert | 0 .../qt/render/shaders/sdf.vert.qsb | Bin .../qt/render/shaders/selection.frag | 0 .../qt/render/shaders/selection.frag.qsb | Bin .../qt/render/shaders/trace.glsl | 0 .../qt/render/shaders/uniforms.glsl | 0 .../qt/ui/__init__.py | 0 .../qt/ui/assets/check.svg | 0 .../qt/ui/assets/chevron.svg | 0 .../qt/ui/icons.py | 2 +- .../qt/ui/inspector.py | 8 +++--- .../qt/ui/loading.py | 2 +- .../qt/ui/navigation.py | 6 ++--- .../qt/ui/panels.py | 10 ++++---- .../qt/ui/theme.py | 0 .../qt/ui/window.py | 24 +++++++++--------- .../qt/view/__init__.py | 0 .../qt/view/canvas.py | 20 +++++++-------- .../scene.py | 0 tests/conftest.py | 2 +- tests/test_camera.py | 2 +- tests/test_capture.py | 4 +-- tests/test_live_refresh.py | 8 +++--- tests/test_mesh.py | 4 +-- tests/test_picking.py | 4 +-- tests/test_qt_interaction.py | 4 +-- tests/test_qt_shader_resources.py | 2 +- tests/test_qt_theme.py | 2 +- tests/test_scene.py | 2 +- uv.lock | 2 +- 79 files changed, 103 insertions(+), 103 deletions(-) rename src/{layout_viewer => layout_viewer_core}/__init__.py (67%) rename src/{layout_viewer => layout_viewer_core}/__main__.py (87%) rename src/{layout_viewer => layout_viewer_core}/camera.py (100%) rename src/{layout_viewer => layout_viewer_core}/capture.py (98%) rename src/{layout_viewer => layout_viewer_core}/colors.py (100%) rename src/{layout_viewer => layout_viewer_core}/demo.py (96%) rename src/{layout_viewer => layout_viewer_core}/incremental.py (98%) rename src/{layout_viewer => layout_viewer_core}/mesh.py (98%) rename src/{layout_viewer => layout_viewer_core}/picking.py (99%) rename src/{layout_viewer => layout_viewer_core}/progress.py (100%) rename src/{layout_viewer => layout_viewer_core}/qt/__init__.py (100%) rename src/{layout_viewer => layout_viewer_core}/qt/app.py (97%) rename src/{layout_viewer => layout_viewer_core}/qt/render/__init__.py (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/component_labels.py (96%) rename src/{layout_viewer => layout_viewer_core}/qt/render/coverage.py (97%) rename src/{layout_viewer => layout_viewer_core}/qt/render/grid.py (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/renderer.py (98%) rename src/{layout_viewer => layout_viewer_core}/qt/render/rhi.py (99%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/THIRD_PARTY_NOTICES.txt (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/common.glsl (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/copper.frag (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/copper.frag.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/copper.vert (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/copper.vert.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/coverage.frag (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/coverage.frag.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/coverage.vert (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/coverage.vert.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/grid.frag (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/grid.frag.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/join.glsl (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/label.frag (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/label.frag.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/label.vert (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/label.vert.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/outline.frag (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/outline.frag.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/outline.vert (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/outline.vert.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/pad.glsl (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/rectangle.vert (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/rectangle.vert.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/sdf.frag (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/sdf.frag.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/sdf.vert (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/sdf.vert.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/selection.frag (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/selection.frag.qsb (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/trace.glsl (100%) rename src/{layout_viewer => layout_viewer_core}/qt/render/shaders/uniforms.glsl (100%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/__init__.py (100%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/assets/check.svg (100%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/assets/chevron.svg (100%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/icons.py (98%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/inspector.py (96%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/loading.py (98%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/navigation.py (96%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/panels.py (97%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/theme.py (100%) rename src/{layout_viewer => layout_viewer_core}/qt/ui/window.py (98%) rename src/{layout_viewer => layout_viewer_core}/qt/view/__init__.py (100%) rename src/{layout_viewer => layout_viewer_core}/qt/view/canvas.py (97%) rename src/{layout_viewer => layout_viewer_core}/scene.py (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 27a38d3..e065df6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ uv sync --extra test Run the demo using the platform's default graphics backend: ```bash -uv run python -m layout_viewer +uv run python -m layout_viewer_core ``` On macOS, `--backend metal` is also available; on Windows, use `--backend d3d11`. @@ -91,7 +91,7 @@ The tests in `tests/` currently smoke-test Qt theme resources and compiled shade packs. Add focused tests for geometry, picking, and scene invariants when changing those areas. -Shader source files live in `src/layout_viewer/qt/render/shaders/`. After editing +Shader source files live in `src/layout_viewer_core/qt/render/shaders/`. After editing them, regenerate the local packs: ```bash diff --git a/README.md b/README.md index 849bb1d..eb41d4a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -# layout-viewer +# layout-viewer-core Interactive 2D PCB layout viewer built on PySide6 and Qt RHI (Direct3D 11, Vulkan, Metal). The package renders detached `LayoutScene` values and is independent of source applications. ```python -from layout_viewer import show_scene -from layout_viewer.demo import demo_scene +from layout_viewer_core import show_scene +from layout_viewer_core.demo import demo_scene show_scene(demo_scene()) ``` @@ -16,7 +16,7 @@ show_scene(demo_scene()) Build a scene from layers and geometry, then pass it to `show_scene`: ```python -from layout_viewer import LayoutScene, SceneLayer, ScenePolygon, SceneTrace, show_scene +from layout_viewer_core import LayoutScene, SceneLayer, ScenePolygon, SceneTrace, show_scene scene = LayoutScene( layers=(SceneLayer("F.Cu", (0.95, 0.61, 0.20, 1.0)),), @@ -38,12 +38,12 @@ show_scene(scene) Run the synthetic demo board: ```bash -python -m layout_viewer +python -m layout_viewer_core ``` ## Architecture -- Core scene and geometry logic lives in `src/layout_viewer/` (`scene.py`, `mesh.py`, +- Core scene and geometry logic lives in `src/layout_viewer_core/` (`scene.py`, `mesh.py`, `picking.py`, and `camera.py`) and does not depend on Qt. - `qt/app.py` bootstraps the application. Qt UI code is grouped in `qt/ui/`; canvas and GPU rendering code is grouped in `qt/render/`. @@ -62,7 +62,7 @@ Install the checkout and its runtime dependencies into the active environment: python -m pip install -e . ``` -Wheel and editable builds compile the RHI shaders in `src/layout_viewer/qt/render/shaders` +Wheel and editable builds compile the RHI shaders in `src/layout_viewer_core/qt/render/shaders` with the Qt `qsb` tool shipped by PySide6 (or the executable named by `LAYOUT_VIEWER_QSB`). After editing shader sources in a checkout, refresh the local packs with: diff --git a/_build_backend/layout_viewer_build.py b/_build_backend/layout_viewer_build.py index bf664a6..4618d8a 100644 --- a/_build_backend/layout_viewer_build.py +++ b/_build_backend/layout_viewer_build.py @@ -34,11 +34,11 @@ def build_wheel(wheel_directory, config_settings=None, metadata_directory=None): root = Path.cwd().resolve() destination = str(Path(wheel_directory).resolve()) metadata = str(Path(metadata_directory).resolve()) if metadata_directory is not None else None - with tempfile.TemporaryDirectory(prefix="layout-viewer-wheel-") as temporary: + with tempfile.TemporaryDirectory(prefix="layout-viewer-core-wheel-") as temporary: staging = Path(temporary) shutil.copytree( - root / "src/layout_viewer", - staging / "src/layout_viewer", + root / "src/layout_viewer_core", + staging / "src/layout_viewer_core", ignore=shutil.ignore_patterns("__pycache__", "*.pyc", "*.qsb"), ) for name in ("pyproject.toml", "README.md", "LICENSE"): diff --git a/_build_backend/layout_viewer_shader_tools.py b/_build_backend/layout_viewer_shader_tools.py index 685ff3a..8e9ed9f 100644 --- a/_build_backend/layout_viewer_shader_tools.py +++ b/_build_backend/layout_viewer_shader_tools.py @@ -6,7 +6,7 @@ import subprocess import tempfile -SHADER_DIRECTORY = Path("src/layout_viewer/qt/render/shaders") +SHADER_DIRECTORY = Path("src/layout_viewer_core/qt/render/shaders") QSB_REQUIREMENT = "PySide6>=6.8.3,<7" @@ -43,7 +43,7 @@ def bake_shaders(directory): if not sources: raise RuntimeError(f"No layout shader sources found in {directory}") qsb, env = _compiler() - with tempfile.TemporaryDirectory(prefix="layout-viewer-shaders-") as temporary: + with tempfile.TemporaryDirectory(prefix="layout-viewer-core-shaders-") as temporary: temporary = Path(temporary) for source in sources: subprocess.run( diff --git a/pyproject.toml b/pyproject.toml index aea74b0..249870b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,10 +8,10 @@ include = ["_build_backend", "README.md", "LICENSE"] exclude = ["_build_backend/__pycache__"] [tool.flit.module] -name = "layout_viewer" +name = "layout_viewer_core" [project] -name = "layout_viewer" +name = "layout_viewer_core" dynamic = ["version", "description"] license = "Apache-2.0" requires-python = ">=3.10" diff --git a/src/layout_viewer/__init__.py b/src/layout_viewer_core/__init__.py similarity index 67% rename from src/layout_viewer/__init__.py rename to src/layout_viewer_core/__init__.py index 8c3b9ba..46301e3 100644 --- a/src/layout_viewer/__init__.py +++ b/src/layout_viewer_core/__init__.py @@ -5,8 +5,8 @@ from typing import TYPE_CHECKING, Any -from layout_viewer.picking import PickedObject -from layout_viewer.scene import ( +from layout_viewer_core.picking import PickedObject +from layout_viewer_core.scene import ( LayoutScene, SceneComponent, SceneJoin, @@ -18,7 +18,7 @@ ) if TYPE_CHECKING: - from layout_viewer.qt.ui.window import LayoutWindow + from layout_viewer_core.qt.ui.window import LayoutWindow __version__ = "0.1.0" @@ -37,9 +37,9 @@ def show_scene(scene: LayoutScene | None = None, **options: Any) -> LayoutWindow: - """Open a layout window; see :func:`layout_viewer.qt.app.show_scene` for options.""" + """Open a layout window; see :func:`layout_viewer_core.qt.app.show_scene` for options.""" try: - from layout_viewer.qt.app import show_scene as show + from layout_viewer_core.qt.app import show_scene as show except ImportError as exc: - raise ImportError("The layout viewer requires PySide6 and mapbox-earcut: pip install layout-viewer.") from exc + raise ImportError("The layout viewer requires PySide6 and mapbox-earcut: pip install layout-viewer-core.") from exc return show(scene, **options) \ No newline at end of file diff --git a/src/layout_viewer/__main__.py b/src/layout_viewer_core/__main__.py similarity index 87% rename from src/layout_viewer/__main__.py rename to src/layout_viewer_core/__main__.py index 0540efc..7ffc63b 100644 --- a/src/layout_viewer/__main__.py +++ b/src/layout_viewer_core/__main__.py @@ -1,5 +1,5 @@ -"""Launch the synthetic demo board with ``python -m layout_viewer``.""" +"""Launch the synthetic demo board with ``python -m layout_viewer_core``.""" from __future__ import annotations @@ -17,8 +17,8 @@ def main(argv: Sequence[str] | None = None) -> None: ) parser.add_argument("--color-by-layer", action="store_false", dest="color_by_net", help="Use source layer colors") args = parser.parse_args(argv) - from layout_viewer import show_scene - from layout_viewer.demo import demo_scene + from layout_viewer_core import show_scene + from layout_viewer_core.demo import demo_scene show_scene(demo_scene(), color_by_net=args.color_by_net, backend=args.backend) diff --git a/src/layout_viewer/camera.py b/src/layout_viewer_core/camera.py similarity index 100% rename from src/layout_viewer/camera.py rename to src/layout_viewer_core/camera.py diff --git a/src/layout_viewer/capture.py b/src/layout_viewer_core/capture.py similarity index 98% rename from src/layout_viewer/capture.py rename to src/layout_viewer_core/capture.py index 01fbbbb..df64f25 100644 --- a/src/layout_viewer/capture.py +++ b/src/layout_viewer_core/capture.py @@ -18,7 +18,7 @@ class CaptureResult: def merge_scene(previous, patch, changed): """Replace only changed source records, preserving untouched value identities.""" - from layout_viewer.mesh import scene_network_names + from layout_viewer_core.mesh import scene_network_names updates = {} for name in ("polygons", "traces", "joins", "pads", "object_info"): diff --git a/src/layout_viewer/colors.py b/src/layout_viewer_core/colors.py similarity index 100% rename from src/layout_viewer/colors.py rename to src/layout_viewer_core/colors.py diff --git a/src/layout_viewer/demo.py b/src/layout_viewer_core/demo.py similarity index 96% rename from src/layout_viewer/demo.py rename to src/layout_viewer_core/demo.py index ff2dcc5..504f245 100644 --- a/src/layout_viewer/demo.py +++ b/src/layout_viewer_core/demo.py @@ -5,7 +5,7 @@ import math -from layout_viewer.scene import LayoutScene, SceneComponent, SceneLayer, ScenePad, ScenePolygon, SceneTrace +from layout_viewer_core.scene import LayoutScene, SceneComponent, SceneLayer, ScenePad, ScenePolygon, SceneTrace def _rectangle(x0: float, y0: float, x1: float, y1: float) -> tuple[tuple[float, float], ...]: diff --git a/src/layout_viewer/incremental.py b/src/layout_viewer_core/incremental.py similarity index 98% rename from src/layout_viewer/incremental.py rename to src/layout_viewer_core/incremental.py index 241f973..1575451 100644 --- a/src/layout_viewer/incremental.py +++ b/src/layout_viewer_core/incremental.py @@ -78,8 +78,8 @@ def prepare_incremental(scene, previous, parent, patch, changed): Removed/replaced ranges become unreachable through drawing and picking. Periodic compaction bounds tombstones and retained immutable chunks. """ - from layout_viewer.mesh import prepare_scene, scene_network_names - from layout_viewer.picking import OverlayPickIndex + from layout_viewer_core.mesh import prepare_scene, scene_network_names + from layout_viewer_core.picking import OverlayPickIndex if not changed: return parent diff --git a/src/layout_viewer/mesh.py b/src/layout_viewer_core/mesh.py similarity index 98% rename from src/layout_viewer/mesh.py rename to src/layout_viewer_core/mesh.py index 34dd9cc..f2c1379 100644 --- a/src/layout_viewer/mesh.py +++ b/src/layout_viewer_core/mesh.py @@ -9,7 +9,7 @@ import numpy as np -from layout_viewer.scene import ( +from layout_viewer_core.scene import ( Bounds, LayoutScene, SceneComponent, @@ -270,8 +270,8 @@ def _prepare_sdf( def _pickable(prepared: PreparedScene, scene: LayoutScene, sources: np.ndarray) -> PreparedScene: - from layout_viewer.incremental import outline_data - from layout_viewer.picking import PickIndex + from layout_viewer_core.incremental import outline_data + from layout_viewer_core.picking import PickIndex sources.setflags(write=False) ranges = {} @@ -325,7 +325,7 @@ def _prepare_polygon_buffers( try: import mapbox_earcut except ImportError as exc: - raise ImportError("Triangulation requires: pip install layout-viewer.") from exc + raise ImportError("Triangulation requires: pip install layout-viewer-core.") from exc vertices, indices, batches, vertex_nets = [], [], [], [] net_ids = {net: index for index, net in enumerate(scene_network_names(scene))} polygon_groups = {} diff --git a/src/layout_viewer/picking.py b/src/layout_viewer_core/picking.py similarity index 99% rename from src/layout_viewer/picking.py rename to src/layout_viewer_core/picking.py index a55e0e9..7e0c5c4 100644 --- a/src/layout_viewer/picking.py +++ b/src/layout_viewer_core/picking.py @@ -8,7 +8,7 @@ import numpy as np -from layout_viewer.scene import ( +from layout_viewer_core.scene import ( LayoutScene, Point, SceneJoin, diff --git a/src/layout_viewer/progress.py b/src/layout_viewer_core/progress.py similarity index 100% rename from src/layout_viewer/progress.py rename to src/layout_viewer_core/progress.py diff --git a/src/layout_viewer/qt/__init__.py b/src/layout_viewer_core/qt/__init__.py similarity index 100% rename from src/layout_viewer/qt/__init__.py rename to src/layout_viewer_core/qt/__init__.py diff --git a/src/layout_viewer/qt/app.py b/src/layout_viewer_core/qt/app.py similarity index 97% rename from src/layout_viewer/qt/app.py rename to src/layout_viewer_core/qt/app.py index b6efa52..90f68e0 100644 --- a/src/layout_viewer/qt/app.py +++ b/src/layout_viewer_core/qt/app.py @@ -11,8 +11,8 @@ from PySide6.QtCore import QCoreApplication, QEventLoop, Qt, QThread from PySide6.QtWidgets import QApplication -from layout_viewer.qt.ui.window import LayoutWindow -from layout_viewer.scene import LayoutScene +from layout_viewer_core.qt.ui.window import LayoutWindow +from layout_viewer_core.scene import LayoutScene # Check triangulation support before creating QApplication. import_module("mapbox_earcut") diff --git a/src/layout_viewer/qt/render/__init__.py b/src/layout_viewer_core/qt/render/__init__.py similarity index 100% rename from src/layout_viewer/qt/render/__init__.py rename to src/layout_viewer_core/qt/render/__init__.py diff --git a/src/layout_viewer/qt/render/component_labels.py b/src/layout_viewer_core/qt/render/component_labels.py similarity index 96% rename from src/layout_viewer/qt/render/component_labels.py rename to src/layout_viewer_core/qt/render/component_labels.py index 7d4ee20..966f980 100644 --- a/src/layout_viewer/qt/render/component_labels.py +++ b/src/layout_viewer_core/qt/render/component_labels.py @@ -11,13 +11,13 @@ from PySide6.QtCore import QRectF, Qt from PySide6.QtGui import QColor, QFont, QImage, QPainter, QPainterPath, QPen, QRhi, QRhiBuffer, QRhiTexture -from layout_viewer.colors import COMPONENT_OUTLINE_COLOR -from layout_viewer.mesh import split_coordinates +from layout_viewer_core.colors import COMPONENT_OUTLINE_COLOR +from layout_viewer_core.mesh import split_coordinates if TYPE_CHECKING: - from layout_viewer.camera import Camera - from layout_viewer.mesh import ComponentBatch - from layout_viewer.scene import SceneComponent + from layout_viewer_core.camera import Camera + from layout_viewer_core.mesh import ComponentBatch + from layout_viewer_core.scene import SceneComponent class ComponentLabels: diff --git a/src/layout_viewer/qt/render/coverage.py b/src/layout_viewer_core/qt/render/coverage.py similarity index 97% rename from src/layout_viewer/qt/render/coverage.py rename to src/layout_viewer_core/qt/render/coverage.py index 6b98288..c52e25a 100644 --- a/src/layout_viewer/qt/render/coverage.py +++ b/src/layout_viewer_core/qt/render/coverage.py @@ -3,7 +3,7 @@ import numpy as np from PySide6.QtGui import QImage, QRhiBuffer, QRhiTexture -from layout_viewer.colors import NET_COLORS +from layout_viewer_core.colors import NET_COLORS class SdfCoverage: diff --git a/src/layout_viewer/qt/render/grid.py b/src/layout_viewer_core/qt/render/grid.py similarity index 100% rename from src/layout_viewer/qt/render/grid.py rename to src/layout_viewer_core/qt/render/grid.py diff --git a/src/layout_viewer/qt/render/renderer.py b/src/layout_viewer_core/qt/render/renderer.py similarity index 98% rename from src/layout_viewer/qt/render/renderer.py rename to src/layout_viewer_core/qt/render/renderer.py index c81d59b..f63358d 100644 --- a/src/layout_viewer/qt/render/renderer.py +++ b/src/layout_viewer_core/qt/render/renderer.py @@ -9,7 +9,7 @@ import numpy as np from PySide6.QtGui import QRhiBuffer, QRhiColorAttachment, QRhiTextureRenderTargetDescription -from layout_viewer.colors import ( +from layout_viewer_core.colors import ( COMPONENT_COLORS, DRILL_COLOR, HIGHLIGHT_KEYLINE_COLOR, @@ -17,11 +17,11 @@ SELECTION_COLOR, net_color, ) -from layout_viewer.qt.render.component_labels import ComponentLabels -from layout_viewer.qt.render.coverage import SdfCoverage -from layout_viewer.qt.render.grid import GridRenderer -from layout_viewer.qt.render.rhi import Device, Target, camera_uniforms -from layout_viewer.scene import ScenePolygon +from layout_viewer_core.qt.render.component_labels import ComponentLabels +from layout_viewer_core.qt.render.coverage import SdfCoverage +from layout_viewer_core.qt.render.grid import GridRenderer +from layout_viewer_core.qt.render.rhi import Device, Target, camera_uniforms +from layout_viewer_core.scene import ScenePolygon class Renderer: diff --git a/src/layout_viewer/qt/render/rhi.py b/src/layout_viewer_core/qt/render/rhi.py similarity index 99% rename from src/layout_viewer/qt/render/rhi.py rename to src/layout_viewer_core/qt/render/rhi.py index cc8c7cf..2757712 100644 --- a/src/layout_viewer/qt/render/rhi.py +++ b/src/layout_viewer_core/qt/render/rhi.py @@ -34,7 +34,7 @@ from PySide6.QtWidgets import QRhiWidget from PySide6.support import VoidPtr -from layout_viewer.mesh import split_coordinates +from layout_viewer_core.mesh import split_coordinates UNIFORM_SIZE = 256 SHADER_DIRECTORY = Path(__file__).resolve().parent / "shaders" diff --git a/src/layout_viewer/qt/render/shaders/THIRD_PARTY_NOTICES.txt b/src/layout_viewer_core/qt/render/shaders/THIRD_PARTY_NOTICES.txt similarity index 100% rename from src/layout_viewer/qt/render/shaders/THIRD_PARTY_NOTICES.txt rename to src/layout_viewer_core/qt/render/shaders/THIRD_PARTY_NOTICES.txt diff --git a/src/layout_viewer/qt/render/shaders/common.glsl b/src/layout_viewer_core/qt/render/shaders/common.glsl similarity index 100% rename from src/layout_viewer/qt/render/shaders/common.glsl rename to src/layout_viewer_core/qt/render/shaders/common.glsl diff --git a/src/layout_viewer/qt/render/shaders/copper.frag b/src/layout_viewer_core/qt/render/shaders/copper.frag similarity index 100% rename from src/layout_viewer/qt/render/shaders/copper.frag rename to src/layout_viewer_core/qt/render/shaders/copper.frag diff --git a/src/layout_viewer/qt/render/shaders/copper.frag.qsb b/src/layout_viewer_core/qt/render/shaders/copper.frag.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/copper.frag.qsb rename to src/layout_viewer_core/qt/render/shaders/copper.frag.qsb diff --git a/src/layout_viewer/qt/render/shaders/copper.vert b/src/layout_viewer_core/qt/render/shaders/copper.vert similarity index 100% rename from src/layout_viewer/qt/render/shaders/copper.vert rename to src/layout_viewer_core/qt/render/shaders/copper.vert diff --git a/src/layout_viewer/qt/render/shaders/copper.vert.qsb b/src/layout_viewer_core/qt/render/shaders/copper.vert.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/copper.vert.qsb rename to src/layout_viewer_core/qt/render/shaders/copper.vert.qsb diff --git a/src/layout_viewer/qt/render/shaders/coverage.frag b/src/layout_viewer_core/qt/render/shaders/coverage.frag similarity index 100% rename from src/layout_viewer/qt/render/shaders/coverage.frag rename to src/layout_viewer_core/qt/render/shaders/coverage.frag diff --git a/src/layout_viewer/qt/render/shaders/coverage.frag.qsb b/src/layout_viewer_core/qt/render/shaders/coverage.frag.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/coverage.frag.qsb rename to src/layout_viewer_core/qt/render/shaders/coverage.frag.qsb diff --git a/src/layout_viewer/qt/render/shaders/coverage.vert b/src/layout_viewer_core/qt/render/shaders/coverage.vert similarity index 100% rename from src/layout_viewer/qt/render/shaders/coverage.vert rename to src/layout_viewer_core/qt/render/shaders/coverage.vert diff --git a/src/layout_viewer/qt/render/shaders/coverage.vert.qsb b/src/layout_viewer_core/qt/render/shaders/coverage.vert.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/coverage.vert.qsb rename to src/layout_viewer_core/qt/render/shaders/coverage.vert.qsb diff --git a/src/layout_viewer/qt/render/shaders/grid.frag b/src/layout_viewer_core/qt/render/shaders/grid.frag similarity index 100% rename from src/layout_viewer/qt/render/shaders/grid.frag rename to src/layout_viewer_core/qt/render/shaders/grid.frag diff --git a/src/layout_viewer/qt/render/shaders/grid.frag.qsb b/src/layout_viewer_core/qt/render/shaders/grid.frag.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/grid.frag.qsb rename to src/layout_viewer_core/qt/render/shaders/grid.frag.qsb diff --git a/src/layout_viewer/qt/render/shaders/join.glsl b/src/layout_viewer_core/qt/render/shaders/join.glsl similarity index 100% rename from src/layout_viewer/qt/render/shaders/join.glsl rename to src/layout_viewer_core/qt/render/shaders/join.glsl diff --git a/src/layout_viewer/qt/render/shaders/label.frag b/src/layout_viewer_core/qt/render/shaders/label.frag similarity index 100% rename from src/layout_viewer/qt/render/shaders/label.frag rename to src/layout_viewer_core/qt/render/shaders/label.frag diff --git a/src/layout_viewer/qt/render/shaders/label.frag.qsb b/src/layout_viewer_core/qt/render/shaders/label.frag.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/label.frag.qsb rename to src/layout_viewer_core/qt/render/shaders/label.frag.qsb diff --git a/src/layout_viewer/qt/render/shaders/label.vert b/src/layout_viewer_core/qt/render/shaders/label.vert similarity index 100% rename from src/layout_viewer/qt/render/shaders/label.vert rename to src/layout_viewer_core/qt/render/shaders/label.vert diff --git a/src/layout_viewer/qt/render/shaders/label.vert.qsb b/src/layout_viewer_core/qt/render/shaders/label.vert.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/label.vert.qsb rename to src/layout_viewer_core/qt/render/shaders/label.vert.qsb diff --git a/src/layout_viewer/qt/render/shaders/outline.frag b/src/layout_viewer_core/qt/render/shaders/outline.frag similarity index 100% rename from src/layout_viewer/qt/render/shaders/outline.frag rename to src/layout_viewer_core/qt/render/shaders/outline.frag diff --git a/src/layout_viewer/qt/render/shaders/outline.frag.qsb b/src/layout_viewer_core/qt/render/shaders/outline.frag.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/outline.frag.qsb rename to src/layout_viewer_core/qt/render/shaders/outline.frag.qsb diff --git a/src/layout_viewer/qt/render/shaders/outline.vert b/src/layout_viewer_core/qt/render/shaders/outline.vert similarity index 100% rename from src/layout_viewer/qt/render/shaders/outline.vert rename to src/layout_viewer_core/qt/render/shaders/outline.vert diff --git a/src/layout_viewer/qt/render/shaders/outline.vert.qsb b/src/layout_viewer_core/qt/render/shaders/outline.vert.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/outline.vert.qsb rename to src/layout_viewer_core/qt/render/shaders/outline.vert.qsb diff --git a/src/layout_viewer/qt/render/shaders/pad.glsl b/src/layout_viewer_core/qt/render/shaders/pad.glsl similarity index 100% rename from src/layout_viewer/qt/render/shaders/pad.glsl rename to src/layout_viewer_core/qt/render/shaders/pad.glsl diff --git a/src/layout_viewer/qt/render/shaders/rectangle.vert b/src/layout_viewer_core/qt/render/shaders/rectangle.vert similarity index 100% rename from src/layout_viewer/qt/render/shaders/rectangle.vert rename to src/layout_viewer_core/qt/render/shaders/rectangle.vert diff --git a/src/layout_viewer/qt/render/shaders/rectangle.vert.qsb b/src/layout_viewer_core/qt/render/shaders/rectangle.vert.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/rectangle.vert.qsb rename to src/layout_viewer_core/qt/render/shaders/rectangle.vert.qsb diff --git a/src/layout_viewer/qt/render/shaders/sdf.frag b/src/layout_viewer_core/qt/render/shaders/sdf.frag similarity index 100% rename from src/layout_viewer/qt/render/shaders/sdf.frag rename to src/layout_viewer_core/qt/render/shaders/sdf.frag diff --git a/src/layout_viewer/qt/render/shaders/sdf.frag.qsb b/src/layout_viewer_core/qt/render/shaders/sdf.frag.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/sdf.frag.qsb rename to src/layout_viewer_core/qt/render/shaders/sdf.frag.qsb diff --git a/src/layout_viewer/qt/render/shaders/sdf.vert b/src/layout_viewer_core/qt/render/shaders/sdf.vert similarity index 100% rename from src/layout_viewer/qt/render/shaders/sdf.vert rename to src/layout_viewer_core/qt/render/shaders/sdf.vert diff --git a/src/layout_viewer/qt/render/shaders/sdf.vert.qsb b/src/layout_viewer_core/qt/render/shaders/sdf.vert.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/sdf.vert.qsb rename to src/layout_viewer_core/qt/render/shaders/sdf.vert.qsb diff --git a/src/layout_viewer/qt/render/shaders/selection.frag b/src/layout_viewer_core/qt/render/shaders/selection.frag similarity index 100% rename from src/layout_viewer/qt/render/shaders/selection.frag rename to src/layout_viewer_core/qt/render/shaders/selection.frag diff --git a/src/layout_viewer/qt/render/shaders/selection.frag.qsb b/src/layout_viewer_core/qt/render/shaders/selection.frag.qsb similarity index 100% rename from src/layout_viewer/qt/render/shaders/selection.frag.qsb rename to src/layout_viewer_core/qt/render/shaders/selection.frag.qsb diff --git a/src/layout_viewer/qt/render/shaders/trace.glsl b/src/layout_viewer_core/qt/render/shaders/trace.glsl similarity index 100% rename from src/layout_viewer/qt/render/shaders/trace.glsl rename to src/layout_viewer_core/qt/render/shaders/trace.glsl diff --git a/src/layout_viewer/qt/render/shaders/uniforms.glsl b/src/layout_viewer_core/qt/render/shaders/uniforms.glsl similarity index 100% rename from src/layout_viewer/qt/render/shaders/uniforms.glsl rename to src/layout_viewer_core/qt/render/shaders/uniforms.glsl diff --git a/src/layout_viewer/qt/ui/__init__.py b/src/layout_viewer_core/qt/ui/__init__.py similarity index 100% rename from src/layout_viewer/qt/ui/__init__.py rename to src/layout_viewer_core/qt/ui/__init__.py diff --git a/src/layout_viewer/qt/ui/assets/check.svg b/src/layout_viewer_core/qt/ui/assets/check.svg similarity index 100% rename from src/layout_viewer/qt/ui/assets/check.svg rename to src/layout_viewer_core/qt/ui/assets/check.svg diff --git a/src/layout_viewer/qt/ui/assets/chevron.svg b/src/layout_viewer_core/qt/ui/assets/chevron.svg similarity index 100% rename from src/layout_viewer/qt/ui/assets/chevron.svg rename to src/layout_viewer_core/qt/ui/assets/chevron.svg diff --git a/src/layout_viewer/qt/ui/icons.py b/src/layout_viewer_core/qt/ui/icons.py similarity index 98% rename from src/layout_viewer/qt/ui/icons.py rename to src/layout_viewer_core/qt/ui/icons.py index 88b6381..ecae732 100644 --- a/src/layout_viewer/qt/ui/icons.py +++ b/src/layout_viewer_core/qt/ui/icons.py @@ -6,7 +6,7 @@ from PySide6.QtCore import QRectF, Qt from PySide6.QtGui import QColor, QIcon, QPainter, QPainterPath, QPen, QPixmap -from layout_viewer.qt.ui.theme import COLORS +from layout_viewer_core.qt.ui.theme import COLORS def layer_icon_path(layer_count: int = 2) -> QPainterPath: diff --git a/src/layout_viewer/qt/ui/inspector.py b/src/layout_viewer_core/qt/ui/inspector.py similarity index 96% rename from src/layout_viewer/qt/ui/inspector.py rename to src/layout_viewer_core/qt/ui/inspector.py index bd4ae8b..289641b 100644 --- a/src/layout_viewer/qt/ui/inspector.py +++ b/src/layout_viewer_core/qt/ui/inspector.py @@ -18,12 +18,12 @@ QWidget, ) -from layout_viewer.picking import inspector_rows -from layout_viewer.qt.ui.icons import workspace_icon -from layout_viewer.qt.ui.theme import COLORS +from layout_viewer_core.picking import inspector_rows +from layout_viewer_core.qt.ui.icons import workspace_icon +from layout_viewer_core.qt.ui.theme import COLORS if TYPE_CHECKING: - from layout_viewer.picking import PickHit + from layout_viewer_core.picking import PickHit class ObjectInspector(QFrame): diff --git a/src/layout_viewer/qt/ui/loading.py b/src/layout_viewer_core/qt/ui/loading.py similarity index 98% rename from src/layout_viewer/qt/ui/loading.py rename to src/layout_viewer_core/qt/ui/loading.py index a71d261..453fe87 100644 --- a/src/layout_viewer/qt/ui/loading.py +++ b/src/layout_viewer_core/qt/ui/loading.py @@ -5,7 +5,7 @@ from PySide6.QtCore import QElapsedTimer, Qt, QTimer, Slot from PySide6.QtWidgets import QFrame, QHBoxLayout, QLabel, QProgressBar, QVBoxLayout, QWidget -from layout_viewer.qt.ui.theme import COLORS +from layout_viewer_core.qt.ui.theme import COLORS class LoadingPanel(QFrame): diff --git a/src/layout_viewer/qt/ui/navigation.py b/src/layout_viewer_core/qt/ui/navigation.py similarity index 96% rename from src/layout_viewer/qt/ui/navigation.py rename to src/layout_viewer_core/qt/ui/navigation.py index 757ae33..97d8832 100644 --- a/src/layout_viewer/qt/ui/navigation.py +++ b/src/layout_viewer_core/qt/ui/navigation.py @@ -20,11 +20,11 @@ ) from PySide6.QtWidgets import QFrame, QGraphicsDropShadowEffect, QHBoxLayout, QToolButton -from layout_viewer.qt.ui.icons import layer_icon_path -from layout_viewer.qt.ui.theme import COLORS +from layout_viewer_core.qt.ui.icons import layer_icon_path +from layout_viewer_core.qt.ui.theme import COLORS if TYPE_CHECKING: - from layout_viewer.qt.view.canvas import LayoutView + from layout_viewer_core.qt.view.canvas import LayoutView def navigation_icon(name: str) -> QIcon: diff --git a/src/layout_viewer/qt/ui/panels.py b/src/layout_viewer_core/qt/ui/panels.py similarity index 97% rename from src/layout_viewer/qt/ui/panels.py rename to src/layout_viewer_core/qt/ui/panels.py index 5b0beef..48569d7 100644 --- a/src/layout_viewer/qt/ui/panels.py +++ b/src/layout_viewer_core/qt/ui/panels.py @@ -22,13 +22,13 @@ QWidget, ) -from layout_viewer.colors import net_color -from layout_viewer.mesh import scene_network_names -from layout_viewer.qt.ui.icons import workspace_icon -from layout_viewer.qt.ui.theme import COLORS +from layout_viewer_core.colors import net_color +from layout_viewer_core.mesh import scene_network_names +from layout_viewer_core.qt.ui.icons import workspace_icon +from layout_viewer_core.qt.ui.theme import COLORS if TYPE_CHECKING: - from layout_viewer.scene import LayoutScene, SceneLayer + from layout_viewer_core.scene import LayoutScene, SceneLayer class ElidedLabel(QLabel): diff --git a/src/layout_viewer/qt/ui/theme.py b/src/layout_viewer_core/qt/ui/theme.py similarity index 100% rename from src/layout_viewer/qt/ui/theme.py rename to src/layout_viewer_core/qt/ui/theme.py diff --git a/src/layout_viewer/qt/ui/window.py b/src/layout_viewer_core/qt/ui/window.py similarity index 98% rename from src/layout_viewer/qt/ui/window.py rename to src/layout_viewer_core/qt/ui/window.py index 975586f..a8595fb 100644 --- a/src/layout_viewer/qt/ui/window.py +++ b/src/layout_viewer_core/qt/ui/window.py @@ -26,19 +26,19 @@ QWidget, ) -from layout_viewer.mesh import prepare_scene -from layout_viewer.progress import throttle_progress -from layout_viewer.qt.ui.icons import workspace_icon -from layout_viewer.qt.ui.navigation import NavigationCapsule -from layout_viewer.qt.ui.panels import ElidedLabel, LayerPanel, NetworkPanel -from layout_viewer.qt.ui.theme import COLORS, apply_viewer_theme -from layout_viewer.qt.view.canvas import LayoutView -from layout_viewer.scene import union_bounds +from layout_viewer_core.mesh import prepare_scene +from layout_viewer_core.progress import throttle_progress +from layout_viewer_core.qt.ui.icons import workspace_icon +from layout_viewer_core.qt.ui.navigation import NavigationCapsule +from layout_viewer_core.qt.ui.panels import ElidedLabel, LayerPanel, NetworkPanel +from layout_viewer_core.qt.ui.theme import COLORS, apply_viewer_theme +from layout_viewer_core.qt.view.canvas import LayoutView +from layout_viewer_core.scene import union_bounds if TYPE_CHECKING: - from layout_viewer.mesh import PreparedScene - from layout_viewer.picking import PickedObject - from layout_viewer.scene import LayoutScene + from layout_viewer_core.mesh import PreparedScene + from layout_viewer_core.picking import PickedObject + from layout_viewer_core.scene import LayoutScene class _PreparationSignals(QObject): @@ -101,7 +101,7 @@ def run(self) -> None: self.signals.scene_ready.emit(self.scene) mesh = (self.preview_scene, self.preview_prepared) if self.preview_prepared is not None else None if self.result is not None and self.result.patch is not None and self.previous is not None: - from layout_viewer.incremental import prepare_incremental + from layout_viewer_core.incremental import prepare_incremental prepared = prepare_incremental( self.scene, self.previous[0], self.previous[1], self.result.patch, self.result.changed diff --git a/src/layout_viewer/qt/view/__init__.py b/src/layout_viewer_core/qt/view/__init__.py similarity index 100% rename from src/layout_viewer/qt/view/__init__.py rename to src/layout_viewer_core/qt/view/__init__.py diff --git a/src/layout_viewer/qt/view/canvas.py b/src/layout_viewer_core/qt/view/canvas.py similarity index 97% rename from src/layout_viewer/qt/view/canvas.py rename to src/layout_viewer_core/qt/view/canvas.py index 9bb8525..8b80ccd 100644 --- a/src/layout_viewer/qt/view/canvas.py +++ b/src/layout_viewer_core/qt/view/canvas.py @@ -18,18 +18,18 @@ ) from PySide6.QtWidgets import QLabel, QRhiWidget, QWidget -from layout_viewer.camera import Camera -from layout_viewer.picking import PickHit -from layout_viewer.qt.ui.inspector import ObjectInspector -from layout_viewer.qt.ui.loading import LoadingPanel -from layout_viewer.qt.render.renderer import Renderer -from layout_viewer.qt.render.rhi import graphics_api -from layout_viewer.qt.ui.theme import COLORS +from layout_viewer_core.camera import Camera +from layout_viewer_core.picking import PickHit +from layout_viewer_core.qt.ui.inspector import ObjectInspector +from layout_viewer_core.qt.ui.loading import LoadingPanel +from layout_viewer_core.qt.render.renderer import Renderer +from layout_viewer_core.qt.render.rhi import graphics_api +from layout_viewer_core.qt.ui.theme import COLORS if TYPE_CHECKING: - from layout_viewer.mesh import PreparedScene - from layout_viewer.picking import PickedObject, PickObject - from layout_viewer.scene import Bounds, LayoutScene + from layout_viewer_core.mesh import PreparedScene + from layout_viewer_core.picking import PickedObject, PickObject + from layout_viewer_core.scene import Bounds, LayoutScene class LayoutView(QRhiWidget): diff --git a/src/layout_viewer/scene.py b/src/layout_viewer_core/scene.py similarity index 100% rename from src/layout_viewer/scene.py rename to src/layout_viewer_core/scene.py diff --git a/tests/conftest.py b/tests/conftest.py index 5fe960c..f31dd2c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,7 @@ import pytest -from layout_viewer.scene import LayoutScene, SceneLayer, SceneObjectInfo, ScenePad, ScenePolygon, SceneTrace +from layout_viewer_core.scene import LayoutScene, SceneLayer, SceneObjectInfo, ScenePad, ScenePolygon, SceneTrace @pytest.fixture diff --git a/tests/test_camera.py b/tests/test_camera.py index b6b8e61..2ce0dc9 100644 --- a/tests/test_camera.py +++ b/tests/test_camera.py @@ -1,6 +1,6 @@ import pytest -from layout_viewer.camera import Camera +from layout_viewer_core.camera import Camera @pytest.mark.parametrize("mirror", [False, True]) diff --git a/tests/test_capture.py b/tests/test_capture.py index 6ef3bcf..5486178 100644 --- a/tests/test_capture.py +++ b/tests/test_capture.py @@ -3,8 +3,8 @@ import pytest -from layout_viewer.capture import SourceCapture -from layout_viewer.scene import LayoutScene, SceneLayer, SceneObjectInfo, ScenePolygon +from layout_viewer_core.capture import SourceCapture +from layout_viewer_core.scene import LayoutScene, SceneLayer, SceneObjectInfo, ScenePolygon @dataclass diff --git a/tests/test_live_refresh.py b/tests/test_live_refresh.py index 11cd519..44587b6 100644 --- a/tests/test_live_refresh.py +++ b/tests/test_live_refresh.py @@ -1,10 +1,10 @@ from dataclasses import dataclass from threading import RLock -from layout_viewer.capture import SourceCapture -from layout_viewer.mesh import prepare_scene -from layout_viewer.qt.ui.window import _Prepare -from layout_viewer.scene import LayoutScene, SceneLayer, SceneObjectInfo, ScenePolygon +from layout_viewer_core.capture import SourceCapture +from layout_viewer_core.mesh import prepare_scene +from layout_viewer_core.qt.ui.window import _Prepare +from layout_viewer_core.scene import LayoutScene, SceneLayer, SceneObjectInfo, ScenePolygon @dataclass diff --git a/tests/test_mesh.py b/tests/test_mesh.py index a9c084b..f95aaf1 100644 --- a/tests/test_mesh.py +++ b/tests/test_mesh.py @@ -1,7 +1,7 @@ import numpy as np -from layout_viewer.mesh import prepare_scene -from layout_viewer.scene import LayoutScene +from layout_viewer_core.mesh import prepare_scene +from layout_viewer_core.scene import LayoutScene def test_prepare_scene_builds_polygon_and_analytic_geometry(sample_scene) -> None: diff --git a/tests/test_picking.py b/tests/test_picking.py index aeddf78..3684c97 100644 --- a/tests/test_picking.py +++ b/tests/test_picking.py @@ -1,5 +1,5 @@ -from layout_viewer.picking import PickIndex -from layout_viewer.scene import LayoutScene, SceneLayer, ScenePolygon +from layout_viewer_core.picking import PickIndex +from layout_viewer_core.scene import LayoutScene, SceneLayer, ScenePolygon def test_pick_index_applies_layer_network_and_opacity_filters(sample_scene) -> None: diff --git a/tests/test_qt_interaction.py b/tests/test_qt_interaction.py index 7bcccc1..aa8e85a 100644 --- a/tests/test_qt_interaction.py +++ b/tests/test_qt_interaction.py @@ -2,8 +2,8 @@ from PySide6.QtCore import Qt from PySide6.QtTest import QTest -from layout_viewer.mesh import prepare_scene -from layout_viewer.qt.view.canvas import LayoutView +from layout_viewer_core.mesh import prepare_scene +from layout_viewer_core.qt.view.canvas import LayoutView def test_canvas_click_selects_and_escape_clears_selection(qapp, sample_scene) -> None: diff --git a/tests/test_qt_shader_resources.py b/tests/test_qt_shader_resources.py index 2c2747b..dca9026 100644 --- a/tests/test_qt_shader_resources.py +++ b/tests/test_qt_shader_resources.py @@ -2,7 +2,7 @@ from PySide6.QtGui import QShader -from layout_viewer.qt.render.rhi import SHADER_DIRECTORY +from layout_viewer_core.qt.render.rhi import SHADER_DIRECTORY def test_shader_packs_load_from_qt_shader_directory() -> None: diff --git a/tests/test_qt_theme.py b/tests/test_qt_theme.py index c484bdd..d50e00a 100644 --- a/tests/test_qt_theme.py +++ b/tests/test_qt_theme.py @@ -9,7 +9,7 @@ from PySide6.QtGui import QFontDatabase from PySide6.QtWidgets import QApplication, QWidget -from layout_viewer.qt.ui.theme import apply_viewer_theme +from layout_viewer_core.qt.ui.theme import apply_viewer_theme def test_theme_uses_available_font_and_existing_assets() -> None: diff --git a/tests/test_scene.py b/tests/test_scene.py index 52f7c12..b8a214e 100644 --- a/tests/test_scene.py +++ b/tests/test_scene.py @@ -2,7 +2,7 @@ import pytest -from layout_viewer.scene import LayoutScene, SceneLayer, ScenePolygon +from layout_viewer_core.scene import LayoutScene, SceneLayer, ScenePolygon def test_scene_normalizes_collections_and_reports_geometry_bounds(sample_scene) -> None: diff --git a/uv.lock b/uv.lock index 749e114..c2411bc 100644 --- a/uv.lock +++ b/uv.lock @@ -38,7 +38,7 @@ wheels = [ ] [[package]] -name = "layout-viewer" +name = "layout-viewer-core" source = { editable = "." } dependencies = [ { name = "mapbox-earcut" },