From af66d4384ccec94c18e1528b4b3dc0084bc8ddc9 Mon Sep 17 00:00:00 2001 From: Timothe Jost <timothe.jost@wanadoo.fr> Date: Mon, 25 Sep 2023 16:41:05 +0200 Subject: [PATCH] temp one acessor --- Inflow/__init__.py | 2 +- Inflow/pandex/accessors.py | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Inflow/__init__.py b/Inflow/__init__.py index 5a298ad..b1a5886 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 63efba5..9eb43ba 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 -- GitLab