Module utility.server
Módulo com utilidades para o funcionamento do servidor.
Expand source code
"""
Módulo com utilidades para o funcionamento do servidor.
"""
import csv
from pathlib import Path
from datetime import date
def get_login_info(platform: str, info_path: Path) -> tuple[str]:
"""
Retorna uma tupla com login e senha respectivamente para
a plataforma solicitada.
"""
with open(info_path.resolve()) as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
if platform == row.get('platform'):
return row.get('user'), row.get('password')
def move_image(file_path: Path, destination: Path) -> None:
"""
Move a imagem que se encontra em `file_path` para o local
escolhido em `destination` e a renomeia com a data atual
no formato YYMMDD.png.
Argumentos:
-----------
file_path: pathlib.Path
Nome e caminho no qual a imagem se encontra (caminho/nome.png)
destination: pathlib.Path
Caminho para o qual a imagem irá
"""
name = date.today().strftime("%Y%m%d.png")
file_path.rename(destination / name)
def change_text(filename, outword, inword):
'''
Programa que recebe um arquivo e substitui uma palavra por outra
e escreve novamente no arquivo
Argumentos:
-----------
filename: str
Nome do arquivo que será modificado
outword: str
Palavra que será procurada no arquivo para ser substituida
inword: str
Palavra pela qual a outword será substituida
'''
with open(filename) as file: # abre sem apagar o arquivo
fread = file.read() # lê o arquivo armazenado em filename
# troca a str em outword pelo str em inword
fchanged = fread.replace(outword, inword)
with open(filename, "w") as file: # apaga texto do arquivo
file.write(fchanged) # escreve novo com as palavras trocadas
def find_string(filename: str, wrapper: tuple) -> str:
"""
Retorna a string com o texto que se encontra entre as
sequências de caracteres fornecidas na variável `wrappers`.
"""
with open(filename) as file: # abre sem apagar o arquivo
text = file.read() # lê o arquivo armazenado em filename
begin, end = text.find(wrapper[0]), text.find(wrapper[1])
string = text[begin + len(wrapper[0]): end]
return string
def sql_query(columns : list[str], *conditions : str) -> str:
'''
Retorna uma query básica do SQL.
Argumentos:
-----------
columns: list[str]
Colunas desejadas da tabela
conditions: opcional, str
Condições para seleção das colunas.
Cada condição será separada por um 'and'
Exemplo:
--------
>>> sql_query(['usuario','hora'], 'hora >= 2', "user='bruno'")
"select usuario, hora from eventos where hora >= 2 and user='bruno';"
'''
message = f"select {', '.join(columns)} from eventos"
if conditions:
message += ' where '+' and '.join(conditions)
return message + ';'
Functions
def change_text(filename, outword, inword)
-
Programa que recebe um arquivo e substitui uma palavra por outra e escreve novamente no arquivo
Argumentos:
filename: str
Nome do arquivo que será modificado
outword: str
Palavra que será procurada no arquivo para ser substituida
inword: str
Palavra pela qual a outword será substituida
Expand source code
def change_text(filename, outword, inword): ''' Programa que recebe um arquivo e substitui uma palavra por outra e escreve novamente no arquivo Argumentos: ----------- filename: str Nome do arquivo que será modificado outword: str Palavra que será procurada no arquivo para ser substituida inword: str Palavra pela qual a outword será substituida ''' with open(filename) as file: # abre sem apagar o arquivo fread = file.read() # lê o arquivo armazenado em filename # troca a str em outword pelo str em inword fchanged = fread.replace(outword, inword) with open(filename, "w") as file: # apaga texto do arquivo file.write(fchanged) # escreve novo com as palavras trocadas
def find_string(filename: str, wrapper: tuple) ‑> str
-
Retorna a string com o texto que se encontra entre as sequências de caracteres fornecidas na variável
wrappers
.Expand source code
def find_string(filename: str, wrapper: tuple) -> str: """ Retorna a string com o texto que se encontra entre as sequências de caracteres fornecidas na variável `wrappers`. """ with open(filename) as file: # abre sem apagar o arquivo text = file.read() # lê o arquivo armazenado em filename begin, end = text.find(wrapper[0]), text.find(wrapper[1]) string = text[begin + len(wrapper[0]): end] return string
def get_login_info(platform: str, info_path: pathlib.Path) ‑> tuple[str]
-
Retorna uma tupla com login e senha respectivamente para a plataforma solicitada.
Expand source code
def get_login_info(platform: str, info_path: Path) -> tuple[str]: """ Retorna uma tupla com login e senha respectivamente para a plataforma solicitada. """ with open(info_path.resolve()) as csvfile: reader = csv.DictReader(csvfile) for row in reader: if platform == row.get('platform'): return row.get('user'), row.get('password')
def move_image(file_path: pathlib.Path, destination: pathlib.Path) ‑> None
-
Move a imagem que se encontra em
file_path
para o local escolhido emdestination
e a renomeia com a data atual no formato YYMMDD.png.Argumentos:
file_path: pathlib.Path
Nome e caminho no qual a imagem se encontra (caminho/nome.png)
destination: pathlib.Path
Caminho para o qual a imagem irá
Expand source code
def move_image(file_path: Path, destination: Path) -> None: """ Move a imagem que se encontra em `file_path` para o local escolhido em `destination` e a renomeia com a data atual no formato YYMMDD.png. Argumentos: ----------- file_path: pathlib.Path Nome e caminho no qual a imagem se encontra (caminho/nome.png) destination: pathlib.Path Caminho para o qual a imagem irá """ name = date.today().strftime("%Y%m%d.png") file_path.rename(destination / name)
def sql_query(columns: list[str], *conditions: str) ‑> str
-
Retorna uma query básica do SQL.
Argumentos:
columns: list[str]
Colunas desejadas da tabela
conditions: opcional, str
Condições para seleção das colunas. Cada condição será separada por um 'and'
Exemplo:
>>> sql_query(['usuario','hora'], 'hora >= 2', "user='bruno'") "select usuario, hora from eventos where hora >= 2 and user='bruno';"
Expand source code
def sql_query(columns : list[str], *conditions : str) -> str: ''' Retorna uma query básica do SQL. Argumentos: ----------- columns: list[str] Colunas desejadas da tabela conditions: opcional, str Condições para seleção das colunas. Cada condição será separada por um 'and' Exemplo: -------- >>> sql_query(['usuario','hora'], 'hora >= 2', "user='bruno'") "select usuario, hora from eventos where hora >= 2 and user='bruno';" ''' message = f"select {', '.join(columns)} from eventos" if conditions: message += ' where '+' and '.join(conditions) return message + ';'