Skip to content

Commit

Permalink
linting pt.2
Browse files Browse the repository at this point in the history
  • Loading branch information
luabida committed Nov 25, 2024
1 parent b128d25 commit e3bd000
Show file tree
Hide file tree
Showing 13 changed files with 82 additions and 84 deletions.
10 changes: 8 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
# html_logo = None

# The name of an image file (relative to this directory) to use as a favicon of
# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
#
# html_favicon = None
Expand Down Expand Up @@ -265,7 +265,13 @@
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, "PySUS.tex", "PySUS Documentation", "Flavio Codeco Coelho", "manual"),
(
master_doc,
"PySUS.tex",
"PySUS Documentation",
"Flavio Codeco Coelho",
"manual"
),
]

# The name of an image file (relative to this directory) to place at the top of
Expand Down
2 changes: 0 additions & 2 deletions pysus/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@

from importlib import metadata as importlib_metadata

from . import preprocessing, utilities


def get_version() -> str:
try:
Expand Down
1 change: 0 additions & 1 deletion pysus/data/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import logging
import os
import struct
from datetime import datetime
Expand Down
6 changes: 3 additions & 3 deletions pysus/ftp/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import pathlib
from datetime import datetime
from ftplib import FTP
from typing import Any, Dict, List, Optional, Set, Tuple, Union
from typing import Any, Dict, List, Optional, Tuple, Union

import humanize
from aioftp import Client
Expand Down Expand Up @@ -473,8 +473,8 @@ def __repr__(self) -> str:
def content(self) -> List[Union[Directory, File]]:
"""
Lists Database content. The `paths` will be loaded if this property is
called or if explicitly using `load()`. To add specific Directory inside
content, `load()` the directory and call `content` again.
called or if explicitly using `load()`. To add specific Directory
inside content, `load()` the directory and call `content` again.
"""
if not self.__content__:
logger.info(
Expand Down
31 changes: 17 additions & 14 deletions pysus/ftp/databases/ciha.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,23 @@ class CIHA(Database):
"long_name": "Comunicação de Internação Hospitalar e Ambulatorial",
"source": "http://ciha.datasus.gov.br/CIHA/index.php",
"description": (
"A CIHA foi criada para ampliar o processo de planejamento, programação, "
"controle, avaliação e regulação da assistência à saúde permitindo um "
"conhecimento mais abrangente e profundo dos perfis nosológico e "
"epidemiológico da população brasileira, da capacidade instalada e do "
"potencial de produção de serviços do conjunto de estabelecimentos de saúde "
"do País. O sistema permite o acompanhamento das ações e serviços de saúde "
"custeados por: planos privados de assistência à saúde; planos públicos; "
"pagamento particular por pessoa física; pagamento particular por pessoa "
"jurídica; programas e projetos federais (PRONON, PRONAS, PROADI); recursos "
"próprios das secretarias municipais e estaduais de saúde; DPVAT; gratuidade "
"e, a partir da publicação da Portaria GM/MS nº 2.905/2022, consórcios públicos. "
"As informações registradas na CIHA servem como base para o processo de "
"Certificação de Entidades Beneficentes de Assistência Social em Saúde (CEBAS) "
"e para monitoramento dos programas PRONAS e PRONON."
"A CIHA foi criada para ampliar o processo de planejamento, "
"programação, controle, avaliação e regulação da assistência à "
"saúde permitindo um conhecimento mais abrangente e profundo dos "
"perfis nosológico e epidemiológico da população brasileira, da "
"capacidade instalada e do potencial de produção de serviços do "
"conjunto de estabelecimentos de saúde do País. O sistema permite "
"o acompanhamento das ações e serviços de saúde custeados "
"por: planos privados de assistência à saúde; planos públicos; "
"pagamento particular por pessoa física; pagamento particular por "
"pessoa jurídica; programas e projetos federais (PRONON, PRONAS, "
"PROADI); recursos próprios das secretarias municipais e estaduais"
" de saúde; DPVAT; gratuidade e, a partir da publicação da "
"Portaria GM/MS nº 2.905/2022, consórcios públicos. As "
"informações registradas na CIHA servem como base para o processo "
"de Certificação de Entidades Beneficentes de Assistência Social "
"em Saúde (CEBAS) e para monitoramento dos programas PRONAS e "
"PRONON"
),
}
groups = {
Expand Down
5 changes: 2 additions & 3 deletions pysus/ftp/databases/ibge_datasus.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from typing import List, Literal, Optional, Union

from loguru import logger
from pysus.ftp import Database, Directory, File
from pysus.ftp.utils import to_list, zfill_year
from pysus.ftp.utils import zfill_year


class IBGEDATASUS(Database):
Expand All @@ -12,7 +11,7 @@ class IBGEDATASUS(Database):
Directory("/dissemin/publicos/IBGE/censo"),
Directory("/dissemin/publicos/IBGE/POPTCU"),
Directory("/dissemin/publicos/IBGE/projpop"),
# Directory("/dissemin/publicos/IBGE/Auxiliar") # this has a different file name pattern
# Directory("/dissemin/publicos/IBGE/Auxiliar") # this has a different file name pattern # noqa
)
metadata = {
"long_name": "Populaçao Residente, Censos, Contagens "
Expand Down
19 changes: 10 additions & 9 deletions pysus/ftp/databases/sih.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,21 @@ class SIH(Database):
metadata = {
"long_name": "Sistema de Informações Hospitalares",
"source": (
"https://datasus.saude.gov.br/acesso-a-informacao/morbidade-hospitalar-do-sus-sih-sus/",
"https://datasus.saude.gov.br/acesso-a-informacao/producao-hospitalar-sih-sus/",
"https://datasus.saude.gov.br/acesso-a-informacao/morbidade-hospitalar-do-sus-sih-sus/", # noqa
"https://datasus.saude.gov.br/acesso-a-informacao/producao-hospitalar-sih-sus/", # noqa
),
"description": (
"A finalidade do AIH (Sistema SIHSUS) é a de transcrever todos os "
"atendimentos que provenientes de internações hospitalares que "
"foram financiadas pelo SUS, e após o processamento, gerarem "
"relatórios para os gestores que lhes possibilitem fazer os pagamentos "
"dos estabelecimentos de saúde. Além disso, o nível Federal recebe "
"mensalmente uma base de dados de todas as internações autorizadas "
"(aprovadas ou não para pagamento) para que possam ser repassados às "
"Secretarias de Saúde os valores de Produção de Média e Alta complexidade "
"além dos valores de CNRAC, FAEC e de Hospitais Universitários – em suas "
"variadas formas de contrato de gestão."
"relatórios para os gestores que lhes possibilitem fazer os "
"pagamentos dos estabelecimentos de saúde. Além disso, o nível "
"Federal recebe mensalmente uma base de dados de todas as "
"internações autorizadas (aprovadas ou não para pagamento) para "
"que possam ser repassados às Secretarias de Saúde os valores de "
"Produção de Média e Alta complexidade além dos valores de CNRAC, "
"FAEC e de Hospitais Universitários – em suas variadas formas de "
"contrato de gestão."
),
}
groups = {
Expand Down
11 changes: 0 additions & 11 deletions pysus/ftp/databases/territory.py

This file was deleted.

8 changes: 4 additions & 4 deletions pysus/online_data/Infogripe.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@

import pandas as pd

BASEURL = r"https://gitlab.fiocruz.br/marcelo.gomes/infogripe/-/raw/master/Dados/InfoGripe/"
BASEURL = r"https://gitlab.fiocruz.br/marcelo.gomes/infogripe/-/raw/master/Dados/InfoGripe/" # noqa
DATASETS = {
"Alerta de situação": r"tabela_de_alerta.csv",
"Casos por idade, sexo e virus": r"dados_semanais_faixa_etaria_sexo_virus.csv.gz",
"Casos Totais e estimativas": r"serie_temporal_com_estimativas_recentes.csv.gz",
"Valores esperados por localidades": "valores_esperados_por_localidade.csv",
"Casos por idade, sexo e virus": r"dados_semanais_faixa_etaria_sexo_virus.csv.gz", # noqa
"Casos Totais e estimativas": r"serie_temporal_com_estimativas_recentes.csv.gz", # noqa
"Valores esperados por localidades": "valores_esperados_por_localidade.csv", # noqa
}


Expand Down
4 changes: 2 additions & 2 deletions pysus/online_data/SIM.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ def get_municipios(cache=True):
try:
ftp.retrbinary("RETR {}".format(fname), open(fname, "wb").write)

except:
except Exception:
raise Exception("Could not download {}".format(fname))

dbf = DBF(fname, encoding="iso-8859-1")
Expand Down Expand Up @@ -272,7 +272,7 @@ def get_ocupations(cache=True):
try:
ftp.retrbinary("RETR {}".format(fname), open(fname, "wb").write)

except:
except Exception:
raise Exception("Could not download {}".format(fname))

dbf = DBF(fname, encoding="iso-8859-1")
Expand Down
13 changes: 3 additions & 10 deletions pysus/online_data/territory.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
from pathlib import Path
from typing import Dict, List, Union
from typing import List, Union

import pandas as pd
from pysus.ftp import CACHEPATH, Directory, File
from pysus.ftp.databases.territory import Territory

ter = Territory().load()


def list_tables() -> List[File]:
Expand All @@ -26,8 +21,6 @@ def download(fname: Union[str, list], data_path: str = CACHEPATH):
+ Directory("/territorio/mapas").content
)
for file in files:
if fname in [
str(file),
file.name,
]: # handles suffixed and no suffixed `fname`s
if fname in [str(file), file.name]:
# handles suffixed and no suffixed `fname`s
return file.download()
19 changes: 10 additions & 9 deletions pysus/online_data/vaccine.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This module contains function to download from specific campains:
- COVID-19 in 2020-2021 Downloaded as described [here](http://opendatasus.saude.gov.br/dataset/b772ee55-07cd-44d8-958f-b12edd004e0b/resource/5916b3a4-81e7-4ad5-adb6-b884ff198dc1/download/manual_api_vacina_covid-19.pdf)
- COVID-19 in 2020-2021 Downloaded as described [here](http://opendatasus.saude.gov.br/dataset/b772ee55-07cd-44d8-958f-b12edd004e0b/resource/5916b3a4-81e7-4ad5-adb6-b884ff198dc1/download/manual_api_vacina_covid-19.pdf) # noqa
"""
import json
import os
Expand All @@ -21,12 +21,12 @@ def download_covid(uf=None, only_header=False):
Download covid vaccination data for a give UF
:param uf: 'RJ' | 'SP', etc.
:param only_header: Used to see the header of the data before downloading.
:return: dataframe iterator as returned by pandas `read_csv('Vaccine_temp_<uf>.csv.gz', chunksize=5000)`
:return: dataframe iterator as returned by pandas
`read_csv('Vaccine_temp_<uf>.csv.gz', chunksize=5000)`
"""
user = "imunizacao_public"
pwd = "qlto5t&7r_@+#Tlstigi"
index = "desc-imunizacao"
url = f"https://imunizacao-es.saude.gov.br/_search?scroll=1m"
url = "https://imunizacao-es.saude.gov.br/_search?scroll=1m"
if uf is None:
query = {"query": {"match_all": {}}, "size": 10000}
UF = "BR"
Expand All @@ -41,7 +41,8 @@ def download_covid(uf=None, only_header=False):
tempfile = os.path.join(CACHEPATH, f"Vaccine_temp_{UF}.csv.gz")
if os.path.exists(tempfile):
print(
"loading from cache. Returning an iterator of Dataframes in chunks of 5000."
"loading from cache. Returning an iterator of Dataframes in chunks"
" of 5000."
)
return pd.read_csv(tempfile, chunksize=5000)

Expand All @@ -51,7 +52,7 @@ def download_covid(uf=None, only_header=False):
if only_header:
df = pd.DataFrame(next(data_gen))
logger.warning(
f"Downloading data sample for visualization of {df.shape[0]} rows..."
f"Downloading data sample for visualization of {df.shape[0]} rows"
)
return df

Expand Down Expand Up @@ -83,9 +84,9 @@ def elasticsearch_fetch(uri, auth, json_body={}):
json_body["scroll_id"] = scroll_id
json_body["scroll"] = "1m"
if "query" in json_body:
del json_body[
"query"
] # for the continuation of the download, query parameter is not allowed
del json_body["query"]
# for the continuation of the download,
# query parameter is not allowed
del json_body["size"]
try:
s = requests.Session()
Expand Down
37 changes: 23 additions & 14 deletions pysus/preprocessing/SIM.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@ def group_and_count(
dataframe, group_columns, count_column="COUNTS", decimal_counts=False
):
"""
Agrupa e conta as variáveis passadas como parâmetro no dataframe. Cria uma nova
coluna de contagem, com o tipo Decimal para possibilitar redistribuição pro rata posterior e maior precisão.
Agrupa e conta as variáveis passadas como parâmetro no dataframe. Cria uma
nova coluna de contagem, com o tipo Decimal para possibilitar
redistribuição pro rata posterior e maior precisão.
:param dataframe: dataframe pandas
:param group_columns: lista de string contendo o nome das colunas a serem agrupadas no dataframe.
:param group_columns: lista de string contendo o nome das colunas a serem
agrupadas no dataframe.
:param count_columns: nome da coluna de counts a ser criada.
:return:
"""
Expand All @@ -57,11 +59,13 @@ def redistribute_missing(
counts, filter_columns, count_column="COUNTS", nan_string="nan"
):
"""
Realiza redistribuição pro rata das contagens do SIM com algum dado faltante.
O dataframe deve conter uma coluna float64 chamada CONTAGEM e as demais colunas devem ser
do tipo category, tendo os dados faltantes em uma categoria definida pelo parâmetro nan_string.
Realiza redistribuição pro rata das contagens do SIM com algum dado
faltante. O dataframe deve conter uma coluna float64 chamada CONTAGEM e as
demais colunas devem ser do tipo category, tendo os dados faltantes em uma
categoria definida pelo parâmetro nan_string.
:param counts: dataframe pandas contendo coluna com soma chamada CONTAGEM
:param filter_columns: variáveis a serem consideradas para filtro de redistribuição pro rata
:param filter_columns: variáveis a serem consideradas para filtro de
redistribuição pro rata
:param count_columns: nome da coluna de counts.
:param nan_string: string usada na categoria de dado faltante
:return:
Expand All @@ -72,7 +76,7 @@ def redistribute_missing(
condition_dict = {var: nan_string, count_column: 0.0}
counts = counts[~logical_and_from_dict(counts, condition_dict)]

### Dataframes de dados faltantes
# Dataframes de dados faltantes

variables_dict = [{x: nan_string} for x in filter_columns]

Expand Down Expand Up @@ -119,10 +123,12 @@ def redistribute_cid_chapter(
count_columns="COUNTS",
):
"""
Realiza redistribuição pro rata das contagens do SIM de um capítulo do CID10 passado.
Por padrão o capítulo XVIII, de causas mal definidas, é redistribuído.
Realiza redistribuição pro rata das contagens do SIM de um capítulo do
CID10 passado. Por padrão o capítulo XVIII, de causas mal definidas,
é redistribuído.
:param counts: dataframe pandas contendo coluna com contagem
:param filter_columns: variáveis a serem consideradas para filtro na redistribuição pro rata
:param filter_columns: variáveis a serem consideradas para filtro na
redistribuição pro rata
:param chapter: capítulo do CID10 a ser redistribuído
:param chapter_column: nome da coluna de capítulo
:param count_columns: nome da coluna de counts
Expand All @@ -140,10 +146,13 @@ def redistribute_rows_pro_rata(
counts, filter_columns, redistribute_list, count_columns="COUNTS"
):
"""
Redistribui as contagens do dataframe conforme as colunas de filtro passadas.
Redistribui as contagens do dataframe conforme as colunas de filtro
passadas.
:param counts: dataframe pandas contendo coluna de contagem
:param filter_columns: variáveis a serem consideradas para filtro na redistribuição pro rata
:param redistribute_list: dataframe contendo as linhas que serão redistribuídas
:param filter_columns: variáveis a serem consideradas para filtro na
redistribuição pro rata
:param redistribute_list: dataframe contendo as linhas que serão
redistribuídas
:param count_columns: nome da coluna de counts
:return:
"""
Expand Down

0 comments on commit e3bd000

Please sign in to comment.