Skip to content

Commit

Permalink
💥 remove SubAnalyser (#92)
Browse files Browse the repository at this point in the history
* 💥 remove SubAnalyser

* 💥 remove stack_param

* 💥 Arparma changes

* ✨ merge need_main_args & default_main_only

* 🔥 merge handle_option
  • Loading branch information
RF-Tar-Railt authored Oct 31, 2024
1 parent 292f4fb commit 31f30c6
Show file tree
Hide file tree
Showing 24 changed files with 526 additions and 673 deletions.
2 changes: 1 addition & 1 deletion devtool.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from arclet.alconna.ingedia._argv import Argv
from arclet.alconna.base import Option, Subcommand, Header, Config
from arclet.alconna.config import Namespace
from arclet.alconna.typing import DataCollection
from arclet.alconna.utils import DataCollection


class AnalyseError(Exception):
Expand Down
2 changes: 1 addition & 1 deletion src/arclet/alconna/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@
from .formatter import TextFormatter as TextFormatter
from .shortcut import ShortcutArgs as ShortcutArgs
from .manager import command_manager as command_manager
from .typing import AllParam as AllParam
from .utils import AllParam as AllParam

__version__ = "1.8.31"
13 changes: 10 additions & 3 deletions src/arclet/alconna/args.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

from ._dcls import safe_dcls_kw, safe_field_kw
from .exceptions import InvalidArgs
from .typing import TAValue, parent_frame_namespace, merge_cls_and_parent_ns
from .utils import TAValue, parent_frame_namespace, merge_cls_and_parent_ns

_T = TypeVar("_T")

Expand Down Expand Up @@ -49,6 +49,10 @@ def display(self):
"""返回参数单元的显示值"""
return self.alias or self.get_default()

@property
def no_default(self):
return self.default is Empty and self.default_factory is Empty

def get_default(self):
"""返回参数单元的默认值"""
return self.default_factory() if self.default_factory is not Empty else self.default
Expand Down Expand Up @@ -243,7 +247,7 @@ def __check_vars__(self):
self.normal.append(arg)
if arg.field.optional:
self.optional_count += 1
elif arg.field.default is not Empty:
elif not arg.field.no_default:
self.optional_count += 1
self.data.clear()
self.data.extend(_tmp)
Expand All @@ -253,6 +257,9 @@ def __check_vars__(self):
def __iter__(self):
return iter(self.data)

def __bool__(self):
return bool(self.data)

def __str__(self):
return f"Args({', '.join([f'{arg}' for arg in self.data])})" if self.data else "Empty"

Expand Down Expand Up @@ -403,7 +410,7 @@ def load(cls, data: dict):
return cls(**data)


def handle_args(arg: Arg | list[Arg] | ArgsBuilder | type[ArgsBase] | _Args | None) -> _Args:
def handle_args(arg: Arg[Any] | list[Arg[Any]] | ArgsBuilder | type[ArgsBase] | _Args | None) -> _Args:
if arg is None:
return _Args([])
if isinstance(arg, _Args):
Expand Down
Loading

0 comments on commit 31f30c6

Please sign in to comment.