figpack 0.2.34__py3-none-any.whl → 0.2.36__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.
Potentially problematic release.
This version of figpack might be problematic. Click here for more details.
- figpack/__init__.py +1 -1
- figpack/cli.py +64 -2
- figpack/core/_bundle_utils.py +6 -6
- figpack/core/_file_handler.py +1 -1
- figpack/core/_save_figure.py +6 -6
- figpack/core/_server_manager.py +10 -3
- figpack/core/_show_view.py +1 -1
- figpack/core/_upload_bundle.py +16 -10
- figpack/core/_view_figure.py +15 -10
- figpack/core/extension_view.py +8 -4
- figpack/core/figpack_extension.py +1 -1
- figpack/core/figpack_view.py +22 -12
- figpack/core/zarr.py +2 -2
- figpack/figpack-figure-dist/assets/{index-oZ4K3Bj2.js → index-Bt8OPETP.js} +15 -15
- figpack/figpack-figure-dist/index.html +1 -1
- figpack/views/Box.py +2 -2
- figpack/views/Image.py +1 -2
- figpack/views/PlotlyExtension/PlotlyExtension.py +12 -12
- figpack/views/Spectrogram.py +2 -0
- figpack/views/TimeseriesGraph.py +17 -13
- {figpack-0.2.34.dist-info → figpack-0.2.36.dist-info}/METADATA +22 -1
- {figpack-0.2.34.dist-info → figpack-0.2.36.dist-info}/RECORD +26 -26
- {figpack-0.2.34.dist-info → figpack-0.2.36.dist-info}/WHEEL +0 -0
- {figpack-0.2.34.dist-info → figpack-0.2.36.dist-info}/entry_points.txt +0 -0
- {figpack-0.2.34.dist-info → figpack-0.2.36.dist-info}/licenses/LICENSE +0 -0
- {figpack-0.2.34.dist-info → figpack-0.2.36.dist-info}/top_level.txt +0 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// Allow script injection from trusted domains (see src/main.tsx)
|
|
10
10
|
window.script_injection_allowed_domains = ['https://manage.figpack.org', 'https://figpack.org'];
|
|
11
11
|
</script>
|
|
12
|
-
<script type="module" crossorigin src="./assets/index-
|
|
12
|
+
<script type="module" crossorigin src="./assets/index-Bt8OPETP.js"></script>
|
|
13
13
|
<link rel="stylesheet" crossorigin href="./assets/index-V5m_wCvw.css">
|
|
14
14
|
</head>
|
|
15
15
|
<body>
|
figpack/views/Box.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Box view for figpack - a layout container that handles other views
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import List, Literal, Optional
|
|
6
6
|
|
|
7
7
|
from ..core.figpack_view import FigpackView
|
|
8
8
|
from ..core.zarr import Group
|
|
@@ -21,7 +21,7 @@ class Box(FigpackView):
|
|
|
21
21
|
show_titles: bool = True,
|
|
22
22
|
items: List[LayoutItem],
|
|
23
23
|
title: Optional[str] = None,
|
|
24
|
-
):
|
|
24
|
+
) -> None:
|
|
25
25
|
"""
|
|
26
26
|
Initialize a Box layout view
|
|
27
27
|
|
figpack/views/Image.py
CHANGED
|
@@ -5,7 +5,6 @@ Image view for figpack - displays PNG and JPG images
|
|
|
5
5
|
from typing import Union
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
|
-
import zarr
|
|
9
8
|
|
|
10
9
|
from ..core.figpack_view import FigpackView
|
|
11
10
|
from ..core.zarr import Group
|
|
@@ -16,7 +15,7 @@ class Image(FigpackView):
|
|
|
16
15
|
An image visualization component for PNG and JPG files
|
|
17
16
|
"""
|
|
18
17
|
|
|
19
|
-
def __init__(self, image_path_or_data: Union[str, bytes]):
|
|
18
|
+
def __init__(self, image_path_or_data: Union[str, bytes]) -> None:
|
|
20
19
|
"""
|
|
21
20
|
Initialize an Image view
|
|
22
21
|
|
|
@@ -55,15 +55,15 @@ class PlotlyFigure(figpack.ExtensionView):
|
|
|
55
55
|
class CustomJSONEncoder(json.JSONEncoder):
|
|
56
56
|
"""Custom JSON encoder that handles numpy arrays and datetime objects"""
|
|
57
57
|
|
|
58
|
-
def default(self,
|
|
59
|
-
if isinstance(
|
|
60
|
-
return
|
|
61
|
-
elif isinstance(
|
|
62
|
-
return
|
|
63
|
-
elif isinstance(
|
|
64
|
-
return
|
|
65
|
-
elif isinstance(
|
|
66
|
-
return str(
|
|
67
|
-
elif hasattr(
|
|
68
|
-
return
|
|
69
|
-
return super().default(
|
|
58
|
+
def default(self, o):
|
|
59
|
+
if isinstance(o, np.ndarray):
|
|
60
|
+
return o.tolist()
|
|
61
|
+
elif isinstance(o, (np.integer, np.floating)):
|
|
62
|
+
return o.item()
|
|
63
|
+
elif isinstance(o, (datetime, date)):
|
|
64
|
+
return o.isoformat()
|
|
65
|
+
elif isinstance(o, np.datetime64):
|
|
66
|
+
return str(o)
|
|
67
|
+
elif hasattr(o, "isoformat"): # Handle other datetime-like objects
|
|
68
|
+
return o.isoformat()
|
|
69
|
+
return super().default(o)
|
figpack/views/Spectrogram.py
CHANGED
|
@@ -62,12 +62,14 @@ class Spectrogram(FigpackView):
|
|
|
62
62
|
|
|
63
63
|
# Store frequency information
|
|
64
64
|
if uniform_specified:
|
|
65
|
+
assert frequency_delta_hz is not None, "Frequency delta must be provided"
|
|
65
66
|
assert frequency_delta_hz > 0, "Frequency delta must be positive"
|
|
66
67
|
self.uniform_frequencies = True
|
|
67
68
|
self.frequency_min_hz = frequency_min_hz
|
|
68
69
|
self.frequency_delta_hz = frequency_delta_hz
|
|
69
70
|
self.frequencies = None
|
|
70
71
|
else:
|
|
72
|
+
assert frequencies is not None, "Frequencies array must be provided"
|
|
71
73
|
assert (
|
|
72
74
|
len(frequencies) == data.shape[1]
|
|
73
75
|
), f"Number of frequencies ({len(frequencies)}) must match data frequency dimension ({data.shape[1]})"
|
figpack/views/TimeseriesGraph.py
CHANGED
|
@@ -3,7 +3,7 @@ Views module for figpack - contains visualization components
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import math
|
|
6
|
-
from typing import Any, Dict, List, Optional, Union
|
|
6
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ class TimeseriesGraph(FigpackView):
|
|
|
26
26
|
hide_nav_toolbar: bool = False,
|
|
27
27
|
hide_time_axis_labels: bool = False,
|
|
28
28
|
y_label: str = "",
|
|
29
|
-
):
|
|
29
|
+
) -> None:
|
|
30
30
|
"""
|
|
31
31
|
Initialize a TimeseriesGraph
|
|
32
32
|
|
|
@@ -54,8 +54,8 @@ class TimeseriesGraph(FigpackView):
|
|
|
54
54
|
self,
|
|
55
55
|
*,
|
|
56
56
|
name: str,
|
|
57
|
-
t: np.ndarray,
|
|
58
|
-
y: np.ndarray,
|
|
57
|
+
t: Union[np.ndarray, List[float]],
|
|
58
|
+
y: Union[np.ndarray, List[float]],
|
|
59
59
|
color: str = "blue",
|
|
60
60
|
width: float = 1.0,
|
|
61
61
|
dash: Optional[List[float]] = None,
|
|
@@ -241,7 +241,7 @@ class TGLineSeries:
|
|
|
241
241
|
color: str,
|
|
242
242
|
width: float,
|
|
243
243
|
dash: Optional[List[float]],
|
|
244
|
-
):
|
|
244
|
+
) -> None:
|
|
245
245
|
assert t.ndim == 1, "Time array must be 1-dimensional"
|
|
246
246
|
assert y.ndim == 1, "Y array must be 1-dimensional"
|
|
247
247
|
assert len(t) == len(y), "Time and Y arrays must have the same length"
|
|
@@ -274,7 +274,7 @@ class TGMarkerSeries:
|
|
|
274
274
|
color: str,
|
|
275
275
|
radius: float,
|
|
276
276
|
shape: str,
|
|
277
|
-
):
|
|
277
|
+
) -> None:
|
|
278
278
|
assert t.ndim == 1, "Time array must be 1-dimensional"
|
|
279
279
|
assert y.ndim == 1, "Y array must be 1-dimensional"
|
|
280
280
|
assert len(t) == len(y), "Time and Y arrays must have the same length"
|
|
@@ -309,7 +309,7 @@ class TGIntervalSeries:
|
|
|
309
309
|
t_end: np.ndarray,
|
|
310
310
|
color: str,
|
|
311
311
|
alpha: float,
|
|
312
|
-
):
|
|
312
|
+
) -> None:
|
|
313
313
|
assert t_start.ndim == 1, "Start time array must be 1-dimensional"
|
|
314
314
|
assert t_end.ndim == 1, "End time array must be 1-dimensional"
|
|
315
315
|
assert len(t_start) == len(
|
|
@@ -352,7 +352,7 @@ class TGUniformSeries:
|
|
|
352
352
|
channel_spacing: Optional[float] = None,
|
|
353
353
|
auto_channel_spacing: Optional[float] = None,
|
|
354
354
|
timestamps_for_inserting_nans: Optional[np.ndarray] = None,
|
|
355
|
-
):
|
|
355
|
+
) -> None:
|
|
356
356
|
assert sampling_frequency_hz > 0, "Sampling frequency must be positive"
|
|
357
357
|
|
|
358
358
|
# Handle both 1D and 2D data
|
|
@@ -392,7 +392,11 @@ class TGUniformSeries:
|
|
|
392
392
|
)
|
|
393
393
|
rms_estimate = mad / 0.6745 # Convert MAD to RMS estimate
|
|
394
394
|
channel_spacing = auto_channel_spacing * np.nanmedian(rms_estimate)
|
|
395
|
-
if
|
|
395
|
+
if (
|
|
396
|
+
channel_spacing is None
|
|
397
|
+
or (channel_spacing <= 0)
|
|
398
|
+
or np.isnan(channel_spacing)
|
|
399
|
+
):
|
|
396
400
|
channel_spacing = 1.0 # Fallback to default spacing if estimate fails
|
|
397
401
|
self.channel_spacing = channel_spacing
|
|
398
402
|
|
|
@@ -437,7 +441,7 @@ class TGUniformSeries:
|
|
|
437
441
|
# Prepare downsampled arrays for efficient rendering
|
|
438
442
|
self.downsampled_data = self._compute_downsampled_data()
|
|
439
443
|
|
|
440
|
-
def _compute_downsampled_data(self) ->
|
|
444
|
+
def _compute_downsampled_data(self) -> Dict[int, np.ndarray]:
|
|
441
445
|
"""
|
|
442
446
|
Compute downsampled arrays at power-of-4 factors using a vectorized
|
|
443
447
|
min/max pyramid with NaN padding for partial bins.
|
|
@@ -512,8 +516,8 @@ class TGUniformSeries:
|
|
|
512
516
|
return downsampled
|
|
513
517
|
|
|
514
518
|
def _calculate_optimal_chunk_size(
|
|
515
|
-
self, shape:
|
|
516
|
-
) ->
|
|
519
|
+
self, shape: Tuple[int, ...], target_size_mb: float = 5.0
|
|
520
|
+
) -> Tuple[int, ...]:
|
|
517
521
|
"""
|
|
518
522
|
Calculate optimal chunk size for Zarr storage targeting ~5MB per chunk
|
|
519
523
|
|
|
@@ -610,7 +614,7 @@ def insert_nans_based_on_timestamps(
|
|
|
610
614
|
start_time_sec: float,
|
|
611
615
|
sampling_frequency_hz: float,
|
|
612
616
|
timestamps: np.ndarray,
|
|
613
|
-
):
|
|
617
|
+
) -> np.ndarray:
|
|
614
618
|
end_timestamps = timestamps[-1]
|
|
615
619
|
ret_length = int((end_timestamps - start_time_sec) * sampling_frequency_hz) + 1
|
|
616
620
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: figpack
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.36
|
|
4
4
|
Summary: A Python package for creating shareable, interactive visualizations in the browser
|
|
5
5
|
Author-email: Jeremy Magland <jmagland@flatironinstitute.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -114,6 +114,27 @@ graph.show(open_in_browser=True, title="Quick Start Example")
|
|
|
114
114
|
|
|
115
115
|
Apache-2.0
|
|
116
116
|
|
|
117
|
+
## Citation
|
|
118
|
+
|
|
119
|
+
If you use figpack in your research, please cite it:
|
|
120
|
+
|
|
121
|
+
[](https://doi.org/10.5281/zenodo.17419621)
|
|
122
|
+
|
|
123
|
+
```bibtex
|
|
124
|
+
@software{magland_figpack_2025,
|
|
125
|
+
author = {Magland, Jeremy},
|
|
126
|
+
title = {figpack},
|
|
127
|
+
year = 2025,
|
|
128
|
+
publisher = {Zenodo},
|
|
129
|
+
doi = {10.5281/zenodo.17419621},
|
|
130
|
+
url = {https://doi.org/10.5281/zenodo.17419621}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Or in APA format:
|
|
135
|
+
|
|
136
|
+
> Magland, J. (2025). figpack (Version 0.2.36) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.17419621
|
|
137
|
+
|
|
117
138
|
## Contributing
|
|
118
139
|
|
|
119
140
|
Visit the [GitHub repository](https://github.com/flatironinstitute/figpack) for issues, contributions, and the latest updates.
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
figpack/__init__.py,sha256=
|
|
2
|
-
figpack/cli.py,sha256=
|
|
1
|
+
figpack/__init__.py,sha256=8eZgm8Wp8nuRXUKviVwSP1Lackqcld64neeZJHF-q0E,358
|
|
2
|
+
figpack/cli.py,sha256=A3mlfVUmZTzbDiDCyZ0OAR_D4wCgTaasATh1Ukr0sto,13310
|
|
3
3
|
figpack/extensions.py,sha256=mILB4_F1RHkca4I7t88zh74IX8VCmfT7XFZZT4XYdNw,13009
|
|
4
4
|
figpack/core/__init__.py,sha256=7zU6O1piTk07aeCfbU81QqTgSHIO2n5MZ4LFNmsrtfs,192
|
|
5
|
-
figpack/core/_bundle_utils.py,sha256=
|
|
6
|
-
figpack/core/_file_handler.py,sha256=
|
|
7
|
-
figpack/core/_save_figure.py,sha256=
|
|
8
|
-
figpack/core/_server_manager.py,sha256=
|
|
9
|
-
figpack/core/_show_view.py,sha256=
|
|
10
|
-
figpack/core/_upload_bundle.py,sha256=
|
|
11
|
-
figpack/core/_view_figure.py,sha256=
|
|
5
|
+
figpack/core/_bundle_utils.py,sha256=acr1ZnHLgyBuUQt3uEvJP5l_lH1EGP6D5WWR9tJDsdQ,9133
|
|
6
|
+
figpack/core/_file_handler.py,sha256=UF4-mQmsj4XuutrO7qPAVFEZb-RRp9I17P75qQ3se80,6987
|
|
7
|
+
figpack/core/_save_figure.py,sha256=ZboTlu5N609GmBlQ7rni5p7AP1mvCelEjHBHWeLWGOM,1166
|
|
8
|
+
figpack/core/_server_manager.py,sha256=5Rez_8ku4DjMpeX7uJ1QN7DtZM_AgOjMqaY7PDWaFNU,12637
|
|
9
|
+
figpack/core/_show_view.py,sha256=nLsVOuuy5-NLSAK8qMjxmRart3TAL1wH1duTcIH_mGA,5187
|
|
10
|
+
figpack/core/_upload_bundle.py,sha256=glOnl6LC-m3vslU4hT7AoMLpUPjzd4hrvYJNpnqBcTY,15109
|
|
11
|
+
figpack/core/_view_figure.py,sha256=FVPvSOa1hW2Th-X778VwKytfNpudoFNb1LK7eY43p44,5568
|
|
12
12
|
figpack/core/config.py,sha256=oOR7SlP192vuFhYlS-h14HnG-kd_3gaz0vshXch2RNc,173
|
|
13
|
-
figpack/core/extension_view.py,sha256=
|
|
14
|
-
figpack/core/figpack_extension.py,sha256=
|
|
15
|
-
figpack/core/figpack_view.py,sha256=
|
|
16
|
-
figpack/core/zarr.py,sha256=
|
|
17
|
-
figpack/figpack-figure-dist/index.html,sha256=
|
|
13
|
+
figpack/core/extension_view.py,sha256=qh1g7H_YfOF0eLAl-c7uZlv7A8Ssm8VbrhRfGsjtHto,1322
|
|
14
|
+
figpack/core/figpack_extension.py,sha256=F4q6poPihwVnjWQtasZjvzB0IkqFfgJuv8Xb9N4eNOA,2260
|
|
15
|
+
figpack/core/figpack_view.py,sha256=LCwydF_M03gvlAGjU9CMWFMyXGlV0EkfhzgAU9gxPWc,7292
|
|
16
|
+
figpack/core/zarr.py,sha256=wKi8G2MksdTbZUA3Yc-huhIplrOWCgkmYnn8NMftA7k,1666
|
|
17
|
+
figpack/figpack-figure-dist/index.html,sha256=mQLmYOP3kaMGSy2bNnSLFRcOfuDX37UMLPPyLXXwT50,688
|
|
18
|
+
figpack/figpack-figure-dist/assets/index-Bt8OPETP.js,sha256=dHJfsfbd3_M91vmWdwz3YggVU0BrTbElV6QZB0vlEBo,1114580
|
|
18
19
|
figpack/figpack-figure-dist/assets/index-V5m_wCvw.css,sha256=WRtQLW6SNlTlLtepSOt89t1z41SD7XzYUyRldqowjMM,7286
|
|
19
|
-
figpack/figpack-figure-dist/assets/index-oZ4K3Bj2.js,sha256=EAPl6sa9RTktPw1pB2abxPc9QN9E1orXtgZHUs35IV4,1114655
|
|
20
20
|
figpack/figpack-figure-dist/assets/neurosift-logo-CLsuwLMO.png,sha256=g5m-TwrGh5f6-9rXtWV-znH4B0nHgc__0GWclRDLUHs,9307
|
|
21
|
-
figpack/views/Box.py,sha256=
|
|
21
|
+
figpack/views/Box.py,sha256=WTp69JiytmcocdkKR4k-qLKMB9soiu_8uOKHeO6mtUQ,2416
|
|
22
22
|
figpack/views/CaptionedView.py,sha256=Lgv4ZMs0LqHuzLIjEGVZhq2zzv-Ufa9pqUCyky8DuCY,1908
|
|
23
23
|
figpack/views/DataFrame.py,sha256=VGspmfWtnZ4Gvea5zd-ODpiJPQEp8gVv-ScDhVVCeyA,3400
|
|
24
24
|
figpack/views/Gallery.py,sha256=15ukt9CmgkbT8q_okEYYDESW1E7vOJkVPombSlrEWKw,3324
|
|
25
25
|
figpack/views/GalleryItem.py,sha256=b_upJno5P3ANSulbG-h3t6Xj56tPGJ7iVxqyiZu3zaQ,1244
|
|
26
26
|
figpack/views/Iframe.py,sha256=F7q46W2UO1oDcG0IpAWgIxbMtRo9dPORJY8Msu3Tm6Y,1050
|
|
27
|
-
figpack/views/Image.py,sha256=
|
|
27
|
+
figpack/views/Image.py,sha256=z9PEnaGk470Zy5q06e2hIoHV53XSGpouMGT4bZf4ixA,3737
|
|
28
28
|
figpack/views/LayoutItem.py,sha256=wy8DggkIzZpU0F1zFIBceS7HpBb6lu-A3hpYINQzedk,1595
|
|
29
29
|
figpack/views/Markdown.py,sha256=yKMnWpxT0o9tRsPHjbcdZCgXpE67WNV-R66EAHdE2nA,1301
|
|
30
30
|
figpack/views/MatplotlibFigure.py,sha256=697xTOkNxcwYZrLoYOzh4CuME4NDUpIYzX-ckLE5aWU,2422
|
|
31
31
|
figpack/views/MountainLayout.py,sha256=JGvrhzqLR2im5d-m0TsZNy06KOR5iGfDlinrRqHpQsQ,2680
|
|
32
32
|
figpack/views/MountainLayoutItem.py,sha256=arYO1pD9RpXfHQKxtFagl66bjqSzEdafIf8ldDEMTD0,1451
|
|
33
33
|
figpack/views/MultiChannelTimeseries.py,sha256=6AkEbAsdM6fvZVsa3jakIjEcx6LNWhF0fbS00e33heM,8291
|
|
34
|
-
figpack/views/Spectrogram.py,sha256=
|
|
34
|
+
figpack/views/Spectrogram.py,sha256=YuxEbqDJhhD6R4z6aIR8zzPtk6Wcszjq5V5NtY_1s8w,9502
|
|
35
35
|
figpack/views/Splitter.py,sha256=BR2L-8aqicTubS1rSzsQ3XnhoJcX5GcfEnVWtEWEs0w,2016
|
|
36
36
|
figpack/views/TabLayout.py,sha256=AqdHPLcP2-caWjxbkC8r8m60z8n_eyZrIBGOOPSVNCs,1908
|
|
37
37
|
figpack/views/TabLayoutItem.py,sha256=xmHA0JsW_6naJze4_mQuP_Fy0Nm17p2N7w_AsmVRp8k,880
|
|
38
|
-
figpack/views/TimeseriesGraph.py,sha256=
|
|
38
|
+
figpack/views/TimeseriesGraph.py,sha256=0s0Uc-4iuvnoosAh5-yJDYe0UyvWDMIJOqlNqb_dZdA,21931
|
|
39
39
|
figpack/views/__init__.py,sha256=eZVhNCRRUIYtXou__k2tfNjPKyrc576whfZsVFagofY,709
|
|
40
|
-
figpack/views/PlotlyExtension/PlotlyExtension.py,sha256=
|
|
40
|
+
figpack/views/PlotlyExtension/PlotlyExtension.py,sha256=MehIrw3ZMjHc4LjKd6ZYKnMi0828bX2ehi68KcW4_P8,2125
|
|
41
41
|
figpack/views/PlotlyExtension/__init__.py,sha256=80Wy1mDMWyagjuR99ECxJePIYpRQ6TSyHkB0uZoBZ_0,70
|
|
42
42
|
figpack/views/PlotlyExtension/_plotly_extension.py,sha256=yZjG1NMGlQedeeLdV6TQWpi_NTm5Wfk5eWbXEdZbbFE,1455
|
|
43
43
|
figpack/views/PlotlyExtension/plotly_view.js,sha256=9BjgOPkqGl87SSonnb48nFeQV3UTIi1trpSPxd9qlKo,3055
|
|
44
|
-
figpack-0.2.
|
|
45
|
-
figpack-0.2.
|
|
46
|
-
figpack-0.2.
|
|
47
|
-
figpack-0.2.
|
|
48
|
-
figpack-0.2.
|
|
49
|
-
figpack-0.2.
|
|
44
|
+
figpack-0.2.36.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
45
|
+
figpack-0.2.36.dist-info/METADATA,sha256=myVzC4qQnV8TzUjx9gEwQwNdyUuagW14ckkkjAzmwKc,5196
|
|
46
|
+
figpack-0.2.36.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
47
|
+
figpack-0.2.36.dist-info/entry_points.txt,sha256=l6d3siH2LxXa8qJGbjAqpIZtI5AkMSyDeoRDCzdrUto,45
|
|
48
|
+
figpack-0.2.36.dist-info/top_level.txt,sha256=lMKGaC5xWmAYBx9Ac1iMokm42KFnJFjmkP2ldyvOo-c,8
|
|
49
|
+
figpack-0.2.36.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|