diff --git a/tools/precommit/precommit.py b/tools/precommit/precommit.py index 080a6da472..1b356d0d2b 100755 --- a/tools/precommit/precommit.py +++ b/tools/precommit/precommit.py @@ -216,7 +216,10 @@ def process_file(fn: str, allow_modifications: bool) -> None: if re.match(r"(.*/PACKAGE)|(.*\.py)$", fn): ast.parse(orig_content, filename=fn) - run_remote_tool("black", fn) + if "tools/spack/packages" in fn: + run_remote_tool("spackformat", fn) + else: + run_remote_tool("black", fn) if re.match(r".*\.sh$", fn): run_remote_tool("shfmt", fn) diff --git a/tools/precommit/precommit_server.py b/tools/precommit/precommit_server.py index 7bc72c10ec..13f3a10488 100644 --- a/tools/precommit/precommit_server.py +++ b/tools/precommit/precommit_server.py @@ -29,6 +29,13 @@ def black(): return run_tool(["black"]) +# ====================================================================================== +@app.route("/spackformat", methods=["POST"]) +def spackformat(): + # Run black like https://github.com/spack/spack/blob/develop/pyproject.toml + return run_tool(["black", "--line-length=99", "--skip-magic-trailing-comma"]) + + # ====================================================================================== @app.route("/shfmt", methods=["POST"]) def shfmt(): diff --git a/tools/spack/packages/deepmdkit/package.py b/tools/spack/packages/deepmdkit/package.py index d9cf63702a..8a09686f44 100644 --- a/tools/spack/packages/deepmdkit/package.py +++ b/tools/spack/packages/deepmdkit/package.py @@ -22,36 +22,17 @@ class Deepmdkit(CMakePackage): maintainers("mkrack") - version( - "3.0.2", - sha256="b828d3a44730ea852505abbdb24ea5b556f2bf8b16de5a9c76018ed1ced7121b", - ) + version("3.0.2", sha256="b828d3a44730ea852505abbdb24ea5b556f2bf8b16de5a9c76018ed1ced7121b") variant("cxx_standard", default="17", description="Required CXX standard") - variant( - "cxx_standard_required", - default=True, - description="Require a specific CXX standard", - ) + variant("cxx_standard_required", default=True, description="Require a specific CXX standard") - variant( - "enable_tensorflow", default=False, description="Enable TensorFlow interface" - ) + variant("enable_tensorflow", default=False, description="Enable TensorFlow interface") variant("enable_pytorch", default=False, description="Enable PyTorch interface") variant("enable_jax", default=False, description="Enable JAX interface") - variant( - "build_testing", default=False, description="Build test and enable coverage" - ) - variant( - "enable_native_optimization", - default=False, - description="Enable native optimization", - ) - variant( - "dp_using_c_api", - default=True, - description="Build third-party interface with C API", - ) + variant("build_testing", default=False, description="Build test and enable coverage") + variant("enable_native_optimization", default=False, description="Enable native optimization") + variant("dp_using_c_api", default=True, description="Build third-party interface with C API") depends_on("c", type="build") depends_on("cxx", type="build") @@ -70,9 +51,7 @@ class Deepmdkit(CMakePackage): self.define_from_variant("ENABLE_PYTORCH", "enable_pytorch"), self.define_from_variant("ENABLE_JAX", "enable_jax"), self.define_from_variant("BUILD_TESTING", "build_testing"), - self.define_from_variant( - "ENABLE_NATIVE_OPTIMIZATION", "enable_native_optimization" - ), + self.define_from_variant("ENABLE_NATIVE_OPTIMIZATION", "enable_native_optimization"), self.define_from_variant("EDP_USING_C_AP", "dp_using_c_api"), ] return args diff --git a/tools/spack/packages/greenx/package.py b/tools/spack/packages/greenx/package.py index 7c3f746bd0..80f61abd25 100644 --- a/tools/spack/packages/greenx/package.py +++ b/tools/spack/packages/greenx/package.py @@ -16,25 +16,15 @@ class Greenx(CMakePackage): license("Apache-2.0", checked_by="RMeli") - version( - "2.2", sha256="cf0abb77cc84a3381a690a6ac7ca839da0007bb9e6120f3f25e47de50e29431f" - ) - version( - "2.1", sha256="2fc1fc2c93b0bab14babc33386f7932192336813cea6db11cd27dbc36b541e41" - ) + version("2.2", sha256="cf0abb77cc84a3381a690a6ac7ca839da0007bb9e6120f3f25e47de50e29431f") + version("2.1", sha256="2fc1fc2c93b0bab14babc33386f7932192336813cea6db11cd27dbc36b541e41") variant("shared", default=True, description="Build shared libraries") variant("ac", default=True, description="Enable Analytical Continuation component") variant( - "gmp", - default=True, - description="Enable GMP library for multiple precision arithmetic", - ) - variant( - "minmax", - default=True, - description="Enable minmax time-frequency grids component", + "gmp", default=True, description="Enable GMP library for multiple precision arithmetic" ) + variant("minmax", default=True, description="Enable minmax time-frequency grids component") variant("lbasis", default=False, description="Enable localized basis component") variant("paw", default=False, description="Enable PAW component") diff --git a/tools/spack/packages/pexsi/package.py b/tools/spack/packages/pexsi/package.py index 6856b86cc3..b9684cca60 100644 --- a/tools/spack/packages/pexsi/package.py +++ b/tools/spack/packages/pexsi/package.py @@ -24,29 +24,15 @@ class Pexsi(MakefilePackage, CMakePackage): homepage = "https://math.berkeley.edu/~linlin/pexsi/index.html" build_system( - conditional("cmake", when="@1:"), - conditional("makefile", when="@0"), - default="cmake", + conditional("cmake", when="@1:"), conditional("makefile", when="@0"), default="cmake" ) license("BSD-3-Clause-LBNL") - version( - "2.0.0", - sha256="c5c83c2931b2bd0c68a462a49eeec983e78b5aaa1f17dd0454de4e27b91ca11f", - ) - version( - "1.2.0", - sha256="8bfad6ec6866c6a29e1cc87fb1c17a39809795e79ede98373c8ba9a3aaf820dd", - ) - version( - "0.10.2", - sha256="8714c71b76542e096211b537a9cb1ffb2c28f53eea4f5a92f94cc1ca1e7b499f", - ) - version( - "0.9.0", - sha256="e5efe0c129013392cdac3234e37f1f4fea641c139b1fbea47618b4b839d05029", - ) + version("2.0.0", sha256="c5c83c2931b2bd0c68a462a49eeec983e78b5aaa1f17dd0454de4e27b91ca11f") + version("1.2.0", sha256="8bfad6ec6866c6a29e1cc87fb1c17a39809795e79ede98373c8ba9a3aaf820dd") + version("0.10.2", sha256="8714c71b76542e096211b537a9cb1ffb2c28f53eea4f5a92f94cc1ca1e7b499f") + version("0.9.0", sha256="e5efe0c129013392cdac3234e37f1f4fea641c139b1fbea47618b4b839d05029") patch("fujitsu-add-link-flags.patch", when="%fj") @@ -63,9 +49,7 @@ class Pexsi(MakefilePackage, CMakePackage): depends_on("cmake@3.10:", type="build") depends_on("cmake@3.17:", type="build", when="@2:") - variant( - "openmp", default=False, description="Build with OpenMP support", when="@1.2" - ) + variant("openmp", default=False, description="Build with OpenMP support", when="@1.2") variant("fortran", default=False, description="Builds the Fortran interface") variant("pic", default=True, description="Compile position independent code (PIC)") @@ -73,9 +57,7 @@ class Pexsi(MakefilePackage, CMakePackage): if version == Version("0"): return f"https://math.berkeley.edu/~linlin/pexsi/download/pexsi_v{version}.tar.gz" - return ( - f"https://bitbucket.org/berkeleylab/pexsi/downloads/pexsi_v{version}.tar.gz" - ) + return f"https://bitbucket.org/berkeleylab/pexsi/downloads/pexsi_v{version}.tar.gz" class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder): @@ -134,8 +116,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder): # fortran "interface" if "+fortran" in spec: install_tree( - join_path(pkg.stage.source_path, "fortran"), - join_path(pkg.prefix, "fortran"), + join_path(pkg.stage.source_path, "fortran"), join_path(pkg.prefix, "fortran") ) @@ -148,8 +129,6 @@ class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder): ] if self.spec.satisfies("%fj"): - args.append( - self.define("BLAS_LIBRARIES", self.spec["blas"].libs.link_flags) - ) + args.append(self.define("BLAS_LIBRARIES", self.spec["blas"].libs.link_flags)) return args