Metadata-Version: 2.1
Name: app-confetti
Version: 0.0.5
Summary: Environment application configuration
Home-page: https://github.com/EdgyEdgemond/app-confetti/
License: Apache-2.0
Author: Daniel Edgecombe
Author-email: edgy.edgemond@gmail.com
Requires-Python: >=3.6,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: boto3 (>=1.14.49,<2.0.0)
Requires-Dist: ec2-metadata (>=2.2.0,<3.0.0)
Requires-Dist: python-dotenv (>=0.15.0,<0.16.0)
Project-URL: Repository, https://github.com/EdgyEdgemond/app-confetti/
Description-Content-Type: text/markdown

# Configuration Fetcher v0.0.5

Common code for interacting with dev environs and for deployed AWS environs.

## Config class

```python
    from app_confetti import util

    @dataclasses.dataclass(frozen=True)
    class Config:
        required_key: str = util.env("REQUIRED_KEY")
        logging_level: str = util.env("LOGGING_LEVEL:INFO")
        sentry_dsn: int = util.env("SENTRY_DSN:__NONE__")
        debug: bool = util.env("DEBUG:__FALSE__")
    
        @property
        def logging_config(self):
            return {
                "version": 1,
                "disable_existing_loggers": False,
                "formatters": {
                    "default": {
                        "format": "[%(asctime)s][%(name)s][%(levelname)s]: %(message)s",
                        "datefmt": "%Y-%m-%d %H:%M:%S",
                    },
                },
                "handlers": {
                    "default": {
                        "class": "logging.StreamHandler",
                        "level": self.logging_level,
                        "formatter": "default",
                    },
                    "sentry": {
                        "level": "ERROR",
                        "class": "raven.handlers.logging.SentryHandler",
                        "dsn": self.sentry_dsn,
                    },
                },
                "loggers": {
                    "": {
                        "handlers": ["default", "sentry"],
                        "level": self.logging_level,
                        "propagate": True,
                    },
                    "raven": {
                        "handlers": ["default"],
                        "level": "WARNING",
                        "propagate": True,
                    },
                },
            }
```

