[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.2", ] [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 "ANN101", # self: Self "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 ]