hunk.code_window:         show_spinner: bool | str,
           persist: CachePersistType | bool,
           experimental_allow_widgets: bool,
       ):
           """Decorator to cache functions that return data (e.g. dataframe transforms,
           database queries, ML inference).
           Cached objects are stored in "pickled" form, which means that the return
           value of a cached function must be pickleable. Each caller of the cached
  
hunk.labels: keep keep keep keep replace replace keep keep keep
hunk.after_edit:         """Decorator to cache functions that return data (e.g. dataframe transforms, database queries, ML inference).
  
hunk.file_path: lib/streamlit/runtime/caching/cache_data_api.py
hunk.type: replace
file: /**
   * Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022)
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  // Serialized Table data for testing purposes
  export const table = {
    data: {
      cols: [
        {
          int64s: { data: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90] },
          type: "int64s",
        },
        {
          int64s: { data: [1, 11, 21, 31, 41, 51, 61, 71, 81, 91] },
          type: "int64s",
        },
        {
          int64s: { data: [2, 12, 22, 32, 42, 52, 62, 72, 82, 92] },
          type: "int64s",
        },
        {
          int64s: { data: [3, 13, 23, 33, 43, 53, 63, 73, 83, 93] },
          type: "int64s",
        },
        {
          int64s: { data: [4, 14, 24, 34, 44, 54, 64, 74, 84, 94] },
          type: "int64s",
        },
        {
          int64s: { data: [5, 15, 25, 35, 45, 55, 65, 75, 85, 95] },
          type: "int64s",
        },
        {
          int64s: { data: [6, 16, 26, 36, 46, 56, 66, 76, 86, 96] },
          type: "int64s",
        },
        {
          int64s: { data: [7, 17, 27, 37, 47, 57, 67, 77, 87, 97] },
          type: "int64s",
        },
        {
          int64s: { data: [8, 18, 28, 38, 48, 58, 68, 78, 88, 98] },
          type: "int64s",
        },
        {
          int64s: { data: [9, 19, 29, 39, 49, 59, 69, 79, 89, 99] },
          type: "int64s",
        },
      ],
    },
    index: { rangeIndex: { start: 0, stop: 10 }, type: "rangeIndex" },
    columns: { rangeIndex: { start: 0, stop: 10 }, type: "rangeIndex" },
    style: {
      cols: [
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
        {
          styles: [
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
            { css: [], displayValue: "", hasDisplayValue: false },
            {
              css: [],
              displayValue: "",
              hasDisplayValue: false,
            },
          ],
        },
      ],
    },
  }
  
  export const emptyTable = {
    data: null,
    index: { rangeIndex: { start: 0, stop: 1 }, type: "rangeIndex" },
    columns: { rangeIndex: { start: 0, stop: 3 }, type: "rangeIndex" },
    style: {
      cols: [
        {
          styles: [{ css: [], displayValue: "", hasDisplayValue: false }],
        },
        {
          styles: [{ css: [], displayValue: "", hasDisplayValue: false }],
        },
        {
          styles: [{ css: [], displayValue: "", hasDisplayValue: false }],
        },
      ],
    },
  }
  