apmtools 0.2.50__tar.gz → 0.2.51__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 (27) hide show
  1. {apmtools-0.2.50 → apmtools-0.2.51}/PKG-INFO +1 -1
  2. {apmtools-0.2.50 → apmtools-0.2.51}/pyproject.toml +1 -1
  3. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/classes.py +13 -2
  4. {apmtools-0.2.50 → apmtools-0.2.51}/.gitignore +0 -0
  5. {apmtools-0.2.50 → apmtools-0.2.51}/LICENSE +0 -0
  6. {apmtools-0.2.50 → apmtools-0.2.51}/README.md +0 -0
  7. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/__init__.py +0 -0
  8. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/data_processing.py +0 -0
  9. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/functions.py +0 -0
  10. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/legacy.py +0 -0
  11. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/plot_app.py +0 -0
  12. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/__init__.py +0 -0
  13. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/appearance.py +0 -0
  14. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/color_editor.py +0 -0
  15. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/columns.py +0 -0
  16. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/config.py +0 -0
  17. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/data.py +0 -0
  18. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/elements.py +0 -0
  19. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/export.py +0 -0
  20. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/histogram_multi.py +0 -0
  21. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/matplotlib_renderer.py +0 -0
  22. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/multi_axis.py +0 -0
  23. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/multi_y.py +0 -0
  24. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/plotly_renderer.py +0 -0
  25. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/summary.py +0 -0
  26. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/shiny/ui.py +0 -0
  27. {apmtools-0.2.50 → apmtools-0.2.51}/src/apmtools/units.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: apmtools
3
- Version: 0.2.50
3
+ Version: 0.2.51
4
4
  Summary: A collection of tools for processing air pollution monitoring data
5
5
  Project-URL: Homepage, https://github.com/federlorenz/apmtools
6
6
  Author-email: Federico Lorenzetti <lorenzetti.federico@gmail.com>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "apmtools"
7
- version = "0.2.50"
7
+ version = "0.2.51"
8
8
  authors = [
9
9
  { name="Federico Lorenzetti", email="lorenzetti.federico@gmail.com" },
10
10
  ]
@@ -1011,7 +1011,7 @@ class Group(pd.DataFrame):
1011
1011
 
1012
1012
  class Summary(pd.DataFrame):
1013
1013
 
1014
- _metadata = ['metadata']
1014
+ _metadata = ['metadata', 'plot']
1015
1015
 
1016
1016
  @property
1017
1017
  def _constructor(self):
@@ -1023,12 +1023,19 @@ class Summary(pd.DataFrame):
1023
1023
  self.metadata = metadata
1024
1024
  self.variable = variable
1025
1025
  self.description = description
1026
+ self.plots = None
1027
+
1028
+ def __setattr__(self, name, value):
1029
+ if name == "plot" and value is not None and not isinstance(value, list):
1030
+ raise TypeError("Summary.plot must be None or a list")
1031
+ super().__setattr__(name, value)
1026
1032
 
1027
1033
  def __finalize__(self, other, method=None, **kwargs):
1028
1034
  if isinstance(other, Summary):
1029
1035
  self.variable = getattr(other, "variable", None)
1030
1036
  self.metadata = getattr(other, "metadata", set()).copy()
1031
1037
  self.description = getattr(other, "description", "")
1038
+ self.plots = getattr(other, "plot", None)
1032
1039
 
1033
1040
  return self
1034
1041
 
@@ -1058,6 +1065,7 @@ class Summary(pd.DataFrame):
1058
1065
  return
1059
1066
 
1060
1067
  return_dict = copy.deepcopy(self)
1068
+ return_dict.plots = None
1061
1069
  a = {}
1062
1070
 
1063
1071
  if filter_style not in {'all', 'any', 'negative all', 'negative any'}:
@@ -1151,7 +1159,9 @@ class Summary(pd.DataFrame):
1151
1159
 
1152
1160
  self.description = self.description + \
1153
1161
  f"\nFiltered by {time_start if time_start != None else ""} till {time_end if time_end != None else ""}, {date_start if date_start != None else ""} till {date_end if date_end != None else ""}, {day if day != None else ""}"
1154
- return self.reset_index()
1162
+ result = self.reset_index()
1163
+ result.plots = None
1164
+ return result
1155
1165
 
1156
1166
  def set_attrib(self, attribute):
1157
1167
  """
@@ -1577,6 +1587,7 @@ class Summary(pd.DataFrame):
1577
1587
 
1578
1588
  out = self.subset({"monitor": [value]})
1579
1589
  out = out.dropna(axis=1,how="all")
1590
+ out.plots = None
1580
1591
  return out
1581
1592
 
1582
1593
 
File without changes
File without changes
File without changes