Package Installation (v2.0+)¶
Starting with v2.0, Agoras is split into 5 separate PyPI packages. The main CLI package automatically installs all dependencies.
Full Installation (Recommended for Most Users):
$ pip install agoras # Installs all 5 packages including CLI
This installs:
- agoras-common: Utilities, logging, shared constants
- agoras-media: Image and video processing
- agoras-core: Abstract interfaces, Feed, Sheet logic
- agoras-platforms: Platform implementations
- agoras: Command-line interface
Selective Installation (Advanced Users):
Install only the packages you need:
# Just utilities and logging
$ pip install agoras-common
# Media processing (includes common)
$ pip install agoras-media
# Core interfaces and business logic (includes common + media)
$ pip install agoras-core
# Platform implementations (includes all above)
$ pip install agoras-platforms
# CLI tool (includes everything)
$ pip install agoras
Package Dependencies:
The packages follow a layered dependency structure:
agoras (CLI)
└── agoras-platforms
└── agoras-core
├── agoras-media
└── agoras-common
When to Use Each Package:
Most users:
pip install agoras(full CLI installation)Python integrations:
pip install agoras-platforms(no CLI, all platforms)Custom platforms:
pip install agoras-core(interfaces only)Media processing:
pip install agoras-media(no social features)Utilities only:
pip install agoras-common(minimal dependencies)
Breaking Change: The monolithic agoras package structure has been removed. You must install from the new package structure.
Understanding the Package Split¶
Why Split the Package?¶
The monolithic package structure in v1.x had several limitations:
Heavy Dependencies: All users had to install media processing libraries even if they only needed basic posting
Tight Coupling: Platform implementations were mixed with core interfaces
Large Install Size: Single package contained everything
Hard to Extend: Difficult to build custom integrations without pulling in all dependencies
The v2.0 modular architecture addresses these issues:
Selective Installation: Install only what you need
Clear Boundaries: Each package has a well-defined purpose
Smaller Footprint: Minimal installations for specific use cases
Better Extensibility: Easy to build custom platforms using just
agoras-core
Package Responsibilities¶
- agoras-common (Foundation)
Shared utilities and helper functions
Logging configuration
Version information
Depends on:
requests,beautifulsoup4
- agoras-media (Media Processing)
Image processing (Pillow)
Video processing (OpenCV via
opencv-python-headless)Media factory for creating media objects
Depends on:
agoras-common
- agoras-core (Business Logic)
Abstract
SocialNetworkinterfaceBase API classes
Authentication infrastructure
Feed automation logic
Google Sheets integration
Depends on:
agoras-common,agoras-media
- agoras-platforms (Platform Implementations)
Concrete platform implementations (Facebook, Twitter, etc.)
Platform-specific API clients
Platform authentication handlers
Depends on:
agoras-core(which includes media and common)
- agoras (CLI Tool)
Command-line interface
Platform command handlers
Utility commands (feed, schedule)
Depends on:
agoras-platforms(which includes all others)
Migration Strategy¶
Update Installation: Change
pip install agorasto ensure you get v2.0+ (or use specific packages)Update Imports: Use the import mapping table in migration/imports to update all Python imports
Test Incrementally: Start with non-critical scripts, then migrate production code
Update CI/CD: Ensure build pipelines install the correct packages
Check Dependencies: If you only need specific functionality, consider installing only relevant packages