modusa 0.3.95__py3-none-any.whl → 0.3.97__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.
modusa/__init__.py CHANGED
@@ -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.95"
11
+ __version__ = "0.3.97"
modusa/tools/plotter.py CHANGED
@@ -765,7 +765,7 @@ def hill_plot(*args, labels=None, xlabel=None, ylabel=None, title=None, widths=0
765
765
  parts = ax.violinplot(args, vert=False, showmeans=False, showmedians=False, widths=widths, bw_method=bw_method)
766
766
 
767
767
  # Remove the default bar lines from violin plot
768
- for key in ['cbars', 'cmins', 'cmaxes', 'cmedians']:
768
+ for key in ["cbars", "cmins", "cmaxes", "cmedians"]:
769
769
  if key in parts:
770
770
  parts[key].set_visible(False)
771
771
 
@@ -774,7 +774,7 @@ def hill_plot(*args, labels=None, xlabel=None, ylabel=None, title=None, widths=0
774
774
  verts = pc.get_paths()[0].vertices
775
775
  y_center = i + 1 # Center y-position for this violin
776
776
 
777
- if side == 'upper':
777
+ if side == "upper":
778
778
  verts[:, 1] = np.maximum(verts[:, 1], y_center)
779
779
  else: # 'lower'
780
780
  verts[:, 1] = np.minimum(verts[:, 1], y_center)
@@ -804,37 +804,37 @@ def hill_plot(*args, labels=None, xlabel=None, ylabel=None, title=None, widths=0
804
804
  # Find y-position on violin curve for median
805
805
  median_mask = np.abs(verts[:, 0] - median_val) < (np.ptp(x) * 0.01)
806
806
  if median_mask.any():
807
- median_y = np.max(verts[median_mask, 1]) if side == 'upper' else np.min(verts[median_mask, 1])
807
+ median_y = np.max(verts[median_mask, 1]) if side == "upper" else np.min(verts[median_mask, 1])
808
808
  else:
809
- median_y = i + widths/2 if side == 'upper' else i - widths/2
809
+ median_y = i + widths/2 if side == "upper" else i - widths/2
810
810
 
811
811
  # Find y-position on violin curve for mean
812
812
  mean_mask = np.abs(verts[:, 0] - mean_val) < (np.ptp(x) * 0.01)
813
813
  if mean_mask.any():
814
- mean_y = np.max(verts[mean_mask, 1]) if side == 'upper' else np.min(verts[mean_mask, 1])
814
+ mean_y = np.max(verts[mean_mask, 1]) if side == "upper" else np.min(verts[mean_mask, 1])
815
815
  else:
816
- mean_y = i + widths/2 if side == 'upper' else i - widths/2
816
+ mean_y = i + widths/2 if side == "upper" else i - widths/2
817
817
 
818
818
  # Triangle offset from curve
819
819
  triangle_offset = 0.05
820
820
 
821
821
  # Mean marker - triangle below curve pointing up
822
- ax.scatter(mean_val, mean_y - triangle_offset, marker='^', s=30,
823
- facecolor=colors[i-1], edgecolor='none',
824
- linewidth=0, zorder=6,
825
- label='Mean' if i == 1 else '')
822
+ ax.scatter(mean_val, mean_y - triangle_offset, marker="^", s=30,
823
+ facecolor=colors[i-1], edgecolor="black",
824
+ linewidth=0.5, zorder=6,
825
+ label="Mean" if i == 1 else "")
826
826
 
827
827
  # Mean value text - below the triangle
828
- ax.text(mean_val, mean_y - triangle_offset - 0.05, f'mean: {mean_val:.2f}', ha='center', va='top', fontsize=8, fontweight='bold', color=colors[i-1], zorder=7)
828
+ ax.text(mean_val, mean_y - triangle_offset - 0.05, f"mean: {mean_val:.2f}", ha="center", va="top", fontsize=8, fontweight="bold", color="black", zorder=7)
829
829
 
830
830
  # Median marker - triangle above curve pointing down
831
- ax.scatter(median_val, median_y + triangle_offset, marker='v', s=30,
832
- facecolor=colors[i-1], edgecolor='none',
833
- linewidth=0, zorder=6,
834
- label='Median' if i == 1 else '')
831
+ ax.scatter(median_val, median_y + triangle_offset, marker="v", s=30,
832
+ facecolor=colors[i-1], edgecolor="black",
833
+ linewidth=0.5, zorder=6,
834
+ label="Median" if i == 1 else "")
835
835
 
836
836
  # Median value text - above the triangle
837
- ax.text(median_val, median_y + triangle_offset + 0.05, f'median: {median_val:.2f}', ha='center', va='bottom', fontsize=8, fontweight='bold', color=colors[i-1], zorder=7)
837
+ ax.text(median_val, median_y + triangle_offset + 0.05, f"median: {median_val:.2f}", ha="center", va="bottom", fontsize=8, fontweight="bold", color="black", zorder=7)
838
838
 
839
839
  # --- Labels & formatting ---
840
840
  ax.set_yticks(range(1, n + 1))
@@ -847,14 +847,14 @@ def hill_plot(*args, labels=None, xlabel=None, ylabel=None, title=None, widths=0
847
847
  # Style improvements
848
848
  ax.spines['top'].set_visible(False)
849
849
  ax.spines['right'].set_visible(False)
850
- ax.grid(axis='x', alpha=0.3, linestyle='--', linewidth=0.5)
850
+ ax.grid(axis='x', alpha=0.3, linestyle="--", linewidth=0.5)
851
851
 
852
852
  if xlabel:
853
- ax.set_xlabel(xlabel, fontsize=11, fontweight='bold')
853
+ ax.set_xlabel(xlabel, fontsize=11, fontweight="bold")
854
854
  if ylabel:
855
- ax.set_ylabel(ylabel, fontsize=11, fontweight='bold')
855
+ ax.set_ylabel(ylabel, fontsize=11, fontweight="bold")
856
856
  if title:
857
- ax.set_title(title, fontsize=11, fontweight='bold', pad=20)
857
+ ax.set_title(title, fontsize=11, fontweight="bold", pad=20)
858
858
 
859
859
  plt.tight_layout()
860
860
  plt.close()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modusa
3
- Version: 0.3.95
3
+ Version: 0.3.97
4
4
  Summary: A modular signal analysis python library.
5
5
  Author-Email: Ankit Anand <ankit0.anand0@gmail.com>
6
6
  License: MIT
@@ -1,9 +1,9 @@
1
- modusa-0.3.95.dist-info/METADATA,sha256=GBREB-ncvUr_hmp8a-nZognmM1W1a6Ar-DX-JAQzjcY,1436
2
- modusa-0.3.95.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
3
- modusa-0.3.95.dist-info/entry_points.txt,sha256=fmKpleVXj6CdaBVL14WoEy6xx7JQCs85jvzwTi3lePM,73
4
- modusa-0.3.95.dist-info/licenses/LICENSE.md,sha256=JTaXAjx5awk76VArKCx5dUW8vmLEWsL_ZlR7-umaHbA,1078
1
+ modusa-0.3.97.dist-info/METADATA,sha256=YLf2rM5db9dakg9h9AAImZSOB8naM3kt-aT6l3R5gTE,1436
2
+ modusa-0.3.97.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
3
+ modusa-0.3.97.dist-info/entry_points.txt,sha256=fmKpleVXj6CdaBVL14WoEy6xx7JQCs85jvzwTi3lePM,73
4
+ modusa-0.3.97.dist-info/licenses/LICENSE.md,sha256=JTaXAjx5awk76VArKCx5dUW8vmLEWsL_ZlR7-umaHbA,1078
5
5
  modusa/.DS_Store,sha256=_gm6qJREwfMi8dE7n5S89_RG46u5t3xHyD-smNhtNoM,6148
6
- modusa/__init__.py,sha256=tj3gm02XEemHS6BhmjtgqznUwrJo6lMLo8DkbTIdgEs,318
6
+ modusa/__init__.py,sha256=DMopXN8cvrFtWB2_5n0Sg98YI3aX5mWIK4saKdd9Cqg,318
7
7
  modusa/config.py,sha256=bTqK4t00FZqERVITrxW_q284aDDJAa9aMSfFknfR-oU,280
8
8
  modusa/decorators.py,sha256=8zeNX_wE37O6Vp0ysR4-WCZaEL8mq8dyCF_I5DHOzks,5905
9
9
  modusa/devtools/generate_docs_source.py,sha256=UDflHsk-Yh9-3YJTVBzKL32y8hcxiRgAlFEBTMiDqwM,3301
@@ -51,7 +51,7 @@ modusa/tools/audio_recorder.py,sha256=K_LGqsPdjTdf3figEZTSQLmgMzYWgz18HTO8C1j5fE
51
51
  modusa/tools/audio_saver.py,sha256=ldzfr_AydsHTnKbxmBLJblN-hLzTmOlppOm306xI4Ug,510
52
52
  modusa/tools/base.py,sha256=C0ESJ0mIfjjRlAkRbSetNtMoOfS6IrHBjexRp3l_Mh4,1293
53
53
  modusa/tools/math_ops.py,sha256=ZZ7U4DgqT7cOeE7_Lzi_Qq-48WYfwR9_osbZwTmE9eg,8690
54
- modusa/tools/plotter.py,sha256=gCGtO-oDJfIpi-66_Hl1Zgl4_uC-odHozz4M-9ZYI5E,29840
54
+ modusa/tools/plotter.py,sha256=wqikyyvFIVfugRVtf0BlSSZqp_IxsqeFX4ypO94z_5A,29838
55
55
  modusa/tools/youtube_downloader.py,sha256=hB_X8-7nOHXOlxg6vv3wyhBLoAsWyomrULP6_uCQL7s,1698
56
56
  modusa/utils/.DS_Store,sha256=nLXMwF7QJNuglLI_Gk74F7vl5Dyus2Wd74Mgowijmdo,6148
57
57
  modusa/utils/__init__.py,sha256=1oLL20yLB1GL9IbFiZD8OReDqiCpFr-yetIR6x1cNkI,23
@@ -60,4 +60,4 @@ modusa/utils/excp.py,sha256=L9vhaGjKpv9viJYdmC9n5ndmk2GVbUBuFyZyhAQZmWY,906
60
60
  modusa/utils/logger.py,sha256=K0rsnObeNKCxlNeSnVnJeRhgfmob6riB2uyU7h3dDmA,571
61
61
  modusa/utils/np_func_cat.py,sha256=TyIFgRc6bARRMDnZxlVURO5Z0I-GWhxRONYyIv-Vwxs,1007
62
62
  modusa/utils/plot.py,sha256=s_vNdxvKfwxEngvJPgrF1PcmxZNnNaaXPViHWjyjJ-c,5335
63
- modusa-0.3.95.dist-info/RECORD,,
63
+ modusa-0.3.97.dist-info/RECORD,,