11from __future__ import annotations
22
3- from dateutil .parser import isoparse
3+ from datetime import datetime
4+ from warnings import warn
45
56from ..core import BaseDomain , DomainIdentityMixin
67from ..deprecation import DeprecationInfo
@@ -32,7 +33,6 @@ class Iso(BaseDomain, DomainIdentityMixin):
3233 "type" ,
3334 "architecture" ,
3435 "description" ,
35- "deprecated" ,
3636 "deprecation" ,
3737 )
3838
@@ -43,15 +43,27 @@ def __init__(
4343 type : str | None = None ,
4444 architecture : str | None = None ,
4545 description : str | None = None ,
46- deprecated : str | None = None ,
46+ deprecated : str | None = None , # pylint: disable=unused-argument
4747 deprecation : dict | None = None ,
4848 ):
4949 self .id = id
5050 self .name = name
5151 self .type = type
5252 self .architecture = architecture
5353 self .description = description
54- self .deprecated = isoparse (deprecated ) if deprecated else None
5554 self .deprecation = (
5655 DeprecationInfo .from_dict (deprecation ) if deprecation is not None else None
5756 )
57+
58+ @property
59+ def deprecated (self ) -> datetime | None :
60+ """
61+ ISO 8601 timestamp of deprecation, None if ISO is still available.
62+ """
63+ warn (
64+ "The `deprecated` field is deprecated, please use the `deprecation` field instead." ,
65+ DeprecationWarning ,
66+ )
67+ if self .deprecation is None :
68+ return None
69+ return self .deprecation .unavailable_after
0 commit comments