chore: 添加虚拟环境到仓库
- 添加 backend_service/venv 虚拟环境 - 包含所有Python依赖包 - 注意:虚拟环境约393MB,包含12655个文件
This commit is contained in:
@@ -0,0 +1,229 @@
|
||||
"""Common methods for parsing."""
|
||||
|
||||
import enum
|
||||
import typing as T
|
||||
|
||||
PARAM_KEYWORDS = {
|
||||
"param",
|
||||
"parameter",
|
||||
"arg",
|
||||
"argument",
|
||||
"attribute",
|
||||
"key",
|
||||
"keyword",
|
||||
}
|
||||
RAISES_KEYWORDS = {"raises", "raise", "except", "exception"}
|
||||
DEPRECATION_KEYWORDS = {"deprecation", "deprecated"}
|
||||
RETURNS_KEYWORDS = {"return", "returns"}
|
||||
YIELDS_KEYWORDS = {"yield", "yields"}
|
||||
EXAMPLES_KEYWORDS = {"example", "examples"}
|
||||
|
||||
|
||||
class ParseError(RuntimeError):
|
||||
"""Base class for all parsing related errors."""
|
||||
|
||||
|
||||
class DocstringStyle(enum.Enum):
|
||||
"""Docstring style."""
|
||||
|
||||
REST = 1
|
||||
GOOGLE = 2
|
||||
NUMPYDOC = 3
|
||||
EPYDOC = 4
|
||||
AUTO = 255
|
||||
|
||||
|
||||
class RenderingStyle(enum.Enum):
|
||||
"""Rendering style when unparsing parsed docstrings."""
|
||||
|
||||
COMPACT = 1
|
||||
CLEAN = 2
|
||||
EXPANDED = 3
|
||||
|
||||
|
||||
class DocstringMeta:
|
||||
"""Docstring meta information.
|
||||
|
||||
Symbolizes lines in form of
|
||||
|
||||
:param arg: description
|
||||
:raises ValueError: if something happens
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self, args: T.List[str], description: T.Optional[str]
|
||||
) -> None:
|
||||
"""Initialize self.
|
||||
|
||||
:param args: list of arguments. The exact content of this variable is
|
||||
dependent on the kind of docstring; it's used to distinguish
|
||||
between custom docstring meta information items.
|
||||
:param description: associated docstring description.
|
||||
"""
|
||||
self.args = args
|
||||
self.description = description
|
||||
|
||||
|
||||
class DocstringParam(DocstringMeta):
|
||||
"""DocstringMeta symbolizing :param metadata."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
args: T.List[str],
|
||||
description: T.Optional[str],
|
||||
arg_name: str,
|
||||
type_name: T.Optional[str],
|
||||
is_optional: T.Optional[bool],
|
||||
default: T.Optional[str],
|
||||
) -> None:
|
||||
"""Initialize self."""
|
||||
super().__init__(args, description)
|
||||
self.arg_name = arg_name
|
||||
self.type_name = type_name
|
||||
self.is_optional = is_optional
|
||||
self.default = default
|
||||
|
||||
|
||||
class DocstringReturns(DocstringMeta):
|
||||
"""DocstringMeta symbolizing :returns or :yields metadata."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
args: T.List[str],
|
||||
description: T.Optional[str],
|
||||
type_name: T.Optional[str],
|
||||
is_generator: bool,
|
||||
return_name: T.Optional[str] = None,
|
||||
) -> None:
|
||||
"""Initialize self."""
|
||||
super().__init__(args, description)
|
||||
self.type_name = type_name
|
||||
self.is_generator = is_generator
|
||||
self.return_name = return_name
|
||||
|
||||
|
||||
class DocstringRaises(DocstringMeta):
|
||||
"""DocstringMeta symbolizing :raises metadata."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
args: T.List[str],
|
||||
description: T.Optional[str],
|
||||
type_name: T.Optional[str],
|
||||
) -> None:
|
||||
"""Initialize self."""
|
||||
super().__init__(args, description)
|
||||
self.type_name = type_name
|
||||
self.description = description
|
||||
|
||||
|
||||
class DocstringDeprecated(DocstringMeta):
|
||||
"""DocstringMeta symbolizing deprecation metadata."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
args: T.List[str],
|
||||
description: T.Optional[str],
|
||||
version: T.Optional[str],
|
||||
) -> None:
|
||||
"""Initialize self."""
|
||||
super().__init__(args, description)
|
||||
self.version = version
|
||||
self.description = description
|
||||
|
||||
|
||||
class DocstringExample(DocstringMeta):
|
||||
"""DocstringMeta symbolizing example metadata."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
args: T.List[str],
|
||||
snippet: T.Optional[str],
|
||||
description: T.Optional[str],
|
||||
) -> None:
|
||||
"""Initialize self."""
|
||||
super().__init__(args, description)
|
||||
self.snippet = snippet
|
||||
self.description = description
|
||||
|
||||
|
||||
class Docstring:
|
||||
"""Docstring object representation."""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
style=None, # type: T.Optional[DocstringStyle]
|
||||
) -> None:
|
||||
"""Initialize self."""
|
||||
self.short_description = None # type: T.Optional[str]
|
||||
self.long_description = None # type: T.Optional[str]
|
||||
self.blank_after_short_description = False
|
||||
self.blank_after_long_description = False
|
||||
self.meta = [] # type: T.List[DocstringMeta]
|
||||
self.style = style # type: T.Optional[DocstringStyle]
|
||||
|
||||
@property
|
||||
def description(self) -> T.Optional[str]:
|
||||
"""Return the full description of the function
|
||||
|
||||
Returns None if the docstring did not include any description
|
||||
"""
|
||||
ret = []
|
||||
if self.short_description:
|
||||
ret.append(self.short_description)
|
||||
if self.blank_after_short_description:
|
||||
ret.append("")
|
||||
if self.long_description:
|
||||
ret.append(self.long_description)
|
||||
|
||||
if not ret:
|
||||
return None
|
||||
|
||||
return "\n".join(ret)
|
||||
|
||||
@property
|
||||
def params(self) -> T.List[DocstringParam]:
|
||||
"""Return a list of information on function params."""
|
||||
return [item for item in self.meta if isinstance(item, DocstringParam)]
|
||||
|
||||
@property
|
||||
def raises(self) -> T.List[DocstringRaises]:
|
||||
"""Return a list of information on the exceptions that the function
|
||||
may raise.
|
||||
"""
|
||||
return [
|
||||
item for item in self.meta if isinstance(item, DocstringRaises)
|
||||
]
|
||||
|
||||
@property
|
||||
def returns(self) -> T.Optional[DocstringReturns]:
|
||||
"""Return a single information on function return.
|
||||
|
||||
Takes the first return information.
|
||||
"""
|
||||
for item in self.meta:
|
||||
if isinstance(item, DocstringReturns):
|
||||
return item
|
||||
return None
|
||||
|
||||
@property
|
||||
def many_returns(self) -> T.List[DocstringReturns]:
|
||||
"""Return a list of information on function return."""
|
||||
return [
|
||||
item for item in self.meta if isinstance(item, DocstringReturns)
|
||||
]
|
||||
|
||||
@property
|
||||
def deprecation(self) -> T.Optional[DocstringDeprecated]:
|
||||
"""Return a single information on function deprecation notes."""
|
||||
for item in self.meta:
|
||||
if isinstance(item, DocstringDeprecated):
|
||||
return item
|
||||
return None
|
||||
|
||||
@property
|
||||
def examples(self) -> T.List[DocstringExample]:
|
||||
"""Return a list of information on function examples."""
|
||||
return [
|
||||
item for item in self.meta if isinstance(item, DocstringExample)
|
||||
]
|
||||
Reference in New Issue
Block a user