diff --git a/Inflow/__init__.py b/Inflow/__init__.py index 5a298adfd084e1e8cedf6d0680d1cc7e58d3c988..b1a58867aea2100d48a778272aa29a5c630e06f2 100644 --- a/Inflow/__init__.py +++ b/Inflow/__init__.py @@ -1,4 +1,4 @@ -__version__ = "1.1.27" +__version__ = "1.1.28" def ask_for_session_label_gui(): import tkinter as tk diff --git a/Inflow/pandex/accessors.py b/Inflow/pandex/accessors.py index 63efba503aa88f25212723f82ff3bdb72f1beca0..9eb43ba5e5f7ddf6115d7d04010647825f17f162 100644 --- a/Inflow/pandex/accessors.py +++ b/Inflow/pandex/accessors.py @@ -34,4 +34,24 @@ class GroupUtilsAccessor: def groupby(self, condition_keys,*args,**kwargs): for condition_values , group in self._obj.groupby(condition_keys,*args,**kwargs): conditions = {key : value for key, value in zip(condition_keys , condition_values)} - yield conditions, group \ No newline at end of file + yield conditions, group + +@pd.api.extensions.register_series_accessor("one") +class OneAcessor: + def __init__(self, pandas_obj) -> None: + self._validate(pandas_obj) + self._obj = pandas_obj + self.project = self._obj.projects[0] + + @staticmethod + def _validate(obj): + required_fields = ["path","alias","subject","date","number","json","qc","rel_path","admin_url", "projects"] + missing_fields = [] + for req_field in required_fields : + if not req_field in obj.index : + missing_fields.append(req_field) + if len(missing_fields): + raise AttributeError(f"The series must have some fields to use one acessor. This object is missing fields : {','.join(missing_fields)}") + + def add_pipelines_accessors(self): + pass