From 4080d02c51815d574c2c7f852b76d7dbb1cf697b Mon Sep 17 00:00:00 2001 From: "Ronaldo S.A. Batista" Date: Wed, 6 Mar 2024 17:43:33 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8A=20Added=20logging=20of=20Radcom?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extracao/datasources/sitarweb.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/extracao/datasources/sitarweb.py b/extracao/datasources/sitarweb.py index f968488..0b976c6 100644 --- a/extracao/datasources/sitarweb.py +++ b/extracao/datasources/sitarweb.py @@ -65,8 +65,11 @@ def query(self): def extraction(self): """This method returns a DataFrame with the results of the query""" if self.read_cache: - return self._read(f'{self.stem}_raw') - return pd.read_sql_query(self.query, self.connect()).astype('string', copy=False) + df = self._read(f'{self.stem}_raw', 'numpy_nullable') + else: + df = pd.read_sql_query(self.query, self.connect(), dtype='string', copy=False) + df['Log'] = '[]' + return df # %% ../../nbs/01c_sitarweb.ipynb 7 @@ -89,7 +92,7 @@ def _format( df: pd.DataFrame, # DataFrame com o resultantes do banco de dados ) -> pd.DataFrame: # DataFrame formatado """Formata, limpa e padroniza os dados provenientes da query no banco""" - df['Entidade'] = df['Entidade'].str.strip() + df['Entidade'] = df['Entidade'].astype('string', copy=False).str.strip() df['Serviço'] = '231' df['Classe_Emissão'] = pd.NA df['Largura_Emissão(kHz)'] = '256' @@ -105,13 +108,14 @@ def _format( + df.loc[~a, 'Situação'].astype('string', copy=False) ) df.drop(['Fase', 'Situação'], axis=1, inplace=True) - df['Log'] = '' + processing = 'Coluna Classe criada à partir de Fase e Situação' + Base.register_log(df, processing, 'Classe', a) df['Frequência'] = pd.to_numeric(df['Frequência'], errors='coerce').astype('float') - discarded = df[df.Frequência.isna()].copy() + discarded = df[df.Frequência.isna()] if not discarded.empty: - log = """[("Colunas", "Frequência"), - ("Processamento", "Valor Nulo")]""" - self.append2discarded(self.register_log(discarded, log)) + processing = 'Coluna Frequência com valores nulos' + Base.register_log(discarded, processing) + self.append2discarded(discarded) df.dropna(subset=['Frequência'], inplace=True) return df.loc[:, self.columns] @@ -135,7 +139,7 @@ def _format( ) -> pd.DataFrame: # DataFrame formatado """Formata, limpa e padroniza os dados provenientes da query no banco""" df['Status'] = 'L' - df['Entidade'] = df.Entidade.str.strip() + df['Entidade'] = df.Entidade.astype('string', copy=False).str.strip() df['Fonte'] = 'STEL' df['Largura_Emissão'] = df['Largura_Emissão'].astype('string', copy=False) df.loc[:, ['Largura_Emissão(kHz)', '_']] = ( @@ -143,7 +147,7 @@ def _format( ) df.drop(['Largura_Emissão', '_'], axis=1, inplace=True) df.loc[:, 'Validade_RF'] = df.Validade_RF.astype('string', copy=False).str.slice(0, 10) - df['Frequência'] = df['Frequência'].astype('float') + df['Frequência'] = pd.to_numeric(df['Frequência'], errors='coerce').astype('float') df.loc[df.Unidade == 'kHz', 'Frequência'] = df.loc[df.Unidade == 'kHz', 'Frequência'].apply( lambda x: float(Decimal(x) / Decimal(1000)) ) @@ -151,6 +155,5 @@ def _format( lambda x: float(Decimal(x) * Decimal(1000)) ) df.drop('Unidade', axis=1, inplace=True) - df['Multiplicidade'] = 1 - df['Log'] = '' + df['Multiplicidade'] = '1' return df.loc[:, self.columns]