[build-system] build-backend = "uv_build" requires = [ "uv_build>=0.9.0,<0.10.0", ] [project] name = "pmsco" version = "4.2.0" description = "PSI Multiple Scattering Cluster Optimization" classifiers = ["Private :: Do Not Upload"] authors = [ { name = "Matthias Muntwiler", email = "matthias.muntwiler@psi.ch" }, { name = "Frederik Schirdewahn", email = "frederik.schirdewahn@psi.ch" }, ] maintainers = [ { name = "Matthias Muntwiler", email = "matthias.muntwiler@psi.ch" }, ] license = "Apache-2.0" license-files = ["LICEN[CS]E*", "NOTICE*"] requires-python = ">=3.10, <3.14" dependencies = [ "ase", "fasteners", "future", "h5py", "ipython", "ipykernel", "jsonschema", "matplotlib", "mpi4py", "networkx", "numpy >= 1.22, < 2", "periodictable", "scikit-learn", "scipy", "sqlalchemy == 1.4", "statsmodels", "edac", "loess", "phagen", ] readme = "README.md" [project.optional-dependencies] boss = [ "aalto-boss", ] [project.scripts] pmsco = "pmsco.pmsco:main" [dependency-groups] dev = [ "gitpython", "mock", "pynose", "ruff>=0.14.10", ] [tool.uv] required-version = ">=0.9.0" [tool.uv.sources] edac = { workspace = true, editable = false } loess = { workspace = true, editable = false } phagen = { workspace = true, editable = false } [tool.uv.workspace] members = [ "subprojects/edac", "subprojects/loess", "subprojects/phagen", ] [tool.uv.build-backend] module-name = "pmsco" module-root = "" namespace = true [tool.ruff.lint] # ignore the following violations: # E26 - block comment # E4 - import not at top # E5 - long lines # E741 - l variables # F401 - unused import # F841 - unused local variable # W2 - trailing whitespace # https://docs.astral.sh/ruff/rules/ select = ["E", "F", "W"] ignore = ["E26","E4","E5","E741","F401","F841","W2"]