Skip to content

Commit d9d6d5f

Browse files
docs: add the list of drivers and minimizers (#415)
Signed-off-by: Jinzhe Zeng <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 4283c9d commit d9d6d5f

File tree

5 files changed

+91
-0
lines changed

5 files changed

+91
-0
lines changed

docs/drivers.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Supported Drivers
2+
=================
3+
4+
dpdata supports the following drivers:
5+
6+
.. csv-table:: Supported Drivers
7+
:file: drivers.csv
8+
:header-rows: 1

docs/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ Welcome to dpdata's documentation!
1313
Overview <self>
1414
cli
1515
formats
16+
drivers
17+
minimizers
1618
api/api
1719
credits
1820

docs/make_format.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import csv
2+
from typing import Any
23
from collections import defaultdict
34

45
# ensure all plugins are loaded!
56
import dpdata.plugins
67
from dpdata.format import Format
8+
from dpdata.driver import Driver
9+
from dpdata.driver import Minimizer
710
from dpdata.system import get_cls_name
811

912

@@ -14,6 +17,20 @@ def get_formats() -> dict:
1417
return formats
1518

1619

20+
def get_driver() -> dict:
21+
drivers = defaultdict(list)
22+
for kk, ff in Driver.get_drivers().items():
23+
drivers[ff].append(kk)
24+
return drivers
25+
26+
27+
def get_minimizer() -> dict:
28+
minimizers = defaultdict(list)
29+
for kk, ff in Minimizer.get_minimizers().items():
30+
minimizers[ff].append(kk)
31+
return minimizers
32+
33+
1734
def detect_overridden(cls: Format, method: str) -> bool:
1835
"""Check whether a method is override
1936
@@ -102,3 +119,37 @@ def check_supported(fmt: Format):
102119
),
103120
}
104121
)
122+
123+
drivers = get_driver()
124+
with open("drivers.csv", "w", newline="") as csvfile:
125+
fieldnames = [
126+
"Class",
127+
"Alias",
128+
]
129+
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
130+
131+
writer.writeheader()
132+
for kk, vv in drivers.items():
133+
writer.writerow(
134+
{
135+
"Class": get_cls_link(kk),
136+
"Alias": "\n".join(("``%s``" % vvv for vvv in vv)),
137+
}
138+
)
139+
140+
minimizers = get_minimizer()
141+
with open("minimizers.csv", "w", newline="") as csvfile:
142+
fieldnames = [
143+
"Class",
144+
"Alias",
145+
]
146+
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
147+
148+
writer.writeheader()
149+
for kk, vv in minimizers.items():
150+
writer.writerow(
151+
{
152+
"Class": get_cls_link(kk),
153+
"Alias": "\n".join(("``%s``" % vvv for vvv in vv)),
154+
}
155+
)

docs/minimizers.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Supported Minimizers
2+
====================
3+
4+
dpdata supports the following minimizers:
5+
6+
.. csv-table:: Supported Minimizers
7+
:file: minimizers.csv
8+
:header-rows: 1

dpdata/driver.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,17 @@ def get_driver(key: str) -> "Driver":
6464
except KeyError as e:
6565
raise RuntimeError("Unknown driver: " + key) from e
6666

67+
@staticmethod
68+
def get_drivers() -> dict:
69+
"""Get all driver plugins.
70+
71+
Returns
72+
-------
73+
dict
74+
dict for all driver plugisn
75+
"""
76+
return Driver.__DriverPlugin.plugins
77+
6778
def __init__(self, *args, **kwargs) -> None:
6879
"""Setup the driver."""
6980

@@ -206,6 +217,17 @@ def get_minimizer(key: str) -> "Minimizer":
206217
except KeyError as e:
207218
raise RuntimeError("Unknown minimizer: " + key) from e
208219

220+
@staticmethod
221+
def get_minimizers() -> dict:
222+
"""Get all minimizer plugins.
223+
224+
Returns
225+
-------
226+
dict
227+
dict for all minimizer plugisn
228+
"""
229+
return Minimizer.__MinimizerPlugin.plugins
230+
209231
def __init__(self, *args, **kwargs) -> None:
210232
"""Setup the minimizer."""
211233

0 commit comments

Comments
 (0)