[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "gridlock" description = "Coupled gridding library" readme = "README.md" license = { file = "LICENSE.md" } authors = [ { name="Jan Petykiewicz", email="jan@mpxd.net" }, ] homepage = "https://mpxd.net/code/jan/gridlock" repository = "https://mpxd.net/code/jan/gridlock" keywords = [ "FDTD", "gridding", "simulation", "nonuniform", "FDFD", "finite", "difference", ] classifiers = [ "Programming Language :: Python :: 3", "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Affero General Public License v3", "Topic :: Multimedia :: Graphics :: 3D Rendering", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", "Topic :: Scientific/Engineering :: Physics", "Topic :: Scientific/Engineering :: Visualization", ] requires-python = ">=3.11" include = [ "LICENSE.md" ] dynamic = ["version"] dependencies = [ "numpy>=1.26", "float_raster>=0.8", ] [tool.hatch.version] path = "gridlock/__init__.py" [project.optional-dependencies] visualization = ["matplotlib"] visualization-isosurface = [ "matplotlib", "skimage>=0.13", "mpl_toolkits", ] [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 "PTH123", # open() ] [[tool.mypy.overrides]] module = [ "matplotlib", "matplotlib.axes", "matplotlib.figure", "mpl_toolkits.mplot3d", ] ignore_missing_imports = true