Skip to content

Commit 31e9982

Browse files
Added support for python -m dpctl -l to list platforms
``` (dev_dpctl) opavlyk@opavlyk-mobl:~/repos/dpctl$ python -m dpctl --help usage: __main__.py [-h] [--includes] [--cmakedir] [--library] [-l] [-e] [-s] optional arguments: -h, --help show this help message and exit --includes Include flags dpctl headers. --cmakedir CMake module directory, ideal for setting -DDPCTL_ROOT in CMake. --library Linker flags for SyclInterface library. -l, --full-list Enumerate system platforms, using dpctl.lsplatform(verbosity=2) -e, --long-list Enumerate system platforms, using dpctl.lsplatform(verbosity=1) -s, --summary Enumerate system platforms, using dpctl.lsplatform() ```
1 parent bc9c5be commit 31e9982

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

dpctl/__main__.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import os.path
2020
import platform
2121
import sys
22+
import warnings
2223

2324
import dpctl
2425

@@ -50,6 +51,24 @@ def print_library() -> None:
5051
print(ld_flags + " -lSyclInterface")
5152

5253

54+
def _warn_if_any_set(args, li) -> None:
55+
opts_set = [it for it in li if getattr(args, it, True)]
56+
if opts_set:
57+
if len(opts_set) == 1:
58+
warnings.warn(
59+
"The option " + str(opts_set[0]) + " is being ignored.",
60+
stacklevel=3,
61+
)
62+
else:
63+
warnings.warn(
64+
"Options " + str(opts_set) + " are being ignored.", stacklevel=3
65+
)
66+
67+
68+
def print_lsplatform(verbosity: int) -> None:
69+
dpctl.lsplatform(verbosity=verbosity)
70+
71+
5372
def main() -> None:
5473
"""Main entry-point."""
5574
parser = argparse.ArgumentParser()
@@ -68,9 +87,45 @@ def main() -> None:
6887
action="store_true",
6988
help="Linker flags for SyclInterface library.",
7089
)
90+
parser.add_argument(
91+
"-l",
92+
"--full-list",
93+
action="store_true",
94+
help="Enumerate system platforms, using dpctl.lsplatform(verbosity=2)",
95+
)
96+
parser.add_argument(
97+
"-e",
98+
"--long-list",
99+
action="store_true",
100+
help="Enumerate system platforms, using dpctl.lsplatform(verbosity=1)",
101+
)
102+
parser.add_argument(
103+
"-s",
104+
"--summary",
105+
action="store_true",
106+
help="Enumerate system platforms, using dpctl.lsplatform()",
107+
)
71108
args = parser.parse_args()
72109
if not sys.argv[1:]:
73110
parser.print_help()
111+
if args.full_list:
112+
_warn_if_any_set(
113+
args, ["long_list", "summary", "includes", "cmakedir", "library"]
114+
)
115+
print_lsplatform(2)
116+
return
117+
if args.long_list:
118+
_warn_if_any_set(
119+
args, ["full_list", "summary", "includes", "cmakedir", "library"]
120+
)
121+
print_lsplatform(1)
122+
return
123+
if args.summary:
124+
_warn_if_any_set(
125+
args, ["long_list", "full_list", "includes", "cmakedir", "library"]
126+
)
127+
print_lsplatform(0)
128+
return
74129
if args.includes:
75130
print_includes()
76131
if args.cmakedir:

0 commit comments

Comments
 (0)