Skip to content

Commit

Permalink
Merge pull request #307 from Avasam/get_command_obj-overload
Browse files Browse the repository at this point in the history
type `Distribution.get_command_obj` to not return `None` with `create=True`
  • Loading branch information
jaraco authored Dec 27, 2024
2 parents cebba7f + deb1d5a commit cfc8c4a
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions distutils/dist.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import warnings
from collections.abc import Iterable
from email import message_from_file
from typing import TYPE_CHECKING, TypeVar, overload
from typing import TYPE_CHECKING, Literal, TypeVar, overload

from packaging.utils import canonicalize_name, canonicalize_version

Expand All @@ -31,6 +31,7 @@
from .util import check_environ, rfc822_escape, strtobool

if TYPE_CHECKING:
# type-only import because of mutual dependence between these modules
from .cmd import Command

_CommandT = TypeVar("_CommandT", bound="Command")
Expand Down Expand Up @@ -839,7 +840,15 @@ def get_command_class(self, command):

raise DistutilsModuleError(f"invalid command '{command}'")

def get_command_obj(self, command, create=True):
@overload
def get_command_obj(
self, command: str, create: Literal[True] = True
) -> Command: ...
@overload
def get_command_obj(
self, command: str, create: Literal[False]
) -> Command | None: ...
def get_command_obj(self, command: str, create: bool = True) -> Command | None:
"""Return the command object for 'command'. Normally this object
is cached on a previous call to 'get_command_obj()'; if no command
object for 'command' is in the cache, then we either create and
Expand Down

0 comments on commit cfc8c4a

Please sign in to comment.