maidr 0.20.0__py3-none-any.whl → 0.22.0__py3-none-any.whl
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.
- maidr/__init__.py +1 -1
- maidr/api.py +1 -3
- maidr/core/context_manager.py +19 -15
- maidr/core/enum/maidr_key.py +2 -1
- maidr/core/figure_manager.py +1 -0
- maidr/core/maidr.py +24 -18
- maidr/core/plot/barplot.py +0 -1
- maidr/core/plot/grouped_barplot.py +10 -10
- maidr/core/plot/heatmap.py +9 -9
- maidr/core/plot/lineplot.py +4 -2
- maidr/core/plot/maidr_plot.py +1 -1
- maidr/core/plot/scatterplot.py +8 -9
- maidr/patch/highlight.py +10 -6
- maidr/util/environment.py +1 -1
- {maidr-0.20.0.dist-info → maidr-0.22.0.dist-info}/METADATA +1 -1
- {maidr-0.20.0.dist-info → maidr-0.22.0.dist-info}/RECORD +18 -18
- {maidr-0.20.0.dist-info → maidr-0.22.0.dist-info}/LICENSE +0 -0
- {maidr-0.20.0.dist-info → maidr-0.22.0.dist-info}/WHEEL +0 -0
maidr/__init__.py
CHANGED
maidr/api.py
CHANGED
|
@@ -20,12 +20,10 @@ def render(plot: Any) -> Tag:
|
|
|
20
20
|
|
|
21
21
|
def show(plot: Any, renderer: Literal["auto", "ipython", "browser"] = "auto") -> object:
|
|
22
22
|
ax = FigureManager.get_axes(plot)
|
|
23
|
-
htmls = []
|
|
24
23
|
if isinstance(ax, list):
|
|
25
24
|
for axes in ax:
|
|
26
25
|
maidr = FigureManager.get_maidr(axes.get_figure())
|
|
27
|
-
|
|
28
|
-
return htmls[-1].show(renderer)
|
|
26
|
+
return maidr.show(renderer)
|
|
29
27
|
else:
|
|
30
28
|
maidr = FigureManager.get_maidr(ax.get_figure())
|
|
31
29
|
return maidr.show(renderer)
|
maidr/core/context_manager.py
CHANGED
|
@@ -77,8 +77,9 @@ class HighlightContextManager:
|
|
|
77
77
|
_instance = None
|
|
78
78
|
_lock = threading.Lock()
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
elements = {}
|
|
81
|
+
elements_to_highlight = []
|
|
82
|
+
selector_ids = []
|
|
82
83
|
|
|
83
84
|
def __new__(cls):
|
|
84
85
|
if not cls._instance:
|
|
@@ -88,31 +89,34 @@ class HighlightContextManager:
|
|
|
88
89
|
return cls._instance
|
|
89
90
|
|
|
90
91
|
@classmethod
|
|
91
|
-
def is_maidr_element(cls):
|
|
92
|
-
return cls.
|
|
92
|
+
def is_maidr_element(cls, id):
|
|
93
|
+
return id in cls.elements
|
|
94
|
+
|
|
95
|
+
@classmethod
|
|
96
|
+
def get_selector_id(cls, id):
|
|
97
|
+
return cls.elements[id]
|
|
93
98
|
|
|
94
99
|
@classmethod
|
|
95
100
|
@contextlib.contextmanager
|
|
96
|
-
def set_maidr_element(cls, element):
|
|
97
|
-
if element not in cls.
|
|
101
|
+
def set_maidr_element(cls, element, id):
|
|
102
|
+
if element not in cls.elements_to_highlight:
|
|
98
103
|
yield
|
|
99
104
|
return
|
|
100
105
|
|
|
101
|
-
token_maidr_element = cls._maidr_element.set(True)
|
|
102
106
|
try:
|
|
107
|
+
cls.elements[id] = cls.selector_ids[
|
|
108
|
+
cls.elements_to_highlight.index(element)
|
|
109
|
+
]
|
|
103
110
|
yield
|
|
104
111
|
finally:
|
|
105
|
-
cls.
|
|
106
|
-
# Remove element from the context list after tagging
|
|
107
|
-
new_elements = cls._elements.get().copy()
|
|
108
|
-
new_elements.remove(element)
|
|
109
|
-
cls._elements.set(new_elements)
|
|
112
|
+
del cls.elements[id]
|
|
110
113
|
|
|
111
114
|
@classmethod
|
|
112
115
|
@contextlib.contextmanager
|
|
113
|
-
def set_maidr_elements(cls, elements: list):
|
|
114
|
-
|
|
116
|
+
def set_maidr_elements(cls, elements: list, selector_ids: list):
|
|
117
|
+
cls.elements_to_highlight = elements
|
|
118
|
+
cls.selector_ids = selector_ids
|
|
115
119
|
try:
|
|
116
120
|
yield
|
|
117
121
|
finally:
|
|
118
|
-
cls.
|
|
122
|
+
cls.elements_to_highlight.clear()
|
maidr/core/enum/maidr_key.py
CHANGED
|
@@ -5,12 +5,13 @@ class MaidrKey(str, Enum):
|
|
|
5
5
|
# Maidr info keys.
|
|
6
6
|
ID = "id"
|
|
7
7
|
ORIENTATION = "orientation"
|
|
8
|
-
SELECTOR = "
|
|
8
|
+
SELECTOR = "selectors"
|
|
9
9
|
TYPE = "type"
|
|
10
10
|
|
|
11
11
|
# Plot data keys.
|
|
12
12
|
AXES = "axes"
|
|
13
13
|
DATA = "data"
|
|
14
|
+
POINTS = "points"
|
|
14
15
|
LEVEL = "level"
|
|
15
16
|
X = "x"
|
|
16
17
|
Y = "y"
|
maidr/core/figure_manager.py
CHANGED
maidr/core/maidr.py
CHANGED
|
@@ -11,6 +11,7 @@ from typing import Any, Literal
|
|
|
11
11
|
from htmltools import HTML, HTMLDocument, Tag, tags
|
|
12
12
|
from lxml import etree
|
|
13
13
|
from matplotlib.figure import Figure
|
|
14
|
+
from matplotlib.patches import Rectangle
|
|
14
15
|
|
|
15
16
|
from maidr.core.context_manager import HighlightContextManager
|
|
16
17
|
from maidr.core.enum.maidr_key import MaidrKey
|
|
@@ -45,7 +46,7 @@ class Maidr:
|
|
|
45
46
|
self._fig = fig
|
|
46
47
|
self._plots = []
|
|
47
48
|
self.maidr_id = None
|
|
48
|
-
self.
|
|
49
|
+
self.selector_ids = []
|
|
49
50
|
self.plot_type = plot_type
|
|
50
51
|
|
|
51
52
|
@property
|
|
@@ -123,13 +124,15 @@ class Maidr:
|
|
|
123
124
|
def _create_html_tag(self) -> Tag:
|
|
124
125
|
"""Create the MAIDR HTML using HTML tags."""
|
|
125
126
|
tagged_elements = [element for plot in self._plots for element in plot.elements]
|
|
126
|
-
|
|
127
|
+
selector_ids = []
|
|
128
|
+
for i, plot in enumerate(self._plots):
|
|
129
|
+
for _ in plot.elements:
|
|
130
|
+
selector_ids.append(self.selector_ids[i])
|
|
131
|
+
|
|
132
|
+
with HighlightContextManager.set_maidr_elements(tagged_elements, selector_ids):
|
|
127
133
|
svg = self._get_svg()
|
|
128
134
|
maidr = f"\nlet maidr = {json.dumps(self._flatten_maidr(), indent=2)}\n"
|
|
129
135
|
|
|
130
|
-
# In SVG we will replace maidr=id with the unique id.
|
|
131
|
-
svg = svg.replace('maidr="true"', f'maidr="{self.selector_id}"')
|
|
132
|
-
|
|
133
136
|
# Inject plot's svg and MAIDR structure into html tag.
|
|
134
137
|
return Maidr._inject_plot(svg, maidr, self.maidr_id)
|
|
135
138
|
|
|
@@ -147,23 +150,30 @@ class Maidr:
|
|
|
147
150
|
if self.plot_type in (PlotType.LINE, PlotType.DODGED, PlotType.STACKED):
|
|
148
151
|
self._plots = [self._plots[0]]
|
|
149
152
|
maidr = [plot.schema for plot in self._plots]
|
|
150
|
-
|
|
151
|
-
if MaidrKey.SELECTOR in plot:
|
|
152
|
-
plot[MaidrKey.SELECTOR] = plot[MaidrKey.SELECTOR].replace(
|
|
153
|
-
"maidr='true'", f"maidr='{self.selector_id}'"
|
|
154
|
-
)
|
|
153
|
+
|
|
155
154
|
return maidr if len(maidr) != 1 else maidr[0]
|
|
156
155
|
|
|
157
156
|
# Now let's start building the maidr object for the newer TypeScript engine
|
|
158
157
|
|
|
158
|
+
if self.plot_type in (PlotType.DODGED, PlotType.STACKED):
|
|
159
|
+
self._plots = [self._plots[0]]
|
|
160
|
+
|
|
159
161
|
plot_schemas = []
|
|
160
162
|
|
|
161
|
-
for plot in self._plots:
|
|
163
|
+
for i, plot in enumerate(self._plots):
|
|
162
164
|
schema = plot.schema
|
|
165
|
+
|
|
163
166
|
if MaidrKey.SELECTOR in schema:
|
|
164
|
-
schema[MaidrKey.SELECTOR]
|
|
165
|
-
|
|
166
|
-
|
|
167
|
+
if isinstance(schema[MaidrKey.SELECTOR], str):
|
|
168
|
+
schema[MaidrKey.SELECTOR] = schema[MaidrKey.SELECTOR].replace(
|
|
169
|
+
"maidr='true'", f"maidr='{self.selector_ids[i]}'"
|
|
170
|
+
)
|
|
171
|
+
if isinstance(schema[MaidrKey.SELECTOR], list):
|
|
172
|
+
for j in range(len(schema[MaidrKey.SELECTOR])):
|
|
173
|
+
schema[MaidrKey.SELECTOR][j] = schema[MaidrKey.SELECTOR][
|
|
174
|
+
j
|
|
175
|
+
].replace("maidr='true'", f"maidr='{self.selector_ids[i]}'")
|
|
176
|
+
|
|
167
177
|
plot_schemas.append(
|
|
168
178
|
{
|
|
169
179
|
"schema": schema,
|
|
@@ -211,10 +221,6 @@ class Maidr:
|
|
|
211
221
|
root_svg = None
|
|
212
222
|
# Find the `svg` tag and set unique id if not present else use it.
|
|
213
223
|
for element in tree_svg.iter(tag="{http://www.w3.org/2000/svg}svg"):
|
|
214
|
-
_id = Maidr._unique_id()
|
|
215
|
-
self._set_maidr_id(_id)
|
|
216
|
-
if "id" not in element.attrib:
|
|
217
|
-
element.attrib["id"] = _id
|
|
218
224
|
if "maidr-data" not in element.attrib:
|
|
219
225
|
element.attrib["maidr-data"] = json.dumps(
|
|
220
226
|
self._flatten_maidr(), indent=2
|
maidr/core/plot/barplot.py
CHANGED
|
@@ -18,18 +18,13 @@ class GroupedBarPlot(
|
|
|
18
18
|
):
|
|
19
19
|
def __init__(self, ax: Axes, plot_type: PlotType, **kwargs) -> None:
|
|
20
20
|
super().__init__(ax, plot_type)
|
|
21
|
-
self._support_highlighting = False
|
|
22
21
|
|
|
23
22
|
def _extract_axes_data(self) -> dict:
|
|
24
23
|
base_ax_schema = super()._extract_axes_data()
|
|
25
24
|
grouped_ax_schema = {
|
|
26
|
-
MaidrKey.X.value:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
MaidrKey.FILL.value: {
|
|
30
|
-
MaidrKey.LABEL.value: "Fill",
|
|
31
|
-
MaidrKey.LEVEL.value: self.extract_level(self.ax, MaidrKey.FILL),
|
|
32
|
-
},
|
|
25
|
+
MaidrKey.X.value: self.ax.get_xlabel(),
|
|
26
|
+
MaidrKey.Y.value: self.ax.get_ylabel(),
|
|
27
|
+
MaidrKey.FILL.value: self.extract_level(self.ax, MaidrKey.FILL),
|
|
33
28
|
}
|
|
34
29
|
return self.merge_dict(base_ax_schema, grouped_ax_schema)
|
|
35
30
|
|
|
@@ -51,17 +46,22 @@ class GroupedBarPlot(
|
|
|
51
46
|
x_level = self.extract_level(self.ax)
|
|
52
47
|
data = []
|
|
53
48
|
|
|
49
|
+
self._elements.extend(
|
|
50
|
+
[patch for container in plot for patch in container.patches]
|
|
51
|
+
)
|
|
52
|
+
|
|
54
53
|
for container in plot:
|
|
55
54
|
if len(x_level) != len(container.patches):
|
|
56
55
|
return None
|
|
57
|
-
|
|
56
|
+
container_data = []
|
|
58
57
|
for x, y in zip(x_level, container.patches):
|
|
59
|
-
|
|
58
|
+
container_data.append(
|
|
60
59
|
{
|
|
61
60
|
MaidrKey.X.value: x,
|
|
62
61
|
MaidrKey.FILL.value: container.get_label(),
|
|
63
62
|
MaidrKey.Y.value: float(y.get_height()),
|
|
64
63
|
}
|
|
65
64
|
)
|
|
65
|
+
data.append(container_data)
|
|
66
66
|
|
|
67
67
|
return data
|
maidr/core/plot/heatmap.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import numpy.ma as ma
|
|
4
|
-
|
|
5
4
|
from matplotlib.axes import Axes
|
|
6
5
|
from matplotlib.cm import ScalarMappable
|
|
7
6
|
from matplotlib.collections import QuadMesh
|
|
@@ -36,23 +35,24 @@ class HeatPlot(
|
|
|
36
35
|
def _extract_axes_data(self) -> dict:
|
|
37
36
|
base_ax_schema = super()._extract_axes_data()
|
|
38
37
|
heat_ax_schema = {
|
|
39
|
-
MaidrKey.X:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
MaidrKey.Y: {
|
|
43
|
-
MaidrKey.LEVEL: self.extract_level(self.ax, MaidrKey.Y),
|
|
44
|
-
},
|
|
38
|
+
MaidrKey.X: self.ax.get_xlabel(),
|
|
39
|
+
MaidrKey.Y: self.ax.get_ylabel(),
|
|
40
|
+
MaidrKey.FILL: self._fill_label,
|
|
45
41
|
}
|
|
46
42
|
return self.merge_dict(base_ax_schema, heat_ax_schema)
|
|
47
43
|
|
|
48
|
-
def _extract_plot_data(self) ->
|
|
44
|
+
def _extract_plot_data(self) -> dict:
|
|
49
45
|
plot = self.extract_scalar_mappable(self.ax)
|
|
50
46
|
data = self._extract_scalar_mappable_data(plot)
|
|
51
47
|
|
|
52
48
|
if data is None:
|
|
53
49
|
raise ExtractionError(self.type, plot)
|
|
54
50
|
|
|
55
|
-
return
|
|
51
|
+
return {
|
|
52
|
+
MaidrKey.POINTS: data,
|
|
53
|
+
MaidrKey.X: self.extract_level(self.ax, MaidrKey.X),
|
|
54
|
+
MaidrKey.Y: self.extract_level(self.ax, MaidrKey.Y),
|
|
55
|
+
}
|
|
56
56
|
|
|
57
57
|
def _extract_scalar_mappable_data(
|
|
58
58
|
self, sm: ScalarMappable | None
|
maidr/core/plot/lineplot.py
CHANGED
|
@@ -42,8 +42,10 @@ class MultiLinePlot(MaidrPlot, LineExtractorMixin):
|
|
|
42
42
|
def __init__(self, ax: Axes, **kwargs):
|
|
43
43
|
super().__init__(ax, PlotType.LINE)
|
|
44
44
|
|
|
45
|
-
def _get_selector(self) -> str:
|
|
46
|
-
|
|
45
|
+
def _get_selector(self) -> Union[str, List[str]]:
|
|
46
|
+
if Environment.get_engine() == "js":
|
|
47
|
+
return "g[maidr='true'] > path"
|
|
48
|
+
return ["g[maidr='true'] > path"]
|
|
47
49
|
|
|
48
50
|
def _extract_plot_data(self) -> list[dict]:
|
|
49
51
|
plot = self.extract_lines(self.ax)
|
maidr/core/plot/maidr_plot.py
CHANGED
|
@@ -66,7 +66,7 @@ class MaidrPlot(ABC):
|
|
|
66
66
|
|
|
67
67
|
def _get_selector(self) -> str:
|
|
68
68
|
"""Return the CSS selector for highlighting elements."""
|
|
69
|
-
return "
|
|
69
|
+
return "g[maidr='true'] > path"
|
|
70
70
|
|
|
71
71
|
def _extract_axes_data(self) -> dict:
|
|
72
72
|
"""Extract the plot's axes data"""
|
maidr/core/plot/scatterplot.py
CHANGED
|
@@ -7,6 +7,7 @@ from matplotlib.collections import PathCollection
|
|
|
7
7
|
from maidr.core.enum import MaidrKey, PlotType
|
|
8
8
|
from maidr.core.plot import MaidrPlot
|
|
9
9
|
from maidr.exception import ExtractionError
|
|
10
|
+
from maidr.util.environment import Environment
|
|
10
11
|
from maidr.util.mixin import CollectionExtractorMixin
|
|
11
12
|
|
|
12
13
|
|
|
@@ -14,8 +15,10 @@ class ScatterPlot(MaidrPlot, CollectionExtractorMixin):
|
|
|
14
15
|
def __init__(self, ax: Axes) -> None:
|
|
15
16
|
super().__init__(ax, PlotType.SCATTER)
|
|
16
17
|
|
|
17
|
-
def _get_selector(self) -> str:
|
|
18
|
-
|
|
18
|
+
def _get_selector(self) -> str | list[str]:
|
|
19
|
+
if Environment.get_engine() == "js":
|
|
20
|
+
return "g[maidr='true'] > use"
|
|
21
|
+
return ["g[maidr='true'] > g > use"]
|
|
19
22
|
|
|
20
23
|
def _extract_plot_data(self) -> list[dict]:
|
|
21
24
|
plot = self.extract_collection(self.ax, PathCollection)
|
|
@@ -35,12 +38,8 @@ class ScatterPlot(MaidrPlot, CollectionExtractorMixin):
|
|
|
35
38
|
|
|
36
39
|
return [
|
|
37
40
|
{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
MaidrKey.X: float(x),
|
|
41
|
-
MaidrKey.Y: float(y),
|
|
42
|
-
}
|
|
43
|
-
for x, y in ma.getdata(plot.get_offsets())
|
|
44
|
-
]
|
|
41
|
+
MaidrKey.X: float(x),
|
|
42
|
+
MaidrKey.Y: float(y),
|
|
45
43
|
}
|
|
44
|
+
for x, y in ma.getdata(plot.get_offsets())
|
|
46
45
|
]
|
maidr/patch/highlight.py
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import uuid
|
|
4
4
|
|
|
5
|
+
import wrapt
|
|
6
|
+
from matplotlib.backends.backend_svg import XMLWriter
|
|
5
7
|
from matplotlib.collections import PathCollection, QuadMesh
|
|
8
|
+
from matplotlib.figure import Figure
|
|
6
9
|
from matplotlib.lines import Line2D
|
|
7
10
|
from matplotlib.patches import Patch
|
|
8
|
-
from matplotlib.backends.backend_svg import XMLWriter
|
|
9
11
|
|
|
10
12
|
from maidr.core.context_manager import HighlightContextManager
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
@wrapt.patch_function_wrapper(XMLWriter, "start")
|
|
14
|
-
def inject_maidr_attribute(wrapped,
|
|
15
|
-
if HighlightContextManager.is_maidr_element():
|
|
16
|
-
kwargs["maidr"] = "
|
|
16
|
+
def inject_maidr_attribute(wrapped, instance, args, kwargs):
|
|
17
|
+
if HighlightContextManager.is_maidr_element(kwargs.get("id")):
|
|
18
|
+
kwargs["maidr"] = HighlightContextManager.get_selector_id(kwargs.get("id"))
|
|
17
19
|
return wrapped(*args, **kwargs)
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
def tag_elements(wrapped, instance, args, kwargs):
|
|
21
|
-
|
|
23
|
+
id = str(uuid.uuid4())
|
|
24
|
+
instance.set_gid(id)
|
|
25
|
+
with HighlightContextManager.set_maidr_element(instance, id):
|
|
22
26
|
return wrapped(*args, **kwargs)
|
|
23
27
|
|
|
24
28
|
|
maidr/util/environment.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: maidr
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.22.0
|
|
4
4
|
Summary: Multimodal Access and Interactive Data Representations
|
|
5
5
|
License: GPL-3.0-or-later
|
|
6
6
|
Keywords: accessibility,visualization,sonification,braille,tactile,multimodal,data representation,blind,low vision,visual impairments
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
maidr/__init__.py,sha256=
|
|
2
|
-
maidr/api.py,sha256=
|
|
1
|
+
maidr/__init__.py,sha256=2VBiSAduUh4hV98_OTtLEKhjtiMBHaxFnsoQzpCEkVU,369
|
|
2
|
+
maidr/api.py,sha256=nor5zAtz82RX2zTmfRGRIEz269mqEPGawZ9GMijbcfs,1818
|
|
3
3
|
maidr/core/__init__.py,sha256=WgxLpSEYMc4k3OyEOf1shOxfEq0ASzppEIZYmE91ThQ,25
|
|
4
|
-
maidr/core/context_manager.py,sha256=
|
|
4
|
+
maidr/core/context_manager.py,sha256=6cT7ZGOApSpC-SLD2XZWWU_H08i-nfv-JUlzXOtvWYw,3374
|
|
5
5
|
maidr/core/enum/__init__.py,sha256=9ee78L0dlxEx4ulUGVlD-J23UcUZmrGu0rXms54up3c,93
|
|
6
6
|
maidr/core/enum/library.py,sha256=e8ujT_L-McJWfoVJd1ty9K_2bwITnf1j0GPLsnAcHes,104
|
|
7
|
-
maidr/core/enum/maidr_key.py,sha256=
|
|
7
|
+
maidr/core/enum/maidr_key.py,sha256=WLLn2kSkUp4KzhMIiV6U6H5JCYuS1QjbXmR5EiyGy2E,759
|
|
8
8
|
maidr/core/enum/plot_type.py,sha256=pyfyIwlq3taqe2Z1sVUSbMsTp5QTvYBlZXsMMMclEVM,293
|
|
9
|
-
maidr/core/figure_manager.py,sha256=
|
|
10
|
-
maidr/core/maidr.py,sha256=
|
|
9
|
+
maidr/core/figure_manager.py,sha256=e6nI5pGqH0NM3yzt2jeiae4lrBlIOhkDN92GZJ3MNmk,3988
|
|
10
|
+
maidr/core/maidr.py,sha256=VYiHLGTH1tR1Ua6BC2nPMxK_FqqVr_oyndOX88s5XVc,14011
|
|
11
11
|
maidr/core/plot/__init__.py,sha256=xDIpRGM-4DfaSSL3nKcXrjdMecCHJ6en4K4nA_fPefQ,83
|
|
12
|
-
maidr/core/plot/barplot.py,sha256=
|
|
12
|
+
maidr/core/plot/barplot.py,sha256=0w-HAGi4wqB9c8qaMIv-KcjFHs99m74Tcn3fD7m1DxA,2555
|
|
13
13
|
maidr/core/plot/boxplot.py,sha256=WuHrUy6CFZRBfVDjl9MU262mfLFR6DWF_2h4zN3wcMI,5881
|
|
14
|
-
maidr/core/plot/grouped_barplot.py,sha256=
|
|
15
|
-
maidr/core/plot/heatmap.py,sha256=
|
|
14
|
+
maidr/core/plot/grouped_barplot.py,sha256=6D7KT1pjf7XP4XRERmRHYpXY83VikyGcGp-37qQZPEU,2101
|
|
15
|
+
maidr/core/plot/heatmap.py,sha256=yMS-31tS2GW4peds9LtZesMxmmTV_YfqYO5M_t5KasQ,2521
|
|
16
16
|
maidr/core/plot/histogram.py,sha256=QV5W-6ZJQQcZsrM91JJBX-ONktJzH7yg_et5_bBPfQQ,1525
|
|
17
|
-
maidr/core/plot/lineplot.py,sha256=
|
|
18
|
-
maidr/core/plot/maidr_plot.py,sha256=
|
|
17
|
+
maidr/core/plot/lineplot.py,sha256=kPLX0MBmz_Q1FKTMkoELaMSVWPWcDtxp-_VRDmGb4Pg,3447
|
|
18
|
+
maidr/core/plot/maidr_plot.py,sha256=k1-MifHMwDjD-TNQn5DIJ-ShtUiQgjxo7NjMIxGaW9Q,3303
|
|
19
19
|
maidr/core/plot/maidr_plot_factory.py,sha256=QGcHK_oquY_M2_KJVEtc5-rBAD-gm7KI1kSD7cduHzg,1691
|
|
20
|
-
maidr/core/plot/scatterplot.py,sha256=
|
|
20
|
+
maidr/core/plot/scatterplot.py,sha256=TNnd1dGCiE-qxQI30oHstF0jju50_uR08CDr-Ep4ahU,1392
|
|
21
21
|
maidr/exception/__init__.py,sha256=PzaXoYBhyZxMDcJkuxJugDx7jZeseI0El6LpxIwXyG4,46
|
|
22
22
|
maidr/exception/extraction_error.py,sha256=rd37Oxa9gn2OWFWt9AOH5fv0hNd3sAWGvpDMFBuJY2I,607
|
|
23
23
|
maidr/patch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -26,18 +26,18 @@ maidr/patch/boxplot.py,sha256=Mcz94pSf7PT3SyRsI8TDrIKVdEmiiUQouXvd05mtnfw,2846
|
|
|
26
26
|
maidr/patch/clear.py,sha256=2Sc4CIt5jRGkew3TxFsBZm-uowC9yDSxtraEcXZjmGw,396
|
|
27
27
|
maidr/patch/common.py,sha256=bRe4jruUvCIwp1t1E8Q3OuQ0eEyHgpMjXVpsPBZj4C8,843
|
|
28
28
|
maidr/patch/heatmap.py,sha256=uxLLg530Ql9KVC5rxk8vnwPHXBWWHwYgJRkyHY-tJzs,1048
|
|
29
|
-
maidr/patch/highlight.py,sha256=
|
|
29
|
+
maidr/patch/highlight.py,sha256=3RNDmy886qLPr4C083EQupeK9Rz-cYo9nRBKOG4syl4,1104
|
|
30
30
|
maidr/patch/histogram.py,sha256=tnyKkTMuzDXdyQBywhpHZgH3i2mXzOCSyfUSRM0tfUg,1315
|
|
31
31
|
maidr/patch/lineplot.py,sha256=_EyqOp8BcO-kGq9sn8PyNQ8-Bz0FsnHAufXRkTGQzBw,1025
|
|
32
32
|
maidr/patch/scatterplot.py,sha256=kln6zZwjVsdQzICalo-RnBOJrx1BnIB2xYUwItHvSNY,525
|
|
33
33
|
maidr/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
|
-
maidr/util/environment.py,sha256=
|
|
34
|
+
maidr/util/environment.py,sha256=VSDzKybCiRmUiP_SpBswVh0g78kl0FE2LhXIB8kXh_s,4554
|
|
35
35
|
maidr/util/mixin/__init__.py,sha256=aGJZNhtWh77yIVPc7ipIZm1OajigjMtCWYKPuDWTC-c,217
|
|
36
36
|
maidr/util/mixin/extractor_mixin.py,sha256=AjpgCo_dgASdTwFumfgDOoVCVioxDDoqFWphaBj5gz4,4764
|
|
37
37
|
maidr/util/mixin/merger_mixin.py,sha256=V0qLw_6DUB7X6CQ3BCMpsCQX_ZuwAhoSTm_E4xAJFKM,712
|
|
38
38
|
maidr/widget/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
39
|
maidr/widget/shiny.py,sha256=wrrw2KAIpE_A6CNQGBtNHauR1DjenA_n47qlFXX9_rk,745
|
|
40
|
-
maidr-0.
|
|
41
|
-
maidr-0.
|
|
42
|
-
maidr-0.
|
|
43
|
-
maidr-0.
|
|
40
|
+
maidr-0.22.0.dist-info/LICENSE,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
|
|
41
|
+
maidr-0.22.0.dist-info/METADATA,sha256=9gGDataWifBMLjLjpKqeQd2j1K-YRIKKU4UZOTQMvrY,2688
|
|
42
|
+
maidr-0.22.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
43
|
+
maidr-0.22.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|