Skip to content

Commit

Permalink
Merge branch 'main' into vega-datasets
Browse files Browse the repository at this point in the history
  • Loading branch information
dangotbanned authored Feb 7, 2025
2 parents 2c3b44d + 49d8955 commit 6c724e9
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 52 deletions.
10 changes: 6 additions & 4 deletions altair/vegalite/v5/schema/_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@
import sys
from typing import TYPE_CHECKING, Any, Literal, TypedDict

if sys.version_info >= (3, 14):
from typing import TypedDict
else:
from typing_extensions import TypedDict
from ._typing import PaddingKwds, RowColKwds

if TYPE_CHECKING:
Expand All @@ -19,6 +15,12 @@
from ._typing import * # noqa: F403


if sys.version_info >= (3, 14):
from typing import TypedDict
else:
from typing_extensions import TypedDict


__all__ = [
"AreaConfigKwds",
"AutoSizeParamsKwds",
Expand Down
10 changes: 5 additions & 5 deletions altair/vegalite/v5/schema/channels.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,8 @@
# sense if there are multiple ones
# However, we need these overloads due to how the propertysetter works
# mypy: disable-error-code="no-overload-impl, empty-body, misc"
import sys
from typing import TYPE_CHECKING, Any, Literal, TypedDict, Union, overload

if sys.version_info >= (3, 10):
from typing import TypeAlias
else:
from typing_extensions import TypeAlias
import narwhals.stable.v1 as nw

from altair.utils import infer_encoding_types as _infer_encoding_types
Expand All @@ -28,6 +23,7 @@

if TYPE_CHECKING:
# ruff: noqa: F405
import sys
from collections.abc import Sequence

from altair import Parameter, SchemaBase
Expand All @@ -48,6 +44,10 @@
from typing import Self
else:
from typing_extensions import Self
if sys.version_info >= (3, 10):
from typing import TypeAlias
else:
from typing_extensions import TypeAlias


__all__ = [
Expand Down
4 changes: 1 addition & 3 deletions altair/vegalite/v5/schema/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@

from . import core

if TYPE_CHECKING:
from collections.abc import Sequence

if TYPE_CHECKING:
# ruff: noqa: F405
import sys
from collections.abc import Sequence

if sys.version_info >= (3, 11):
from typing import Self
Expand Down
6 changes: 3 additions & 3 deletions sphinxext/code_ref.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

from typing import TYPE_CHECKING, Literal, get_args
from typing import TYPE_CHECKING, Literal, cast, get_args

from docutils import nodes
from docutils.parsers.rst import directives
Expand Down Expand Up @@ -42,7 +42,7 @@
_Option: TypeAlias = Literal["output", "fold", "summary"]

_PYSCRIPT_URL_FMT = "https://pyscript.net/releases/{0}/core.js"
_PYSCRIPT_VERSION = "2024.10.1"
_PYSCRIPT_VERSION = "2025.2.2"
_PYSCRIPT_URL = _PYSCRIPT_URL_FMT.format(_PYSCRIPT_VERSION)


Expand All @@ -52,7 +52,7 @@ def validate_output(output: Any) -> _OutputLong:
msg = f":output: option must be one of {get_args(_OutputShort)!r}"
raise TypeError(msg)
else:
short: _OutputShort = output
short = cast("_OutputShort", output)
return _OUTPUT_REMAP[short]


Expand Down
33 changes: 18 additions & 15 deletions tools/generate_schema_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -761,13 +761,12 @@ def generate_vegalite_schema_wrapper(fp: Path, /) -> ModuleDef[str]:
all_ = [*sorted(it), "Root", "VegaLiteSchema", "SchemaBase", "load_schema"]
contents = [
HEADER,
"from collections.abc import Iterator, Sequence",
"from typing import Any, Literal, Union, Protocol, TYPE_CHECKING",
"from typing import Any, Literal, Union",
"import pkgutil",
"import json\n",
"import narwhals.stable.v1 as nw\n",
"from altair.utils.schemapi import SchemaBase, Undefined, UndefinedType, _subclasses # noqa: F401\n",
import_type_checking(
"from collections.abc import Iterator, Sequence",
"from datetime import date, datetime",
"from altair import Parameter",
"from altair.typing import Optional",
Expand Down Expand Up @@ -880,13 +879,11 @@ def generate_vegalite_channel_wrappers(fp: Path, /) -> ModuleDef[list[str]]:
all_ = sorted(chain(it, COMPAT_EXPORTS))
imports = [
"import sys",
"from collections.abc import Sequence",
"from typing import Any, overload, Literal, Union, TYPE_CHECKING, TypedDict",
import_typing_extensions((3, 10), "TypeAlias"),
"from typing import Any, overload, Literal, Union, TypedDict",
"import narwhals.stable.v1 as nw",
"from altair.utils.schemapi import Undefined, with_property_setters",
"from altair.utils import infer_encoding_types as _infer_encoding_types",
"from altair.utils import parse_shorthand",
"from altair.utils.schemapi import Undefined, with_property_setters",
"from . import core",
"from ._typing import * # noqa: F403",
]
Expand All @@ -906,12 +903,16 @@ def generate_vegalite_channel_wrappers(fp: Path, /) -> ModuleDef[list[str]]:
CHANNEL_MYPY_IGNORE_STATEMENTS,
*imports,
import_type_checking(
"from datetime import date, datetime",
"from collections.abc import Sequence",
"from altair import Parameter, SchemaBase",
"from altair.typing import Optional",
f"from altair.vegalite.v5.schema.core import {', '.join(TYPING_CORE)}",
f"from altair.vegalite.v5.api import {', '.join(TYPING_API)}",
textwrap.indent(import_typing_extensions((3, 11), "Self"), " "),
textwrap.indent(
import_typing_extensions((3, 11), "Self")
+ import_typing_extensions((3, 10), "TypeAlias"),
" ",
),
),
f"\n__all__ = {all_}\n",
CHANNEL_MIXINS,
Expand Down Expand Up @@ -1234,7 +1235,6 @@ def vegalite_main(skip_download: bool = False) -> None:
fp_mixins = schemapath / "mixins.py"
print(f"Generating\n {schemafile!s}\n ->{fp_mixins!s}")
mixins_imports = (
"from collections.abc import Sequence",
"from typing import Any, Literal, Union",
"from altair.utils import use_signature, Undefined, SchemaBase",
"from . import core",
Expand All @@ -1249,6 +1249,7 @@ def vegalite_main(skip_download: bool = False) -> None:
"\n\n",
import_type_checking(
"import sys",
"from collections.abc import Sequence",
textwrap.indent(import_typing_extensions((3, 11), "Self"), " "),
"from altair.typing import Optional",
"from ._typing import * # noqa: F403",
Expand All @@ -1265,12 +1266,14 @@ def vegalite_main(skip_download: bool = False) -> None:
fp_theme_config: Path = schemapath / "_config.py"
content_theme_config = [
HEADER,
"from collections.abc import Sequence",
"from typing import Any, TYPE_CHECKING, Literal, TypedDict, Union",
import_typing_extensions((3, 14), "TypedDict", include_sys=True),
"from typing import Any, Literal, TypedDict, Union",
"import sys",
f"from ._typing import {ROW_COL_KWDS}, {PADDING_KWDS}",
"\n\n",
import_type_checking("from ._typing import * # noqa: F403"),
import_type_checking(
"from collections.abc import Sequence",
"from ._typing import * # noqa: F403",
),
import_typing_extensions((3, 14), "TypedDict"),
"\n\n",
*generate_config_typed_dicts(schemafile),
]
Expand Down
7 changes: 6 additions & 1 deletion tools/schemapi/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,12 @@ def unwrap_literal(tp: str, /) -> str:
def import_type_checking(*imports: str) -> str:
"""Write an `if TYPE_CHECKING` block."""
imps = "\n".join(f" {s}" for s in imports)
return f"\nif TYPE_CHECKING:\n # ruff: noqa: F405\n{imps}\n"
return (
f"from typing import TYPE_CHECKING\n\n"
f"if TYPE_CHECKING:\n"
f" # ruff: noqa: F405\n"
f"{imps}\n"
)


def import_typing_extensions(
Expand Down
42 changes: 21 additions & 21 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 6c724e9

Please sign in to comment.