modusa 0.3.85__tar.gz → 0.3.86__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.
Files changed (94) hide show
  1. {modusa-0.3.85 → modusa-0.3.86}/PKG-INFO +1 -1
  2. {modusa-0.3.85 → modusa-0.3.86}/pyproject.toml +1 -1
  3. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/__init__.py +1 -1
  4. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/plotter.py +14 -1
  5. {modusa-0.3.85 → modusa-0.3.86}/LICENSE.md +0 -0
  6. {modusa-0.3.85 → modusa-0.3.86}/README.md +0 -0
  7. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/.DS_Store +0 -0
  8. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/config.py +0 -0
  9. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/decorators.py +0 -0
  10. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/generate_docs_source.py +0 -0
  11. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/generate_template.py +0 -0
  12. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/list_authors.py +0 -0
  13. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/list_plugins.py +0 -0
  14. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/main.py +0 -0
  15. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/templates/generator.py +0 -0
  16. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/templates/io.py +0 -0
  17. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/templates/model.py +0 -0
  18. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/templates/plugin.py +0 -0
  19. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/templates/test.py +0 -0
  20. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/devtools/templates/tool.py +0 -0
  21. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/fonts/NotoSansDevanagari-Regular.ttf +0 -0
  22. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/__init__.py +0 -0
  23. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/audio.py +0 -0
  24. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/audio_waveforms.py +0 -0
  25. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/base.py +0 -0
  26. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/ftds.py +0 -0
  27. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/s1d.py +0 -0
  28. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/s2d.py +0 -0
  29. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/s_ax.py +0 -0
  30. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/t_ax.py +0 -0
  31. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/generators/tds.py +0 -0
  32. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/__init__.py +0 -0
  33. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/__pycache__/signal1D.cpython-312.pyc.4443461152 +0 -0
  34. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/audio.py +0 -0
  35. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/base.py +0 -0
  36. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/data.py +0 -0
  37. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/ftds.py +0 -0
  38. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/s1d.py +0 -0
  39. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/s2d.py +0 -0
  40. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/s_ax.py +0 -0
  41. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/t_ax.py +0 -0
  42. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/models/tds.py +0 -0
  43. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/plugins/__init__.py +0 -0
  44. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/plugins/base.py +0 -0
  45. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/__init__.py +0 -0
  46. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/_plotter_old.py +0 -0
  47. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/ann_loader.py +0 -0
  48. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/audio_converter.py +0 -0
  49. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/audio_loader.py +0 -0
  50. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/audio_player.py +0 -0
  51. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/audio_recorder.py +0 -0
  52. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/audio_saver.py +0 -0
  53. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/base.py +0 -0
  54. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/math_ops.py +0 -0
  55. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/tools/youtube_downloader.py +0 -0
  56. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/utils/.DS_Store +0 -0
  57. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/utils/__init__.py +0 -0
  58. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/utils/config.py +0 -0
  59. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/utils/excp.py +0 -0
  60. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/utils/logger.py +0 -0
  61. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/utils/np_func_cat.py +0 -0
  62. {modusa-0.3.85 → modusa-0.3.86}/src/modusa/utils/plot.py +0 -0
  63. {modusa-0.3.85 → modusa-0.3.86}/tests/__init__.py +0 -0
  64. {modusa-0.3.85 → modusa-0.3.86}/tests/data/song1.mp3 +0 -0
  65. {modusa-0.3.85 → modusa-0.3.86}/tests/data/song1.wav +0 -0
  66. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/audio_waveform.py +0 -0
  67. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_audio.py +0 -0
  68. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_ftds.py +0 -0
  69. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_s1d.py +0 -0
  70. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_s2d.py +0 -0
  71. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_s_ax.py +0 -0
  72. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_signal.py +0 -0
  73. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_signal_generator.py +0 -0
  74. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_t_ax.py +0 -0
  75. {modusa-0.3.85 → modusa-0.3.86}/tests/test_generators/test_tds.py +0 -0
  76. {modusa-0.3.85 → modusa-0.3.86}/tests/test_io/audio_player.py +0 -0
  77. {modusa-0.3.85 → modusa-0.3.86}/tests/test_io/plotter.py +0 -0
  78. {modusa-0.3.85 → modusa-0.3.86}/tests/test_models/test_data.py +0 -0
  79. {modusa-0.3.85 → modusa-0.3.86}/tests/test_models/test_t_ax.py +0 -0
  80. {modusa-0.3.85 → modusa-0.3.86}/tests/test_plugins/youtube_audio_loader.py +0 -0
  81. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/frequency_domain_signal.py +0 -0
  82. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/spectrogram.py +0 -0
  83. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_axis.py +0 -0
  84. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_feature_time_domain_signal.py +0 -0
  85. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_frequency_time_domain_signal.py +0 -0
  86. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_signal1D.py +0 -0
  87. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_signal2D.py +0 -0
  88. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_time_domain_signal.py +0 -0
  89. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_u_ax.py +0 -0
  90. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/test_window_signal.py +0 -0
  91. {modusa-0.3.85 → modusa-0.3.86}/tests/test_signals/time_domain_signal.py +0 -0
  92. {modusa-0.3.85 → modusa-0.3.86}/tests/test_tools/test_audio_converter.py +0 -0
  93. {modusa-0.3.85 → modusa-0.3.86}/tests/test_tools/test_fourier_tranform.py +0 -0
  94. {modusa-0.3.85 → modusa-0.3.86}/tests/test_tools/test_math_ops.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modusa
3
- Version: 0.3.85
3
+ Version: 0.3.86
4
4
  Summary: A modular signal analysis python library.
5
5
  Author-Email: Ankit Anand <ankit0.anand0@gmail.com>
6
6
  License: MIT
@@ -16,7 +16,7 @@ dependencies = [
16
16
  ]
17
17
  requires-python = ">=3.10"
18
18
  readme = "README.md"
19
- version = "0.3.85"
19
+ version = "0.3.86"
20
20
 
21
21
  [project.license]
22
22
  text = "MIT"
@@ -8,4 +8,4 @@ from modusa.tools import play, convert, record, save
8
8
  from modusa.tools import download
9
9
  from modusa.tools import load, load_ann
10
10
 
11
- __version__ = "0.3.85"
11
+ __version__ = "0.3.86"
@@ -60,9 +60,12 @@ class Fig:
60
60
  dark_mode: bool
61
61
  - Do you want dark mode?
62
62
  - Default: True
63
+ abc: bool
64
+ - Adds a, b, c, ... to the subplots for easier referencing.
65
+ - Default: False
63
66
  """
64
67
 
65
- def __init__(self, arrangement="asm", xlim=None, width=16, dark_mode=True):
68
+ def __init__(self, arrangement="asm", xlim=None, width=16, dark_mode=True, abc=False):
66
69
 
67
70
  if dark_mode:
68
71
  plt.style.use("dark_background")
@@ -80,6 +83,7 @@ class Fig:
80
83
  self._xlim = xlim
81
84
  self._curr_row_idx = 1 # Starting from 1 because row 0 is reserved for reference subplot
82
85
  self._curr_color_idx = 0 # So that we have different color across all the subplots to avoid legend confusion
86
+ self._abc = abc # This tells whether to add a, b, c, ... to the subplots for better referencing
83
87
 
84
88
  # Subplot setup
85
89
  self._fig, self._axs = self._generate_subplots(arrangement, width) # This will fill in the all the above variables
@@ -184,6 +188,15 @@ class Fig:
184
188
 
185
189
  axs[i, 0].sharex(axs[0, 0])
186
190
 
191
+ if self._abc is True:
192
+ # Add subplot labels (a, b, c, d, ...) for better referencing.
193
+ label_counter = 0
194
+ for i, char in enumerate(arrangement):
195
+ if char != "r": # Skip the reference subplot
196
+ label = chr(97 + label_counter) # 97 is ASCII for 'a'
197
+ axs[i, 0].text(-0.05, 0.5, f'({label})', transform=axs[i, 0].transAxes, fontsize=12, fontweight='bold', va='center', ha='right')
198
+ label_counter += 1
199
+
187
200
  axs[-1, 0].tick_params(bottom=True, labelbottom=True)
188
201
 
189
202
  # 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