Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 23 additions & 7 deletions deepmd/entrypoints/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
)
from deepmd.loggers import set_log_handles

__all__ = ["main", "parse_args", "get_ll"]
__all__ = ["main", "parse_args", "get_ll", "main_parser"]


def get_ll(log_level: str) -> int:
Expand All @@ -44,14 +44,13 @@ def get_ll(log_level: str) -> int:
return int_level


def parse_args(args: Optional[List[str]] = None):
def main_parser() -> argparse.ArgumentParser:
"""DeePMD-Kit commandline options argument parser.

Parameters
----------
args: List[str]
list of command line arguments, main purpose is testing default option None
takes arguments from sys.argv
Returns
-------
argparse.ArgumentParser
main parser of DeePMD-kit
"""
parser = argparse.ArgumentParser(
description="DeePMD-kit: A deep learning package for many-body potential energy"
Expand Down Expand Up @@ -440,7 +439,24 @@ def parse_args(args: Optional[List[str]] = None):

# --version
parser.add_argument('--version', action='version', version='DeePMD-kit v%s' % __version__)
return parser


def parse_args(args: Optional[List[str]] = None) -> argparse.Namespace:
"""Parse arguments and convert argument strings to objects.

Parameters
----------
args: List[str]
list of command line arguments, main purpose is testing default option None
takes arguments from sys.argv

Returns
-------
argparse.Namespace
the populated namespace
"""
parser = main_parser()
parsed_args = parser.parse_args(args=args)
if parsed_args.command is None:
parser.print_help()
Expand Down
7 changes: 7 additions & 0 deletions doc/cli.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Command line interface
======================

.. argparse::
:module: deepmd.entrypoints.main
:func: main_parser
:prog: dp
1 change: 1 addition & 0 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ def setup(app):
'sphinx.ext.mathjax',
'sphinx.ext.viewcode',
'sphinx.ext.intersphinx',
'sphinxarg.ext',
'numpydoc',
'breathe',
'exhale'
Expand Down
1 change: 1 addition & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ DeePMD-kit is a package written in Python/C++, designed to minimize the effort r
freeze/index
test/index
inference/index
cli
third-party/index
troubleshooting/index

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@
cmake_minimum_required_version="3.0",
extras_require={
"test": ["dpdata>=0.1.9", "ase", "pytest", "pytest-cov", "pytest-sugar"],
"docs": ["sphinx>=3.1.1", "recommonmark", "sphinx_rtd_theme>=1.0.0rc1", "sphinx_markdown_tables", "myst-parser", "breathe", "exhale", "numpydoc", "ase", "deepmodeling-sphinx", "dargs>=0.3.1"],
"docs": ["sphinx>=3.1.1", "recommonmark", "sphinx_rtd_theme>=1.0.0rc1", "sphinx_markdown_tables", "myst-parser", "breathe", "exhale", "numpydoc", "ase", "deepmodeling-sphinx", "dargs>=0.3.1", "sphinx-argparse"],
**extras_require,
},
entry_points={"console_scripts": ["dp = deepmd.entrypoints.main:main"]},
Expand Down