Metadata-Version: 2.4
Name: mediaplanpy
Version: 2.0.7
Summary: Python SDK for Media Plan Open Data Standard
Author-email: Laurent Colard <laurent.colard@l5i.com>
License: MIT
Project-URL: Homepage, https://github.com/laurent-colard-l5i/mediaplanpy
Project-URL: Bug Tracker, https://github.com/laurent-colard-l5i/mediaplanpy/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jsonschema>=4.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: openpyxl>=3.0.0
Requires-Dist: pyarrow>=7.0.0
Requires-Dist: psycopg2-binary>=2.9.0
Requires-Dist: google-api-python-client>=2.0.0
Requires-Dist: google-auth-httplib2>=0.1.0
Requires-Dist: google-auth-oauthlib>=0.5.0
Requires-Dist: duckdb>=0.9.2
Requires-Dist: boto3>=1.26.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: isort>=5.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pre-commit>=2.0.0; extra == "dev"
Dynamic: license-file

# MediaPlanPy

Open source Python SDK providing the foundational tools developers need to build, manage, and analyze media plans based on our open data standard (mediaplanschema).

## 🔗 Related Projects

MediaPlanPy is the official Python implementation of the **[MediaPlan Schema](https://github.com/planmatic/mediaplanschema)** standard. The two repositories work together:

- **[mediaplanschema](https://github.com/planmatic/mediaplanschema)** - Defines the open data standard for media plans
- **mediaplanpy** - Python SDK that fully conforms to and implements the mediaplanschema standard

MediaPlanPy handles schema validation, versioning, and migration to ensure full compliance with the MediaPlan Schema specification.

## Key Features

- **Multi-Format Support** - Work with JSON, Excel, and Parquet files seamlessly
- **Schema Versioning** - Automatic version detection and migration between schema versions
- **Flexible Storage** - Local filesystem, S3, Google Drive, and PostgreSQL backends
- **Workspace Management** - Multi-environment support with isolated configurations
- **CLI Interface** - Comprehensive command-line tools for all operations
- **Validation Framework** - Schema-based validation with detailed error reporting
- **Analytics Ready** - Built-in Parquet generation and SQL query capabilities
- **Database Integration** - Automatic PostgreSQL synchronization for analytics

## Documentation

- **[GET_STARTED.md](GET_STARTED.md)** - Detailed setup and first steps guide

## Schema Compliance

MediaPlanPy fully implements the [MediaPlan Schema](https://github.com/planmatic/mediaplanschema) standard:

- **Schema v2.0** - Full support for current specification
- **Schema v1.0** - Legacy support with automatic migration
- **Validation** - Comprehensive schema validation
- **Migration** - Automatic version upgrades
- **Extensibility** - Support for custom fields and dimensions

## Requirements

- **Python**: 3.7 or higher
- **Core Dependencies**: 
  - `pydantic>=1.10.0` - Data validation
  - `pandas>=1.5.0` - Data manipulation
- **Optional Dependencies**:
  - `openpyxl>=3.0.0` - Excel support
  - `psycopg2-binary>=2.9.0` - PostgreSQL integration
  - `pyarrow>=10.0.0` - Parquet support
  - `duckdb>=0.8.0` - Advanced analytics

## Roadmap

- **Cloud Storage Backends** - AWS S3 and Google Drive integration
- **Google Sheets** - Ability to Export to / Import from Google Sheets
- **Schema v3.0** - Next generation schema support

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

- **Issues**: [GitHub Issues](https://github.com/planmatic/mediaplanpy/issues)
- **Discussions**: [GitHub Discussions](https://github.com/planmatic/mediaplanpy/discussions)
- **Documentation**: [Wiki](https://github.com/planmatic/mediaplanpy/wiki)

## 🏷️ Version Information

- **SDK Version**: 2.0.0
- **Schema Version**: 2.0 (backwards compatible with 1.0)
- **Python Support**: 3.7, 3.8, 3.9, 3.10, 3.11, 3.12
