96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
[build-system]
 | 
						|
requires = ["hatchling"]
 | 
						|
build-backend = "hatchling.build"
 | 
						|
 | 
						|
[project]
 | 
						|
name = "masque"
 | 
						|
description = "Lithography mask library"
 | 
						|
readme = "README.md"
 | 
						|
license = { file = "LICENSE.md" }
 | 
						|
authors = [
 | 
						|
    { name="Jan Petykiewicz", email="jan@mpxd.net" },
 | 
						|
    ]
 | 
						|
homepage = "https://mpxd.net/code/jan/masque"
 | 
						|
repository = "https://mpxd.net/code/jan/masque"
 | 
						|
keywords = [
 | 
						|
    "layout",
 | 
						|
    "CAD",
 | 
						|
    "EDA",
 | 
						|
    "mask",
 | 
						|
    "pattern",
 | 
						|
    "lithography",
 | 
						|
    "oas",
 | 
						|
    "gds",
 | 
						|
    "dxf",
 | 
						|
    "svg",
 | 
						|
    "OASIS",
 | 
						|
    "gdsii",
 | 
						|
    "gds2",
 | 
						|
    "stream",
 | 
						|
    ]
 | 
						|
classifiers = [
 | 
						|
    "Programming Language :: Python :: 3",
 | 
						|
    "Development Status :: 4 - Beta",
 | 
						|
    "Intended Audience :: Developers",
 | 
						|
    "Intended Audience :: Information Technology",
 | 
						|
    "Intended Audience :: Manufacturing",
 | 
						|
    "Intended Audience :: Science/Research",
 | 
						|
    "License :: OSI Approved :: GNU Affero General Public License v3",
 | 
						|
    "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
 | 
						|
    "Topic :: Scientific/Engineering :: Visualization",
 | 
						|
    ]
 | 
						|
requires-python = ">=3.11"
 | 
						|
dynamic = ["version"]
 | 
						|
dependencies = [
 | 
						|
    "numpy>=1.26",
 | 
						|
    "klamath~=1.4",
 | 
						|
    ]
 | 
						|
 | 
						|
 | 
						|
[tool.hatch.version]
 | 
						|
path = "masque/__init__.py"
 | 
						|
 | 
						|
[project.optional-dependencies]
 | 
						|
oasis = ["fatamorgana~=0.11"]
 | 
						|
dxf = ["ezdxf~=1.0.2"]
 | 
						|
svg = ["svgwrite"]
 | 
						|
visualize = ["matplotlib"]
 | 
						|
text = ["matplotlib", "freetype-py"]
 | 
						|
 | 
						|
 | 
						|
[tool.ruff]
 | 
						|
exclude = [
 | 
						|
    ".git",
 | 
						|
    "dist",
 | 
						|
    ]
 | 
						|
line-length = 145
 | 
						|
indent-width = 4
 | 
						|
lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
 | 
						|
lint.select = [
 | 
						|
    "NPY", "E", "F", "W", "B", "ANN", "UP", "SLOT", "SIM", "LOG",
 | 
						|
    "C4", "ISC", "PIE", "PT", "RET", "TCH", "PTH", "INT",
 | 
						|
    "ARG", "PL", "R", "TRY",
 | 
						|
    "G010", "G101", "G201", "G202",
 | 
						|
    "Q002", "Q003", "Q004",
 | 
						|
    ]
 | 
						|
lint.ignore = [
 | 
						|
    #"ANN001",   # No annotation
 | 
						|
    "ANN002",   # *args
 | 
						|
    "ANN003",   # **kwargs
 | 
						|
    "ANN401",   # Any
 | 
						|
    "SIM108",   # single-line if / else assignment
 | 
						|
    "RET504",   # x=y+z; return x
 | 
						|
    "PIE790",   # unnecessary pass
 | 
						|
    "ISC003",   # non-implicit string concatenation
 | 
						|
    "C408",     # dict(x=y) instead of {'x': y}
 | 
						|
    "PLR09",    # Too many xxx
 | 
						|
    "PLR2004",  # magic number
 | 
						|
    "PLC0414",  # import x as x
 | 
						|
    "TRY003",   # Long exception message
 | 
						|
    ]
 | 
						|
 | 
						|
[tool.pytest.ini_options]
 | 
						|
addopts = "-rsXx"
 | 
						|
testpaths = ["masque"]
 | 
						|
 |