2022-11-20 19:38:21 -08:00
|
|
|
[build-system]
|
|
|
|
requires = ["hatchling"]
|
|
|
|
build-backend = "hatchling.build"
|
|
|
|
|
|
|
|
[project]
|
|
|
|
name = "opencl_fdfd"
|
|
|
|
description = "OpenCL FDFD solver"
|
|
|
|
readme = "README.md"
|
|
|
|
license = { file = "LICENSE.md" }
|
|
|
|
authors = [
|
|
|
|
{ name="Jan Petykiewicz", email="jan@mpxd.net" },
|
|
|
|
]
|
|
|
|
homepage = "https://mpxd.net/code/jan/opencl_fdfd"
|
|
|
|
repository = "https://mpxd.net/code/jan/opencl_fdfd"
|
|
|
|
keywords = [
|
|
|
|
"FDFD",
|
|
|
|
"finite",
|
|
|
|
"difference",
|
|
|
|
"frequency",
|
|
|
|
"domain",
|
|
|
|
"simulation",
|
|
|
|
"optics",
|
|
|
|
"electromagnetic",
|
|
|
|
"dielectric",
|
|
|
|
"PML",
|
|
|
|
"solver",
|
|
|
|
"FDTD",
|
|
|
|
]
|
|
|
|
classifiers = [
|
|
|
|
"Programming Language :: Python :: 3",
|
|
|
|
"Development Status :: 4 - Beta",
|
|
|
|
"Intended Audience :: Developers",
|
|
|
|
"Intended Audience :: Manufacturing",
|
|
|
|
"Intended Audience :: Science/Research",
|
|
|
|
"License :: OSI Approved :: GNU Affero General Public License v3",
|
|
|
|
"Topic :: Scientific/Engineering",
|
|
|
|
]
|
2024-07-30 22:44:02 -07:00
|
|
|
requires-python = ">=3.11"
|
2022-11-20 19:38:21 -08:00
|
|
|
dynamic = ["version"]
|
|
|
|
dependencies = [
|
2024-07-30 22:44:02 -07:00
|
|
|
"numpy>=1.26",
|
2022-11-20 19:38:21 -08:00
|
|
|
"pyopencl",
|
|
|
|
"jinja2",
|
|
|
|
"meanas>=0.5",
|
|
|
|
]
|
|
|
|
|
|
|
|
[tool.hatch.version]
|
|
|
|
path = "opencl_fdfd/__init__.py"
|
2024-07-30 22:43:53 -07:00
|
|
|
|
|
|
|
|
|
|
|
[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
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
module = [
|
|
|
|
"scipy",
|
|
|
|
"scipy.optimize",
|
|
|
|
"scipy.linalg",
|
|
|
|
"scipy.sparse",
|
|
|
|
"scipy.sparse.linalg",
|
|
|
|
"pyopencl",
|
|
|
|
"pyopencl.array",
|
|
|
|
"pyopencl.elementwise",
|
|
|
|
"pyopencl.reduction",
|
|
|
|
]
|
|
|
|
ignore_missing_imports = true
|