From f1b4e2c84da2fba220022c8a285cc8280f824ed8 Mon Sep 17 00:00:00 2001 From: Stefan Binder Date: Wed, 8 May 2024 19:09:22 +0200 Subject: [PATCH] fix: solve mypy errors which are due to same object names in core.py and channels.py (#3414) * fix: solve mypy errors for altair.Color by being explicit in what is exported from core.py so that altair.Color is correctly identified as coming from channels.py * Also exclude core.Text * Fix ruff --- altair/vegalite/v5/schema/__init__.py | 2 +- altair/vegalite/v5/schema/core.py | 419 ++++++++++++++++++++++++++ tools/generate_schema_wrapper.py | 16 +- 3 files changed, 435 insertions(+), 2 deletions(-) diff --git a/altair/vegalite/v5/schema/__init__.py b/altair/vegalite/v5/schema/__init__.py index 291742db9..f73444769 100644 --- a/altair/vegalite/v5/schema/__init__.py +++ b/altair/vegalite/v5/schema/__init__.py @@ -1,7 +1,7 @@ # ruff: noqa from .core import * -from .channels import * # type: ignore[assignment] +from .channels import * SCHEMA_VERSION = "v5.17.0" diff --git a/altair/vegalite/v5/schema/core.py b/altair/vegalite/v5/schema/core.py index 57f6cdd12..05909a3b2 100644 --- a/altair/vegalite/v5/schema/core.py +++ b/altair/vegalite/v5/schema/core.py @@ -1,6 +1,425 @@ # The contents of this file are automatically written by # tools/generate_schema_wrapper.py. Do not modify directly. +__all__ = [ + "Aggregate", + "AggregateOp", + "AggregateTransform", + "AggregatedFieldDef", + "Align", + "AllSortString", + "AnyMark", + "AnyMarkConfig", + "AreaConfig", + "ArgmaxDef", + "ArgminDef", + "AutoSizeParams", + "AutosizeType", + "Axis", + "AxisConfig", + "AxisOrient", + "AxisResolveMap", + "BBox", + "BarConfig", + "BaseTitleNoValueRefs", + "Baseline", + "BinExtent", + "BinParams", + "BinTransform", + "BindCheckbox", + "BindDirect", + "BindInput", + "BindRadioSelect", + "BindRange", + "Binding", + "BinnedTimeUnit", + "Blend", + "BoxPlot", + "BoxPlotConfig", + "BoxPlotDef", + "BrushConfig", + "CalculateTransform", + "Categorical", + "ColorDef", + "ColorName", + "ColorScheme", + "Encoding", + "CompositeMark", + "CompositeMarkDef", + "CompositionConfig", + "ConditionalMarkPropFieldOrDatumDef", + "ConditionalMarkPropFieldOrDatumDefTypeForShape", + "ConditionalStringFieldDef", + "ConditionalValueDefGradientstringnullExprRef", + "ConditionalValueDefTextExprRef", + "ConditionalValueDefnumberArrayExprRef", + "ConditionalValueDefnumberExprRef", + "ConditionalValueDefstringExprRef", + "ConditionalValueDefstringnullExprRef", + "ConditionalValueDefnumber", + "ConditionalAxisColor", + "ConditionalAxisLabelAlign", + "ConditionalAxisLabelBaseline", + "ConditionalAxisLabelFontStyle", + "ConditionalAxisLabelFontWeight", + "ConditionalAxisNumber", + "ConditionalAxisNumberArray", + "ConditionalAxisPropertyAlignnull", + "ConditionalAxisPropertyColornull", + "ConditionalAxisPropertyFontStylenull", + "ConditionalAxisPropertyFontWeightnull", + "ConditionalAxisPropertyTextBaselinenull", + "ConditionalAxisPropertynumberArraynull", + "ConditionalAxisPropertynumbernull", + "ConditionalAxisPropertystringnull", + "ConditionalAxisString", + "ConditionalParameterMarkPropFieldOrDatumDef", + "ConditionalParameterMarkPropFieldOrDatumDefTypeForShape", + "ConditionalParameterStringFieldDef", + "ConditionalParameterValueDefGradientstringnullExprRef", + "ConditionalParameterValueDefTextExprRef", + "ConditionalParameterValueDefnumberArrayExprRef", + "ConditionalParameterValueDefnumberExprRef", + "ConditionalParameterValueDefstringExprRef", + "ConditionalParameterValueDefstringnullExprRef", + "ConditionalParameterValueDefnumber", + "ConditionalPredicateValueDefAlignnullExprRef", + "ConditionalPredicateValueDefColornullExprRef", + "ConditionalPredicateValueDefFontStylenullExprRef", + "ConditionalPredicateValueDefFontWeightnullExprRef", + "ConditionalPredicateValueDefTextBaselinenullExprRef", + "ConditionalPredicateValueDefnumberArraynullExprRef", + "ConditionalPredicateValueDefnumbernullExprRef", + "ConditionalPredicateValueDefstringnullExprRef", + "ConditionalPredicateMarkPropFieldOrDatumDef", + "ConditionalPredicateMarkPropFieldOrDatumDefTypeForShape", + "ConditionalPredicateStringFieldDef", + "ConditionalPredicateValueDefGradientstringnullExprRef", + "ConditionalPredicateValueDefTextExprRef", + "ConditionalPredicateValueDefnumberArrayExprRef", + "ConditionalPredicateValueDefnumberExprRef", + "ConditionalPredicateValueDefstringExprRef", + "ConditionalPredicateValueDefnumber", + "Config", + "CsvDataFormat", + "Cursor", + "Cyclical", + "Data", + "DataFormat", + "DataSource", + "Datasets", + "DateTime", + "DatumDef", + "Day", + "DensityTransform", + "DerivedStream", + "DictInlineDataset", + "DictSelectionInit", + "DictSelectionInitInterval", + "Dict", + "Diverging", + "DomainUnionWith", + "DsvDataFormat", + "Element", + "EncodingSortField", + "ErrorBand", + "ErrorBandConfig", + "ErrorBandDef", + "ErrorBar", + "ErrorBarConfig", + "ErrorBarDef", + "ErrorBarExtent", + "EventStream", + "EventType", + "Expr", + "ExprRef", + "ExtentTransform", + "FacetEncodingFieldDef", + "FacetFieldDef", + "FacetMapping", + "FacetedEncoding", + "FacetedUnitSpec", + "Feature", + "FeatureGeometryGeoJsonProperties", + "FeatureCollection", + "Field", + "FieldDefWithoutScale", + "FieldEqualPredicate", + "FieldGTEPredicate", + "FieldGTPredicate", + "FieldLTEPredicate", + "FieldLTPredicate", + "FieldName", + "FieldOneOfPredicate", + "FieldOrDatumDefWithConditionDatumDefGradientstringnull", + "FieldOrDatumDefWithConditionDatumDefstringnull", + "FieldOrDatumDefWithConditionDatumDefnumber", + "FieldOrDatumDefWithConditionDatumDefnumberArray", + "FieldOrDatumDefWithConditionMarkPropFieldDefGradientstringnull", + "FieldOrDatumDefWithConditionMarkPropFieldDefnumber", + "FieldOrDatumDefWithConditionMarkPropFieldDefnumberArray", + "FieldOrDatumDefWithConditionMarkPropFieldDefTypeForShapestringnull", + "FieldOrDatumDefWithConditionStringDatumDefText", + "FieldOrDatumDefWithConditionStringFieldDefText", + "FieldOrDatumDefWithConditionStringFieldDefstring", + "FieldRange", + "FieldRangePredicate", + "FieldValidPredicate", + "FilterTransform", + "Fit", + "FlattenTransform", + "FoldTransform", + "FontStyle", + "FontWeight", + "FormatConfig", + "Generator", + "ConcatSpecGenericSpec", + "FacetSpec", + "HConcatSpecGenericSpec", + "Spec", + "GenericUnitSpecEncodingAnyMark", + "VConcatSpecGenericSpec", + "GeoJsonFeature", + "GeoJsonFeatureCollection", + "GeoJsonProperties", + "Geometry", + "GeometryCollection", + "Gradient", + "GradientStop", + "GraticuleGenerator", + "GraticuleParams", + "Header", + "HeaderConfig", + "HexColor", + "ImputeMethod", + "ImputeParams", + "ImputeSequence", + "ImputeTransform", + "InlineData", + "InlineDataset", + "Interpolate", + "IntervalSelectionConfig", + "IntervalSelectionConfigWithoutType", + "JoinAggregateFieldDef", + "JoinAggregateTransform", + "JsonDataFormat", + "LabelOverlap", + "LatLongDef", + "LatLongFieldDef", + "LayerRepeatMapping", + "LayerRepeatSpec", + "LayerSpec", + "LayoutAlign", + "Legend", + "LegendBinding", + "LegendConfig", + "LegendOrient", + "LegendResolveMap", + "LegendStreamBinding", + "LineConfig", + "LineString", + "LinearGradient", + "LocalMultiTimeUnit", + "LocalSingleTimeUnit", + "Locale", + "LoessTransform", + "LogicalAndPredicate", + "PredicateComposition", + "LogicalNotPredicate", + "LogicalOrPredicate", + "LookupData", + "LookupSelection", + "LookupTransform", + "Mark", + "MarkConfig", + "MarkDef", + "MarkPropDefGradientstringnull", + "MarkPropDefstringnullTypeForShape", + "MarkPropDefnumber", + "MarkPropDefnumberArray", + "MarkType", + "MergedStream", + "Month", + "MultiLineString", + "MultiPoint", + "MultiPolygon", + "MultiTimeUnit", + "NamedData", + "NonArgAggregateOp", + "NonLayerRepeatSpec", + "NonNormalizedSpec", + "NumberLocale", + "NumericArrayMarkPropDef", + "NumericMarkPropDef", + "OffsetDef", + "OrderFieldDef", + "OrderOnlyDef", + "OrderValueDef", + "Orient", + "Orientation", + "OverlayMarkDef", + "Padding", + "ParameterExtent", + "ParameterName", + "ParameterPredicate", + "Parse", + "ParseValue", + "PivotTransform", + "Point", + "PointSelectionConfig", + "PointSelectionConfigWithoutType", + "PolarDef", + "Polygon", + "Position", + "Position2Def", + "PositionDatumDef", + "PositionDatumDefBase", + "PositionDef", + "PositionFieldDef", + "PositionFieldDefBase", + "PositionValueDef", + "Predicate", + "PrimitiveValue", + "Projection", + "ProjectionConfig", + "ProjectionType", + "QuantileTransform", + "RadialGradient", + "RangeConfig", + "RangeEnum", + "RangeRaw", + "RangeRawArray", + "RangeScheme", + "RectConfig", + "RegressionTransform", + "RelativeBandSize", + "RepeatMapping", + "RepeatRef", + "RepeatSpec", + "Resolve", + "ResolveMode", + "RowColLayoutAlign", + "RowColboolean", + "RowColnumber", + "RowColumnEncodingFieldDef", + "SampleTransform", + "Scale", + "ScaleBinParams", + "ScaleBins", + "ScaleConfig", + "ScaleDatumDef", + "ScaleFieldDef", + "ScaleInterpolateEnum", + "ScaleInterpolateParams", + "ScaleResolveMap", + "ScaleType", + "SchemeParams", + "SecondaryFieldDef", + "SelectionConfig", + "SelectionInit", + "SelectionInitInterval", + "SelectionInitIntervalMapping", + "SelectionInitMapping", + "SelectionParameter", + "SelectionResolution", + "SelectionType", + "SequenceGenerator", + "SequenceParams", + "SequentialMultiHue", + "SequentialSingleHue", + "ShapeDef", + "SharedEncoding", + "SingleDefUnitChannel", + "SingleTimeUnit", + "Sort", + "SortArray", + "SortByChannel", + "SortByChannelDesc", + "SortByEncoding", + "SortField", + "SortOrder", + "SphereGenerator", + "StackOffset", + "StackTransform", + "StandardType", + "Step", + "StepFor", + "Stream", + "StringFieldDef", + "StringFieldDefWithCondition", + "StringValueDefWithCondition", + "StrokeCap", + "StrokeJoin", + "StyleConfigIndex", + "SymbolShape", + "TextBaseline", + "TextDef", + "TextDirection", + "TickConfig", + "TickCount", + "TimeInterval", + "TimeIntervalStep", + "TimeLocale", + "TimeUnit", + "TimeUnitParams", + "TimeUnitTransform", + "TimeUnitTransformParams", + "TitleAnchor", + "TitleConfig", + "TitleFrame", + "TitleOrient", + "TitleParams", + "TooltipContent", + "TopLevelConcatSpec", + "TopLevelHConcatSpec", + "TopLevelVConcatSpec", + "TopLevelLayerSpec", + "TopLevelRepeatSpec", + "TopLevelFacetSpec", + "TopLevelParameter", + "TopLevelSelectionParameter", + "TopLevelSpec", + "TopLevelUnitSpec", + "TopoDataFormat", + "Transform", + "Type", + "TypeForShape", + "TypedFieldDef", + "URI", + "UnitSpec", + "UnitSpecWithFrame", + "UrlData", + "UtcMultiTimeUnit", + "UtcSingleTimeUnit", + "ValueDefnumberwidthheightExprRef", + "ValueDefnumber", + "ValueDefWithConditionMarkPropFieldOrDatumDefGradientstringnull", + "ValueDefWithConditionMarkPropFieldOrDatumDefstringnull", + "ValueDefWithConditionMarkPropFieldOrDatumDefnumber", + "ValueDefWithConditionMarkPropFieldOrDatumDefnumberArray", + "ValueDefWithConditionMarkPropFieldOrDatumDefTypeForShapestringnull", + "ValueDefWithConditionStringFieldDefText", + "VariableParameter", + "Vector10string", + "Vector12string", + "Vector2DateTime", + "Vector2Vector2number", + "Vector2boolean", + "Vector2number", + "Vector2string", + "Vector3number", + "Vector7string", + "ViewBackground", + "ViewConfig", + "WindowEventType", + "WindowFieldDef", + "WindowOnlyOp", + "WindowTransform", + "Root", + "VegaLiteSchema", + "SchemaBase", + "load_schema", +] from typing import Any, Literal, Union, Protocol, Sequence, List from typing import Dict as TypingDict from typing import Generator as TypingGenerator diff --git a/tools/generate_schema_wrapper.py b/tools/generate_schema_wrapper.py index eae1eae69..40958c202 100644 --- a/tools/generate_schema_wrapper.py +++ b/tools/generate_schema_wrapper.py @@ -503,8 +503,22 @@ def generate_vegalite_schema_wrapper(schema_file: str) -> str: assert isinstance(child.basename, list) child.basename.append(name) + # Specify __all__ explicitly so that we can exclude the ones from the list + # of exported classes which are also defined in the channels module which takes + # precedent in the generated __init__.py file one level up where core.py + # and channels.py are imported. Importing both confuses type checkers. + all_ = [ + c for c in definitions if not c.startswith("_") and c not in ("Color", "Text") + ] + [ + "Root", + "VegaLiteSchema", + "SchemaBase", + "load_schema", + ] + contents = [ HEADER, + "__all__ = {}".format(all_), "from typing import Any, Literal, Union, Protocol, Sequence, List", "from typing import Dict as TypingDict", "from typing import Generator as TypingGenerator" "", @@ -733,7 +747,7 @@ def vegalite_main(skip_download: bool = False) -> None: print("Writing {}".format(outfile)) content = [ "# ruff: noqa\n", - "from .core import *\nfrom .channels import * # type: ignore[assignment]\n", + "from .core import *\nfrom .channels import *\n", f"SCHEMA_VERSION = '{version}'\n", "SCHEMA_URL = {!r}\n" "".format(schema_url(version)), ]