From ae6ae35b5666ad22da528cd01aff7c680276eca5 Mon Sep 17 00:00:00 2001 From: Andreas Wacknitz <A.Wacknitz@gmx.de> Date: Fri, 05 Apr 2024 17:27:21 +0200 Subject: [PATCH] clang-18: update to 18.1.3 --- tools/python-requires | 33 ++++++++++++++++++++------------- 1 files changed, 20 insertions(+), 13 deletions(-) diff --git a/tools/python-requires b/tools/python-requires index 640b179..eb027b7 100755 --- a/tools/python-requires +++ b/tools/python-requires @@ -15,33 +15,40 @@ # # -# Print requirements for a package. -# Evaluated and normalized. +# Usage: +# python-requires PACKAGE [EXTRA] +# +# Print requirements for PACKAGE. Evaluated and normalized. +# If PACKAGE is - evaluate and normalize stdin. +# With optional EXTRA argument passed print requirements for such extra only. # import sys import re try: - try: - from importlib.metadata import requires - except ImportError: - from importlib_metadata import requires + from importlib.metadata import requires from packaging.requirements import Requirement - from packaging.markers import UndefinedEnvironmentName + import subprocess except: exit() if len(sys.argv) < 2: exit() +e = {'extra': sys.argv[2]} if len(sys.argv) > 2 else None +reqs = requires(sys.argv[1]) if sys.argv[1] != "-" else sys.stdin.readlines() + try: - for req in requires(sys.argv[1]): - r = Requirement(req) + for req in reqs: try: - if not r.marker or r.marker.evaluate(): - print(re.sub(r"[-_.]+", "-", r.name).lower()) - except UndefinedEnvironmentName: - pass + r = Requirement(re.sub(r"#.*", "", req)) + except: + continue + m = r.marker + if (not m and not e) or (m and m.evaluate(e) and (not e or not m.evaluate())): + print(re.sub(r"[-_.]+", "-", r.name).lower()) + for extra in r.extras: + subprocess.run([sys.argv[0], r.name, extra]) except: pass -- Gitblit v1.9.3