first commit

This commit is contained in:
Ayxan
2022-05-23 00:16:32 +04:00
commit d660f2a4ca
24786 changed files with 4428337 additions and 0 deletions

View File

@ -0,0 +1,2 @@
# flake8: noqa
from .v5 import *

View File

@ -0,0 +1,47 @@
import pandas as pd
from toolz import curried
from ..utils.core import sanitize_dataframe
from ..utils.data import (
MaxRowsError,
curry,
pipe,
sample,
to_csv,
to_json,
to_values,
check_data_type,
)
@curried.curry
def limit_rows(data, max_rows=5000):
"""Raise MaxRowsError if the data model has more than max_rows."""
if not isinstance(data, (list, pd.DataFrame)):
raise TypeError("Expected dict or DataFrame, got: {}".format(type(data)))
if len(data) > max_rows:
raise MaxRowsError(
"The number of rows in your dataset is greater than the max of {}".format(
max_rows
)
)
return data
@curried.curry
def default_data_transformer(data):
return curried.pipe(data, limit_rows, to_values)
__all__ = (
"MaxRowsError",
"curry",
"default_data_transformer",
"limit_rows",
"pipe",
"sanitize_dataframe",
"sample",
"to_csv",
"to_json",
"to_values",
"check_data_type",
)

View File

@ -0,0 +1,12 @@
from ..utils.display import Displayable, default_renderer_base, json_renderer_base
from ..utils.display import MimeBundleType, RendererType, HTMLRenderer
__all__ = (
"Displayable",
"default_renderer_base",
"json_renderer_base",
"MimeBundleType",
"RendererType",
"HTMLRenderer",
)

View File

@ -0,0 +1,5 @@
from altair.vega import SCHEMA_VERSION, SCHEMA_URL
def test_schema_version():
assert SCHEMA_VERSION in SCHEMA_URL

View File

@ -0,0 +1,14 @@
# flake8: noqa
from .display import vega, Vega, renderers
from .schema import *
from .data import (
pipe,
curry,
limit_rows,
sample,
to_json,
to_csv,
to_values,
default_data_transformer,
)

View File

@ -0,0 +1,29 @@
from ..data import (
MaxRowsError,
curry,
default_data_transformer,
limit_rows,
pipe,
sample,
to_csv,
to_json,
to_values,
)
# ==============================================================================
# Vega 5 data transformers
# ==============================================================================
__all__ = (
"MaxRowsError",
"curry",
"default_data_transformer",
"limit_rows",
"pipe",
"sample",
"to_csv",
"to_json",
"to_values",
)

View File

@ -0,0 +1,110 @@
import os
from ...utils import PluginRegistry
from ..display import Displayable
from ..display import default_renderer_base
from ..display import json_renderer_base
from ..display import RendererType
from ..display import HTMLRenderer
from .schema import SCHEMA_VERSION
VEGA_VERSION = SCHEMA_VERSION.lstrip("v")
VEGAEMBED_VERSION = "3"
# ==============================================================================
# Vega 5 renderer logic
# ==============================================================================
# The MIME type for Vega 5 releases.
VEGA_MIME_TYPE = "application/vnd.vega.v5+json" # type: str
# The entry point group that can be used by other packages to declare other
# renderers that will be auto-detected. Explicit registration is also
# allowed by the PluginRegistery API.
ENTRY_POINT_GROUP = "altair.vega.v5.renderer" # type: str
# The display message when rendering fails
DEFAULT_DISPLAY = """\
<Vega 5 object>
If you see this message, it means the renderer has not been properly enabled
for the frontend that you are using. For more information, see
https://altair-viz.github.io/user_guide/troubleshooting.html
"""
renderers = PluginRegistry[RendererType](entry_point_group=ENTRY_POINT_GROUP)
here = os.path.dirname(os.path.realpath(__file__))
def default_renderer(spec):
return default_renderer_base(spec, VEGA_MIME_TYPE, DEFAULT_DISPLAY)
def json_renderer(spec):
return json_renderer_base(spec, DEFAULT_DISPLAY)
colab_renderer = HTMLRenderer(
mode="vega",
fullhtml=True,
requirejs=False,
output_div="altair-viz",
vega_version=VEGA_VERSION,
vegaembed_version=VEGAEMBED_VERSION,
)
kaggle_renderer = HTMLRenderer(
mode="vega",
fullhtml=False,
requirejs=True,
vega_version=VEGA_VERSION,
vegaembed_version=VEGAEMBED_VERSION,
)
html_renderer = HTMLRenderer(
mode="vega",
template="universal",
vega_version=VEGA_VERSION,
vegaembed_version=VEGAEMBED_VERSION,
)
renderers.register("default", default_renderer)
renderers.register("html", html_renderer)
renderers.register("jupyterlab", default_renderer)
renderers.register("nteract", default_renderer)
renderers.register("colab", colab_renderer)
renderers.register("kaggle", kaggle_renderer)
renderers.register("json", json_renderer)
renderers.enable("default")
class Vega(Displayable):
"""An IPython/Jupyter display class for rendering Vega 5."""
renderers = renderers
schema_path = (__name__, "schema/vega-schema.json")
def vega(spec, validate=True):
"""Render and optionally validate a Vega 5 spec.
This will use the currently enabled renderer to render the spec.
Parameters
==========
spec: dict
A fully compliant Vega 5 spec, with the data portion fully processed.
validate: bool
Should the spec be validated against the Vega 5 schema?
"""
from IPython.display import display
display(Vega(spec, validate=validate))

View File

@ -0,0 +1,5 @@
# flake8: noqa
from .core import *
SCHEMA_VERSION = 'v5.10.0'
SCHEMA_URL = 'https://vega.github.io/schema/vega/v5.10.0.json'

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff