freddyaboulton's picture
Upload folder using huggingface_hub
3b99d6e
from __future__ import annotations
from typing import Any, Callable
from gradio.components.base import Component
from folium import Map
from gradio.data_classes import FileData
from tempfile import NamedTemporaryFile
class Folium(Component):
data_model = FileData
def __init__(self, value: Any = None,
*,
height: int | None = None,
label: str | None = None,
container: bool = True,
scale: int | None = None,
min_width: int | None = None,
visible: bool = True,
elem_id: str | None = None,
elem_classes: list[str] | str | None = None,
render: bool = True,
load_fn: Callable[..., Any] | None = None,
every: float | None = None):
super().__init__(value, label=label, info=None, show_label=True,
container=container, scale=scale, min_width=min_width,
visible=visible, elem_id=elem_id, elem_classes=elem_classes,
render=render,
load_fn=load_fn, every=every)
self.height = height
def preprocess(self, x):
return x
def postprocess(self, x: Map):
if not x:
return None
with NamedTemporaryFile(suffix=".html", delete=False) as tmp:
x.save(tmp.name)
return FileData(path=tmp.name)
def example_inputs(self):
return {"info": "Do not use as input"}
def api_info(self):
return {"type": {}, "description": "any valid json"}