|
1 | 1 | """Utilities and implementation for bioversions.""" |
2 | 2 |
|
| 3 | +from __future__ import annotations |
| 4 | + |
3 | 5 | import datetime |
4 | 6 | import enum |
5 | 7 | import gzip |
6 | 8 | import io |
7 | 9 | import os |
8 | 10 | from collections.abc import Generator, Iterable, Mapping |
9 | 11 | from contextlib import contextmanager |
10 | | -from typing import Any, ClassVar, NotRequired, TextIO, TypedDict, cast |
| 12 | +from typing import Any, ClassVar, TextIO, TypedDict, cast |
11 | 13 |
|
12 | 14 | import bioregistry |
13 | 15 | import pydantic |
|
17 | 19 | from bs4 import Tag |
18 | 20 | from cachier import cachier |
19 | 21 | from pystow.utils import get_soup |
| 22 | +from typing_extensions import NotRequired |
20 | 23 |
|
21 | 24 | __all__ = [ |
22 | 25 | "DailyGetter", |
@@ -121,14 +124,14 @@ def find_text(element: Tag, *args: Any, **kwargs: Any) -> str: |
121 | 124 | class MetaGetter(type): |
122 | 125 | """A metatype to expose two class properties.""" |
123 | 126 |
|
124 | | - _cache: ClassVar[str | dict[str, str] | datetime.datetime | datetime.date | None] = None |
| 127 | + _cache: ClassVar[str | ReleaseDict | datetime.datetime | datetime.date | None] = None |
125 | 128 |
|
126 | 129 | date_fmt: str | None |
127 | 130 | date_version_fmt: str | None |
128 | 131 | homepage_fmt: str | None |
129 | 132 |
|
130 | 133 | @property |
131 | | - def _cache_prop(cls) -> str | dict[str, str] | datetime.datetime | datetime.date: |
| 134 | + def _cache_prop(cls) -> str | ReleaseDict | datetime.datetime | datetime.date: |
132 | 135 | if cls._cache is None: |
133 | 136 | cls._cache = cls().get() # type:ignore |
134 | 137 | return cls._cache |
@@ -248,7 +251,7 @@ class Getter(metaclass=MetaGetter): |
248 | 251 | #: Prefixes this getter works for |
249 | 252 | collection: ClassVar[list[str] | None] = None |
250 | 253 |
|
251 | | - def get(self) -> str | ReleaseDict | datetime.datetime: |
| 254 | + def get(self) -> str | ReleaseDict | datetime.datetime | datetime.date: |
252 | 255 | """Get the latest of this database.""" |
253 | 256 | raise NotImplementedError |
254 | 257 |
|
|
0 commit comments