Documentation Index
Fetch the complete documentation index at: https://docs.squidy.run/llms.txt
Use this file to discover all available pages before exploring further.
Sistema de Arquivos
O Squidy usa uma abstração de sistema de arquivos para facilitar testes.
Interface (Port)
class FileSystem(ABC):
@abstractmethod
def read(self, path: str) -> str:
"""Lê conteúdo do arquivo"""
pass
@abstractmethod
def write(self, path: str, content: str):
"""Escreve conteúdo no arquivo"""
pass
@abstractmethod
def exists(self, path: str) -> bool:
"""Verifica se arquivo existe"""
pass
@abstractmethod
def mkdir(self, path: str):
"""Cria diretório"""
pass
Implementações
LocalFileSystem
Implementação para uso real no sistema de arquivos local.
from squidy.adapters.filesystem.local_fs import LocalFileSystem
fs = LocalFileSystem()
content = fs.read("./readme-agent.md")
MockFileSystem
Implementação em memória para testes.
from squidy.adapters.filesystem.mock_fs import MockFileSystem
fs = MockFileSystem()
fs.write("/test/file.md", "conteúdo")
assert fs.exists("/test/file.md")
Uso nos Use Cases
Injeção de dependência permite trocar implementações:
# Produção
use_case = InitUseCase(fs=LocalFileSystem())
# Teste
use_case = InitUseCase(fs=MockFileSystem())
Benefícios
- Testes rápidos - Sem I/O de disco
- Testes determinísticos - Sem dependência de estado
- Paralelismo - Testes isolados
- CI/CD - Funciona em qualquer ambiente