def _decrement()

in src/hpc/autoscale/node/limits.py [0:0]


    def _decrement(self, nodes: int, cores_per_node: int) -> None:
        new_core_count = self._consumed_core_count + (nodes * cores_per_node)
        if new_core_count > self._max_core_count:
            raise RuntimeError(
                "OutOfCapacity: Asked for {} * {} cores, which would be over the {} limit (consumed {} out of {} cores)".format(
                    nodes,
                    cores_per_node,
                    self._name,
                    self._consumed_core_count,
                    self._max_core_count,
                )
            )
        new_node_count = self._consumed_core_count // cores_per_node + nodes
        effective_max_count = self._max_count(cores_per_node)

        if new_node_count > effective_max_count:
            raise RuntimeError(
                "OutOfCapacity: Asked for {} nodes, which would be over the {} limit (consumed {} out of {} nodes)".format(
                    nodes,
                    self._name,
                    self._consumed_core_count // cores_per_node,
                    effective_max_count,
                )
            )

        self._consumed_core_count = new_core_count
        if self.__max_count is not None and self.__consumed_count is not None:
            assert self.__consumed_count + nodes <= self.__max_count
            self.__consumed_count += nodes