sagace.core.storage package

Submodules

sagace.core.storage.file_storage module


Descrição:

Este módulo define uma estrutura para gerenciamento de tokens de autenticação dentro do sistema SAGACE. A classe FileTokenStorage implementa a interface TokenStorage para armazenar tokens em um arquivo JSON, permitindo a persistência do token mesmo após reinicializações do sistema.

Principais funcionalidades:

  • Armazena tokens de autenticação em um arquivo JSON.

  • Recupera tokens armazenados garantindo sua reutilização.

  • Implementa a interface TokenStorage, garantindo flexibilidade e substituição de implementação.

Princípios de Design Aplicados:

  • Single Responsibility Principle (SRP - SOLID): A classe tem a única responsabilidade de armazenar tokens em arquivos.

  • Open/Closed Principle (OCP - SOLID): FileTokenStorage pode ser estendida sem modificar seu código-fonte.

  • Dependency Inversion Principle (DIP - SOLID): FileTokenStorage depende da abstração TokenStorage, permitindo flexibilidade.

Classes: - FileTokenStorage: Implementação concreta de TokenStorage utilizando arquivos JSON.

Exemplo de uso:

from sagace.core import Token, FileTokenStorage

token_storage = FileTokenStorage("token.json")
token = Token(
    base_url="https://api.sagace.online",
    access_token="abc123",
    application_name="Meu App",
    description="Token de acesso persistente."
)
token_storage.save_token(token)
retrieved_token = token_storage.get_token()
print(retrieved_token.get_auth_header())

Autor: Diego Yosiura Última Atualização: 27/02/2025 16:24 Criado em: 27/02/2025 16:24 Copyright: (c) Ampere Consultoria Ltda Projeto Original: sagace-v2-package IDE: PyCharm

class sagace.core.storage.file_storage.FileTokenStorage(token_file: str)[source]

Bases: TokenStorage

Implementação de TokenStorage para persistência de tokens em arquivos JSON.

Esta classe permite armazenar tokens de autenticação em arquivos JSON para garantir sua persistência, garantindo que as credenciais sejam mantidas mesmo após reinicializações do sistema.

Princípios aplicados:

  • Single Responsibility Principle (S - SOLID): Responsável apenas por salvar e recuperar tokens de arquivos.

  • Dependency Inversion Principle (D - SOLID): Depende da abstração TokenStorage, garantindo desacoplamento.

Parameters:

token_file (str) – Caminho do arquivo onde o token será armazenado.

_abc_impl = <_abc._abc_data object>
get_token() Token[source]

Recupera o token armazenado no arquivo JSON.

Returns:

Instância do token armazenado.

Return type:

Token

Raises:

ValueError – Se o arquivo de token não for encontrado.

save_token(token: Token)[source]

Armazena o token em um arquivo JSON.

Parameters:

token (Token) – Instância do token a ser armazenado.

sagace.core.storage.memory_storage module


Descrição:

Este módulo define uma estrutura para gerenciamento de tokens de autenticação dentro do sistema SAGACE. A classe MemoryTokenStorage implementa a interface TokenStorage para armazenar tokens temporariamente na memória, permitindo acesso rápido sem necessidade de persistência em arquivos ou banco de dados.

Principais funcionalidades:

  • Armazena tokens de autenticação apenas em memória.

  • Recupera tokens armazenados durante a execução do programa.

  • Implementa a interface TokenStorage, garantindo flexibilidade e substituição de implementação.

Princípios de Design Aplicados:

  • Single Responsibility Principle (SRP - SOLID): A classe tem a única responsabilidade de armazenar tokens em memória.

  • Open/Closed Principle (OCP - SOLID): MemoryTokenStorage pode ser estendida sem modificar seu código-fonte.

  • Dependency Inversion Principle (DIP - SOLID): MemoryTokenStorage depende da abstração TokenStorage, permitindo flexibilidade.

Classes:

  • MemoryTokenStorage: Implementação concreta de TokenStorage utilizando armazenamento em memória.

Exemplo de uso:

from sagace.core import Token, MemoryTokenStorage

token_storage = MemoryTokenStorage()
token = Token(
    base_url="https://api.sagace.online",
    access_token="abc123",
    application_name="Meu App",
    description="Token de acesso temporário."
)
token_storage.save_token(token)
retrieved_token = token_storage.get_token()
print(retrieved_token.get_auth_header())

Autor: Diego Yosiura Última Atualização: 27/02/2025 16:24 Criado em: 27/02/2025 16:24 Copyright: (c) Ampere Consultoria Ltda Projeto Original: sagace-v2-package IDE: PyCharm

class sagace.core.storage.memory_storage.MemoryTokenStorage[source]

Bases: TokenStorage

Implementação de TokenStorage para armazenamento temporário de tokens na memória.

Esta classe permite armazenar tokens de autenticação em memória para acesso rápido, garantindo que os tokens sejam descartados ao final da execução do programa.

Princípios aplicados:

  • Single Responsibility Principle (S - SOLID): Responsável apenas por armazenar e recuperar tokens na memória.

  • Dependency Inversion Principle (D - SOLID): Depende da abstração TokenStorage, garantindo desacoplamento.

_abc_impl = <_abc._abc_data object>
get_token() Token[source]

Recupera o token armazenado na memória.

Returns:

Instância do token armazenado.

Return type:

Token

Raises:

ValueError – Se o token não estiver armazenado na memória.

save_token(token: Token)[source]

Armazena o token na memória.

Parameters:

token (Token) – Instância do token a ser armazenado.

sagace.core.storage.redis_storage module


Descrição:

Este módulo define uma estrutura para gerenciamento de tokens de autenticação dentro do sistema SAGACE. A classe RedisTokenStorage implementa a interface TokenStorage para armazenar tokens em um banco Redis, permitindo recuperação eficiente e persistente dos tokens.

Principais funcionalidades:

  • Armazena tokens de autenticação no Redis.

  • Recupera tokens armazenados garantindo sua reutilização.

  • Implementa a interface TokenStorage, garantindo flexibilidade e substituição de implementação.

Princípios de Design Aplicados:

  • Single Responsibility Principle (SRP - SOLID): A classe tem a única responsabilidade de armazenar tokens no Redis.

  • Open/Closed Principle (OCP - SOLID): RedisTokenStorage pode ser estendida sem modificar seu código-fonte.

  • Dependency Inversion Principle (DIP - SOLID): RedisTokenStorage depende da abstração TokenStorage, permitindo flexibilidade.

Classes:

  • RedisTokenStorage: Implementação concreta de TokenStorage utilizando Redis.

Exemplo de uso:

from sagace.core import Token, RedisTokenStorage

token_storage = RedisTokenStorage("redis://localhost:6379/0")
token = Token(
    base_url="https://api.sagace.online",
    access_token="abc123",
    application_name="Meu App",
    description="Token de acesso persistente."
)
token_storage.save_token(token)
retrieved_token = token_storage.get_token()
print(retrieved_token.get_auth_header())

Autor: Diego Yosiura Última Atualização: 27/02/2025 16:24 Criado em: 27/02/2025 16:24 Copyright: (c) Ampere Consultoria Ltda Projeto Original: sagace-v2-package IDE: PyCharm

class sagace.core.storage.redis_storage.RedisTokenStorage(redis_url='redis://localhost:6379/0')[source]

Bases: TokenStorage

Implementação de TokenStorage para persistência de tokens no Redis.

Esta classe permite armazenar tokens de autenticação em Redis para garantir recuperação rápida e persistência, mesmo após a reinicialização do sistema.

Princípios aplicados:

  • Single Responsibility Principle (S - SOLID): Responsável apenas por salvar e recuperar tokens no Redis.

  • Dependency Inversion Principle (D - SOLID): Depende da abstração TokenStorage, garantindo desacoplamento.

Parameters:

redis_url (str) – URL de conexão com o servidor Redis.

_abc_impl = <_abc._abc_data object>
get_token() Token[source]

Recupera o token armazenado no Redis.

Returns:

Instância do token armazenado.

Return type:

Token

Raises:

ValueError – Se o token não for encontrado no Redis.

save_token(token: Token)[source]

Armazena o token no Redis.

Parameters:

token (Token) – Instância do token a ser armazenado.

Module contents


Description:

Obs.:

Author: @diego.yosiura Last Update: 27/02/2025 16:24 Created: 27/02/2025 16:24 Copyright: (c) Ampere Consultoria Ltda Original Project: sagace-v2-package IDE: PyCharm