diff --git a/CHANGELOG.md b/CHANGELOG.md index afbf8dc..a71d206 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 9.5.2 + +### Fixed + +- Fixed `ValueError: invalid interpolation syntax` when config values (from env vars or INI files) contain `%` characters, such as in passwords. Disabled ConfigParser's `%`-based string interpolation. + ## 9.5.1 ### Changes diff --git a/parsedmarc/__init__.py b/parsedmarc/__init__.py index afed6ce..e36113f 100644 --- a/parsedmarc/__init__.py +++ b/parsedmarc/__init__.py @@ -1955,9 +1955,7 @@ def get_dmarc_reports_from_mailbox( ) current_time = datetime.now(timezone.utc).strftime("%d-%b-%Y") elif isinstance(connection, MSGraphConnection): - since = ( - datetime.now(timezone.utc) - timedelta(minutes=_since) - ).isoformat() + since = (datetime.now(timezone.utc) - timedelta(minutes=_since)).isoformat() current_time = datetime.now(timezone.utc).isoformat() + "Z" elif isinstance(connection, GmailConnection): since = (datetime.now(timezone.utc) - timedelta(minutes=_since)).strftime( diff --git a/parsedmarc/cli.py b/parsedmarc/cli.py index 809003c..821543e 100644 --- a/parsedmarc/cli.py +++ b/parsedmarc/cli.py @@ -264,7 +264,7 @@ def _load_config(config_file: str | None = None) -> ConfigParser: Raises: ConfigurationError: If *config_file* is given but does not exist. """ - config = ConfigParser() + config = ConfigParser(interpolation=None) if config_file is not None: abs_path = os.path.abspath(config_file) if not os.path.exists(abs_path): diff --git a/parsedmarc/constants.py b/parsedmarc/constants.py index 31e80ae..c45ece8 100644 --- a/parsedmarc/constants.py +++ b/parsedmarc/constants.py @@ -1,3 +1,3 @@ -__version__ = "9.5.1" +__version__ = "9.5.2" USER_AGENT = f"parsedmarc/{__version__}"