serverside-pivot 0.0.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.
@@ -0,0 +1,3 @@
1
+ include dash_tanstack_pivot/dash_tanstack_pivot.min.js
2
+ include dash_tanstack_pivot/package-info.json
3
+ include package.json
@@ -0,0 +1,27 @@
1
+ Metadata-Version: 2.4
2
+ Name: serverside-pivot
3
+ Version: 0.0.2
4
+ Summary: A Dash component library for enterprise-grade pivot tables built with TanStack Table v8
5
+ Author: Ramzy22
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Ramzy22/serverside_pivot
8
+ Project-URL: Repository, https://github.com/Ramzy22/serverside_pivot.git
9
+ Project-URL: Issues, https://github.com/Ramzy22/serverside_pivot/issues
10
+ Keywords: dash,pivot,tanstack,table,analytics
11
+ Classifier: Framework :: Dash
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Topic :: Software Development :: User Interfaces
21
+ Requires-Python: >=3.8
22
+ Requires-Dist: dash>=2.0.0
23
+ Provides-Extra: redis
24
+ Requires-Dist: redis>=4.0.0; extra == "redis"
25
+ Provides-Extra: dev
26
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
27
+ Requires-Dist: build>=0.10.0; extra == "dev"
@@ -0,0 +1,49 @@
1
+ # AUTO GENERATED FILE - DO NOT EDIT
2
+
3
+ import typing # noqa: F401
4
+ from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401
5
+ from dash.development.base_component import Component, _explicitize_args
6
+
7
+ ComponentType = typing.Union[
8
+ str,
9
+ int,
10
+ float,
11
+ Component,
12
+ None,
13
+ typing.Sequence[typing.Union[str, int, float, Component, None]],
14
+ ]
15
+
16
+ NumberType = typing.Union[
17
+ typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex
18
+ ]
19
+
20
+
21
+ class ColumnFilter(Component):
22
+ """A ColumnFilter component.
23
+
24
+
25
+ Keyword arguments:
26
+ """
27
+ _children_props = []
28
+ _base_nodes = ['children']
29
+ _namespace = 'dash_tanstack_pivot'
30
+ _type = 'ColumnFilter'
31
+
32
+
33
+ def __init__(
34
+ self,
35
+ options = None,
36
+ **kwargs
37
+ ):
38
+ self._prop_names = []
39
+ self._valid_wildcard_attributes = []
40
+ self.available_properties = []
41
+ self.available_wildcard_properties = []
42
+ _explicit_args = kwargs.pop('_explicit_args')
43
+ _locals = locals()
44
+ _locals.update(kwargs) # For wildcard attrs and excess named props
45
+ args = {k: _locals[k] for k in _explicit_args}
46
+
47
+ super(ColumnFilter, self).__init__(**args)
48
+
49
+ setattr(ColumnFilter, "__init__", _explicitize_args(ColumnFilter.__init__))
@@ -0,0 +1,252 @@
1
+ # AUTO GENERATED FILE - DO NOT EDIT
2
+
3
+ import typing # noqa: F401
4
+ from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401
5
+ from dash.development.base_component import Component, _explicitize_args
6
+
7
+ ComponentType = typing.Union[
8
+ str,
9
+ int,
10
+ float,
11
+ Component,
12
+ None,
13
+ typing.Sequence[typing.Union[str, int, float, Component, None]],
14
+ ]
15
+
16
+ NumberType = typing.Union[
17
+ typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex
18
+ ]
19
+
20
+
21
+ class DashTanstackPivot(Component):
22
+ """A DashTanstackPivot component.
23
+
24
+
25
+ Keyword arguments:
26
+
27
+ - id (string; optional)
28
+
29
+ - table (string; optional)
30
+
31
+ - availableFieldList (list of strings; optional)
32
+
33
+ - cellUpdate (dict; optional)
34
+
35
+ - cellUpdates (list of dicts; optional)
36
+
37
+ - colFields (list; optional)
38
+
39
+ - columnPinned (dict; optional)
40
+
41
+ - columnPinning (dict; optional)
42
+
43
+ `columnPinning` is a dict with keys:
44
+
45
+ - left (list of strings; optional)
46
+
47
+ - right (list of strings; optional)
48
+
49
+ - columnVisibility (dict; optional)
50
+
51
+ - columns (list; optional)
52
+
53
+ - conditionalFormatting (list of dicts; optional)
54
+
55
+ - data (list of dicts; optional)
56
+
57
+ - dataOffset (number; optional)
58
+
59
+ - dataVersion (number; optional)
60
+
61
+ - drillEndpoint (string; optional)
62
+
63
+ - drillThrough (dict; optional)
64
+
65
+ - expanded (dict | boolean; optional)
66
+
67
+ - filterOptions (dict; optional)
68
+
69
+ - filters (dict; optional)
70
+
71
+ - grandTotalPosition (a value equal to: 'top', 'bottom'; optional)
72
+
73
+ - persistence (boolean | string | number; optional)
74
+
75
+ - persistence_type (a value equal to: 'local', 'session', 'memory'; optional)
76
+
77
+ - pinningOptions (dict; optional)
78
+
79
+ `pinningOptions` is a dict with keys:
80
+
81
+ - maxPinnedLeft (number; optional)
82
+
83
+ - maxPinnedRight (number; optional)
84
+
85
+ - suppressMovable (boolean; optional)
86
+
87
+ - lockPinned (boolean; optional)
88
+
89
+ - pinningPresets (list of dicts; optional)
90
+
91
+ `pinningPresets` is a list of dicts with keys:
92
+
93
+ - name (string; optional)
94
+
95
+ - config (dict; optional)
96
+
97
+ - reset (boolean | number | string | dict | list; optional)
98
+
99
+ - rowCount (number; optional)
100
+
101
+ - rowFields (list; optional)
102
+
103
+ - rowMove (dict; optional)
104
+
105
+ - rowPinned (dict; optional)
106
+
107
+ - rowPinning (dict; optional)
108
+
109
+ `rowPinning` is a dict with keys:
110
+
111
+ - top (list of strings; optional)
112
+
113
+ - bottom (list of strings; optional)
114
+
115
+ - serverSide (boolean; optional)
116
+
117
+ - showColTotals (boolean; optional)
118
+
119
+ - showRowTotals (boolean; optional)
120
+
121
+ - sortEvent (dict; optional)
122
+
123
+ - sortLock (boolean; optional)
124
+
125
+ - sortOptions (dict; optional)
126
+
127
+ `sortOptions` is a dict with keys:
128
+
129
+ - naturalSort (boolean; optional)
130
+
131
+ - caseSensitive (boolean; optional)
132
+
133
+ - columnOptions (dict; optional)
134
+
135
+ - sorting (list; optional)
136
+
137
+ - valConfigs (list; optional)
138
+
139
+ - validationRules (dict; optional)
140
+
141
+ - viewState (dict; optional)
142
+
143
+ - savedView (dict; optional)
144
+
145
+ - viewport (dict; optional)"""
146
+ _children_props = []
147
+ _base_nodes = ['children']
148
+ _namespace = 'dash_tanstack_pivot'
149
+ _type = 'DashTanstackPivot'
150
+ ColumnPinning = TypedDict(
151
+ "ColumnPinning",
152
+ {
153
+ "left": NotRequired[typing.Sequence[str]],
154
+ "right": NotRequired[typing.Sequence[str]]
155
+ }
156
+ )
157
+
158
+ RowPinning = TypedDict(
159
+ "RowPinning",
160
+ {
161
+ "top": NotRequired[typing.Sequence[str]],
162
+ "bottom": NotRequired[typing.Sequence[str]]
163
+ }
164
+ )
165
+
166
+ PinningOptions = TypedDict(
167
+ "PinningOptions",
168
+ {
169
+ "maxPinnedLeft": NotRequired[NumberType],
170
+ "maxPinnedRight": NotRequired[NumberType],
171
+ "suppressMovable": NotRequired[bool],
172
+ "lockPinned": NotRequired[bool]
173
+ }
174
+ )
175
+
176
+ PinningPresets = TypedDict(
177
+ "PinningPresets",
178
+ {
179
+ "name": NotRequired[str],
180
+ "config": NotRequired[dict]
181
+ }
182
+ )
183
+
184
+ SortOptions = TypedDict(
185
+ "SortOptions",
186
+ {
187
+ "naturalSort": NotRequired[bool],
188
+ "caseSensitive": NotRequired[bool],
189
+ "columnOptions": NotRequired[dict]
190
+ }
191
+ )
192
+
193
+
194
+ def __init__(
195
+ self,
196
+ id: typing.Optional[typing.Union[str, dict]] = None,
197
+ table: typing.Optional[str] = None,
198
+ data: typing.Optional[typing.Sequence[dict]] = None,
199
+ style: typing.Optional[typing.Any] = None,
200
+ serverSide: typing.Optional[bool] = None,
201
+ rowCount: typing.Optional[NumberType] = None,
202
+ rowFields: typing.Optional[typing.Sequence] = None,
203
+ colFields: typing.Optional[typing.Sequence] = None,
204
+ valConfigs: typing.Optional[typing.Sequence] = None,
205
+ filters: typing.Optional[dict] = None,
206
+ sorting: typing.Optional[typing.Sequence] = None,
207
+ expanded: typing.Optional[typing.Union[dict, bool]] = None,
208
+ columns: typing.Optional[typing.Sequence] = None,
209
+ showRowTotals: typing.Optional[bool] = None,
210
+ showColTotals: typing.Optional[bool] = None,
211
+ grandTotalPosition: typing.Optional[Literal["top", "bottom"]] = None,
212
+ filterOptions: typing.Optional[dict] = None,
213
+ viewport: typing.Optional[dict] = None,
214
+ cellUpdate: typing.Optional[dict] = None,
215
+ cellUpdates: typing.Optional[typing.Sequence[dict]] = None,
216
+ rowMove: typing.Optional[dict] = None,
217
+ drillThrough: typing.Optional[dict] = None,
218
+ drillEndpoint: typing.Optional[str] = None,
219
+ conditionalFormatting: typing.Optional[typing.Sequence[dict]] = None,
220
+ validationRules: typing.Optional[dict] = None,
221
+ viewState: typing.Optional[dict] = None,
222
+ savedView: typing.Optional[dict] = None,
223
+ columnPinning: typing.Optional["ColumnPinning"] = None,
224
+ rowPinning: typing.Optional["RowPinning"] = None,
225
+ columnPinned: typing.Optional[dict] = None,
226
+ rowPinned: typing.Optional[dict] = None,
227
+ columnVisibility: typing.Optional[dict] = None,
228
+ reset: typing.Optional[typing.Any] = None,
229
+ persistence: typing.Optional[typing.Union[bool, str, NumberType]] = None,
230
+ persistence_type: typing.Optional[Literal["local", "session", "memory"]] = None,
231
+ pinningOptions: typing.Optional["PinningOptions"] = None,
232
+ pinningPresets: typing.Optional[typing.Sequence["PinningPresets"]] = None,
233
+ sortOptions: typing.Optional["SortOptions"] = None,
234
+ sortLock: typing.Optional[bool] = None,
235
+ sortEvent: typing.Optional[dict] = None,
236
+ availableFieldList: typing.Optional[typing.Sequence[str]] = None,
237
+ dataOffset: typing.Optional[NumberType] = None,
238
+ dataVersion: typing.Optional[NumberType] = None,
239
+ **kwargs
240
+ ):
241
+ self._prop_names = ['id', 'table', 'availableFieldList', 'cellUpdate', 'cellUpdates', 'colFields', 'columnPinned', 'columnPinning', 'columnVisibility', 'columns', 'conditionalFormatting', 'data', 'dataOffset', 'dataVersion', 'drillEndpoint', 'drillThrough', 'expanded', 'filterOptions', 'filters', 'grandTotalPosition', 'persistence', 'persistence_type', 'pinningOptions', 'pinningPresets', 'reset', 'rowCount', 'rowFields', 'rowMove', 'rowPinned', 'rowPinning', 'savedView', 'serverSide', 'showColTotals', 'showRowTotals', 'sortEvent', 'sortLock', 'sortOptions', 'sorting', 'style', 'valConfigs', 'validationRules', 'viewState', 'viewport']
242
+ self._valid_wildcard_attributes = []
243
+ self.available_properties = ['id', 'table', 'availableFieldList', 'cellUpdate', 'cellUpdates', 'colFields', 'columnPinned', 'columnPinning', 'columnVisibility', 'columns', 'conditionalFormatting', 'data', 'dataOffset', 'dataVersion', 'drillEndpoint', 'drillThrough', 'expanded', 'filterOptions', 'filters', 'grandTotalPosition', 'persistence', 'persistence_type', 'pinningOptions', 'pinningPresets', 'reset', 'rowCount', 'rowFields', 'rowMove', 'rowPinned', 'rowPinning', 'savedView', 'serverSide', 'showColTotals', 'showRowTotals', 'sortEvent', 'sortLock', 'sortOptions', 'sorting', 'style', 'valConfigs', 'validationRules', 'viewState', 'viewport']
244
+ self.available_wildcard_properties = []
245
+ _explicit_args = kwargs.pop('_explicit_args')
246
+ _locals = locals()
247
+ _locals.update(kwargs) # For wildcard attrs and excess named props
248
+ args = {k: _locals[k] for k in _explicit_args}
249
+
250
+ super(DashTanstackPivot, self).__init__(**args)
251
+
252
+ setattr(DashTanstackPivot, "__init__", _explicitize_args(DashTanstackPivot.__init__))
@@ -0,0 +1,49 @@
1
+ # AUTO GENERATED FILE - DO NOT EDIT
2
+
3
+ import typing # noqa: F401
4
+ from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401
5
+ from dash.development.base_component import Component, _explicitize_args
6
+
7
+ ComponentType = typing.Union[
8
+ str,
9
+ int,
10
+ float,
11
+ Component,
12
+ None,
13
+ typing.Sequence[typing.Union[str, int, float, Component, None]],
14
+ ]
15
+
16
+ NumberType = typing.Union[
17
+ typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex
18
+ ]
19
+
20
+
21
+ class FilterPopover(Component):
22
+ """A FilterPopover component.
23
+
24
+
25
+ Keyword arguments:
26
+ """
27
+ _children_props = []
28
+ _base_nodes = ['children']
29
+ _namespace = 'dash_tanstack_pivot'
30
+ _type = 'FilterPopover'
31
+
32
+
33
+ def __init__(
34
+ self,
35
+ options = None,
36
+ **kwargs
37
+ ):
38
+ self._prop_names = []
39
+ self._valid_wildcard_attributes = []
40
+ self.available_properties = []
41
+ self.available_wildcard_properties = []
42
+ _explicit_args = kwargs.pop('_explicit_args')
43
+ _locals = locals()
44
+ _locals.update(kwargs) # For wildcard attrs and excess named props
45
+ args = {k: _locals[k] for k in _explicit_args}
46
+
47
+ super(FilterPopover, self).__init__(**args)
48
+
49
+ setattr(FilterPopover, "__init__", _explicitize_args(FilterPopover.__init__))
@@ -0,0 +1,49 @@
1
+ # AUTO GENERATED FILE - DO NOT EDIT
2
+
3
+ import typing # noqa: F401
4
+ from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401
5
+ from dash.development.base_component import Component, _explicitize_args
6
+
7
+ ComponentType = typing.Union[
8
+ str,
9
+ int,
10
+ float,
11
+ Component,
12
+ None,
13
+ typing.Sequence[typing.Union[str, int, float, Component, None]],
14
+ ]
15
+
16
+ NumberType = typing.Union[
17
+ typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex
18
+ ]
19
+
20
+
21
+ class MultiSelectFilter(Component):
22
+ """A MultiSelectFilter component.
23
+
24
+
25
+ Keyword arguments:
26
+ """
27
+ _children_props = []
28
+ _base_nodes = ['children']
29
+ _namespace = 'dash_tanstack_pivot'
30
+ _type = 'MultiSelectFilter'
31
+
32
+
33
+ def __init__(
34
+ self,
35
+ options = None,
36
+ **kwargs
37
+ ):
38
+ self._prop_names = []
39
+ self._valid_wildcard_attributes = []
40
+ self.available_properties = []
41
+ self.available_wildcard_properties = []
42
+ _explicit_args = kwargs.pop('_explicit_args')
43
+ _locals = locals()
44
+ _locals.update(kwargs) # For wildcard attrs and excess named props
45
+ args = {k: _locals[k] for k in _explicit_args}
46
+
47
+ super(MultiSelectFilter, self).__init__(**args)
48
+
49
+ setattr(MultiSelectFilter, "__init__", _explicitize_args(MultiSelectFilter.__init__))
@@ -0,0 +1,49 @@
1
+ # AUTO GENERATED FILE - DO NOT EDIT
2
+
3
+ import typing # noqa: F401
4
+ from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401
5
+ from dash.development.base_component import Component, _explicitize_args
6
+
7
+ ComponentType = typing.Union[
8
+ str,
9
+ int,
10
+ float,
11
+ Component,
12
+ None,
13
+ typing.Sequence[typing.Union[str, int, float, Component, None]],
14
+ ]
15
+
16
+ NumberType = typing.Union[
17
+ typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex
18
+ ]
19
+
20
+
21
+ class StatusBar(Component):
22
+ """A StatusBar component.
23
+
24
+
25
+ Keyword arguments:
26
+ """
27
+ _children_props = []
28
+ _base_nodes = ['children']
29
+ _namespace = 'dash_tanstack_pivot'
30
+ _type = 'StatusBar'
31
+
32
+
33
+ def __init__(
34
+ self,
35
+ isLoading = None,
36
+ **kwargs
37
+ ):
38
+ self._prop_names = []
39
+ self._valid_wildcard_attributes = []
40
+ self.available_properties = []
41
+ self.available_wildcard_properties = []
42
+ _explicit_args = kwargs.pop('_explicit_args')
43
+ _locals = locals()
44
+ _locals.update(kwargs) # For wildcard attrs and excess named props
45
+ args = {k: _locals[k] for k in _explicit_args}
46
+
47
+ super(StatusBar, self).__init__(**args)
48
+
49
+ setattr(StatusBar, "__init__", _explicitize_args(StatusBar.__init__))
@@ -0,0 +1,49 @@
1
+ # AUTO GENERATED FILE - DO NOT EDIT
2
+
3
+ import typing # noqa: F401
4
+ from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401
5
+ from dash.development.base_component import Component, _explicitize_args
6
+
7
+ ComponentType = typing.Union[
8
+ str,
9
+ int,
10
+ float,
11
+ Component,
12
+ None,
13
+ typing.Sequence[typing.Union[str, int, float, Component, None]],
14
+ ]
15
+
16
+ NumberType = typing.Union[
17
+ typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex
18
+ ]
19
+
20
+
21
+ class ToolPanelSection(Component):
22
+ """A ToolPanelSection component.
23
+
24
+
25
+ Keyword arguments:
26
+ """
27
+ _children_props = []
28
+ _base_nodes = ['children']
29
+ _namespace = 'dash_tanstack_pivot'
30
+ _type = 'ToolPanelSection'
31
+
32
+
33
+ def __init__(
34
+ self,
35
+ initialExpanded = None,
36
+ **kwargs
37
+ ):
38
+ self._prop_names = []
39
+ self._valid_wildcard_attributes = []
40
+ self.available_properties = []
41
+ self.available_wildcard_properties = []
42
+ _explicit_args = kwargs.pop('_explicit_args')
43
+ _locals = locals()
44
+ _locals.update(kwargs) # For wildcard attrs and excess named props
45
+ args = {k: _locals[k] for k in _explicit_args}
46
+
47
+ super(ToolPanelSection, self).__init__(**args)
48
+
49
+ setattr(ToolPanelSection, "__init__", _explicitize_args(ToolPanelSection.__init__))
@@ -0,0 +1,62 @@
1
+ from __future__ import print_function as _
2
+
3
+ import os as _os
4
+ import sys as _sys
5
+ import json
6
+ try:
7
+ from importlib.metadata import version as _pkg_version
8
+ __version__ = _pkg_version("pivot-engine")
9
+ except Exception:
10
+ __version__ = None
11
+
12
+ import dash as _dash
13
+
14
+ # noinspection PyUnresolvedReferences
15
+ from ._imports_ import *
16
+ from ._imports_ import __all__ as _generated_all
17
+ from .DashTanstackPivot import DashTanstackPivot
18
+
19
+ __all__ = [*list(_generated_all), 'DashTanstackPivot']
20
+
21
+ if not hasattr(_dash, '__version__'):
22
+ raise TypeError('Dash requires code to be generated')
23
+
24
+ _basepath = _os.path.dirname(__file__)
25
+ _filepath = _os.path.abspath(_os.path.join(_basepath, 'package-info.json'))
26
+
27
+ with open(_filepath) as f:
28
+ package = json.load(f)
29
+
30
+ package_name = package['name'].replace(' ', '_').replace('-', '_')
31
+ # __version__ is set at top of file from importlib.metadata; fall back to package-info.json
32
+ if __version__ is None:
33
+ __version__ = package['version']
34
+
35
+ _current_path = _os.path.dirname(_os.path.abspath(__file__))
36
+
37
+ _this_module = _sys.modules[__name__]
38
+
39
+ _js_dist = [
40
+ {
41
+ 'relative_package_path': '{}.min.js'.format(package_name),
42
+ 'external_url': 'https://unpkg.com/{}/@{}/{}/{}.min.js'.format(
43
+ package_name, __version__, package_name, package_name
44
+ ),
45
+ 'namespace': package_name
46
+ },
47
+ {
48
+ 'relative_package_path': '{}.min.js.map'.format(package_name),
49
+ 'external_url': 'https://unpkg.com/{}/@{}/{}/{}.min.js.map'.format(
50
+ package_name, __version__, package_name, package_name
51
+ ),
52
+ 'namespace': package_name,
53
+ 'dynamic': True
54
+ }
55
+ ]
56
+
57
+ _css_dist = []
58
+
59
+
60
+ for _component in __all__:
61
+ setattr(locals()[_component], '_js_dist', _js_dist)
62
+ setattr(locals()[_component], '_css_dist', _css_dist)
@@ -0,0 +1,11 @@
1
+ from .ColumnFilter import ColumnFilter
2
+ from .MultiSelectFilter import MultiSelectFilter
3
+ from .ToolPanelSection import ToolPanelSection
4
+ from .StatusBar import StatusBar
5
+
6
+ __all__ = [
7
+ "ColumnFilter",
8
+ "MultiSelectFilter",
9
+ "ToolPanelSection",
10
+ "StatusBar"
11
+ ]