Miscellaneous types

types.MISSING_TYPE

types.MISSING_TYPE()

types.MISSING

types.MISSING

types.FileInfo

types.FileInfo()

Class for information about a file upload.

See Also

Examples

#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400

## file: app.py
import pandas as pd

from shiny import App, Inputs, Outputs, Session, reactive, render, ui
from shiny.types import FileInfo

app_ui = ui.page_fluid(
    ui.input_file("file1", "Choose CSV File", accept=[".csv"], multiple=False),
    ui.input_checkbox_group(
        "stats",
        "Summary Stats",
        choices=["Row Count", "Column Count", "Column Names"],
        selected=["Row Count", "Column Count", "Column Names"],
    ),
    ui.output_table("summary"),
)


def server(input: Inputs, output: Outputs, session: Session):
    @reactive.calc
    def parsed_file():
        file: list[FileInfo] | None = input.file1()
        if file is None:
            return pd.DataFrame()
        return pd.read_csv(  # pyright: ignore[reportUnknownMemberType]
            file[0]["datapath"]
        )

    @render.table
    def summary():
        df = parsed_file()

        if df.empty:
            return pd.DataFrame()

        # Get the row count, column count, and column names of the DataFrame
        row_count = df.shape[0]
        column_count = df.shape[1]
        names = df.columns.tolist()
        column_names = ", ".join(str(name) for name in names)

        # Create a new DataFrame to display the information
        info_df = pd.DataFrame(
            {
                "Row Count": [row_count],
                "Column Count": [column_count],
                "Column Names": [column_names],
            }
        )

        # input.stats() is a list of strings; subset the columns based on the selected
        # checkboxes
        return info_df.loc[:, input.stats()]


app = App(app_ui, server)

Attributes

Name Description
datapath The path to the file on the server.
name The name of the file being uploaded.
size The size of the file in bytes.
type The MIME type of the file.

types.ImgData

types.ImgData()

Return type for image.

See Also

Examples

#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400

## file: app.py
from shiny import App, Inputs, Outputs, Session, render, ui
from shiny.types import ImgData

app_ui = ui.page_fluid(ui.output_image("image"))


def server(input: Inputs, output: Outputs, session: Session):
    @render.image
    def image():
        from pathlib import Path

        dir = Path(__file__).resolve().parent
        img: ImgData = {"src": str(dir / "posit-logo.png"), "width": "100px"}
        return img


app = App(app_ui, server)


## file: posit-logo.png
## type: binary
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

Attributes

Name Description
alt The alt attribute of the <img> tag.
coordmap TODO
height The height attribute of the <img> tag.
src The src attribute of the <img> tag.
style The style attribute of the <img> tag.
width The width attribute of the <img> tag.

types.NavSetArg

types.NavSetArg()

A value suitable for passing to a navigation container (e.g., navset_tab).

Methods

Name Description
get_value Get the value of this navigation item (if any).
resolve Resolve information provided by the navigation container.

get_value

types.NavSetArg.get_value()

Get the value of this navigation item (if any).

This value is only used to determine what navigation item should be shown by default when none is specified (i.e., the first navigation item that returns a value is used to determine the container's selected value).

resolve

types.NavSetArg.resolve(selected, context)

Resolve information provided by the navigation container.

Parameters

selected: Optional[str]

The value of the navigation item to be shown on page load.

context: dict[str, Any]

Additional context supplied by the navigation container.

ui.Sidebar

ui.Sidebar(self, *, children, attrs, position='left', open=None, width=250, id=None, title=None, fg=None, bg=None, class_=None, max_height_mobile=None, gap=None, padding=None)

A sidebar object

Class returned from sidebar. Please do not use this class directly. Instead, supply the sidebar object to layout_sidebar.

Attributes

Name Type Description
children A tuple of Tag objects that are the contents of the sidebar.
attrs A dictionary of attributes that are supplied to the sidebar contents Tag container.
width A valid CSS unit used for the width of the sidebar.
position Where the sidebar should appear relative to the main content, one of "left" or "right".
id ResolvedId | None The resolved ID. Required if wanting to reactively read (or update) the collapsible state in a Shiny app.
title A character title to be used as the sidebar title, which will be wrapped in a <div> element with class sidebar-title. You can also provide a custom Tag for the title element, in which case you’ll likely want to give this element class = "sidebar-title".
color A dictionary with items "bg" for background or "fg" for foreground color.
class_ CSS classes for the sidebar container element, in addition to the fixed .sidebar class.
max_height_mobile Optional[str] A CSS length unit (passed through as_css_unit) defining the maximum height of the horizontal sidebar when viewed on mobile devices. Only applies to always-open sidebars on mobile, where by default the sidebar container is placed below the main content container on mobile devices.
gap A CSS length unit defining the vertical gap (i.e., spacing) between elements provided to *args.
padding Padding within the sidebar itself. This can be a numeric vector (which will be interpreted as pixels) or a character vector with valid CSS lengths. padding may be one to four values. * If a single value, then that value will be used for all four sides. * If two, then the first value will be used for the top and bottom, while the second value will be used for left and right. * If three values, then the first will be used for top, the second will be left and right, and the third will be bottom. * If four, then the values will be interpreted as top, right, bottom, and left respectively.

Parameters

children: list[TagChild]

A tuple of Tag objects that are the contents of the sidebar.

attrs: TagAttrs

A dictionary of attributes that are supplied to the sidebar contents Tag container.

width: CssUnit = 250

A valid CSS unit used for the width of the sidebar.

position: Literal[‘left’, ‘right’] = ‘left’

Where the sidebar should appear relative to the main content, one of "left" or "right".

open: Optional[SidebarOpenSpec | SidebarOpenValue | Literal[‘desktop’]] = None

The initial state of the sidebar. If a string, the possible values are:

  • "open": the sidebar starts open
  • "closed": the sidebar starts closed
  • "always": the sidebar is always open and cannot be closed

Alternatively, you can provide a dictionary with keys "desktop" and "mobile" to set different initial states for desktop and mobile. For example, when {"desktop": "open", "mobile": "closed"} the sidebar is initialized in the open state on desktop screens or in the closed state on mobile screens. You can also choose to place an always-open sidebar above the main content on mobile devices by setting open={"mobile": "always-above"}.

id: Optional[str] = None

A character string. Required if wanting to reactively read (or update) the collapsible state in a Shiny app.

title: TagChild | str = None

A character title to be used as the sidebar title, which will be wrapped in a <div> element with class sidebar-title. You can also provide a custom Tag for the title element, in which case you’ll likely want to give this element class = "sidebar-title".

bg: Optional[str] = None

A background or foreground color.

class_: Optional[str] = None

CSS classes for the sidebar container element, in addition to the fixed .sidebar class.

max_height_mobile: Optional[str | float] = None

A CSS length unit (passed through as_css_unit) defining the maximum height of the horizontal sidebar when viewed on mobile devices. Only applies to always-open sidebars on mobile, where by default the sidebar container is placed below the main content container on mobile devices.

gap: Optional[CssUnit] = None

A CSS length unit defining the vertical gap (i.e., spacing) between elements provided to *args.

padding: Optional[CssUnit | list[CssUnit]] = None

Padding within the sidebar itself. This can be a numeric vector (which will be interpreted as pixels) or a character vector with valid CSS lengths. padding may be one to four values.

  • If a single value, then that value will be used for all four sides.
  • If two, then the first value will be used for the top and bottom, while the second value will be used for left and right.
  • If three values, then the first will be used for top, the second will be left and right, and the third will be bottom.
  • If four, then the values will be interpreted as top, right, bottom, and left respectively.

Methods

Name Description
open Get or set the initial state of the sidebar. Returns a dataclass with desktop and mobile attributes.

open

ui.Sidebar.open(value=MISSING)

Get or set the initial state of the sidebar. Returns a dataclass with desktop and mobile attributes.

ui.CardItem

ui.CardItem(self, item)

A wrapper around a Tag object that represents the content of a card item (e.g., card_header or card_footer).

This class is used to allow for consecutive non-card items to be bundled into a single group within card.

Parameters

item: TagChild

A Tag object that represents the content of a card item (e.g., card_header or card_footer).

See Also

  • card for creating a card component.
  • card_header for creating a header within a card.
  • card_footer for creating a footer within a card.

Methods

Name Description
resolve Resolves an object with the CardItem class by returning the item provided at initialization.
tagify Tagify the item

resolve

ui.CardItem.resolve()

Resolves an object with the CardItem class by returning the item provided at initialization.

Returns

Type Description
TagChild The item provided at initialization.

tagify

ui.CardItem.tagify()

Tagify the item

Returns

Type Description
TagList A tagified TagList object.

ui.AccordionPanel

ui.AccordionPanel(self, *args, data_value, icon, title, id, **kwargs)

The internal class used to represent an accordion panel.

This class is used to represent an accordion panel. It is not intended to be instantiated directly. Instead, use accordion_panel.

Parameters

*args: TagChild | TagAttrs = ()

Contents to appear in the accordion panel body, or tag attributes that are supplied to the returned Tag object.

data_value: str

A character string that uniquely identifies this panel.

icon: TagChild | None

A Tag which is positioned just before the title.

title: TagChild | None

A title to appear in the accordion_panel’s header.

id: str | None

A unique id for this panel.

**kwargs: TagAttrValue = {}

Tag attributes to the accordion-body div Tag.

See Also

Methods

Name Description
resolve Resolve the AccordionPanel into a Tag.
tagify Resolve the AccordionPanel into a Tag.

resolve

ui.AccordionPanel.resolve()

Resolve the AccordionPanel into a Tag.

Returns

Type Description
Tag A Tag object representing the AccordionPanel.

tagify

ui.AccordionPanel.tagify()

Resolve the AccordionPanel into a Tag.

Returns

Type Description
Tag A tagified resolve()d value.

reactive.Context

reactive.Context(self)

A reactive context

Methods

Name Description
add_pending_flush Tell the reactive environment that this context should be flushed the next time flushReact() called.
execute_flush_callbacks Execute all flush callbacks
invalidate Invalidate this context. It will immediately call the callbacks that have been registered with onInvalidate().
on_flush Register a function to be called when this context is flushed.
on_invalidate Register a function to be called when this context is invalidated

add_pending_flush

reactive.Context.add_pending_flush(priority)

Tell the reactive environment that this context should be flushed the next time flushReact() called.

execute_flush_callbacks

reactive.Context.execute_flush_callbacks()

Execute all flush callbacks

invalidate

reactive.Context.invalidate()

Invalidate this context. It will immediately call the callbacks that have been registered with onInvalidate().

on_flush

reactive.Context.on_flush(func)

Register a function to be called when this context is flushed.

on_invalidate

reactive.Context.on_invalidate(func)

Register a function to be called when this context is invalidated

ui.css.CssUnit

ui.css.CssUnit

Possible python types that can be converted into a CSS unit. Numeric values will be converted to pixels. Values equal to 0 will be converted to "0". Strings will be passed through as-is.

ui._input_slider.SliderValueArg

ui._input_slider.SliderValueArg

Type variable.

Usage::

T = TypeVar('T') # Can be anything A = TypeVar('A', str, bytes) # Must be str or bytes

Type variables exist primarily for the benefit of static type checkers. They serve as the parameters for generic types as well as for generic function definitions. See class Generic for more information on generic types. Generic functions work as follows:

def repeat(x: T, n: int) -> List[T]: '''Return a list containing n references to x.''' return [x]*n

def longest(x: A, y: A) -> A: '''Return the longest of two strings.''' return x if len(x) >= len(y) else y

The latter example's signature is essentially the overloading of (str, str) -> str and (bytes, bytes) -> bytes. Also note that if the arguments are instances of some subclass of str, the return type is still plain str.

At runtime, isinstance(x, T) and issubclass(C, T) will raise TypeError.

Type variables defined with covariant=True or contravariant=True can be used to declare covariant or contravariant generic types. See PEP 484 for more details. By default generic types are invariant in all type variables.

Type variables can be introspected. e.g.:

T.__name__ == 'T' T.__constraints__ == () T.__covariant__ == False T.__contravariant__ = False A.__constraints__ == (str, bytes)

Note that only type variables defined in global scope can be pickled.

ui._input_slider.SliderStepArg

ui._input_slider.SliderStepArg