#! /usr/bin/python
|
#
|
# This file and its contents are supplied under the terms of the
|
# Common Development and Distribution License ("CDDL"), version 1.0.
|
# You may only use this file in accordance with the terms of version
|
# 1.0 of the CDDL.
|
#
|
# A full copy of the text of the CDDL should have accompanied this
|
# source. A copy of the CDDL is also available via the Internet at
|
# http://www.illumos.org/license/CDDL.
|
#
|
|
#
|
# Copyright 2022 Marcel Telka
|
#
|
|
#
|
# Print requirements for a package.
|
# Evaluated and normalized.
|
#
|
|
import sys
|
import re
|
|
try:
|
try:
|
from importlib.metadata import requires
|
except ImportError:
|
from importlib_metadata import requires
|
from packaging.requirements import Requirement
|
from packaging.markers import UndefinedEnvironmentName
|
except:
|
exit()
|
|
if len(sys.argv) < 2:
|
exit()
|
|
try:
|
for req in requires(sys.argv[1]):
|
r = Requirement(req)
|
try:
|
if not r.marker or r.marker.evaluate():
|
print(re.sub(r"[-_.]+", "-", r.name).lower())
|
except UndefinedEnvironmentName:
|
pass
|
except:
|
pass
|