modusa 0.3.87__tar.gz → 0.3.89__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.
- {modusa-0.3.87 → modusa-0.3.89}/PKG-INFO +1 -1
- {modusa-0.3.87 → modusa-0.3.89}/pyproject.toml +1 -1
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/__init__.py +1 -1
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/plotter.py +11 -2
- {modusa-0.3.87 → modusa-0.3.89}/LICENSE.md +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/README.md +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/.DS_Store +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/config.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/decorators.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/generate_docs_source.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/generate_template.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/list_authors.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/list_plugins.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/main.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/templates/generator.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/templates/io.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/templates/model.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/templates/plugin.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/templates/test.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/devtools/templates/tool.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/fonts/NotoSansDevanagari-Regular.ttf +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/__init__.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/audio.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/audio_waveforms.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/base.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/ftds.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/s1d.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/s2d.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/s_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/t_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/generators/tds.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/__init__.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/__pycache__/signal1D.cpython-312.pyc.4443461152 +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/audio.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/base.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/data.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/ftds.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/s1d.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/s2d.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/s_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/t_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/tds.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/plugins/__init__.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/plugins/base.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/__init__.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/_plotter_old.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/ann_loader.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/audio_converter.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/audio_loader.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/audio_player.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/audio_recorder.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/audio_saver.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/base.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/math_ops.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/tools/youtube_downloader.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/utils/.DS_Store +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/utils/__init__.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/utils/config.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/utils/excp.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/utils/logger.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/utils/np_func_cat.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/src/modusa/utils/plot.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/__init__.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/data/song1.mp3 +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/data/song1.wav +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/audio_waveform.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_audio.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_ftds.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_s1d.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_s2d.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_s_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_signal.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_signal_generator.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_t_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_generators/test_tds.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_io/audio_player.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_io/plotter.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_models/test_data.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_models/test_t_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_plugins/youtube_audio_loader.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/frequency_domain_signal.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/spectrogram.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_axis.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_feature_time_domain_signal.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_frequency_time_domain_signal.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_signal1D.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_signal2D.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_time_domain_signal.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_u_ax.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/test_window_signal.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_signals/time_domain_signal.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_tools/test_audio_converter.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_tools/test_fourier_tranform.py +0 -0
- {modusa-0.3.87 → modusa-0.3.89}/tests/test_tools/test_math_ops.py +0 -0
|
@@ -63,9 +63,13 @@ class Fig:
|
|
|
63
63
|
abc: bool
|
|
64
64
|
- Adds a, b, c, ... to the subplots for easier referencing.
|
|
65
65
|
- Default: False
|
|
66
|
+
fig_num: str | None
|
|
67
|
+
- Adds a figure number to the top left of the figure.
|
|
68
|
+
- Eg. "1.1"
|
|
69
|
+
- Default: None
|
|
66
70
|
"""
|
|
67
71
|
|
|
68
|
-
def __init__(self, arrangement="asm", xlim=None, width=16, dark_mode=True, abc=False):
|
|
72
|
+
def __init__(self, arrangement="asm", xlim=None, width=16, dark_mode=True, abc=False, fig_num=None):
|
|
69
73
|
|
|
70
74
|
if dark_mode:
|
|
71
75
|
plt.style.use("dark_background")
|
|
@@ -84,6 +88,7 @@ class Fig:
|
|
|
84
88
|
self._curr_row_idx = 1 # Starting from 1 because row 0 is reserved for reference subplot
|
|
85
89
|
self._curr_color_idx = 0 # So that we have different color across all the subplots to avoid legend confusion
|
|
86
90
|
self._abc = abc # This tells whether to add a, b, c, ... to the subplots for better referencing
|
|
91
|
+
self._fig_num = fig_num # Add a figure number to the entire figure
|
|
87
92
|
|
|
88
93
|
# Subplot setup
|
|
89
94
|
self._fig, self._axs = self._generate_subplots(arrangement, width) # This will fill in the all the above variables
|
|
@@ -188,8 +193,8 @@ class Fig:
|
|
|
188
193
|
|
|
189
194
|
axs[i, 0].sharex(axs[0, 0])
|
|
190
195
|
|
|
196
|
+
# Add subplot labels (a, b, c, d, ...) for better referencing.
|
|
191
197
|
if self._abc is True:
|
|
192
|
-
# Add subplot labels (a, b, c, d, ...) for better referencing.
|
|
193
198
|
label_counter = 0
|
|
194
199
|
for i, char in enumerate(arrangement):
|
|
195
200
|
if char != "r": # Skip the reference subplot
|
|
@@ -197,6 +202,10 @@ class Fig:
|
|
|
197
202
|
axs[i, 0].text(-0.06, 0.5, f'({label})', transform=axs[i, 0].transAxes, fontsize=12, fontweight='bold', va='center', ha='right')
|
|
198
203
|
label_counter += 1
|
|
199
204
|
|
|
205
|
+
# Add figure number at top-left
|
|
206
|
+
if self._fig_num is not None:
|
|
207
|
+
fig.text(0.12, 0.9, f'fig - {self._fig_num}', fontsize=10, fontweight='bold', va='top', ha='left', color='black', bbox=dict(boxstyle='round,pad=0.3', facecolor='lightgray', edgecolor='gray', linewidth=1.0))
|
|
208
|
+
|
|
200
209
|
axs[-1, 0].tick_params(bottom=True, labelbottom=True)
|
|
201
210
|
|
|
202
211
|
# xlim should be applied on reference subplot, rest all subplots will automatically adjust
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{modusa-0.3.87 → modusa-0.3.89}/src/modusa/models/__pycache__/signal1D.cpython-312.pyc.4443461152
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|