mirror of
https://github.com/huggingface/text-generation-inference.git
synced 2025-09-11 12:24:53 +00:00
Add a primitive script to generate Poetry commands to sync with Nix
This is not fully automated, since getting the Nix versions may be unresolvable. However, it does take most of the work out of doing this manually.
This commit is contained in:
parent
15f9c1ca10
commit
2610733f3f
@ -148,6 +148,8 @@
|
||||
};
|
||||
|
||||
packages = rec {
|
||||
inherit server;
|
||||
|
||||
default = pkgs.writeShellApplication {
|
||||
name = "text-generation-inference";
|
||||
runtimeInputs = [
|
||||
|
40
server/bounds-from-nix.py
Executable file
40
server/bounds-from-nix.py
Executable file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
from typing import Dict, Union
|
||||
import toml
|
||||
|
||||
# Special cases that have download URLs.
|
||||
SKIP = {"attention-kernels", "marlin-kernels", "moe-kernels"}
|
||||
|
||||
|
||||
def is_optional(info: Union[str, Dict[str, str]]) -> bool:
|
||||
return isinstance(info, dict) and "optional" in info and info["optional"]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
with open("pyproject.toml") as f:
|
||||
pyproject = toml.load(f)
|
||||
|
||||
nix_packages = json.loads(
|
||||
subprocess.run(
|
||||
["nix", "develop", ".#server", "--command", "pip", "list", "--format=json"],
|
||||
stdout=subprocess.PIPE,
|
||||
).stdout
|
||||
)
|
||||
|
||||
nix_packages = {pkg["name"]: pkg["version"] for pkg in nix_packages}
|
||||
|
||||
packages = []
|
||||
optional_packages = []
|
||||
|
||||
for package, info in pyproject["tool"]["poetry"]["dependencies"].items():
|
||||
if package in nix_packages and package not in SKIP:
|
||||
if is_optional(info):
|
||||
optional_packages.append(f'"{package}@^{nix_packages[package]}"')
|
||||
else:
|
||||
packages.append(f'"{package}@^{nix_packages[package]}"')
|
||||
|
||||
print(f"poetry add {' '.join(packages)}")
|
||||
print(f"poetry add --optional {' '.join(optional_packages)}")
|
Loading…
Reference in New Issue
Block a user