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 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á
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 + ';'