itables 2.4.1__tar.gz → 2.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {itables-2.4.1 → itables-2.4.2}/PKG-INFO +4 -1
- {itables-2.4.1 → itables-2.4.2}/README.md +1 -0
- {itables-2.4.1 → itables-2.4.2}/itables/datatables_format.py +19 -11
- {itables-2.4.1 → itables-2.4.2}/itables/downsample.py +8 -4
- {itables-2.4.1 → itables-2.4.2}/itables/javascript.py +27 -14
- {itables-2.4.1 → itables-2.4.2}/itables/options.py +2 -1
- {itables-2.4.1 → itables-2.4.2}/itables/sample_dfs.py +23 -16
- {itables-2.4.1 → itables-2.4.2}/itables/shiny.py +1 -1
- {itables-2.4.1 → itables-2.4.2}/itables/streamlit.py +2 -1
- {itables-2.4.1 → itables-2.4.2}/itables/typing.py +2 -1
- {itables-2.4.1 → itables-2.4.2}/itables/utils.py +2 -2
- {itables-2.4.1 → itables-2.4.2}/itables/version.py +1 -1
- {itables-2.4.1 → itables-2.4.2}/itables/widget/__init__.py +3 -3
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/__init__.py +2 -2
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/itables_for_dash.min.js +1 -1
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/itables_for_dash.min.js.map +1 -1
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/properties.py +4 -12
- {itables-2.4.1 → itables-2.4.2}/pyproject.toml +14 -2
- {itables-2.4.1 → itables-2.4.2}/.gitignore +0 -0
- {itables-2.4.1 → itables-2.4.2}/LICENSE +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/__init__.py +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/dash.py +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/html/datatables_template.html +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/html/dt_bundle.css +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/html/dt_bundle.js +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/html/init_datatables.html +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/interactive.py +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/asset-manifest.json +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/index.html +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/css/main.691d312a.css +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/css/main.691d312a.css.map +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/js/main.e0eadfc1.js +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/js/main.e0eadfc1.js.LICENSE.txt +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/js/main.e0eadfc1.js.map +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/logo/loading.svg +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/logo/logo.svg +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/logo/text.svg +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/logo/wide.svg +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/logo/with_text.svg +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/py.typed +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/samples/countries.csv +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/samples/indicators.csv +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/samples/population.csv +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/widget/static/widget.css +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables/widget/static/widget.js +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/ITable.py +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/_imports_.py +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/async-ITable.js +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/async-ITable.js.LICENSE.txt +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/async-ITable.js.map +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/metadata.json +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/package-info.json +0 -0
- {itables-2.4.1 → itables-2.4.2}/itables_for_dash/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: itables
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.2
|
|
4
4
|
Summary: Pandas and Polar DataFrames as interactive DataTables
|
|
5
5
|
Project-URL: Homepage, https://mwouts.github.io/itables/
|
|
6
6
|
Project-URL: Documentation, https://mwouts.github.io/itables
|
|
@@ -33,6 +33,7 @@ License: MIT License
|
|
|
33
33
|
License-File: LICENSE
|
|
34
34
|
Keywords: DataTables,Interactive,Javascript,Pandas,Polars
|
|
35
35
|
Classifier: Development Status :: 5 - Production/Stable
|
|
36
|
+
Classifier: Framework :: Dash
|
|
36
37
|
Classifier: Framework :: Jupyter
|
|
37
38
|
Classifier: Intended Audience :: Developers
|
|
38
39
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -44,6 +45,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
44
45
|
Classifier: Programming Language :: Python :: 3.11
|
|
45
46
|
Classifier: Programming Language :: Python :: 3.12
|
|
46
47
|
Classifier: Programming Language :: Python :: 3.13
|
|
48
|
+
Classifier: Typing :: Typed
|
|
47
49
|
Requires-Python: >=3.9
|
|
48
50
|
Requires-Dist: ipython
|
|
49
51
|
Requires-Dist: numpy
|
|
@@ -133,6 +135,7 @@ Description-Content-Type: text/markdown
|
|
|
133
135
|
[](https://pypi.python.org/pypi/itables)
|
|
134
136
|
[](https://anaconda.org/conda-forge/itables)
|
|
135
137
|
[](https://pypi.python.org/pypi/itables)
|
|
138
|
+

|
|
136
139
|
[](https://github.com/psf/black)
|
|
137
140
|
[](https://mwouts.github.io/itables/apps/widget.html)
|
|
138
141
|
[](https://mwouts.github.io/itables/apps/dash.html)
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[](https://pypi.python.org/pypi/itables)
|
|
7
7
|
[](https://anaconda.org/conda-forge/itables)
|
|
8
8
|
[](https://pypi.python.org/pypi/itables)
|
|
9
|
+

|
|
9
10
|
[](https://github.com/psf/black)
|
|
10
11
|
[](https://mwouts.github.io/itables/apps/widget.html)
|
|
11
12
|
[](https://mwouts.github.io/itables/apps/dash.html)
|
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import warnings
|
|
3
|
-
from typing import Optional
|
|
3
|
+
from typing import Any, Optional, Sequence, Union
|
|
4
4
|
|
|
5
5
|
import numpy as np
|
|
6
6
|
import pandas as pd
|
|
7
7
|
import pandas.io.formats.format as fmt
|
|
8
8
|
|
|
9
|
+
from .typing import DataFrameOrSeries
|
|
10
|
+
|
|
9
11
|
try:
|
|
10
12
|
import polars as pl
|
|
11
13
|
except ImportError:
|
|
12
14
|
pl = None
|
|
13
15
|
|
|
14
16
|
|
|
15
|
-
def _format_column(
|
|
17
|
+
def _format_column(
|
|
18
|
+
x: "pd.Series[Any]", escape_html: bool
|
|
19
|
+
) -> "Union[pd.Series[Any],Sequence[Any]]":
|
|
16
20
|
dtype_kind = x.dtype.kind
|
|
17
21
|
if dtype_kind in ["b", "i"]:
|
|
18
22
|
return x
|
|
@@ -28,21 +32,23 @@ def _format_column(x, escape_html: bool):
|
|
|
28
32
|
# Older versions of Pandas don't have 'leading_space'
|
|
29
33
|
x = fmt.format_array(x._values, None, justify="all") # type: ignore
|
|
30
34
|
|
|
35
|
+
y: "Union[pd.Series[Any], Sequence[Any]]" = x
|
|
31
36
|
if dtype_kind == "f":
|
|
32
37
|
try:
|
|
33
|
-
|
|
38
|
+
z = np.array(x).astype(float)
|
|
34
39
|
except ValueError:
|
|
40
|
+
z = x
|
|
35
41
|
pass
|
|
36
42
|
|
|
37
|
-
|
|
43
|
+
y = [escape_non_finite_float(f) for f in z]
|
|
38
44
|
|
|
39
45
|
if escape_html:
|
|
40
|
-
return [escape_html_chars(i) for i in
|
|
46
|
+
return [escape_html_chars(i) for i in y]
|
|
41
47
|
|
|
42
|
-
return
|
|
48
|
+
return y
|
|
43
49
|
|
|
44
50
|
|
|
45
|
-
def escape_non_finite_float(value):
|
|
51
|
+
def escape_non_finite_float(value: Any) -> Any:
|
|
46
52
|
"""Encode non-finite float values to strings that will be parsed by parseJSON"""
|
|
47
53
|
if not isinstance(value, float):
|
|
48
54
|
return value
|
|
@@ -55,7 +61,7 @@ def escape_non_finite_float(value):
|
|
|
55
61
|
return value
|
|
56
62
|
|
|
57
63
|
|
|
58
|
-
def escape_html_chars(value):
|
|
64
|
+
def escape_html_chars(value: Any) -> Any:
|
|
59
65
|
"""Escape HTML special characters"""
|
|
60
66
|
if isinstance(value, str):
|
|
61
67
|
from pandas.io.formats.printing import pprint_thing # type: ignore
|
|
@@ -66,7 +72,9 @@ def escape_html_chars(value):
|
|
|
66
72
|
return value
|
|
67
73
|
|
|
68
74
|
|
|
69
|
-
def generate_encoder(warn_on_unexpected_types=True):
|
|
75
|
+
def generate_encoder(warn_on_unexpected_types: bool = True) -> Any:
|
|
76
|
+
"""Generate a JSON encoder that can handle special types like numpy"""
|
|
77
|
+
|
|
70
78
|
class TableValuesEncoder(json.JSONEncoder):
|
|
71
79
|
def default(self, o):
|
|
72
80
|
if isinstance(o, (bool, int, float, str)):
|
|
@@ -97,11 +105,11 @@ def generate_encoder(warn_on_unexpected_types=True):
|
|
|
97
105
|
|
|
98
106
|
|
|
99
107
|
def datatables_rows(
|
|
100
|
-
df,
|
|
108
|
+
df: DataFrameOrSeries,
|
|
101
109
|
column_count: Optional[int] = None,
|
|
102
110
|
warn_on_unexpected_types: bool = False,
|
|
103
111
|
escape_html: bool = True,
|
|
104
|
-
):
|
|
112
|
+
) -> str:
|
|
105
113
|
"""Format the values in the table and return the data, row by row, as requested by DataTables"""
|
|
106
114
|
# We iterate over columns using an index rather than the column name
|
|
107
115
|
# to avoid an issue in case of duplicated column names #89
|
|
@@ -33,8 +33,11 @@ def as_nbytes(mem: Union[int, float, str]) -> int:
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
def downsample(
|
|
36
|
-
df
|
|
37
|
-
|
|
36
|
+
df: DataFrameOrSeries,
|
|
37
|
+
max_rows: int = 0,
|
|
38
|
+
max_columns: int = 0,
|
|
39
|
+
max_bytes: Union[int, str] = 0,
|
|
40
|
+
) -> tuple[DataFrameOrSeries, str]:
|
|
38
41
|
"""Return a subset of the dataframe that fits the limits"""
|
|
39
42
|
org_rows, org_columns, org_bytes = len(df), len(df.columns), nbytes(df)
|
|
40
43
|
max_bytes_numeric = as_nbytes(max_bytes)
|
|
@@ -67,8 +70,9 @@ def downsample(
|
|
|
67
70
|
|
|
68
71
|
|
|
69
72
|
def shrink_towards_target_aspect_ratio(
|
|
70
|
-
rows, columns, shrink_factor, target_aspect_ratio
|
|
71
|
-
):
|
|
73
|
+
rows: int, columns: int, shrink_factor: float, target_aspect_ratio: float
|
|
74
|
+
) -> tuple[int, int]:
|
|
75
|
+
"""Return the number of rows and columns of the shrinked dataframe"""
|
|
72
76
|
# current and target aspect ratio
|
|
73
77
|
aspect_ratio = rows / float(columns)
|
|
74
78
|
|
|
@@ -135,7 +135,7 @@ def init_notebook_mode(
|
|
|
135
135
|
all_interactive: bool = True,
|
|
136
136
|
connected: bool = GOOGLE_COLAB,
|
|
137
137
|
dt_bundle: Optional[Union[Path, str]] = None,
|
|
138
|
-
):
|
|
138
|
+
) -> None:
|
|
139
139
|
"""Load the DataTables library and the corresponding css (if connected=False),
|
|
140
140
|
and (if all_interactive=True), activate the DataTables representation for all the Pandas DataFrames and Series.
|
|
141
141
|
|
|
@@ -189,7 +189,8 @@ def init_notebook_mode(
|
|
|
189
189
|
display(HTML(generate_init_offline_itables_html(dt_bundle)))
|
|
190
190
|
|
|
191
191
|
|
|
192
|
-
def get_animated_logo(display_logo_when_loading):
|
|
192
|
+
def get_animated_logo(display_logo_when_loading: bool) -> str:
|
|
193
|
+
"""Return the HTML for the loading logo of ITables"""
|
|
193
194
|
if not display_logo_when_loading:
|
|
194
195
|
return ""
|
|
195
196
|
return f"<a href=https://mwouts.github.io/itables/>{read_package_file('logo/loading.svg')}</a>"
|
|
@@ -265,7 +266,7 @@ def _flat_header(df, show_index):
|
|
|
265
266
|
return header
|
|
266
267
|
|
|
267
268
|
|
|
268
|
-
def _tfoot_from_thead(thead):
|
|
269
|
+
def _tfoot_from_thead(thead: str) -> str:
|
|
269
270
|
header_rows = thead.split("</tr>")
|
|
270
271
|
last_row = header_rows[-1]
|
|
271
272
|
assert not last_row.strip(), last_row
|
|
@@ -273,7 +274,7 @@ def _tfoot_from_thead(thead):
|
|
|
273
274
|
return "".join(row + "</tr>" for row in header_rows[::-1] if "<tr" in row) + "\n"
|
|
274
275
|
|
|
275
276
|
|
|
276
|
-
def get_keys_to_be_evaluated(data) -> list[list[Union[int, str]]]:
|
|
277
|
+
def get_keys_to_be_evaluated(data: Any) -> list[list[Union[int, str]]]:
|
|
277
278
|
"""
|
|
278
279
|
This function returns the keys that need to be evaluated
|
|
279
280
|
in the ITable arguments
|
|
@@ -296,7 +297,7 @@ def get_keys_to_be_evaluated(data) -> list[list[Union[int, str]]]:
|
|
|
296
297
|
return keys_to_be_evaluated
|
|
297
298
|
|
|
298
299
|
|
|
299
|
-
def replace_value(template, pattern, value):
|
|
300
|
+
def replace_value(template: str, pattern: str, value: str) -> str:
|
|
300
301
|
"""Set the given pattern to the desired value in the template,
|
|
301
302
|
after making sure that the pattern is found exactly once."""
|
|
302
303
|
count = template.count(pattern)
|
|
@@ -311,7 +312,7 @@ def replace_value(template, pattern, value):
|
|
|
311
312
|
return template.replace(pattern, value)
|
|
312
313
|
|
|
313
314
|
|
|
314
|
-
def _datatables_repr_(df):
|
|
315
|
+
def _datatables_repr_(df: DataFrameOrSeries) -> str:
|
|
315
316
|
return to_html_datatable(df, connected=_CONNECTED)
|
|
316
317
|
|
|
317
318
|
|
|
@@ -319,7 +320,7 @@ def to_html_datatable(
|
|
|
319
320
|
df: DataFrameOrSeries,
|
|
320
321
|
caption: Optional[str] = None,
|
|
321
322
|
**kwargs: Unpack[ITableOptions],
|
|
322
|
-
):
|
|
323
|
+
) -> str:
|
|
323
324
|
"""
|
|
324
325
|
Return the HTML representation of the given
|
|
325
326
|
dataframe as an interactive datatable
|
|
@@ -548,8 +549,14 @@ def get_itables_extension_arguments(
|
|
|
548
549
|
|
|
549
550
|
|
|
550
551
|
def warn_if_selected_rows_are_not_visible(
|
|
551
|
-
selected_rows
|
|
552
|
-
|
|
552
|
+
selected_rows: Optional[Sequence[int]],
|
|
553
|
+
full_row_count: int,
|
|
554
|
+
data_row_count: int,
|
|
555
|
+
warn_on_selected_rows_not_rendered: bool,
|
|
556
|
+
) -> Sequence[int]:
|
|
557
|
+
"""
|
|
558
|
+
Issue a warning if the selected rows are not within the range of rendered rows.
|
|
559
|
+
"""
|
|
553
560
|
if selected_rows is None:
|
|
554
561
|
return []
|
|
555
562
|
|
|
@@ -589,7 +596,11 @@ def warn_if_selected_rows_are_not_visible(
|
|
|
589
596
|
return [i for i in selected_rows if i < bottom_limit or i >= top_limit]
|
|
590
597
|
|
|
591
598
|
|
|
592
|
-
def check_table_id(
|
|
599
|
+
def check_table_id(
|
|
600
|
+
table_id: Optional[str],
|
|
601
|
+
kwargs: Union[ITableOptions, DTForITablesOptions],
|
|
602
|
+
df: Optional[DataFrameOrSeries] = None,
|
|
603
|
+
) -> str:
|
|
593
604
|
"""Make sure that the table_id is a valid HTML id.
|
|
594
605
|
|
|
595
606
|
See also https://stackoverflow.com/questions/70579/html-valid-id-attribute-values
|
|
@@ -614,7 +625,9 @@ def check_table_id(table_id: Optional[str], kwargs, df=None) -> str:
|
|
|
614
625
|
return table_id
|
|
615
626
|
|
|
616
627
|
|
|
617
|
-
def set_default_options(
|
|
628
|
+
def set_default_options(
|
|
629
|
+
kwargs: ITableOptions, *, use_to_html: bool, app_mode: bool
|
|
630
|
+
) -> None:
|
|
618
631
|
if not app_mode:
|
|
619
632
|
kwargs["connected"] = kwargs.get(
|
|
620
633
|
"connected", ("dt_url" in kwargs) or _CONNECTED
|
|
@@ -681,7 +694,7 @@ def html_table_from_template(
|
|
|
681
694
|
connected: bool,
|
|
682
695
|
display_logo_when_loading: bool,
|
|
683
696
|
kwargs: DTForITablesOptions,
|
|
684
|
-
):
|
|
697
|
+
) -> str:
|
|
685
698
|
if "css" in kwargs:
|
|
686
699
|
raise TypeError(
|
|
687
700
|
"The 'css' argument has been deprecated, see the new "
|
|
@@ -800,7 +813,7 @@ def _filter_control(control, downsampling_warning):
|
|
|
800
813
|
return None
|
|
801
814
|
|
|
802
815
|
|
|
803
|
-
def safe_reset_index(df):
|
|
816
|
+
def safe_reset_index(df: pd.DataFrame) -> pd.DataFrame:
|
|
804
817
|
try:
|
|
805
818
|
return df.reset_index()
|
|
806
819
|
except ValueError:
|
|
@@ -825,6 +838,6 @@ def show(
|
|
|
825
838
|
df: DataFrameOrSeries,
|
|
826
839
|
caption: Optional[str] = None,
|
|
827
840
|
**kwargs: Unpack[ITableOptions],
|
|
828
|
-
):
|
|
841
|
+
) -> None:
|
|
829
842
|
"""Render the given dataframe as an interactive datatable"""
|
|
830
843
|
display(HTML(to_html_datatable(df, caption, **kwargs)))
|
|
@@ -107,6 +107,7 @@ lengthMenu: Optional[
|
|
|
107
107
|
Sequence[Sequence[Union[int, str]]],
|
|
108
108
|
]
|
|
109
109
|
]
|
|
110
|
+
pageLength: Optional[int]
|
|
110
111
|
columnDefs: Optional[Sequence[Mapping[str, Any]]]
|
|
111
112
|
paging: Optional[bool]
|
|
112
113
|
autoWidth: Optional[bool]
|
|
@@ -138,7 +139,7 @@ if warn_on_undocumented_option:
|
|
|
138
139
|
)
|
|
139
140
|
|
|
140
141
|
"""Check that options have correct types"""
|
|
141
|
-
warn_on_unexpected_option_type = (
|
|
142
|
+
warn_on_unexpected_option_type: bool = (
|
|
142
143
|
warn_on_undocumented_option and typing.is_typeguard_available()
|
|
143
144
|
)
|
|
144
145
|
if warn_on_unexpected_option_type:
|
|
@@ -3,7 +3,7 @@ import string
|
|
|
3
3
|
from datetime import datetime, timedelta
|
|
4
4
|
from functools import lru_cache
|
|
5
5
|
from itertools import cycle
|
|
6
|
-
from typing import Any, cast
|
|
6
|
+
from typing import Any, Sequence, cast
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
import pandas as pd
|
|
@@ -28,9 +28,9 @@ COLUMN_TYPES = [
|
|
|
28
28
|
"timedelta",
|
|
29
29
|
]
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
PANDAS_VERSION_MAJOR = int(
|
|
33
|
-
PANDAS_VERSION_MINOR = int(
|
|
31
|
+
_pd_version_major, _pd_version_minor, _ = pd.__version__.split(".", 2)
|
|
32
|
+
PANDAS_VERSION_MAJOR = int(_pd_version_major)
|
|
33
|
+
PANDAS_VERSION_MINOR = int(_pd_version_minor)
|
|
34
34
|
if PANDAS_VERSION_MAJOR == 0:
|
|
35
35
|
COLUMN_TYPES = [type for type in COLUMN_TYPES if type != "boolean"]
|
|
36
36
|
if PANDAS_VERSION_MAJOR == 2 and PANDAS_VERSION_MINOR == 1:
|
|
@@ -84,19 +84,20 @@ def get_countries(html: bool = True, climate_zone: bool = False) -> pd.DataFrame
|
|
|
84
84
|
return df
|
|
85
85
|
|
|
86
86
|
|
|
87
|
-
def get_population():
|
|
87
|
+
def get_population() -> "pd.Series[float]":
|
|
88
88
|
"""A Pandas Series with the world population (from the world bank data)"""
|
|
89
89
|
return pd.read_csv(find_package_file("samples/population.csv")).set_index(
|
|
90
90
|
"Country"
|
|
91
91
|
)["SP.POP.TOTL"]
|
|
92
92
|
|
|
93
93
|
|
|
94
|
-
def get_indicators():
|
|
94
|
+
def get_indicators() -> pd.DataFrame:
|
|
95
95
|
"""A Pandas DataFrame with a subset of the world bank indicators"""
|
|
96
96
|
return pd.read_csv(find_package_file("samples/indicators.csv"))
|
|
97
97
|
|
|
98
98
|
|
|
99
|
-
def get_df_complex_index():
|
|
99
|
+
def get_df_complex_index() -> pd.DataFrame:
|
|
100
|
+
"""A Pandas DataFrame with a complex index"""
|
|
100
101
|
df = get_countries()
|
|
101
102
|
df = df.reset_index().set_index(["region", "country"])
|
|
102
103
|
df.columns = pd.MultiIndex.from_arrays(
|
|
@@ -116,7 +117,7 @@ def get_df_complex_index():
|
|
|
116
117
|
return df
|
|
117
118
|
|
|
118
119
|
|
|
119
|
-
def get_dict_of_test_dfs(N=100, M=100) -> dict[str, pd.DataFrame]:
|
|
120
|
+
def get_dict_of_test_dfs(N: int = 100, M: int = 100) -> dict[str, pd.DataFrame]:
|
|
120
121
|
NM_values = np.reshape(np.linspace(start=0.0, stop=1.0, num=N * M), (N, M))
|
|
121
122
|
|
|
122
123
|
return {
|
|
@@ -281,7 +282,7 @@ def get_dict_of_test_dfs(N=100, M=100) -> dict[str, pd.DataFrame]:
|
|
|
281
282
|
}
|
|
282
283
|
|
|
283
284
|
|
|
284
|
-
def get_dict_of_polars_test_dfs(N=100, M=100) -> dict[str, Any]:
|
|
285
|
+
def get_dict_of_polars_test_dfs(N: int = 100, M: int = 100) -> dict[str, Any]:
|
|
285
286
|
import polars as pl
|
|
286
287
|
import pyarrow as pa
|
|
287
288
|
|
|
@@ -300,7 +301,8 @@ def get_dict_of_polars_test_dfs(N=100, M=100) -> dict[str, Any]:
|
|
|
300
301
|
return polars_dfs
|
|
301
302
|
|
|
302
303
|
|
|
303
|
-
def get_dict_of_test_series():
|
|
304
|
+
def get_dict_of_test_series() -> dict[str, Any]:
|
|
305
|
+
"""A dictionary of Pandas Series"""
|
|
304
306
|
series = {}
|
|
305
307
|
for df_name, df in get_dict_of_test_dfs().items():
|
|
306
308
|
if len(df.columns) > 6:
|
|
@@ -313,7 +315,8 @@ def get_dict_of_test_series():
|
|
|
313
315
|
return series
|
|
314
316
|
|
|
315
317
|
|
|
316
|
-
def get_dict_of_polars_test_series():
|
|
318
|
+
def get_dict_of_polars_test_series() -> dict[str, Any]:
|
|
319
|
+
"""A dictionary of Polars Series"""
|
|
317
320
|
import polars as pl
|
|
318
321
|
import pyarrow as pa
|
|
319
322
|
|
|
@@ -342,7 +345,8 @@ def generate_date_series():
|
|
|
342
345
|
return pd.Series(pd.date_range("1677-09-23", "2262-04-10", freq="D"))
|
|
343
346
|
|
|
344
347
|
|
|
345
|
-
def generate_random_series(rows, type):
|
|
348
|
+
def generate_random_series(rows: int, type: str) -> Any:
|
|
349
|
+
"""Generate a random Pandas Series of the given type and number of rows"""
|
|
346
350
|
if type == "bool":
|
|
347
351
|
return pd.Series(np.random.binomial(n=1, p=0.5, size=rows), dtype=bool)
|
|
348
352
|
if type == "boolean":
|
|
@@ -382,15 +386,18 @@ def generate_random_series(rows, type):
|
|
|
382
386
|
raise NotImplementedError(type)
|
|
383
387
|
|
|
384
388
|
|
|
385
|
-
def generate_random_df(
|
|
389
|
+
def generate_random_df(
|
|
390
|
+
rows: int, columns: int, column_types: Sequence[str] = COLUMN_TYPES
|
|
391
|
+
) -> pd.DataFrame:
|
|
386
392
|
rows = int(rows)
|
|
387
393
|
types = np.random.choice(column_types, size=columns)
|
|
388
|
-
|
|
394
|
+
columns_names = [
|
|
389
395
|
"Column{}OfType{}".format(col, type.title()) for col, type in enumerate(types)
|
|
390
396
|
]
|
|
391
397
|
|
|
392
398
|
series = {
|
|
393
|
-
col: generate_random_series(rows, type)
|
|
399
|
+
col: generate_random_series(rows, type)
|
|
400
|
+
for col, type in zip(columns_names, types)
|
|
394
401
|
}
|
|
395
402
|
index = pd.Index(range(rows))
|
|
396
403
|
for x in series.values():
|
|
@@ -399,7 +406,7 @@ def generate_random_df(rows, columns, column_types=COLUMN_TYPES):
|
|
|
399
406
|
return pd.DataFrame(series)
|
|
400
407
|
|
|
401
408
|
|
|
402
|
-
def get_pandas_styler():
|
|
409
|
+
def get_pandas_styler() -> Any:
|
|
403
410
|
"""This function returns a Pandas Styler object
|
|
404
411
|
|
|
405
412
|
Cf. https://pandas.pydata.org/docs/user_guide/style.html
|
|
@@ -41,7 +41,7 @@ def DT(
|
|
|
41
41
|
df: DataFrameOrSeries,
|
|
42
42
|
caption: Optional[str] = None,
|
|
43
43
|
**kwargs: Unpack[ITableOptions],
|
|
44
|
-
):
|
|
44
|
+
) -> str:
|
|
45
45
|
"""This is a version of 'to_html_datatable' that works in Shiny applications."""
|
|
46
46
|
kwargs["connected"] = kwargs.get("connected", _CONNECTED)
|
|
47
47
|
html = to_html_datatable(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
2
|
|
|
3
3
|
import streamlit.components.v1 as components
|
|
4
|
+
from streamlit.components.v1.custom_component import CustomComponent
|
|
4
5
|
from typing_extensions import Unpack
|
|
5
6
|
|
|
6
7
|
from .javascript import get_itables_extension_arguments
|
|
@@ -17,7 +18,7 @@ def interactive_table(
|
|
|
17
18
|
key: Optional[str] = None,
|
|
18
19
|
caption: Optional[str] = None,
|
|
19
20
|
**kwargs: Unpack[ITableOptions],
|
|
20
|
-
):
|
|
21
|
+
) -> CustomComponent:
|
|
21
22
|
"""Render the DataFrame as an interactive datatable in Streamlit applications"""
|
|
22
23
|
dt_args, other_args = get_itables_extension_arguments(df, caption, **kwargs)
|
|
23
24
|
return _streamlit_component_func(key=key, dt_args=dt_args, other_args=other_args)
|
|
@@ -54,6 +54,7 @@ class DataTableOptions(TypedDict):
|
|
|
54
54
|
Sequence[Sequence[Union[int, str]]],
|
|
55
55
|
]
|
|
56
56
|
]
|
|
57
|
+
pageLength: NotRequired[int]
|
|
57
58
|
order: NotRequired[
|
|
58
59
|
Union[Sequence[Sequence[Union[int, str]]], Mapping[str, Union[int, str]]]
|
|
59
60
|
]
|
|
@@ -150,7 +151,7 @@ class DTForITablesOptions(DataTableOptions):
|
|
|
150
151
|
display_logo_when_loading: NotRequired[bool]
|
|
151
152
|
|
|
152
153
|
|
|
153
|
-
def is_typeguard_available():
|
|
154
|
+
def is_typeguard_available() -> bool:
|
|
154
155
|
"""Check if typeguard is available"""
|
|
155
156
|
try:
|
|
156
157
|
typeguard_version = version("typeguard")
|
|
@@ -7,13 +7,13 @@ UNPKG_DT_BUNDLE_URL_NO_VERSION = "https://www.unpkg.com/dt_for_itables/dt_bundle
|
|
|
7
7
|
UNPKG_DT_BUNDLE_CSS_NO_VERSION = "https://www.unpkg.com/dt_for_itables/dt_bundle.css"
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
def find_package_file(*path):
|
|
10
|
+
def find_package_file(*path: str) -> Path:
|
|
11
11
|
"""Return the full path to a file from the itables package"""
|
|
12
12
|
current_path = Path(__file__).parent
|
|
13
13
|
return Path(current_path, *path)
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def read_package_file(*path):
|
|
16
|
+
def read_package_file(*path: str) -> str:
|
|
17
17
|
"""Return the content of a file from the itables package"""
|
|
18
18
|
with open(find_package_file(*path), encoding="utf-8") as fp:
|
|
19
19
|
return fp.read()
|
|
@@ -53,7 +53,7 @@ class ITable(anywidget.AnyWidget):
|
|
|
53
53
|
df: Optional[DataFrameOrSeries] = None,
|
|
54
54
|
caption: Optional[str] = None,
|
|
55
55
|
**kwargs: Unpack[ITableOptions],
|
|
56
|
-
):
|
|
56
|
+
) -> None:
|
|
57
57
|
"""
|
|
58
58
|
Update either the table data, attributes, or the arguments passed
|
|
59
59
|
to DataTable. Arguments that are not mentioned
|
|
@@ -69,7 +69,7 @@ class ITable(anywidget.AnyWidget):
|
|
|
69
69
|
if df is None:
|
|
70
70
|
df = self._df
|
|
71
71
|
if "selected_rows" not in kwargs:
|
|
72
|
-
kwargs["selected_rows"] = self.selected_rows
|
|
72
|
+
kwargs["selected_rows"] = self.selected_rows or []
|
|
73
73
|
if caption is None and self.caption is not None:
|
|
74
74
|
caption = self.caption
|
|
75
75
|
if "classes" not in kwargs:
|
|
@@ -108,7 +108,7 @@ class ITable(anywidget.AnyWidget):
|
|
|
108
108
|
return self._df
|
|
109
109
|
|
|
110
110
|
@df.setter
|
|
111
|
-
def df(self, df: Optional[DataFrameOrSeries]):
|
|
111
|
+
def df(self, df: Optional[DataFrameOrSeries]) -> None:
|
|
112
112
|
self.update(df)
|
|
113
113
|
|
|
114
114
|
@property
|
|
@@ -48,12 +48,12 @@ class ITable(ITableComponent):
|
|
|
48
48
|
**kwargs : dict
|
|
49
49
|
Additional keyword arguments for the component.
|
|
50
50
|
"""
|
|
51
|
-
if not isinstance(id, str):
|
|
51
|
+
if not isinstance(id, str): # pyright: ignore[reportUnnecessaryIsInstance]
|
|
52
52
|
raise ValueError("The id must be a string.")
|
|
53
53
|
if not id:
|
|
54
54
|
raise ValueError("The id cannot be an empty string.")
|
|
55
55
|
|
|
56
|
-
return super().__init__(
|
|
56
|
+
return super().__init__( # pyright: ignore[reportUnknownMemberType]
|
|
57
57
|
id=id, **get_itable_component_kwargs(df, caption, **kwargs)
|
|
58
58
|
)
|
|
59
59
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{"use strict";var e,r,t={188:(e,r,t)=>{t.d(r,{Ay:()=>l,Gs:()=>u,tu:()=>p});var n=t(609),o=t.n(n);const i=window.PropTypes;var a=t.n(i),s=React.lazy((function(){return t.e(741).then(t.bind(t,109))})),c=function(e){return o().createElement(o().Suspense,{fallback:null},o().createElement(s,e))};c.defaultProps={},c.propTypes={id:a().string.isRequired,caption:a().string,selected_rows:a().array.isRequired,style:a().object.isRequired,classes:a().string.isRequired,dt_args:a().object.isRequired,setProps:a().func};const l=c;var u=c.defaultProps,p=c.propTypes},609:e=>{e.exports=window.React}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={id:e,exports:{}};return t[e].call(i.exports,i,i.exports,o),i.exports}o.m=t,o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>"async-ITable.js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="itables_for_dash:",o.l=(t,n,i,a)=>{if(e[t])e[t].push(n);else{var s,c;if(void 0!==i)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var p=l[u];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==r+i){s=p;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+i),s.src=t),e[t]=[n];var d=(r,n)=>{s.onerror=s.onload=null,clearTimeout(f);var o=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),r)return r(n)},f=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})();var i,a=function(){var e=document.currentScript;if(!e){for(var r=document.getElementsByTagName("script"),t=[],n=0;n<r.length;n++)t.push(r[n]);e=(t=t.filter((function(e){return!e.async&&!e.text&&!e.textContent}))).slice(-1)[0]}return e};if(Object.defineProperty(o,"p",{get:(i=a().src.split("/").slice(0,-1).join("/")+"/",function(){return i})}),"undefined"!=typeof jsonpScriptSrc){var s=jsonpScriptSrc;jsonpScriptSrc=function(e){var r,t=(r=a(),/\/_dash-component-suites\//.test(r.src)),n=s(e);if(!t)return n;var o=n.split("/"),i=o.slice(-1)[0].split(".");return i.splice(1,0,"
|
|
1
|
+
(()=>{"use strict";var e,r,t={188:(e,r,t)=>{t.d(r,{Ay:()=>l,Gs:()=>u,tu:()=>p});var n=t(609),o=t.n(n);const i=window.PropTypes;var a=t.n(i),s=React.lazy((function(){return t.e(741).then(t.bind(t,109))})),c=function(e){return o().createElement(o().Suspense,{fallback:null},o().createElement(s,e))};c.defaultProps={},c.propTypes={id:a().string.isRequired,caption:a().string,selected_rows:a().array.isRequired,style:a().object.isRequired,classes:a().string.isRequired,dt_args:a().object.isRequired,setProps:a().func};const l=c;var u=c.defaultProps,p=c.propTypes},609:e=>{e.exports=window.React}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={id:e,exports:{}};return t[e].call(i.exports,i,i.exports,o),i.exports}o.m=t,o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>"async-ITable.js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),e={},r="itables_for_dash:",o.l=(t,n,i,a)=>{if(e[t])e[t].push(n);else{var s,c;if(void 0!==i)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var p=l[u];if(p.getAttribute("src")==t||p.getAttribute("data-webpack")==r+i){s=p;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",r+i),s.src=t),e[t]=[n];var d=(r,n)=>{s.onerror=s.onload=null,clearTimeout(f);var o=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),r)return r(n)},f=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),c&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})();var i,a=function(){var e=document.currentScript;if(!e){for(var r=document.getElementsByTagName("script"),t=[],n=0;n<r.length;n++)t.push(r[n]);e=(t=t.filter((function(e){return!e.async&&!e.text&&!e.textContent}))).slice(-1)[0]}return e};if(Object.defineProperty(o,"p",{get:(i=a().src.split("/").slice(0,-1).join("/")+"/",function(){return i})}),"undefined"!=typeof jsonpScriptSrc){var s=jsonpScriptSrc;jsonpScriptSrc=function(e){var r,t=(r=a(),/\/_dash-component-suites\//.test(r.src)),n=s(e);if(!t)return n;var o=n.split("/"),i=o.slice(-1)[0].split(".");return i.splice(1,0,"v0_2_0m1749679400"),o.splice(-1,1,i.join(".")),o.join("/")}}(()=>{o.b=document.baseURI||self.location.href;var e={792:0};o.f.j=(r,t)=>{var n=o.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else{var i=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=i);var a=o.p+o.u(r),s=new Error;o.l(a,(t=>{if(o.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var i=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;s.message="Loading chunk "+r+" failed.\n("+i+": "+a+")",s.name="ChunkLoadError",s.type=i,s.request=a,n[1](s)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,i,[a,s,c]=t,l=0;if(a.some((r=>0!==e[r]))){for(n in s)o.o(s,n)&&(o.m[n]=s[n]);c&&c(o)}for(r&&r(t);l<a.length;l++)i=a[l],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0},t=self.webpackChunkitables_for_dash=self.webpackChunkitables_for_dash||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),o.nc=void 0;var c={};o.r(c),o.d(c,{ITable:()=>l.Ay});var l=o(188);window.itables_for_dash=c})();
|
|
2
2
|
//# sourceMappingURL=itables_for_dash.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"itables_for_dash.min.js","mappings":"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","sources":["webpack:///webpack/runtime/load script","webpack:///external window \"PropTypes\"","webpack:///./src/lib/LazyLoader.js","webpack:///./src/lib/components/ITable.react.js","webpack:///external window \"React\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/compat","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"itables_for_dash:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"PropTypes\"];","export const ITable = React.lazy(() => import(/* webpackChunkName: \"ITable\" */ './fragments/ITable.react'));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ITable as RealComponent } from '../LazyLoader';\n\n/**\n * ITable is a dash component for ITables\n */\nconst ITable = (props) => {\n return (\n <React.Suspense fallback={null}>\n <RealComponent {...props} />\n </React.Suspense>\n );\n};\n\nITable.defaultProps = {};\n\nITable.propTypes = {\n /**\n * The ID used to identify this component in Dash callbacks.\n */\n id: PropTypes.string.isRequired,\n\n /**\n * The table caption\n */\n caption: PropTypes.string,\n\n /**\n * The index of the selected rows (pass select=True to allow selection)\n */\n selected_rows: PropTypes.array.isRequired,\n\n /**\n * The table style\n */\n style: PropTypes.object.isRequired,\n\n /**\n * The table classes\n */\n classes: PropTypes.string.isRequired,\n\n /**\n * The arguments for DataTable e.g. select, buttons, layout etc.\n */\n dt_args: PropTypes.object.isRequired,\n\n /**\n * Dash-assigned callback that should be called to report property changes\n * to Dash, to make them available for callbacks.\n */\n setProps: PropTypes.func\n};\n\nexport default ITable;\nexport const defaultProps = ITable.defaultProps;\nexport const propTypes = ITable.propTypes;\n","module.exports = window[\"React\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + \"async-ITable\" + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var getCurrentScript = function() {\n var script = document.currentScript;\n if (!script) {\n /* Shim for IE11 and below */\n /* Do not take into account async scripts and inline scripts */\n\n var doc_scripts = document.getElementsByTagName('script');\n var scripts = [];\n\n for (var i = 0; i < doc_scripts.length; i++) {\n scripts.push(doc_scripts[i]);\n }\n\n scripts = scripts.filter(function(s) { return !s.async && !s.text && !s.textContent; });\n script = scripts.slice(-1)[0];\n }\n\n return script;\n};\n\nvar isLocalScript = function(script) {\n return /\\/_dash-component-suites\\//.test(script.src);\n};\n\nObject.defineProperty(__webpack_require__, 'p', {\n get: (function () {\n var script = getCurrentScript();\n\n var url = script.src.split('/').slice(0, -1).join('/') + '/';\n\n return function() {\n return url;\n };\n })()\n});\n\nif (typeof jsonpScriptSrc !== 'undefined') {\n var __jsonpScriptSrc__ = jsonpScriptSrc;\n jsonpScriptSrc = function(chunkId) {\n var script = getCurrentScript();\n var isLocal = isLocalScript(script);\n\n var src = __jsonpScriptSrc__(chunkId);\n\n if(!isLocal) {\n return src;\n }\n\n var srcFragments = src.split('/');\n var fileFragments = srcFragments.slice(-1)[0].split('.');\n\n fileFragments.splice(1, 0, \"v0_2_0m1749590612\");\n srcFragments.splice(-1, 1, fileFragments.join('.'))\n\n return srcFragments.join('/');\n };\n}\n","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkitables_for_dash\"] = self[\"webpackChunkitables_for_dash\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;"],"names":["inProgress","dataWebpackPrefix","window","ITable","React","lazy","props","fallback","RealComponent","defaultProps","propTypes","id","PropTypes","isRequired","caption","selected_rows","style","classes","dt_args","setProps","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","m","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","g","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","target","head","appendChild","r","Symbol","toStringTag","value","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","getCurrentScript","doc_scripts","filter","async","text","textContent","slice","split","join","jsonpScriptSrc","__jsonpScriptSrc__","isLocal","srcFragments","fileFragments","splice","b","baseURI","self","href","installedChunks","j","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"itables_for_dash.min.js","mappings":"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","sources":["webpack:///webpack/runtime/load script","webpack:///external window \"PropTypes\"","webpack:///./src/lib/LazyLoader.js","webpack:///./src/lib/components/ITable.react.js","webpack:///external window \"React\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/compat","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/runtime/nonce"],"sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"itables_for_dash:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"PropTypes\"];","export const ITable = React.lazy(() => import(/* webpackChunkName: \"ITable\" */ './fragments/ITable.react'));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ITable as RealComponent } from '../LazyLoader';\n\n/**\n * ITable is a dash component for ITables\n */\nconst ITable = (props) => {\n return (\n <React.Suspense fallback={null}>\n <RealComponent {...props} />\n </React.Suspense>\n );\n};\n\nITable.defaultProps = {};\n\nITable.propTypes = {\n /**\n * The ID used to identify this component in Dash callbacks.\n */\n id: PropTypes.string.isRequired,\n\n /**\n * The table caption\n */\n caption: PropTypes.string,\n\n /**\n * The index of the selected rows (pass select=True to allow selection)\n */\n selected_rows: PropTypes.array.isRequired,\n\n /**\n * The table style\n */\n style: PropTypes.object.isRequired,\n\n /**\n * The table classes\n */\n classes: PropTypes.string.isRequired,\n\n /**\n * The arguments for DataTable e.g. select, buttons, layout etc.\n */\n dt_args: PropTypes.object.isRequired,\n\n /**\n * Dash-assigned callback that should be called to report property changes\n * to Dash, to make them available for callbacks.\n */\n setProps: PropTypes.func\n};\n\nexport default ITable;\nexport const defaultProps = ITable.defaultProps;\nexport const propTypes = ITable.propTypes;\n","module.exports = window[\"React\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + \"async-ITable\" + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var getCurrentScript = function() {\n var script = document.currentScript;\n if (!script) {\n /* Shim for IE11 and below */\n /* Do not take into account async scripts and inline scripts */\n\n var doc_scripts = document.getElementsByTagName('script');\n var scripts = [];\n\n for (var i = 0; i < doc_scripts.length; i++) {\n scripts.push(doc_scripts[i]);\n }\n\n scripts = scripts.filter(function(s) { return !s.async && !s.text && !s.textContent; });\n script = scripts.slice(-1)[0];\n }\n\n return script;\n};\n\nvar isLocalScript = function(script) {\n return /\\/_dash-component-suites\\//.test(script.src);\n};\n\nObject.defineProperty(__webpack_require__, 'p', {\n get: (function () {\n var script = getCurrentScript();\n\n var url = script.src.split('/').slice(0, -1).join('/') + '/';\n\n return function() {\n return url;\n };\n })()\n});\n\nif (typeof jsonpScriptSrc !== 'undefined') {\n var __jsonpScriptSrc__ = jsonpScriptSrc;\n jsonpScriptSrc = function(chunkId) {\n var script = getCurrentScript();\n var isLocal = isLocalScript(script);\n\n var src = __jsonpScriptSrc__(chunkId);\n\n if(!isLocal) {\n return src;\n }\n\n var srcFragments = src.split('/');\n var fileFragments = srcFragments.slice(-1)[0].split('.');\n\n fileFragments.splice(1, 0, \"v0_2_0m1749679400\");\n srcFragments.splice(-1, 1, fileFragments.join('.'))\n\n return srcFragments.join('/');\n };\n}\n","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkitables_for_dash\"] = self[\"webpackChunkitables_for_dash\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;"],"names":["inProgress","dataWebpackPrefix","window","ITable","React","lazy","props","fallback","RealComponent","defaultProps","propTypes","id","PropTypes","isRequired","caption","selected_rows","style","classes","dt_args","setProps","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","m","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","g","globalThis","this","Function","obj","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","i","length","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","fn","setTimeout","bind","type","target","head","appendChild","r","Symbol","toStringTag","value","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","getCurrentScript","doc_scripts","filter","async","text","textContent","slice","split","join","jsonpScriptSrc","__jsonpScriptSrc__","isLocal","srcFragments","fileFragments","splice","b","baseURI","self","href","installedChunks","j","installedChunkData","promise","resolve","reject","error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","chunkIds","moreModules","runtime","some","chunkLoadingGlobal"],"sourceRoot":""}
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
try:
|
|
2
|
-
from dash import Output, no_update # type: ignore
|
|
3
|
-
except ImportError as e: # type: ignore
|
|
4
|
-
import_error = e
|
|
5
|
-
|
|
6
|
-
def Output(*args, **kwargs): # type: ignore
|
|
7
|
-
raise import_error
|
|
8
|
-
|
|
9
|
-
def no_update(*args, **kwargs): # type: ignore
|
|
10
|
-
raise import_error
|
|
11
|
-
|
|
12
|
-
|
|
13
1
|
from typing import Any, Optional, cast
|
|
14
2
|
|
|
3
|
+
from dash import Output, no_update
|
|
15
4
|
from typing_extensions import Unpack
|
|
16
5
|
|
|
17
6
|
from itables.javascript import (
|
|
@@ -34,6 +23,9 @@ def get_itable_component_kwargs(
|
|
|
34
23
|
caption: Optional[str] = None,
|
|
35
24
|
**kwargs: Unpack[ITableOptions],
|
|
36
25
|
) -> dict[str, Any]:
|
|
26
|
+
"""
|
|
27
|
+
A function that prepares the arguments for our Dash component.
|
|
28
|
+
"""
|
|
37
29
|
dt_args, other_args = get_itables_extension_arguments(df, caption, **kwargs)
|
|
38
30
|
|
|
39
31
|
style = get_expanded_style(other_args.pop("style"))
|
|
@@ -14,6 +14,7 @@ classifiers = [
|
|
|
14
14
|
"Development Status :: 5 - Production/Stable",
|
|
15
15
|
"License :: OSI Approved :: MIT License",
|
|
16
16
|
"Framework :: Jupyter",
|
|
17
|
+
"Framework :: Dash",
|
|
17
18
|
"Intended Audience :: Developers",
|
|
18
19
|
"Intended Audience :: Science/Research",
|
|
19
20
|
"Programming Language :: Python",
|
|
@@ -23,6 +24,7 @@ classifiers = [
|
|
|
23
24
|
"Programming Language :: Python :: 3.11",
|
|
24
25
|
"Programming Language :: Python :: 3.12",
|
|
25
26
|
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Typing :: Typed",
|
|
26
28
|
]
|
|
27
29
|
requires-python = ">= 3.9"
|
|
28
30
|
dependencies = ["IPython", "pandas", "numpy"]
|
|
@@ -126,5 +128,15 @@ artifacts = [
|
|
|
126
128
|
|
|
127
129
|
[tool.pyright]
|
|
128
130
|
typeCheckingMode = "standard"
|
|
129
|
-
ignore = [
|
|
130
|
-
|
|
131
|
+
ignore = [
|
|
132
|
+
"apps/marimo",
|
|
133
|
+
"src/itables_for_dash/ITable.py",
|
|
134
|
+
]
|
|
135
|
+
strict = [
|
|
136
|
+
"docs",
|
|
137
|
+
"apps",
|
|
138
|
+
"src/itables_for_dash",
|
|
139
|
+
"src/itables/__init__.py",
|
|
140
|
+
"src/itables/dash.py",
|
|
141
|
+
"src/itables/streamlit.py",
|
|
142
|
+
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/css/main.691d312a.css.map
RENAMED
|
File without changes
|
|
File without changes
|
{itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/js/main.e0eadfc1.js.LICENSE.txt
RENAMED
|
File without changes
|
{itables-2.4.1 → itables-2.4.2}/itables/itables_for_streamlit/static/js/main.e0eadfc1.js.map
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|