add convert tool
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
git[project]
|
||||
[project]
|
||||
name = "rord-layout-recognation"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = [
|
||||
"cairosvg>=2.8.2",
|
||||
"gdstk>=0.9.60",
|
||||
"numpy>=2.3.0",
|
||||
"opencv-python>=4.11.0.86",
|
||||
"pillow>=11.2.1",
|
||||
|
||||
88
tools/layout2png.py
Normal file
88
tools/layout2png.py
Normal file
@@ -0,0 +1,88 @@
|
||||
import gdstk
|
||||
import cairosvg
|
||||
import argparse
|
||||
import os
|
||||
|
||||
def convert_layout_to_png_via_svg(layout_path, png_path, cell_name=None, pixels_per_unit=10):
|
||||
"""
|
||||
通过先生成 SVG 再转换为 PNG 的方式,将 GDSII 或 OASIS 文件光栅化。
|
||||
此版本修正了 write_svg 的参数错误,兼容性更强。
|
||||
|
||||
参数:
|
||||
layout_path (str): 输入的版图文件路径(.gds 或 .oas)。
|
||||
png_path (str): 输出的 PNG 文件路径。
|
||||
cell_name (str, optional): 需要转换的单元名称。如果为 None,则使用顶层单元。
|
||||
pixels_per_unit (int, optional): 版图数据库单位到像素的转换比例,控制图像分辨率。
|
||||
"""
|
||||
print(f"正在从 '{layout_path}' 读取版图文件...")
|
||||
|
||||
# 1. 加载版图文件
|
||||
_, extension = os.path.splitext(layout_path)
|
||||
extension = extension.lower()
|
||||
|
||||
if extension == '.gds':
|
||||
lib = gdstk.read_gds(layout_path)
|
||||
elif extension == '.oas':
|
||||
lib = gdstk.read_oas(layout_path)
|
||||
else:
|
||||
raise ValueError(f"不支持的文件类型: '{extension}'。请输入 .gds 或 .oas 文件。")
|
||||
|
||||
if cell_name:
|
||||
cell = lib.cells[cell_name]
|
||||
else:
|
||||
top_cells = lib.top_level()
|
||||
if not top_cells:
|
||||
raise ValueError("错误:版图文件中没有找到顶层单元。")
|
||||
cell = top_cells[0]
|
||||
print(f"未指定单元名称,自动选择顶层单元: '{cell.name}'")
|
||||
|
||||
# 2. 将版图单元写入临时的 SVG 文件 (已移除无效的 padding 参数)
|
||||
temp_svg_path = png_path + ".temp.svg"
|
||||
print(f"步骤 1/2: 正在将单元 '{cell.name}' 转换为临时 SVG 文件...")
|
||||
cell.write_svg(
|
||||
temp_svg_path # 隐藏默认字体,避免影响边界
|
||||
)
|
||||
|
||||
# 3. 使用 cairosvg 将 SVG 文件转换为 PNG
|
||||
print(f"步骤 2/2: 正在将 SVG 转换为 PNG...")
|
||||
# 获取单元的精确边界框
|
||||
bb = cell.bb()
|
||||
if bb is None:
|
||||
raise ValueError(f"单元 '{cell.name}' 为空或无法获取其边界框。")
|
||||
|
||||
# 根据边界框和分辨率计算输出图像的宽度
|
||||
width, height = bb[1] - bb[0]
|
||||
output_width = width * pixels_per_unit
|
||||
|
||||
cairosvg.svg2png(url=temp_svg_path, write_to=png_path, output_width=output_width)
|
||||
|
||||
# 4. 清理临时的 SVG 文件
|
||||
os.remove(temp_svg_path)
|
||||
|
||||
print(f"成功!图像已保存至: '{png_path}'")
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(
|
||||
description="将 GDSII (.gds) 或 OASIS (.oas) 版图文件转换为 PNG 图像 (通过SVG)。",
|
||||
epilog="示例: python rasterize.py -i my_chip.oas -o my_chip.png -ppu 20"
|
||||
)
|
||||
parser.add_argument('-i', '--input', type=str, required=True, help="输入的版图文件路径 (.gds 或 .oas)。")
|
||||
parser.add_argument('-o', '--output', type=str, help="输出的 PNG 文件路径。如果未提供,将使用输入文件名并替换扩展名为 .png。")
|
||||
parser.add_argument('-c', '--cell', type=str, default=None, help="要转换的特定单元的名称。默认为顶层单元。")
|
||||
parser.add_argument('-ppu', '--pixels_per_unit', type=int, default=10, help="每微米(um)的像素数,用于控制输出图像的分辨率。")
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.output:
|
||||
base_name = os.path.splitext(os.path.basename(args.input))[0]
|
||||
args.output = f"{base_name}.png"
|
||||
print(f"未指定输出路径,将自动保存为: '{args.output}'")
|
||||
|
||||
try:
|
||||
convert_layout_to_png_via_svg(
|
||||
layout_path=args.input,
|
||||
png_path=args.output,
|
||||
cell_name=args.cell,
|
||||
pixels_per_unit=args.pixels_per_unit
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"\n处理失败: {e}")
|
||||
144
uv.lock
generated
144
uv.lock
generated
@@ -7,6 +7,89 @@ resolution-markers = [
|
||||
"(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cairocffi"
|
||||
version = "1.7.1"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
dependencies = [
|
||||
{ name = "cffi" },
|
||||
]
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/70/c5/1a4dc131459e68a173cbdab5fad6b524f53f9c1ef7861b7698e998b837cc/cairocffi-1.7.1.tar.gz", hash = "sha256:2e48ee864884ec4a3a34bfa8c9ab9999f688286eb714a15a43ec9d068c36557b", size = 88096, upload-time = "2024-06-18T10:56:06.741Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/93/d8/ba13451aa6b745c49536e87b6bf8f629b950e84bd0e8308f7dc6883b67e2/cairocffi-1.7.1-py3-none-any.whl", hash = "sha256:9803a0e11f6c962f3b0ae2ec8ba6ae45e957a146a004697a1ac1bbf16b073b3f", size = 75611, upload-time = "2024-06-18T10:55:59.489Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cairosvg"
|
||||
version = "2.8.2"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
dependencies = [
|
||||
{ name = "cairocffi" },
|
||||
{ name = "cssselect2" },
|
||||
{ name = "defusedxml" },
|
||||
{ name = "pillow" },
|
||||
{ name = "tinycss2" },
|
||||
]
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ab/b9/5106168bd43d7cd8b7cc2a2ee465b385f14b63f4c092bb89eee2d48c8e67/cairosvg-2.8.2.tar.gz", hash = "sha256:07cbf4e86317b27a92318a4cac2a4bb37a5e9c1b8a27355d06874b22f85bef9f", size = 8398590, upload-time = "2025-05-15T06:56:32.653Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/67/48/816bd4aaae93dbf9e408c58598bc32f4a8c65f4b86ab560864cb3ee60adb/cairosvg-2.8.2-py3-none-any.whl", hash = "sha256:eab46dad4674f33267a671dce39b64be245911c901c70d65d2b7b0821e852bf5", size = 45773, upload-time = "2025-05-15T06:56:28.552Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cffi"
|
||||
version = "1.17.1"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
dependencies = [
|
||||
{ name = "pycparser" },
|
||||
]
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload-time = "2024-09-04T20:45:21.852Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178, upload-time = "2024-09-04T20:44:12.232Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840, upload-time = "2024-09-04T20:44:13.739Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803, upload-time = "2024-09-04T20:44:15.231Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850, upload-time = "2024-09-04T20:44:17.188Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729, upload-time = "2024-09-04T20:44:18.688Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256, upload-time = "2024-09-04T20:44:20.248Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424, upload-time = "2024-09-04T20:44:21.673Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568, upload-time = "2024-09-04T20:44:23.245Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736, upload-time = "2024-09-04T20:44:24.757Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448, upload-time = "2024-09-04T20:44:26.208Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976, upload-time = "2024-09-04T20:44:27.578Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload-time = "2024-09-04T20:44:28.956Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload-time = "2024-09-04T20:44:30.289Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload-time = "2024-09-04T20:44:32.01Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload-time = "2024-09-04T20:44:33.606Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload-time = "2024-09-04T20:44:35.191Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload-time = "2024-09-04T20:44:36.743Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload-time = "2024-09-04T20:44:38.492Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload-time = "2024-09-04T20:44:40.046Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload-time = "2024-09-04T20:44:41.616Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload-time = "2024-09-04T20:44:43.733Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload-time = "2024-09-04T20:44:45.309Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cssselect2"
|
||||
version = "0.8.0"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
dependencies = [
|
||||
{ name = "tinycss2" },
|
||||
{ name = "webencodings" },
|
||||
]
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/9f/86/fd7f58fc498b3166f3a7e8e0cddb6e620fe1da35b02248b1bd59e95dbaaa/cssselect2-0.8.0.tar.gz", hash = "sha256:7674ffb954a3b46162392aee2a3a0aedb2e14ecf99fcc28644900f4e6e3e9d3a", size = 35716, upload-time = "2025-03-05T14:46:07.988Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/0f/e7/aa315e6a749d9b96c2504a1ba0ba031ba2d0517e972ce22682e3fccecb09/cssselect2-0.8.0-py3-none-any.whl", hash = "sha256:46fc70ebc41ced7a32cd42d58b1884d72ade23d21e5a4eaaf022401c13f0e76e", size = 15454, upload-time = "2025-03-05T14:46:06.463Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "defusedxml"
|
||||
version = "0.7.1"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "filelock"
|
||||
version = "3.18.0"
|
||||
@@ -25,6 +108,33 @@ wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/bb/61/78c7b3851add1481b048b5fdc29067397a1784e2910592bc81bb3f608635/fsspec-2025.5.1-py3-none-any.whl", hash = "sha256:24d3a2e663d5fc735ab256263c4075f374a174c3410c0b25e5bd1970bceaa462", size = 199052, upload-time = "2025-05-24T12:03:21.66Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gdstk"
|
||||
version = "0.9.60"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
dependencies = [
|
||||
{ name = "numpy" },
|
||||
]
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f7/06/041d9a64f736309209d5f190b81ee7e0ca8f3c5a9d19d8d53e37b739b367/gdstk-0.9.60.tar.gz", hash = "sha256:6d9b807bf0ea43903779c0ba8c65b4fdfbca903a90dbb1acfd11b41fd0574588", size = 317689, upload-time = "2025-04-15T12:38:11.883Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/94/a3/6af43207b5b2e19159849b0def21634e3dc47d5526c5043eee163a1e7f62/gdstk-0.9.60-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:724054622a6afff52bd6863d88e09053b13f8e015c874d81a7de6f0d37a88df2", size = 922600, upload-time = "2025-04-15T12:37:40.206Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/9e/20/e35419a30cae6b9dba91d031f2ff7cea50569eafc280c1e3225ad3272417/gdstk-0.9.60-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8ce17b51e6f6494e038224033f55c4f8226897e3505ad5d7e0c37a7aadbf2e81", size = 477080, upload-time = "2025-04-15T12:37:41.212Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/3f/d1/008837b68e35d75c56d10884b486ffe2ceb57fb1567fe10e0ec0b1a9446e/gdstk-0.9.60-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5c525fd1b4c9a56df3aa55646be1980e3edcc326485ca2058b889f63fd9d265f", size = 600644, upload-time = "2025-04-15T12:37:42.693Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/1e/51/147f1ca9c3ba76e08e4e5e7271ad05d9276a3f93cba4f61332c3cab03ebc/gdstk-0.9.60-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9155d90b3035140201519f4ab97af6ec7ac96fa2cc4ca2927b93e5877c458315", size = 536859, upload-time = "2025-04-15T12:37:43.729Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e5/a1/27a362bd1175705986d709fe4113695c7240866e4332f40df2068c7975d3/gdstk-0.9.60-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:a51d0561f76059db7cfd6396163e10b3c89c2dd8285a38ef940f374caeac38a5", size = 535697, upload-time = "2025-04-15T12:37:45.403Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/7a/bb/27674fec6fe62dda386f85036e64fbb4cc4c214868ea4386547005849485/gdstk-0.9.60-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:7702cec46ab36b3cc6f08db29e7fb20cc93946a2cf3fa01188b0b6a831d83cdf", size = 1711695, upload-time = "2025-04-15T12:37:46.563Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/0d/7b/ffea1d8403475c3fd3737dd293739ba5b6f37e3166b2b0aed611541fc828/gdstk-0.9.60-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce367af239b4cf07e305cdd682e3a84df56e26c3ddbc4b1f55bc91467363386b", size = 1535214, upload-time = "2025-04-15T12:37:48.262Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/71/84/26178f14c7e068b62af11ce7ea68751f334774f7b7cbb0b5e232d3875ccf/gdstk-0.9.60-cp312-cp312-win_amd64.whl", hash = "sha256:a94f259a453736f24d4a98f8fca857f082081f84051094ad6b2d0f1b81fee19d", size = 499969, upload-time = "2025-04-15T12:37:50.179Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/55/13/2fd6504c0508b84f712574386b02c3d61d36a7b5111ca24220d62f0a06c6/gdstk-0.9.60-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5f1832f90f23c761e182e8f0dffcf9e47260f6be47a445b5027cd17ff9b2d51b", size = 922591, upload-time = "2025-04-15T12:37:51.201Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e6/15/8429f34a2429c63adcb875b704723eca606e4fafa0bea768b5e3511a0cc7/gdstk-0.9.60-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:db240ecabacf0063e035d7ad7e156a500d895c0b9886d0b2adaa9681b83d9424", size = 477069, upload-time = "2025-04-15T12:37:52.228Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/38/7b/ae724d43d081f480a582eb11fd06cabf90cc7e0bb0fdcb32ce8d4093e017/gdstk-0.9.60-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9c80eed22802b72566a89e4d429b1ec820a1b28658bc20830f455933d5ed963", size = 600640, upload-time = "2025-04-15T12:37:53.709Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/86/08/1ac9df64fd281017d6aeefddda2fb4b9821d20b45db1910ecf1fe9f7740d/gdstk-0.9.60-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0a35625a965848aabf52b4e92c37e0876bdc6f01099f0614fc97dfb28676e19", size = 536872, upload-time = "2025-04-15T12:37:54.742Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/8a/f6/95d4d6176cfbd2236bf15bb1e60bf18dd49604b0a9548c1b534ed1a7354a/gdstk-0.9.60-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bc52f232471b97e52004b047e4300de9e92575e62fbf40fe6bd1d4fbb1b87bc4", size = 535696, upload-time = "2025-04-15T12:37:55.752Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e9/33/7a1f4e1bd8b68f90a47cc306f3b3bc91b26e85d4cc690c620edffad48786/gdstk-0.9.60-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:aa0a7a617f90bd2c4ab5b5032638ea01c39f3305490bda67a82d8310e266aeb4", size = 1711735, upload-time = "2025-04-15T12:37:56.768Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/a8/ba/6588229bb74dcbf10f07b5a803914a04c1b1842f77f704629bb726be131b/gdstk-0.9.60-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64249dfc5803e987decbae5bc28144242f0297869fca1074b26380f261998ee6", size = 1535206, upload-time = "2025-04-15T12:37:58.301Z" },
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/30/bc/70950ace7b5db1cbe5bdf2f9238cab885f51ad51d6befac2d0fb11d94fb9/gdstk-0.9.60-cp313-cp313-win_amd64.whl", hash = "sha256:9e41b38a719991b1e36ea0320c44688ac18e64ae53d9e5775fc7222fccfbb34a", size = 499802, upload-time = "2025-04-15T12:37:59.404Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jinja2"
|
||||
version = "3.1.6"
|
||||
@@ -325,11 +435,22 @@ wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/67/32/32dc030cfa91ca0fc52baebbba2e009bb001122a1daa8b6a79ad830b38d3/pillow-11.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:225c832a13326e34f212d2072982bb1adb210e0cc0b153e688743018c94a2681", size = 2417234, upload-time = "2025-04-12T17:49:08.399Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pycparser"
|
||||
version = "2.22"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload-time = "2024-03-30T13:22:22.564Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rord-layout-recognation"
|
||||
version = "0.1.0"
|
||||
source = { virtual = "." }
|
||||
dependencies = [
|
||||
{ name = "cairosvg" },
|
||||
{ name = "gdstk" },
|
||||
{ name = "numpy" },
|
||||
{ name = "opencv-python" },
|
||||
{ name = "pillow" },
|
||||
@@ -339,6 +460,8 @@ dependencies = [
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "cairosvg", specifier = ">=2.8.2" },
|
||||
{ name = "gdstk", specifier = ">=0.9.60" },
|
||||
{ name = "numpy", specifier = ">=2.3.0" },
|
||||
{ name = "opencv-python", specifier = ">=4.11.0.86" },
|
||||
{ name = "pillow", specifier = ">=11.2.1" },
|
||||
@@ -367,6 +490,18 @@ wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tinycss2"
|
||||
version = "1.4.0"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
dependencies = [
|
||||
{ name = "webencodings" },
|
||||
]
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085, upload-time = "2024-10-24T14:58:29.895Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610, upload-time = "2024-10-24T14:58:28.029Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "torch"
|
||||
version = "2.7.1"
|
||||
@@ -455,3 +590,12 @@ sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d1/bc/51647cd02527e8
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/69/e0/552843e0d356fbb5256d21449fa957fa4eff3bbc135a74a691ee70c7c5da/typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af", size = 43839, upload-time = "2025-06-02T14:52:10.026Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webencodings"
|
||||
version = "0.5.1"
|
||||
source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" }
|
||||
sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" }
|
||||
wheels = [
|
||||
{ url = "https://pypi.tuna.tsinghua.edu.cn/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" },
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user