diff options
Diffstat (limited to 'pkgs/development/dotnet-modules/python-language-server/process_lockfile.py')
-rwxr-xr-x | pkgs/development/dotnet-modules/python-language-server/process_lockfile.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/pkgs/development/dotnet-modules/python-language-server/process_lockfile.py b/pkgs/development/dotnet-modules/python-language-server/process_lockfile.py new file mode 100755 index 000000000000..d67bdf048c8a --- /dev/null +++ b/pkgs/development/dotnet-modules/python-language-server/process_lockfile.py @@ -0,0 +1,37 @@ +#!/usr/bin/python + +import json +import sys + + +def process_section(name, section): + packages = set() + + if "resolved" in section: + packages.add((name, section["resolved"])) + + if "dependencies" in section: + for name in section["dependencies"]: + packages.add((name, section["dependencies"][name])) + + return packages + + +def main(): + with open(sys.argv[1], 'r') as f: + tree = json.loads(f.read()) + + packages = set() + + topDependencies = tree["dependencies"] + + for area in topDependencies: + for name in topDependencies[area]: + packages = packages.union(process_section(name, topDependencies[area][name])) + + for (name, version) in packages: + print("%s %s" % (name, version)) + + +if __name__ == "__main__": + main() |