data-manipulation-utilities 0.2.8.dev730__tar.gz → 0.2.8.dev736__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 (82) hide show
  1. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/PKG-INFO +30 -1
  2. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/README.md +29 -0
  3. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/pyproject.toml +1 -1
  4. data_manipulation_utilities-0.2.8.dev736/src/dmu/generic/naming.py +35 -0
  5. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/plotting/plotter_1d.py +0 -8
  6. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/workflow/cache.py +27 -22
  7. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/__init__.py +0 -0
  8. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/arrays/utilities.py +0 -0
  9. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/generic/hashing.py +0 -0
  10. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/generic/utilities.py +0 -0
  11. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/generic/version_management.py +0 -0
  12. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/logging/log_store.py +0 -0
  13. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/logging/messages.py +0 -0
  14. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/ml/cv_classifier.py +0 -0
  15. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/ml/cv_diagnostics.py +0 -0
  16. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/ml/cv_performance.py +0 -0
  17. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/ml/cv_predict.py +0 -0
  18. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/ml/train_mva.py +0 -0
  19. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/ml/utilities.py +0 -0
  20. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/pdataframe/utilities.py +0 -0
  21. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/plotting/fwhm.py +0 -0
  22. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/plotting/matrix.py +0 -0
  23. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/plotting/plotter.py +0 -0
  24. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/plotting/plotter_2d.py +0 -0
  25. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/plotting/utilities.py +0 -0
  26. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/rdataframe/atr_mgr.py +0 -0
  27. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/rdataframe/utilities.py +0 -0
  28. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/rfile/ddfgetter.py +0 -0
  29. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/rfile/rfprinter.py +0 -0
  30. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/rfile/utilities.py +0 -0
  31. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/fit_stats.py +0 -0
  32. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/fitter.py +0 -0
  33. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/function.py +0 -0
  34. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/gof_calculator.py +0 -0
  35. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/minimizers.py +0 -0
  36. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/model_factory.py +0 -0
  37. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/parameters.py +0 -0
  38. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/utilities.py +0 -0
  39. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/wdata.py +0 -0
  40. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/zfit.py +0 -0
  41. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/zfit_models.py +0 -0
  42. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/stats/zfit_plotter.py +0 -0
  43. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/testing/utilities.py +0 -0
  44. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/text/transformer.py +0 -0
  45. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu/workflow/__init__.py +0 -0
  46. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/__init__.py +0 -0
  47. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/diagnostics_from_file.yaml +0 -0
  48. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/diagnostics_from_model.yaml +0 -0
  49. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/diagnostics_multiple_methods.yaml +0 -0
  50. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/diagnostics_overlay.yaml +0 -0
  51. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/train_mva.yaml +0 -0
  52. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/train_mva_def.yaml +0 -0
  53. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/train_mva_with_diagnostics.yaml +0 -0
  54. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/ml/tests/train_mva_with_preffix.yaml +0 -0
  55. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/2d.yaml +0 -0
  56. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/fig_size.yaml +0 -0
  57. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/high_stat.yaml +0 -0
  58. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/legend.yaml +0 -0
  59. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/line.yaml +0 -0
  60. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/name.yaml +0 -0
  61. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/no_bounds.yaml +0 -0
  62. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/normalized.yaml +0 -0
  63. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/plug_fwhm.yaml +0 -0
  64. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/plug_stats.yaml +0 -0
  65. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/simple.yaml +0 -0
  66. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/stats.yaml +0 -0
  67. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/styling.yaml +0 -0
  68. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/title.yaml +0 -0
  69. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/plotting/tests/weights.yaml +0 -0
  70. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/rfile/friends.yaml +0 -0
  71. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/stats/fitter/test_simple.yaml +0 -0
  72. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/stats/kde_optimizer/control.json +0 -0
  73. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/stats/kde_optimizer/signal.json +0 -0
  74. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/stats/parameters/data.yaml +0 -0
  75. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/tests/config.json +0 -0
  76. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/tests/config.yaml +0 -0
  77. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/tests/pdf_to_tex.txt +0 -0
  78. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/text/transform.toml +0 -0
  79. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/text/transform.txt +0 -0
  80. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/text/transform_set.toml +0 -0
  81. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/text/transform_set.txt +0 -0
  82. {data_manipulation_utilities-0.2.8.dev730 → data_manipulation_utilities-0.2.8.dev736}/src/dmu_data/text/transform_trf.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: data-manipulation-utilities
3
- Version: 0.2.8.dev730
3
+ Version: 0.2.8.dev736
4
4
  Summary: Project storing utilities needed to reduce boilerplate code when analyzing data
5
5
  Requires-Python: >=3.10,<3.13
6
6
  Classifier: Programming Language :: Python :: 3
@@ -68,6 +68,35 @@ Then, for each remote it pushes the tags and the commits.
68
68
 
69
69
  This section describes generic tools that could not be put in a specific category, but tend to be useful.
70
70
 
71
+ ## Naming
72
+
73
+ ### Name cleaning
74
+
75
+ This is an alternative to projects like `slugify`. The function will
76
+ take strings with characters that are not easy to use when naming files and
77
+ will clean it up with:
78
+
79
+ ```python
80
+
81
+ from dmu.generic import naming
82
+
83
+ value = naming.clean_special_characters(name=name)
84
+ ```
85
+
86
+ e.g.:
87
+
88
+ ```
89
+ a b' -> 'a_b'
90
+ a$b' -> 'a_b'
91
+ a > b' -> 'a_gt_b'
92
+ a < b' -> 'a_lt_b'
93
+ a = b' -> 'a_eq_b'
94
+ {a}' -> '_a_'
95
+ a.b' -> 'apb'
96
+ a && b' -> 'a_and_b'
97
+ a || b' -> 'a_or_b'
98
+ ```
99
+
71
100
  ## Caching data
72
101
 
73
102
  In order to reuse data that is hard to calculate one would need:
@@ -33,6 +33,35 @@ Then, for each remote it pushes the tags and the commits.
33
33
 
34
34
  This section describes generic tools that could not be put in a specific category, but tend to be useful.
35
35
 
36
+ ## Naming
37
+
38
+ ### Name cleaning
39
+
40
+ This is an alternative to projects like `slugify`. The function will
41
+ take strings with characters that are not easy to use when naming files and
42
+ will clean it up with:
43
+
44
+ ```python
45
+
46
+ from dmu.generic import naming
47
+
48
+ value = naming.clean_special_characters(name=name)
49
+ ```
50
+
51
+ e.g.:
52
+
53
+ ```
54
+ a b' -> 'a_b'
55
+ a$b' -> 'a_b'
56
+ a > b' -> 'a_gt_b'
57
+ a < b' -> 'a_lt_b'
58
+ a = b' -> 'a_eq_b'
59
+ {a}' -> '_a_'
60
+ a.b' -> 'apb'
61
+ a && b' -> 'a_and_b'
62
+ a || b' -> 'a_or_b'
63
+ ```
64
+
36
65
  ## Caching data
37
66
 
38
67
  In order to reuse data that is hard to calculate one would need:
@@ -1,7 +1,7 @@
1
1
  [tool.poetry]
2
2
  name = 'data-manipulation-utilities'
3
3
  description = 'Project storing utilities needed to reduce boilerplate code when analyzing data'
4
- version = "0.2.8.dev730"
4
+ version = "0.2.8.dev736"
5
5
  readme = 'README.md'
6
6
  package-mode = true
7
7
  packages = [
@@ -0,0 +1,35 @@
1
+ '''
2
+ This module contains functions meant to deal with names
3
+ i.e. strings that represent names
4
+ '''
5
+
6
+ import re
7
+
8
+ from dmu.logging.log_store import LogStore
9
+
10
+ log=LogStore.add_logger('dmu:generic:naming')
11
+ # --------------------------------
12
+ def clean_special_characters(name : str) -> str:
13
+ '''
14
+ Parameters
15
+ ----------------
16
+ name: String with potentially parenthesis, dollar signs, etc
17
+
18
+ Returns
19
+ ----------------
20
+ Cleaned string, where special signs were removed or replaced
21
+ '''
22
+ name = name.replace('||', 'or')
23
+ name = name.replace(' ' , '_')
24
+ name = name.replace('<' , 'lt')
25
+ name = name.replace('>' , 'gt')
26
+ name = name.replace('=' , 'eq')
27
+ name = name.replace('{' , '_')
28
+ name = name.replace('}' , '_')
29
+ name = name.replace('.' , 'p')
30
+ name = name.replace('$' , '_')
31
+ name = name.replace('&&','and')
32
+ name = re.sub(r'_+' , '_', name)
33
+
34
+ return name
35
+ # --------------------------------
@@ -290,14 +290,6 @@ class Plotter1D(Plotter):
290
290
  if 'vline' in var_cfg:
291
291
  line_cfg = var_cfg['vline']
292
292
  plt.axvline(**line_cfg)
293
-
294
- if 'style' in self._d_cfg and 'skip_lines' in self._d_cfg['style'] and self._d_cfg['style']['skip_lines']:
295
- return
296
-
297
- if var in ['B_const_mass_M', 'B_M', 'B_Mass', 'B_Mass_smr']:
298
- plt.axvline(x=5280, color='r', label=r'$B^+$' , linestyle=':')
299
- elif var == 'Jpsi_M':
300
- plt.axvline(x=3096, color='r', label=r'$J/\psi$', linestyle=':')
301
293
  # --------------------------------------------
302
294
  def run(self):
303
295
  '''
@@ -63,19 +63,6 @@ class Cache:
63
63
  self._cache_dir = self._get_dir(kind='cache')
64
64
  self._hash_dir : str
65
65
  # ---------------------------
66
- @classmethod
67
- def set_cache_root(cls, root : str) -> None:
68
- '''
69
- Sets the path to the directory WRT which the _out_path_
70
- will be placed
71
- '''
72
- if cls._cache_root is not None:
73
- raise ValueError(f'Trying to set {root}, but already found {cls._cache_root}')
74
-
75
- os.makedirs(root, exist_ok=True)
76
-
77
- cls._cache_root = root
78
- # ---------------------------
79
66
  def _get_code_hash(self) -> str:
80
67
  '''
81
68
  If `MyTool` inherits from `Cache`. `mytool.py` git commit hash
@@ -242,9 +229,8 @@ class Cache:
242
229
 
243
230
  return True
244
231
  # ---------------------------
245
- @contextmanager
246
- @staticmethod
247
- def turn_off_cache(val : list[str]|None):
232
+ @classmethod
233
+ def turn_off_cache(cls, val):
248
234
  '''
249
235
  Parameters
250
236
  ------------------
@@ -256,11 +242,30 @@ class Cache:
256
242
  log.error('This manager expects: list[str]|None')
257
243
  raise ValueError(f'Invalid value: {val}')
258
244
 
259
- old_val = Cache._l_skip_class
245
+ old_val = cls._l_skip_class
246
+ @contextmanager
247
+ def _context():
248
+ cls._l_skip_class = val
249
+ try:
250
+ yield
251
+ finally:
252
+ cls._l_skip_class = old_val
260
253
 
261
- Cache._l_skip_class = val
262
- try:
263
- yield
264
- finally:
265
- Cache._l_skip_class = old_val
254
+ return _context()
255
+ # ---------------------------
256
+ @classmethod
257
+ def set_cache_root(cls, root : str) -> None:
258
+ '''
259
+ Sets the path to the directory WRT which the _out_path_
260
+ will be placed.
261
+
262
+ This is meant to be called once per execution and has a lock
263
+ that will raise an exception if called twice
264
+ '''
265
+ if cls._cache_root is not None:
266
+ raise ValueError(f'Trying to set {root}, but already found {cls._cache_root}')
267
+
268
+ os.makedirs(root, exist_ok=True)
269
+
270
+ cls._cache_root = root
266
271
  # ---------------------------