From 379bebf10d594e5d39afb95c6f13e23c67d837eb Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 18:28:24 -0400 Subject: [PATCH 01/26] add format docs Signed-off-by: Jinzhe Zeng --- .gitignore | 3 ++ docs/formats.rst | 8 +++++ docs/make_format.py | 85 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 95 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 41ee080cf..874dccb73 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,7 @@ _version.py __pycache__ docs/_build docs/formats.csv +docs/drivers.csv +docs/minimizers.csv docs/api/ +docs/formats/ \ No newline at end of file diff --git a/docs/formats.rst b/docs/formats.rst index c0ff5b8f9..2e5477f2a 100644 --- a/docs/formats.rst +++ b/docs/formats.rst @@ -6,3 +6,11 @@ dpdata supports the following formats: .. csv-table:: Supported Formats :file: formats.csv :header-rows: 1 + + +.. toctree:: + :maxdepth: 1 + :glob: + :hidden: + + formats/* diff --git a/docs/make_format.py b/docs/make_format.py index a208b21ed..d2ce9259c 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -1,6 +1,10 @@ import csv -from collections import defaultdict +from collections import OrderedDict, defaultdict +import os +from inspect import Parameter, Signature, signature +from typing import Literal +from sphinx.ext.napoleon.docstring import NumpyDocstring # ensure all plugins are loaded! from dpdata.driver import Driver, Minimizer from dpdata.format import Format @@ -96,6 +100,84 @@ def check_supported(fmt: Format): "to_multi_systems": ":func:`MultiSystems.to() `", } +method_classes = { + "from_system": "System", + "to_system": "System", + "from_labeled_system": "LabeledSystem", + "to_labeled_system": "LabeledSystem", + "from_bond_order_system": "BondOrderSystem", + "to_bond_order_system": "BondOrderSystem", + "from_multi_systems": "MultiSystems", + "to_multi_systems": "MultiSystems", +} + + +def generate_sub_format_pages(formats: dict): + """Generate sub format pages.""" + os.makedirs("formats", exist_ok=True) + for format, alias in formats.items(): + # format: Format, alias: list[str] + buff = [] + for aa in alias: + buff.append("%s format" % aa) + buff.append("=" * len(buff[-1])) + buff.append("") + + docstring = format.__doc__ + if docstring is not None: + rst = str(NumpyDocstring(docstring)) + buff.append(rst) + buff.append("") + + buff.append("Conversation") + buff.append("------------") + methods = check_supported(format) + for method in methods: + buff.append("") + sig = signature(getattr(format, method)) + parameters = dict(sig.parameters) + # del self + del parameters[list(parameters)[0]] + # del data + if method.startswith("to_"): + del parameters[list(parameters)[0]] + if "args" in parameters: + del parameters["args"] + if "kwargs" in parameters: + del parameters["kwargs"] + sig = Signature(list(parameters.values())) + sig = str(sig) + if method.startswith("from_") and method != "from_multi_systems": + for aa in alias: + parameters['fmt'] = Parameter('fmt', Parameter.POSITIONAL_OR_KEYWORD, default=None, annotation=Literal[aa]) + sig_fmt = Signature(list(parameters.values())) + sig_fmt = str(sig_fmt) + buff.append(""".. py:function:: %s.from%s""" % (method_classes[method], sig_fmt)) + buff.append(""" :noindex:""") + for aa in alias: + buff.append(""".. py:function:: %s.from_%s%s""" % (method_classes[method], aa.replace("/", "_").replace(".", ""), sig)) + buff.append(""" :noindex:""") + buff.append("") + buff.append(""" Convert this format to :func:`%s`.""" % (method_classes[method])) + elif method.startswith("to_"): + for aa in alias: + parameters = {'fmt': Parameter('fmt', Parameter.POSITIONAL_OR_KEYWORD, annotation=Literal[aa]), **parameters} + sig_fmt = Signature(list(parameters.values())) + sig_fmt = str(sig_fmt) + buff.append(""".. py:function:: %s.to%s""" % (method_classes[method], sig_fmt)) + buff.append(""" :noindex:""") + for aa in alias: + buff.append(""".. py:function:: %s.to_%s%s""" % (method_classes[method], aa.replace("/", "_").replace(".", ""), sig)) + buff.append(""" :noindex:""") + buff.append("") + buff.append(""" Convert :func:`%s` to this format.""" % (method_classes[method])) + buff.append("") + buff.append("") + + with open("formats/%s.rst" % format.__name__, "w") as rstfile: + rstfile.write("\n".join(buff)) + + if __name__ == "__main__": formats = get_formats() with open("formats.csv", "w", newline="") as csvfile: @@ -151,3 +233,4 @@ def check_supported(fmt: Format): "Alias": "\n".join("``%s``" % vvv for vvv in vv), } ) + generate_sub_format_pages(formats) \ No newline at end of file From 07dfde3f0121f63d2c67e4ab0ff5f448d78ce9b5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 28 Jul 2023 22:29:19 +0000 Subject: [PATCH 02/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .gitignore | 2 +- docs/make_format.py | 59 ++++++++++++++++++++++++++++++++++++--------- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 874dccb73..cd48a3e25 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,4 @@ docs/formats.csv docs/drivers.csv docs/minimizers.csv docs/api/ -docs/formats/ \ No newline at end of file +docs/formats/ diff --git a/docs/make_format.py b/docs/make_format.py index d2ce9259c..c656d32ce 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -1,10 +1,11 @@ import csv -from collections import OrderedDict, defaultdict import os +from collections import defaultdict from inspect import Parameter, Signature, signature from typing import Literal from sphinx.ext.napoleon.docstring import NumpyDocstring + # ensure all plugins are loaded! from dpdata.driver import Driver, Minimizer from dpdata.format import Format @@ -122,13 +123,13 @@ def generate_sub_format_pages(formats: dict): buff.append("%s format" % aa) buff.append("=" * len(buff[-1])) buff.append("") - + docstring = format.__doc__ if docstring is not None: rst = str(NumpyDocstring(docstring)) buff.append(rst) buff.append("") - + buff.append("Conversation") buff.append("------------") methods = check_supported(format) @@ -149,28 +150,62 @@ def generate_sub_format_pages(formats: dict): sig = str(sig) if method.startswith("from_") and method != "from_multi_systems": for aa in alias: - parameters['fmt'] = Parameter('fmt', Parameter.POSITIONAL_OR_KEYWORD, default=None, annotation=Literal[aa]) + parameters["fmt"] = Parameter( + "fmt", + Parameter.POSITIONAL_OR_KEYWORD, + default=None, + annotation=Literal[aa], + ) sig_fmt = Signature(list(parameters.values())) sig_fmt = str(sig_fmt) - buff.append(""".. py:function:: %s.from%s""" % (method_classes[method], sig_fmt)) + buff.append( + f""".. py:function:: {method_classes[method]}.from{sig_fmt}""" + ) buff.append(""" :noindex:""") for aa in alias: - buff.append(""".. py:function:: %s.from_%s%s""" % (method_classes[method], aa.replace("/", "_").replace(".", ""), sig)) + buff.append( + """.. py:function:: {}.from_{}{}""".format( + method_classes[method], + aa.replace("/", "_").replace(".", ""), + sig, + ) + ) buff.append(""" :noindex:""") buff.append("") - buff.append(""" Convert this format to :func:`%s`.""" % (method_classes[method])) + buff.append( + """ Convert this format to :func:`%s`.""" + % (method_classes[method]) + ) elif method.startswith("to_"): for aa in alias: - parameters = {'fmt': Parameter('fmt', Parameter.POSITIONAL_OR_KEYWORD, annotation=Literal[aa]), **parameters} + parameters = { + "fmt": Parameter( + "fmt", + Parameter.POSITIONAL_OR_KEYWORD, + annotation=Literal[aa], + ), + **parameters, + } sig_fmt = Signature(list(parameters.values())) sig_fmt = str(sig_fmt) - buff.append(""".. py:function:: %s.to%s""" % (method_classes[method], sig_fmt)) + buff.append( + f""".. py:function:: {method_classes[method]}.to{sig_fmt}""" + ) buff.append(""" :noindex:""") for aa in alias: - buff.append(""".. py:function:: %s.to_%s%s""" % (method_classes[method], aa.replace("/", "_").replace(".", ""), sig)) + buff.append( + """.. py:function:: {}.to_{}{}""".format( + method_classes[method], + aa.replace("/", "_").replace(".", ""), + sig, + ) + ) buff.append(""" :noindex:""") buff.append("") - buff.append(""" Convert :func:`%s` to this format.""" % (method_classes[method])) + buff.append( + """ Convert :func:`%s` to this format.""" + % (method_classes[method]) + ) buff.append("") buff.append("") @@ -233,4 +268,4 @@ def generate_sub_format_pages(formats: dict): "Alias": "\n".join("``%s``" % vvv for vvv in vv), } ) - generate_sub_format_pages(formats) \ No newline at end of file + generate_sub_format_pages(formats) From 281de64caee0f1cd5e168c795ea474f1bc779273 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 19:26:40 -0400 Subject: [PATCH 03/26] kk Signed-off-by: Jinzhe Zeng --- docs/index.rst | 2 +- docs/make_format.py | 46 ++++++++++++++++++++++++++++++++++----------- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index c25592c17..57feda8b9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,7 +7,7 @@ Welcome to dpdata's documentation! ================================== .. toctree:: - :maxdepth: 2 + :maxdepth: 3 :caption: Contents: Overview diff --git a/docs/make_format.py b/docs/make_format.py index c656d32ce..d45e4471f 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -4,7 +4,7 @@ from inspect import Parameter, Signature, signature from typing import Literal -from sphinx.ext.napoleon.docstring import NumpyDocstring +from numpydoc.docscrape_sphinx import SphinxDocString # ensure all plugins are loaded! from dpdata.driver import Driver, Minimizer @@ -123,10 +123,12 @@ def generate_sub_format_pages(formats: dict): buff.append("%s format" % aa) buff.append("=" * len(buff[-1])) buff.append("") + buff.append("Class: %s" % get_cls_link(format)) + buff.append("") docstring = format.__doc__ if docstring is not None: - rst = str(NumpyDocstring(docstring)) + rst = str(SphinxDocString(docstring)) buff.append(rst) buff.append("") @@ -134,8 +136,16 @@ def generate_sub_format_pages(formats: dict): buff.append("------------") methods = check_supported(format) for method in methods: + if method.startswith("from_"): + buff.append("Convert from this format to %s" % method_classes[method]) + buff.append("`" * len(buff[-1])) + elif method.startswith("to_"): + buff.append("Convert from %s to this format" % method_classes[method]) + buff.append("`" * len(buff[-1])) buff.append("") - sig = signature(getattr(format, method)) + method_obj = getattr(format, method) + docstring = method_obj.__doc__ + sig = signature(method_obj) parameters = dict(sig.parameters) # del self del parameters[list(parameters)[0]] @@ -172,10 +182,17 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - buff.append( - """ Convert this format to :func:`%s`.""" - % (method_classes[method]) - ) + if docstring is not None: + doc_obj = SphinxDocString(docstring) + doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("args", "kwargs")] + rst = str(doc_obj) + buff.append(rst) + buff.append("") + else: + buff.append( + """ Convert this format to :func:`%s`.""" + % (method_classes[method]) + ) elif method.startswith("to_"): for aa in alias: parameters = { @@ -202,10 +219,17 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - buff.append( - """ Convert :func:`%s` to this format.""" - % (method_classes[method]) - ) + if docstring is not None: + doc_obj = SphinxDocString(docstring) + doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("data", "args", "kwargs")] + rst = str(doc_obj) + buff.append(rst) + buff.append("") + else: + buff.append( + """ Convert :func:`%s` to this format.""" + % (method_classes[method]) + ) buff.append("") buff.append("") From d2d1bdd9d4837303136df611145839c1d1b0594c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 28 Jul 2023 23:26:59 +0000 Subject: [PATCH 04/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index d45e4471f..6d4357e97 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -184,7 +184,11 @@ def generate_sub_format_pages(formats: dict): buff.append("") if docstring is not None: doc_obj = SphinxDocString(docstring) - doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("args", "kwargs")] + doc_obj["Parameters"] = [ + xx + for xx in doc_obj["Parameters"] + if xx.name not in ("args", "kwargs") + ] rst = str(doc_obj) buff.append(rst) buff.append("") @@ -221,7 +225,11 @@ def generate_sub_format_pages(formats: dict): buff.append("") if docstring is not None: doc_obj = SphinxDocString(docstring) - doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("data", "args", "kwargs")] + doc_obj["Parameters"] = [ + xx + for xx in doc_obj["Parameters"] + if xx.name not in ("data", "args", "kwargs") + ] rst = str(doc_obj) buff.append(rst) buff.append("") From 67941b9841aac10c0ff3fbb8fe086b1e05fa266b Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 19:47:49 -0400 Subject: [PATCH 05/26] kk Signed-off-by: Jinzhe Zeng --- docs/formats.rst | 1 - docs/make_format.py | 49 +++++++++++++++++++-------------------------- 2 files changed, 21 insertions(+), 29 deletions(-) diff --git a/docs/formats.rst b/docs/formats.rst index 2e5477f2a..41ca90916 100644 --- a/docs/formats.rst +++ b/docs/formats.rst @@ -11,6 +11,5 @@ dpdata supports the following formats: .. toctree:: :maxdepth: 1 :glob: - :hidden: formats/* diff --git a/docs/make_format.py b/docs/make_format.py index 6d4357e97..14120a988 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -158,20 +158,21 @@ def generate_sub_format_pages(formats: dict): del parameters["kwargs"] sig = Signature(list(parameters.values())) sig = str(sig) - if method.startswith("from_") and method != "from_multi_systems": - for aa in alias: - parameters["fmt"] = Parameter( - "fmt", - Parameter.POSITIONAL_OR_KEYWORD, - default=None, - annotation=Literal[aa], - ) - sig_fmt = Signature(list(parameters.values())) - sig_fmt = str(sig_fmt) - buff.append( - f""".. py:function:: {method_classes[method]}.from{sig_fmt}""" - ) - buff.append(""" :noindex:""") + if method.startswith("from_"): + if method != "from_multi_systems": + for aa in alias: + parameters["fmt"] = Parameter( + "fmt", + Parameter.POSITIONAL_OR_KEYWORD, + default=None, + annotation=Literal[aa], + ) + sig_fmt = Signature(list(parameters.values())) + sig_fmt = str(sig_fmt) + buff.append( + f""".. py:function:: {method_classes[method]}.from{sig_fmt}""" + ) + buff.append(""" :noindex:""") for aa in alias: buff.append( """.. py:function:: {}.from_{}{}""".format( @@ -182,14 +183,10 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if docstring is not None: + if docstring is not None and method in format.__dict__: doc_obj = SphinxDocString(docstring) - doc_obj["Parameters"] = [ - xx - for xx in doc_obj["Parameters"] - if xx.name not in ("args", "kwargs") - ] - rst = str(doc_obj) + doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("*args", "**kwargs")] + rst = " " + str(doc_obj) buff.append(rst) buff.append("") else: @@ -223,14 +220,10 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if docstring is not None: + if docstring is not None and method in format.__dict__: doc_obj = SphinxDocString(docstring) - doc_obj["Parameters"] = [ - xx - for xx in doc_obj["Parameters"] - if xx.name not in ("data", "args", "kwargs") - ] - rst = str(doc_obj) + doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("data", "*args", "**kwargs")] + rst = " " + str(doc_obj) buff.append(rst) buff.append("") else: From ea04b8bfe9fbcc5d3cb8b23bf169b4183923f2cf Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 28 Jul 2023 23:53:57 +0000 Subject: [PATCH 06/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 14120a988..afa923c77 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -185,7 +185,11 @@ def generate_sub_format_pages(formats: dict): buff.append("") if docstring is not None and method in format.__dict__: doc_obj = SphinxDocString(docstring) - doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("*args", "**kwargs")] + doc_obj["Parameters"] = [ + xx + for xx in doc_obj["Parameters"] + if xx.name not in ("*args", "**kwargs") + ] rst = " " + str(doc_obj) buff.append(rst) buff.append("") @@ -222,7 +226,11 @@ def generate_sub_format_pages(formats: dict): buff.append("") if docstring is not None and method in format.__dict__: doc_obj = SphinxDocString(docstring) - doc_obj["Parameters"] = [xx for xx in doc_obj["Parameters"] if xx.name not in ("data", "*args", "**kwargs")] + doc_obj["Parameters"] = [ + xx + for xx in doc_obj["Parameters"] + if xx.name not in ("data", "*args", "**kwargs") + ] rst = " " + str(doc_obj) buff.append(rst) buff.append("") From b179fb7e0a83b0cc3071b5f0ef759a3bc83a4165 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 20:29:20 -0400 Subject: [PATCH 07/26] kk Signed-off-by: Jinzhe Zeng --- docs/index.rst | 2 +- docs/make_format.py | 49 +++++++++++++++++++++++++++++++-------------- 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 57feda8b9..c25592c17 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,7 +7,7 @@ Welcome to dpdata's documentation! ================================== .. toctree:: - :maxdepth: 3 + :maxdepth: 2 :caption: Contents: Overview diff --git a/docs/make_format.py b/docs/make_format.py index afa923c77..8befb9ac4 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -5,10 +5,13 @@ from typing import Literal from numpydoc.docscrape_sphinx import SphinxDocString +from numpydoc.docscrape import Parameter as numpydoc_Parameter # ensure all plugins are loaded! from dpdata.driver import Driver, Minimizer from dpdata.format import Format +from dpdata.system import System, LabeledSystem, MultiSystems +from dpdata.bond_order_system import BondOrderSystem def get_formats() -> dict: @@ -69,7 +72,7 @@ def get_cls_link(cls: object) -> str: def check_supported(fmt: Format): - methods = set() + methods = [] for mtd in [ "from_system", "to_system", @@ -81,12 +84,12 @@ def check_supported(fmt: Format): "to_multi_systems", ]: if detect_overridden(fmt, mtd): - methods.add(mtd) + methods.append(mtd) if mtd == "to_system": - methods.add("to_labeled_system") + methods.append("to_labeled_system") if fmt.MultiMode != fmt.MultiModes.NotImplemented: - methods.add("from_multi_systems") - methods.add("to_multi_systems") + methods.append("from_multi_systems") + methods.append("to_multi_systems") return methods @@ -112,6 +115,17 @@ def check_supported(fmt: Format): "to_multi_systems": "MultiSystems", } +method_obj = { + "from_system": System, + "to_system": System, + "from_labeled_system": LabeledSystem, + "to_labeled_system": LabeledSystem, + "from_bond_order_system": BondOrderSystem, + "to_bond_order_system": BondOrderSystem, + "from_multi_systems": MultiSystems, + "to_multi_systems": MultiSystems, +} + def generate_sub_format_pages(formats: dict): """Generate sub format pages.""" @@ -159,6 +173,8 @@ def generate_sub_format_pages(formats: dict): sig = Signature(list(parameters.values())) sig = str(sig) if method.startswith("from_"): + sig = Signature(list(parameters.values()), return_annotation=method_obj[method]) + sig = str(sig_fmt) if method != "from_multi_systems": for aa in alias: parameters["fmt"] = Parameter( @@ -167,15 +183,15 @@ def generate_sub_format_pages(formats: dict): default=None, annotation=Literal[aa], ) - sig_fmt = Signature(list(parameters.values())) + sig_fmt = Signature(list(parameters.values()), return_annotation=method_obj[method]) sig_fmt = str(sig_fmt) buff.append( - f""".. py:function:: {method_classes[method]}.from{sig_fmt}""" + f""".. py:function:: dpdata.{method_classes[method]}.from{sig_fmt}""" ) buff.append(""" :noindex:""") for aa in alias: buff.append( - """.. py:function:: {}.from_{}{}""".format( + """.. py:function:: dpdata.{}.from_{}{}""".format( method_classes[method], aa.replace("/", "_").replace(".", ""), sig, @@ -190,6 +206,8 @@ def generate_sub_format_pages(formats: dict): for xx in doc_obj["Parameters"] if xx.name not in ("*args", "**kwargs") ] + doc_obj["Yields"] = [] + doc_obj["Returns"] = [numpydoc_Parameter("", method_classes[method], "converted system")] rst = " " + str(doc_obj) buff.append(rst) buff.append("") @@ -211,12 +229,12 @@ def generate_sub_format_pages(formats: dict): sig_fmt = Signature(list(parameters.values())) sig_fmt = str(sig_fmt) buff.append( - f""".. py:function:: {method_classes[method]}.to{sig_fmt}""" + f""".. py:function:: dpdata.{method_classes[method]}.to{sig_fmt}""" ) buff.append(""" :noindex:""") for aa in alias: buff.append( - """.. py:function:: {}.to_{}{}""".format( + """.. py:function:: dpdata.{}.to_{}{}""".format( method_classes[method], aa.replace("/", "_").replace(".", ""), sig, @@ -226,11 +244,12 @@ def generate_sub_format_pages(formats: dict): buff.append("") if docstring is not None and method in format.__dict__: doc_obj = SphinxDocString(docstring) - doc_obj["Parameters"] = [ - xx - for xx in doc_obj["Parameters"] - if xx.name not in ("data", "*args", "**kwargs") - ] + if len(doc_obj["Parameters"]) > 0: + doc_obj["Parameters"] = [ + xx + for xx in doc_obj["Parameters"][1:] + if xx.name not in ("*args", "**kwargs") + ] rst = " " + str(doc_obj) buff.append(rst) buff.append("") From eb4ee2a17ab4969161d41e868e6f6936c88d255a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 00:32:06 +0000 Subject: [PATCH 08/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 8befb9ac4..74b6a7340 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -4,14 +4,15 @@ from inspect import Parameter, Signature, signature from typing import Literal -from numpydoc.docscrape_sphinx import SphinxDocString from numpydoc.docscrape import Parameter as numpydoc_Parameter +from numpydoc.docscrape_sphinx import SphinxDocString + +from dpdata.bond_order_system import BondOrderSystem # ensure all plugins are loaded! from dpdata.driver import Driver, Minimizer from dpdata.format import Format -from dpdata.system import System, LabeledSystem, MultiSystems -from dpdata.bond_order_system import BondOrderSystem +from dpdata.system import LabeledSystem, MultiSystems, System def get_formats() -> dict: @@ -173,7 +174,9 @@ def generate_sub_format_pages(formats: dict): sig = Signature(list(parameters.values())) sig = str(sig) if method.startswith("from_"): - sig = Signature(list(parameters.values()), return_annotation=method_obj[method]) + sig = Signature( + list(parameters.values()), return_annotation=method_obj[method] + ) sig = str(sig_fmt) if method != "from_multi_systems": for aa in alias: @@ -183,7 +186,10 @@ def generate_sub_format_pages(formats: dict): default=None, annotation=Literal[aa], ) - sig_fmt = Signature(list(parameters.values()), return_annotation=method_obj[method]) + sig_fmt = Signature( + list(parameters.values()), + return_annotation=method_obj[method], + ) sig_fmt = str(sig_fmt) buff.append( f""".. py:function:: dpdata.{method_classes[method]}.from{sig_fmt}""" @@ -207,7 +213,11 @@ def generate_sub_format_pages(formats: dict): if xx.name not in ("*args", "**kwargs") ] doc_obj["Yields"] = [] - doc_obj["Returns"] = [numpydoc_Parameter("", method_classes[method], "converted system")] + doc_obj["Returns"] = [ + numpydoc_Parameter( + "", method_classes[method], "converted system" + ) + ] rst = " " + str(doc_obj) buff.append(rst) buff.append("") From e8d5ecc2faec13f3e4bccdeba9bfa910925395a4 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 20:52:25 -0400 Subject: [PATCH 09/26] kk Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 74b6a7340..bdbf5d7c7 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -1,7 +1,7 @@ import csv import os from collections import defaultdict -from inspect import Parameter, Signature, signature +from inspect import Parameter, Signature, signature, cleandoc from typing import Literal from numpydoc.docscrape import Parameter as numpydoc_Parameter @@ -116,7 +116,7 @@ def check_supported(fmt: Format): "to_multi_systems": "MultiSystems", } -method_obj = { +method_cls_obj = { "from_system": System, "to_system": System, "from_labeled_system": LabeledSystem, @@ -143,6 +143,7 @@ def generate_sub_format_pages(formats: dict): docstring = format.__doc__ if docstring is not None: + docstring = cleandoc(docstring) rst = str(SphinxDocString(docstring)) buff.append(rst) buff.append("") @@ -160,8 +161,11 @@ def generate_sub_format_pages(formats: dict): buff.append("") method_obj = getattr(format, method) docstring = method_obj.__doc__ + if docstring is not None: + docstring = cleandoc(docstring) sig = signature(method_obj) parameters = dict(sig.parameters) + return_annotation = sig.return_annotation # del self del parameters[list(parameters)[0]] # del data @@ -171,13 +175,12 @@ def generate_sub_format_pages(formats: dict): del parameters["args"] if "kwargs" in parameters: del parameters["kwargs"] - sig = Signature(list(parameters.values())) + if method == "to_multi_systems" or method.startswith("from_"): + sig = Signature(list(parameters.values()), return_annotation=method_cls_obj[method]) + else: + sig = Signature(list(parameters.values()), return_annotation=return_annotation) sig = str(sig) if method.startswith("from_"): - sig = Signature( - list(parameters.values()), return_annotation=method_obj[method] - ) - sig = str(sig_fmt) if method != "from_multi_systems": for aa in alias: parameters["fmt"] = Parameter( @@ -188,7 +191,7 @@ def generate_sub_format_pages(formats: dict): ) sig_fmt = Signature( list(parameters.values()), - return_annotation=method_obj[method], + return_annotation=method_cls_obj[method], ) sig_fmt = str(sig_fmt) buff.append( @@ -215,7 +218,7 @@ def generate_sub_format_pages(formats: dict): doc_obj["Yields"] = [] doc_obj["Returns"] = [ numpydoc_Parameter( - "", method_classes[method], "converted system" + "", method_classes[method], ["converted system"] ) ] rst = " " + str(doc_obj) @@ -236,7 +239,10 @@ def generate_sub_format_pages(formats: dict): ), **parameters, } - sig_fmt = Signature(list(parameters.values())) + if method == "to_multi_systems": + sig_fmt = Signature(list(parameters.values()), return_annotation=method_cls_obj[method]) + else: + sig_fmt = Signature(list(parameters.values()), return_annotation=return_annotation) sig_fmt = str(sig_fmt) buff.append( f""".. py:function:: dpdata.{method_classes[method]}.to{sig_fmt}""" @@ -260,6 +266,13 @@ def generate_sub_format_pages(formats: dict): for xx in doc_obj["Parameters"][1:] if xx.name not in ("*args", "**kwargs") ] + if method == "to_multi_systems": + doc_obj["Yields"] = [] + doc_obj["Returns"] = [ + numpydoc_Parameter( + "", method_classes[method], ["this system"] + ) + ] rst = " " + str(doc_obj) buff.append(rst) buff.append("") From eb7f30cb1cde7f62d730c4d0a30b39a47db2aaa5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 00:53:12 +0000 Subject: [PATCH 10/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index bdbf5d7c7..1c612a098 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -1,7 +1,7 @@ import csv import os from collections import defaultdict -from inspect import Parameter, Signature, signature, cleandoc +from inspect import Parameter, Signature, cleandoc, signature from typing import Literal from numpydoc.docscrape import Parameter as numpydoc_Parameter @@ -176,9 +176,13 @@ def generate_sub_format_pages(formats: dict): if "kwargs" in parameters: del parameters["kwargs"] if method == "to_multi_systems" or method.startswith("from_"): - sig = Signature(list(parameters.values()), return_annotation=method_cls_obj[method]) + sig = Signature( + list(parameters.values()), return_annotation=method_cls_obj[method] + ) else: - sig = Signature(list(parameters.values()), return_annotation=return_annotation) + sig = Signature( + list(parameters.values()), return_annotation=return_annotation + ) sig = str(sig) if method.startswith("from_"): if method != "from_multi_systems": @@ -240,9 +244,15 @@ def generate_sub_format_pages(formats: dict): **parameters, } if method == "to_multi_systems": - sig_fmt = Signature(list(parameters.values()), return_annotation=method_cls_obj[method]) + sig_fmt = Signature( + list(parameters.values()), + return_annotation=method_cls_obj[method], + ) else: - sig_fmt = Signature(list(parameters.values()), return_annotation=return_annotation) + sig_fmt = Signature( + list(parameters.values()), + return_annotation=return_annotation, + ) sig_fmt = str(sig_fmt) buff.append( f""".. py:function:: dpdata.{method_classes[method]}.to{sig_fmt}""" From 80e6485dec3e0e171c02f882a4ae85dc2a55c71b Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 20:55:57 -0400 Subject: [PATCH 11/26] install rdkit Signed-off-by: Jinzhe Zeng --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 5b555ad59..087d6ff9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,6 +54,7 @@ docs = [ 'm2r2', 'deepmodeling-sphinx>=0.1.1', 'sphinx-argparse', + 'rdkit', ] [tool.setuptools.packages.find] From 95175d9ebf4e84a5c48376cd03ece1ca040a84a3 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 21:14:58 -0400 Subject: [PATCH 12/26] kk Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 86 +++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 1c612a098..23cad83c8 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -134,6 +134,8 @@ def generate_sub_format_pages(formats: dict): for format, alias in formats.items(): # format: Format, alias: list[str] buff = [] + buff.append(".. _%s:" % format.__name__) + buff.append("") for aa in alias: buff.append("%s format" % aa) buff.append("=" * len(buff[-1])) @@ -152,6 +154,9 @@ def generate_sub_format_pages(formats: dict): buff.append("------------") methods = check_supported(format) for method in methods: + buff.append("") + buff.append(".. _%s_%s:" % (format.__name__, method)) + buff.append("") if method.startswith("from_"): buff.append("Convert from this format to %s" % method_classes[method]) buff.append("`" * len(buff[-1])) @@ -212,27 +217,33 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if docstring is not None and method in format.__dict__: - doc_obj = SphinxDocString(docstring) + if docstring is None or method not in format.__dict__: + docstring = """ Convert this format to :func:`%s`.""" % (method_classes[method]) + doc_obj = SphinxDocString(docstring) + if len(doc_obj["Parameters"]) > 0: doc_obj["Parameters"] = [ xx for xx in doc_obj["Parameters"] if xx.name not in ("*args", "**kwargs") ] - doc_obj["Yields"] = [] - doc_obj["Returns"] = [ - numpydoc_Parameter( - "", method_classes[method], ["converted system"] - ) - ] - rst = " " + str(doc_obj) - buff.append(rst) - buff.append("") else: - buff.append( - """ Convert this format to :func:`%s`.""" - % (method_classes[method]) + if method == "from_multi_systems": + doc_obj["Parameters"] = [ + numpydoc_Parameter( + "directory", + "str", + ["directory of systems"], + ) + ] + doc_obj["Yields"] = [] + doc_obj["Returns"] = [ + numpydoc_Parameter( + "", method_classes[method], ["converted system"] ) + ] + rst = " " + str(doc_obj) + buff.append(rst) + buff.append("") elif method.startswith("to_"): for aa in alias: parameters = { @@ -268,29 +279,34 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if docstring is not None and method in format.__dict__: - doc_obj = SphinxDocString(docstring) - if len(doc_obj["Parameters"]) > 0: - doc_obj["Parameters"] = [ - xx - for xx in doc_obj["Parameters"][1:] - if xx.name not in ("*args", "**kwargs") - ] + if docstring is None or method not in format.__dict__: + docstring = "Convert :func:`%s` to this format." % (method_classes[method]) + doc_obj = SphinxDocString(docstring) + if len(doc_obj["Parameters"]) > 0: + doc_obj["Parameters"] = [ + xx + for xx in doc_obj["Parameters"][1:] + if xx.name not in ("*args", "**kwargs") + ] + else: if method == "to_multi_systems": - doc_obj["Yields"] = [] - doc_obj["Returns"] = [ + doc_obj["Parameters"] = [ numpydoc_Parameter( - "", method_classes[method], ["this system"] + "directory", + "str", + ["directory to save systems"], ) ] - rst = " " + str(doc_obj) - buff.append(rst) - buff.append("") - else: - buff.append( - """ Convert :func:`%s` to this format.""" - % (method_classes[method]) - ) + if method == "to_multi_systems": + doc_obj["Yields"] = [] + doc_obj["Returns"] = [ + numpydoc_Parameter( + "", method_classes[method], ["this system"] + ) + ] + rst = " " + str(doc_obj) + buff.append(rst) + buff.append("") buff.append("") buff.append("") @@ -312,10 +328,10 @@ def generate_sub_format_pages(formats: dict): for kk, vv in formats.items(): writer.writerow( { - "Class": get_cls_link(kk), + "Class": ":ref:`%s`" % kk.__name__, "Alias": "\n".join("``%s``" % vvv for vvv in vv), "Supported Functions": "\n".join( - method_links[mtd] for mtd in check_supported(kk) + ":ref:`%s_%s`" % (kk.__name__, mtd) for mtd in check_supported(kk) ), } ) From 7fe8237289aae8d25a1543a6b4dd24ecb4a550c2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 01:15:13 +0000 Subject: [PATCH 13/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 23cad83c8..828426df2 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -155,7 +155,7 @@ def generate_sub_format_pages(formats: dict): methods = check_supported(format) for method in methods: buff.append("") - buff.append(".. _%s_%s:" % (format.__name__, method)) + buff.append(f".. _{format.__name__}_{method}:") buff.append("") if method.startswith("from_"): buff.append("Convert from this format to %s" % method_classes[method]) @@ -218,7 +218,9 @@ def generate_sub_format_pages(formats: dict): buff.append(""" :noindex:""") buff.append("") if docstring is None or method not in format.__dict__: - docstring = """ Convert this format to :func:`%s`.""" % (method_classes[method]) + docstring = """ Convert this format to :func:`%s`.""" % ( + method_classes[method] + ) doc_obj = SphinxDocString(docstring) if len(doc_obj["Parameters"]) > 0: doc_obj["Parameters"] = [ @@ -237,9 +239,7 @@ def generate_sub_format_pages(formats: dict): ] doc_obj["Yields"] = [] doc_obj["Returns"] = [ - numpydoc_Parameter( - "", method_classes[method], ["converted system"] - ) + numpydoc_Parameter("", method_classes[method], ["converted system"]) ] rst = " " + str(doc_obj) buff.append(rst) @@ -280,7 +280,9 @@ def generate_sub_format_pages(formats: dict): buff.append(""" :noindex:""") buff.append("") if docstring is None or method not in format.__dict__: - docstring = "Convert :func:`%s` to this format." % (method_classes[method]) + docstring = "Convert :func:`%s` to this format." % ( + method_classes[method] + ) doc_obj = SphinxDocString(docstring) if len(doc_obj["Parameters"]) > 0: doc_obj["Parameters"] = [ @@ -300,9 +302,7 @@ def generate_sub_format_pages(formats: dict): if method == "to_multi_systems": doc_obj["Yields"] = [] doc_obj["Returns"] = [ - numpydoc_Parameter( - "", method_classes[method], ["this system"] - ) + numpydoc_Parameter("", method_classes[method], ["this system"]) ] rst = " " + str(doc_obj) buff.append(rst) @@ -331,7 +331,8 @@ def generate_sub_format_pages(formats: dict): "Class": ":ref:`%s`" % kk.__name__, "Alias": "\n".join("``%s``" % vvv for vvv in vv), "Supported Functions": "\n".join( - ":ref:`%s_%s`" % (kk.__name__, mtd) for mtd in check_supported(kk) + f":ref:`{kk.__name__}_{mtd}`" + for mtd in check_supported(kk) ), } ) From e54e8c25172d154f8c966a7b4ac494931a7dcf8a Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 21:20:32 -0400 Subject: [PATCH 14/26] kk Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 828426df2..b74e20311 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -218,7 +218,7 @@ def generate_sub_format_pages(formats: dict): buff.append(""" :noindex:""") buff.append("") if docstring is None or method not in format.__dict__: - docstring = """ Convert this format to :func:`%s`.""" % ( + docstring = """ Convert this format to :class:`%s`.""" % ( method_classes[method] ) doc_obj = SphinxDocString(docstring) @@ -280,7 +280,7 @@ def generate_sub_format_pages(formats: dict): buff.append(""" :noindex:""") buff.append("") if docstring is None or method not in format.__dict__: - docstring = "Convert :func:`%s` to this format." % ( + docstring = "Convert :class:`%s` to this format." % ( method_classes[method] ) doc_obj = SphinxDocString(docstring) From d824add832dc1b3c69a88e0ea423febc35836370 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 01:20:47 +0000 Subject: [PATCH 15/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index b74e20311..0162bd91a 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -331,8 +331,7 @@ def generate_sub_format_pages(formats: dict): "Class": ":ref:`%s`" % kk.__name__, "Alias": "\n".join("``%s``" % vvv for vvv in vv), "Supported Functions": "\n".join( - f":ref:`{kk.__name__}_{mtd}`" - for mtd in check_supported(kk) + f":ref:`{kk.__name__}_{mtd}`" for mtd in check_supported(kk) ), } ) From 36feeee89f37cbd9015312792a593ad2b7df2e0d Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 21:25:20 -0400 Subject: [PATCH 16/26] fix from Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/make_format.py b/docs/make_format.py index 0162bd91a..039f850bb 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -204,7 +204,7 @@ def generate_sub_format_pages(formats: dict): ) sig_fmt = str(sig_fmt) buff.append( - f""".. py:function:: dpdata.{method_classes[method]}.from{sig_fmt}""" + f""".. py:function:: dpdata.{method_classes[method]}{sig_fmt}""" ) buff.append(""" :noindex:""") for aa in alias: From 4aa0f357da153394275c53af841bc756976ecf2a Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 21:33:10 -0400 Subject: [PATCH 17/26] to_label_system falls back to to_system Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/make_format.py b/docs/make_format.py index 039f850bb..ba42cabdb 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -165,6 +165,8 @@ def generate_sub_format_pages(formats: dict): buff.append("`" * len(buff[-1])) buff.append("") method_obj = getattr(format, method) + if method == "to_label_system" and method not in format.__dict__ and "to_system" in format.__dict__: + method_obj = getattr(format, "to_system") docstring = method_obj.__doc__ if docstring is not None: docstring = cleandoc(docstring) From 000ebb74aa5df72f7219fb03c858d35d01952dc3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 01:33:24 +0000 Subject: [PATCH 18/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/make_format.py b/docs/make_format.py index ba42cabdb..7a449d2ff 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -165,7 +165,11 @@ def generate_sub_format_pages(formats: dict): buff.append("`" * len(buff[-1])) buff.append("") method_obj = getattr(format, method) - if method == "to_label_system" and method not in format.__dict__ and "to_system" in format.__dict__: + if ( + method == "to_label_system" + and method not in format.__dict__ + and "to_system" in format.__dict__ + ): method_obj = getattr(format, "to_system") docstring = method_obj.__doc__ if docstring is not None: From 985141327e6f704f748ec915fc487f0e5ec6fc30 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 21:40:04 -0400 Subject: [PATCH 19/26] fix typo Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 7a449d2ff..b67b89db4 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -165,11 +165,7 @@ def generate_sub_format_pages(formats: dict): buff.append("`" * len(buff[-1])) buff.append("") method_obj = getattr(format, method) - if ( - method == "to_label_system" - and method not in format.__dict__ - and "to_system" in format.__dict__ - ): + if method == "to_labeled_system" and method not in format.__dict__ and "to_system" in format.__dict__: method_obj = getattr(format, "to_system") docstring = method_obj.__doc__ if docstring is not None: From 880cfdd8f935d006f8b56bbdcb5ba0b31c570000 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 01:40:42 +0000 Subject: [PATCH 20/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/make_format.py b/docs/make_format.py index b67b89db4..4261b4d7c 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -165,7 +165,11 @@ def generate_sub_format_pages(formats: dict): buff.append("`" * len(buff[-1])) buff.append("") method_obj = getattr(format, method) - if method == "to_labeled_system" and method not in format.__dict__ and "to_system" in format.__dict__: + if ( + method == "to_labeled_system" + and method not in format.__dict__ + and "to_system" in format.__dict__ + ): method_obj = getattr(format, "to_system") docstring = method_obj.__doc__ if docstring is not None: From 7392eb2252bd8ae00a25a89e54a6114b4a8ef505 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 21:50:08 -0400 Subject: [PATCH 21/26] skip Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/make_format.py b/docs/make_format.py index 4261b4d7c..7e9778112 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -285,7 +285,9 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if docstring is None or method not in format.__dict__: + if method == "to_labeled_system" and method not in format.__dict__ and "to_system" in format.__dict__: + pass + elif docstring is None or method not in format.__dict__: docstring = "Convert :class:`%s` to this format." % ( method_classes[method] ) From 393ee76f3564c0f95e4512b00aee5ad2f3da8fe2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 01:50:25 +0000 Subject: [PATCH 22/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/make_format.py b/docs/make_format.py index 7e9778112..e9441b56d 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -285,7 +285,11 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if method == "to_labeled_system" and method not in format.__dict__ and "to_system" in format.__dict__: + if ( + method == "to_labeled_system" + and method not in format.__dict__ + and "to_system" in format.__dict__ + ): pass elif docstring is None or method not in format.__dict__: docstring = "Convert :class:`%s` to this format." % ( From cb84ee466bd775b7550a9973a49a7c4f9b6f8956 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 21:54:58 -0400 Subject: [PATCH 23/26] fix Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index e9441b56d..262cfd2e0 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -285,13 +285,9 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if ( - method == "to_labeled_system" + if docstring is None or (method not in format.__dict__ and not (method == "to_labeled_system" and method not in format.__dict__ - and "to_system" in format.__dict__ - ): - pass - elif docstring is None or method not in format.__dict__: + and "to_system" in format.__dict__)): docstring = "Convert :class:`%s` to this format." % ( method_classes[method] ) From ea4817ca5dff94b8d58e977db7cb882efa04d66f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 01:55:31 +0000 Subject: [PATCH 24/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index 262cfd2e0..beec3091d 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -285,9 +285,14 @@ def generate_sub_format_pages(formats: dict): ) buff.append(""" :noindex:""") buff.append("") - if docstring is None or (method not in format.__dict__ and not (method == "to_labeled_system" - and method not in format.__dict__ - and "to_system" in format.__dict__)): + if docstring is None or ( + method not in format.__dict__ + and not ( + method == "to_labeled_system" + and method not in format.__dict__ + and "to_system" in format.__dict__ + ) + ): docstring = "Convert :class:`%s` to this format." % ( method_classes[method] ) From 4e1c9ced92bb4b92904f47a32d487e2bbabb0eda Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Fri, 28 Jul 2023 22:07:56 -0400 Subject: [PATCH 25/26] kk Signed-off-by: Jinzhe Zeng --- docs/make_format.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/make_format.py b/docs/make_format.py index beec3091d..1420d77b7 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -73,7 +73,7 @@ def get_cls_link(cls: object) -> str: def check_supported(fmt: Format): - methods = [] + methods = {} for mtd in [ "from_system", "to_system", @@ -85,24 +85,24 @@ def check_supported(fmt: Format): "to_multi_systems", ]: if detect_overridden(fmt, mtd): - methods.append(mtd) + methods[mtd] = None if mtd == "to_system": - methods.append("to_labeled_system") + methods["to_labeled_system"] = None if fmt.MultiMode != fmt.MultiModes.NotImplemented: - methods.append("from_multi_systems") - methods.append("to_multi_systems") - return methods + methods["from_multi_systems"] = None + methods["to_multi_systems"] = None + return list(methods.keys()) method_links = { - "from_system": ":func:`System() `", - "to_system": ":func:`System.to() `", - "from_labeled_system": ":func:`LabeledSystem() `", - "to_labeled_system": ":func:`LabeledSystem.to() `", - "from_bond_order_system": ":func:`BondOrderSystem() `", - "to_bond_order_system": ":func:`BondOrderSystem.to() `", - "from_multi_systems": ":func:`MultiSystems.load_systems_from_file() `", - "to_multi_systems": ":func:`MultiSystems.to() `", + "from_system": ":ref:`System() <{}_{}>`", + "to_system": ":ref:`System.to() <{}_{}>`", + "from_labeled_system": ":ref:`LabeledSystem() <{}_{}>`", + "to_labeled_system": ":ref:`LabeledSystem.to() <{}_{}>`", + "from_bond_order_system": ":ref:`BondOrderSystem() <{}_{}>`", + "to_bond_order_system": ":ref:`BondOrderSystem.to() <{}_{}>`", + "from_multi_systems": ":ref:`MultiSystems.load_systems_from_file() <{}_{}>`", + "to_multi_systems": ":ref:`MultiSystems.to() <{}_{}>`", } method_classes = { @@ -150,8 +150,8 @@ def generate_sub_format_pages(formats: dict): buff.append(rst) buff.append("") - buff.append("Conversation") - buff.append("------------") + buff.append("Conversions") + buff.append("-----------") methods = check_supported(format) for method in methods: buff.append("") @@ -331,9 +331,9 @@ def generate_sub_format_pages(formats: dict): formats = get_formats() with open("formats.csv", "w", newline="") as csvfile: fieldnames = [ - "Class", + "Format", "Alias", - "Supported Functions", + "Supported Conversions", ] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) @@ -341,10 +341,10 @@ def generate_sub_format_pages(formats: dict): for kk, vv in formats.items(): writer.writerow( { - "Class": ":ref:`%s`" % kk.__name__, + "Format": ":ref:`%s`" % kk.__name__, "Alias": "\n".join("``%s``" % vvv for vvv in vv), - "Supported Functions": "\n".join( - f":ref:`{kk.__name__}_{mtd}`" for mtd in check_supported(kk) + "Supported Conversions": "\n".join( + method_links[mtd].format(kk.__name__, mtd) for mtd in check_supported(kk) ), } ) From 3e667e81b4206730f8ec1743217e726c8b66baff Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 29 Jul 2023 02:08:17 +0000 Subject: [PATCH 26/26] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/make_format.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/make_format.py b/docs/make_format.py index 1420d77b7..62dd08793 100644 --- a/docs/make_format.py +++ b/docs/make_format.py @@ -344,7 +344,8 @@ def generate_sub_format_pages(formats: dict): "Format": ":ref:`%s`" % kk.__name__, "Alias": "\n".join("``%s``" % vvv for vvv in vv), "Supported Conversions": "\n".join( - method_links[mtd].format(kk.__name__, mtd) for mtd in check_supported(kk) + method_links[mtd].format(kk.__name__, mtd) + for mtd in check_supported(kk) ), } )