From: Martin Mareš Date: Sat, 22 Nov 2025 17:29:33 +0000 (+0100) Subject: Use @overload to derive result type of Nsc.add_zone() X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=08756e00480c372a48ce10459724b683b8cde679;p=pynsc.git Use @overload to derive result type of Nsc.add_zone() --- diff --git a/nsconfig/core.py b/nsconfig/core.py index 0c76eb5..1eb12a8 100644 --- a/nsconfig/core.py +++ b/nsconfig/core.py @@ -28,7 +28,7 @@ import json from pathlib import Path import socket import sys -from typing import Optional, Dict, List, Self, DefaultDict, TextIO, Tuple, TYPE_CHECKING +from typing import Optional, Dict, List, Self, DefaultDict, TextIO, Tuple, TYPE_CHECKING, overload from nsconfig.util import flatten_list, parse_address, parse_network, parse_name, parse_duration, parse_rname from nsconfig.util import IPAddress, IPNetwork, IPAddr, NameParseMode @@ -487,6 +487,39 @@ class Nsc: self.daemon = daemon daemon.setup(self) + @overload + def add_zone(self, + name: Optional[str] = None, + *, + reverse_for: str | IPNetwork | None = None, + alias_for: NscZonePrimary, + secondary_to: None = None, + inherit_config: Optional[NscZoneConfig] = None, + **kwargs) -> NscZoneAlias: + pass + + @overload + def add_zone(self, + name: Optional[str] = None, + *, + reverse_for: str | IPNetwork | None = None, + alias_for: None = None, + secondary_to: None = None, + inherit_config: Optional[NscZoneConfig] = None, + **kwargs) -> NscZonePrimary: + pass + + @overload + def add_zone(self, + name: Optional[str] = None, + *, + reverse_for: str | IPNetwork | None = None, + alias_for: None = None, + secondary_to: str | IPAddress, + inherit_config: Optional[NscZoneConfig] = None, + **kwargs) -> NscZoneSecondary: + pass + def add_zone(self, name: Optional[str] = None, *,