A Zeeker project for managing the zeeker-judgements database.
-
Add dependencies for your data sources:
uv add requests beautifulsoup4 # Example: web scraping dependencies -
Add resources:
uv run zeeker add my_resource --description "Description of the resource" -
Create
.envfile for credentials (optional):# Create .env file with API keys and S3 credentials echo "MY_API_KEY=your_api_key_here" > .env
-
Implement data fetching in
resources/my_resource.py -
Build the database:
uv run zeeker build
-
Deploy to S3:
uv run zeeker deploy
This project includes a GitHub Action that automatically builds and deploys to S3:
- Triggers: Pushes to main/master branch, or manual dispatch
- Required Secrets: Configure in GitHub repository settings:
S3_BUCKET- Target S3 bucket nameAWS_ACCESS_KEY_ID- AWS access keyAWS_SECRET_ACCESS_KEY- AWS secret keyJINA_API_TOKEN- (optional) For Jina Reader resourcesOPENAI_API_KEY- (optional) For OpenAI resources
- Workflow:
.github/workflows/deploy.yml
To deploy manually: Go to Actions tab → "Deploy Zeeker Project to S3" → Run workflow
pyproject.toml- Project dependencies and metadatazeeker.toml- Project configurationresources/- Python modules for data fetching.env- Environment variables (gitignored, create manually)zeeker-judgements.db- Generated SQLite database (gitignored).venv/- Virtual environment (gitignored)
This project uses uv for dependency management. Common dependencies for data projects:
requests- HTTP API callsbeautifulsoup4- Web scraping and HTML parsingpandas- Data processing and analysislxml- XML parsingpdfplumber- PDF text extractionopenpyxl- Excel file reading
Add dependencies with: uv add package_name
Zeeker automatically loads .env files during build and deployment:
# S3 deployment (required for deploy)
S3_BUCKET=your-bucket-name
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
# API keys for your resources
JINA_API_TOKEN=your-jina-token
OPENAI_API_KEY=your-openai-keyFormat and lint code:
uv run black .- Format code with blackuv run ruff check .- Lint code with ruffuv run ruff check --fix .- Auto-fix ruff issues