[build-system] requires = ["setuptools>=64.0.1", "setuptools-scm[toml]>=6.2"] build-backend = "setuptools.build_meta" [project] name = "pynxtools-xps" dynamic = ["version"] authors = [ { name = "The NOMAD Authors" }, ] description = "A reader for transferring XPS data from vendor formats to NeXus and NOMAD." readme = "README.md" license = { file = "LICENSE" } requires-python = ">=3.9" classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", ] dependencies = [ "h5py>=3.6.0", "igor2", "jsonschema>=4.0.0", "numpy>=1.22.4,<2.0.0", "pint", "pynxtools>=0.11.0", "xarray>=0.20.2", ] [project.optional-dependencies] dev = [ "mypy", "ruff>=0.12.0", "pytest", "pytest-cov", "pytest-timeout", "structlog", "types-pyyaml", "types-pytz", "types-requests", "uv", "pre-commit", ] docs = [ "mkdocs", "mkdocs-material", "mkdocs-material-extensions", "mkdocs-macros-plugin", "pymdown-extensions", "mkdocs-click" ] [project.urls] "Homepage" = "https://github.com/FAIRmat-NFDI/pynxtools-xps" "Bug Tracker" = "https://github.com/FAIRmat-NFDI/pynxtools-xps/issues" [project.entry-points."pynxtools.reader"] xps = "pynxtools_xps.reader:XPSReader" [project.entry-points.'nomad.plugin'] xps_example = "pynxtools_xps.nomad.entrypoints:xps_example" [tool.setuptools.packages.find] where = [ "src", ] [tool.setuptools.package-data] pynxtools_xps = ["*.json"] [tool.setuptools_scm] version_scheme = "no-guess-dev" local_scheme = "node-and-date" [tool.ruff] include = ["src/*.py", "tests/*.py"] line-length = 88 indent-width = 4 [tool.ruff.lint] select = [ "E", # pycodestyle "W", # pycodestyle "PL", # pylint # "NPY201", # reactivate when using numpy > 2.0 ] ignore = [ "E501", # Line too long ({width} > {limit} characters) "E701", # Multiple statements on one line (colon) "E731", # Do not assign a lambda expression, use a def "E402", # Module level import not at top of file "PLR0911", # Too many return statements "PLR0912", # Too many branches "PLR0913", # Too many arguments in function definition "PLR0915", # Too many statements "PLR2004", # Magic value used instead of constant "PLW0603", # Using the global statement "PLW2901", # redefined-loop-name "PLR1714", # consider-using-in "PLR5501", # else-if-used ] fixable = ["ALL"] [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.mypy] strict = false ignore_missing_imports = true follow_imports = "silent" no_strict_optional = true disable_error_code = "import, annotation-unchecked"