mayutils 1.2.30__tar.gz → 1.2.32__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 (65) hide show
  1. {mayutils-1.2.30 → mayutils-1.2.32}/PKG-INFO +1 -1
  2. {mayutils-1.2.30 → mayutils-1.2.32}/pyproject.toml +1 -1
  3. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/dataframes.py +38 -0
  4. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/plotly/charts.py +19 -0
  5. {mayutils-1.2.30 → mayutils-1.2.32}/LICENSE +0 -0
  6. {mayutils-1.2.30 → mayutils-1.2.32}/README.md +0 -0
  7. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/__init__.py +0 -0
  8. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/core/__init__.py +0 -0
  9. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/core/constants.py +0 -0
  10. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/__init__.py +0 -0
  11. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/analysis/__init__.py +0 -0
  12. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/cache/.gitkeep +0 -0
  13. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/live.py +0 -0
  14. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/local.py +0 -0
  15. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/queries/.gitkeep +0 -0
  16. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/queries/__init__.py +0 -0
  17. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/queries/examples/.gitkeep +0 -0
  18. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/data/read.py +0 -0
  19. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/__init__.py +0 -0
  20. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/benchmarking.py +0 -0
  21. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/databases.py +0 -0
  22. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/filesystem.py +0 -0
  23. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/logging.py +0 -0
  24. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/memoisation.py +0 -0
  25. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/oauth.py +0 -0
  26. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/secrets.py +0 -0
  27. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/environment/webdrivers.py +0 -0
  28. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/export/__init__.py +0 -0
  29. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/export/images.py +0 -0
  30. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/export/pdf.py +0 -0
  31. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/export/slides.py +0 -0
  32. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/interfaces/__init__.py +0 -0
  33. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/interfaces/google.py +0 -0
  34. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/interfaces/microsoft.py +0 -0
  35. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/interfaces/streamlit.py +0 -0
  36. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/mathematics/__init__.py +0 -0
  37. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/mathematics/numba.py +0 -0
  38. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/mathematics/numpy.py +0 -0
  39. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/__init__.py +0 -0
  40. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/classes.py +0 -0
  41. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/colours.py +0 -0
  42. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/datetime.py +0 -0
  43. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/decorators.py +0 -0
  44. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/dictionaries.py +0 -0
  45. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/functions.py +0 -0
  46. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/hashing.py +0 -0
  47. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/numbers.py +0 -0
  48. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/strings.py +0 -0
  49. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/objects/types.py +0 -0
  50. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/py.typed +0 -0
  51. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/scripts/__init__.py +0 -0
  52. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/scripts/clear_cache.py +0 -0
  53. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/scripts/versioning.py +0 -0
  54. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/testing/__init__.py +0 -0
  55. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/__init__.py +0 -0
  56. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/console.py +0 -0
  57. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/__init__.py +0 -0
  58. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/combine.py +0 -0
  59. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/matplotlib/__init__.py +0 -0
  60. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/matplotlib/template.py +0 -0
  61. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/plotly/__init__.py +0 -0
  62. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/plotly/templates.py +0 -0
  63. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/plotly/traces.py +0 -0
  64. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/graphs/plotly/utilities.py +0 -0
  65. {mayutils-1.2.30 → mayutils-1.2.32}/src/mayutils/visualisation/notebook.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mayutils
3
- Version: 1.2.30
3
+ Version: 1.2.32
4
4
  Summary: Utilities for Python from Mayuran Visakan
5
5
  Author: Mayuran Visakan
6
6
  Author-email: Mayuran Visakan <mayuran.k.v@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mayutils"
3
- version = "1.2.30"
3
+ version = "1.2.32"
4
4
  description = "Utilities for Python from Mayuran Visakan"
5
5
  authors = [
6
6
  { name = "Mayuran Visakan", email = "mayuran.k.v@gmail.com" }
@@ -27,6 +27,7 @@ from dataframe_image._pandas_accessor import (
27
27
  )
28
28
  import polars as pl
29
29
  import numpy as np
30
+ from mayutils.objects.datetime import Interval
30
31
  from mayutils.objects.colours import Colour
31
32
  from mayutils.export import OUTPUT_FOLDER
32
33
 
@@ -411,6 +412,25 @@ class DataframeUtilsAccessor(object):
411
412
 
412
413
  return self.df
413
414
 
415
+ def ground(
416
+ self,
417
+ interval: Optional[Interval] = None,
418
+ ) -> DataFrame:
419
+ if interval is None:
420
+ return self.df
421
+
422
+ raise NotImplementedError("Grounding not implemented for DataFrames yet")
423
+ # if self.df.index.inferred_type == "datetime":
424
+ # grounding_value = self.df.loc[interval.as_slice].mean()
425
+ # elif self.df.index.inferred_type == "date":
426
+ # grounding_value = self.df.loc[interval.as_date_slice].mean()
427
+ # else:
428
+ # raise TypeError("Series index must be datetime or date type for grounding")
429
+
430
+ # grounded_series = self.series.div(grounding_value)
431
+
432
+ # return grounded_series
433
+
414
434
 
415
435
  class SeriesUtilsAccessor(object):
416
436
  def __init__(
@@ -428,6 +448,24 @@ class SeriesUtilsAccessor(object):
428
448
  "Not implemented for series yet: leverage existing df methods"
429
449
  )
430
450
 
451
+ def ground(
452
+ self,
453
+ interval: Optional[Interval] = None,
454
+ ) -> Series:
455
+ if interval is None:
456
+ return self.series
457
+
458
+ if self.series.index.inferred_type == "datetime":
459
+ grounding_value = self.series.loc[interval.as_slice].mean()
460
+ elif self.series.index.inferred_type == "date":
461
+ grounding_value = self.series.loc[interval.as_date_slice].mean()
462
+ else:
463
+ raise TypeError("Series index must be datetime or date type for grounding")
464
+
465
+ grounded_series = self.series.div(grounding_value)
466
+
467
+ return grounded_series
468
+
431
469
 
432
470
  class IndexUtilsAccessor(object):
433
471
  def __init__(
@@ -14,6 +14,7 @@ from plotly._subplots import _build_subplot_title_annotations
14
14
 
15
15
  from mayutils.objects.colours import TRANSPARENT, Colour
16
16
 
17
+ from mayutils.objects.datetime import Interval
17
18
  from mayutils.objects.functions import set_inline
18
19
 
19
20
  from mayutils.visualisation.graphs.plotly.templates import (
@@ -1276,6 +1277,24 @@ class Plot(go.Figure):
1276
1277
 
1277
1278
  return self
1278
1279
 
1280
+ def add_interval(
1281
+ self,
1282
+ interval: Optional[Interval],
1283
+ **kwargs,
1284
+ ) -> Self:
1285
+ if interval is None:
1286
+ return self
1287
+
1288
+ kwargs = {"line_width": 0, "opacity": 0.1} | kwargs
1289
+
1290
+ self.add_vrect(
1291
+ x0=interval.start.simple,
1292
+ x1=interval.end.simple,
1293
+ **kwargs,
1294
+ )
1295
+
1296
+ return self
1297
+
1279
1298
  def __call__(
1280
1299
  self,
1281
1300
  save: bool = True,
File without changes
File without changes