diff --git a/_modules/index.html b/_modules/index.html
index 43ab976..11b1df5 100644
--- a/_modules/index.html
+++ b/_modules/index.html
@@ -5,14 +5,14 @@
[docs]
def parse_report_file(
@@ -2067,6 +2143,10 @@
results: Optional[ParsedReport] = None
+
# parse_report_file tries the three report formats in turn. When all three
+
# reject the input, keep each format's specific error so the final message
+
# can explain *why* the file is invalid instead of a bare "Not a valid
+
# report" (see _describe_parse_failure).
try:
report = parse_aggregate_report_file(
content,
@@ -2082,11 +2162,11 @@
normalize_timespan_threshold_hours=normalize_timespan_threshold_hours,
)
results = {"report_type": "aggregate", "report": report}
-
except InvalidAggregateReport:
+
except InvalidAggregateReport as aggregate_error:
try:
report = parse_smtp_tls_report_json(content)
results = {"report_type": "smtp_tls", "report": report}
-
except InvalidSMTPTLSReport:
+
except InvalidSMTPTLSReport as smtp_tls_error:
try:
results = parse_report_email(
content,
@@ -2102,8 +2182,12 @@
keep_alive=keep_alive,
normalize_timespan_threshold_hours=normalize_timespan_threshold_hours,
)
-
except InvalidDMARCReport:
-
raise ParserError("Not a valid report")
+
except InvalidDMARCReport as email_error:
+
raise ParserError(
+
_describe_parse_failure(
+
content, aggregate_error, smtp_tls_error, email_error
+
)
+
) from email_error
if results is None:
raise ParserError("Not a valid report")
diff --git a/_modules/parsedmarc/elastic.html b/_modules/parsedmarc/elastic.html
index 13834c1..878fc13 100644
--- a/_modules/parsedmarc/elastic.html
+++ b/_modules/parsedmarc/elastic.html
@@ -5,14 +5,14 @@
-
parsedmarc.elastic — parsedmarc 10.1.1 documentation
+
parsedmarc.elastic — parsedmarc 10.2.0 documentation
-
+
diff --git a/_modules/parsedmarc/opensearch.html b/_modules/parsedmarc/opensearch.html
index d191b92..8bb458a 100644
--- a/_modules/parsedmarc/opensearch.html
+++ b/_modules/parsedmarc/opensearch.html
@@ -5,14 +5,14 @@
-
parsedmarc.opensearch — parsedmarc 10.1.1 documentation
+
parsedmarc.opensearch — parsedmarc 10.2.0 documentation
-
+
diff --git a/_modules/parsedmarc/splunk.html b/_modules/parsedmarc/splunk.html
index 016d742..24d7d3c 100644
--- a/_modules/parsedmarc/splunk.html
+++ b/_modules/parsedmarc/splunk.html
@@ -5,14 +5,14 @@
-
parsedmarc.splunk — parsedmarc 10.1.1 documentation
+
parsedmarc.splunk — parsedmarc 10.2.0 documentation
-
+
diff --git a/_modules/parsedmarc/types.html b/_modules/parsedmarc/types.html
index 186308c..a320fa8 100644
--- a/_modules/parsedmarc/types.html
+++ b/_modules/parsedmarc/types.html
@@ -5,14 +5,14 @@
-
parsedmarc.types — parsedmarc 10.1.1 documentation
+
parsedmarc.types — parsedmarc 10.2.0 documentation
-
+
diff --git a/_modules/parsedmarc/utils.html b/_modules/parsedmarc/utils.html
index e1cc801..1120492 100644
--- a/_modules/parsedmarc/utils.html
+++ b/_modules/parsedmarc/utils.html
@@ -5,14 +5,14 @@
-
parsedmarc.utils — parsedmarc 10.1.1 documentation
+
parsedmarc.utils — parsedmarc 10.2.0 documentation
-
+
diff --git a/_static/documentation_options.js b/_static/documentation_options.js
index 37b65ed..5c223cd 100644
--- a/_static/documentation_options.js
+++ b/_static/documentation_options.js
@@ -1,5 +1,5 @@
const DOCUMENTATION_OPTIONS = {
- VERSION: '10.1.1',
+ VERSION: '10.2.0',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/api.html b/api.html
index 2c49455..c71d73e 100644
--- a/api.html
+++ b/api.html
@@ -6,14 +6,14 @@
-
API reference — parsedmarc 10.1.1 documentation
+
API reference — parsedmarc 10.2.0 documentation
-
+
diff --git a/contributing.html b/contributing.html
index facb901..04fd8b9 100644
--- a/contributing.html
+++ b/contributing.html
@@ -6,14 +6,14 @@
-
Contributing to parsedmarc — parsedmarc 10.1.1 documentation
+
Contributing to parsedmarc — parsedmarc 10.2.0 documentation
-
+
diff --git a/davmail.html b/davmail.html
index 2c5632c..568ed11 100644
--- a/davmail.html
+++ b/davmail.html
@@ -6,14 +6,14 @@
-
Accessing an inbox using OWA/EWS — parsedmarc 10.1.1 documentation
+
Accessing an inbox using OWA/EWS — parsedmarc 10.2.0 documentation
-
+
diff --git a/dmarc.html b/dmarc.html
index 8bb8773..17e7311 100644
--- a/dmarc.html
+++ b/dmarc.html
@@ -6,14 +6,14 @@
-
Understanding DMARC — parsedmarc 10.1.1 documentation
+
Understanding DMARC — parsedmarc 10.2.0 documentation
-
+
diff --git a/elasticsearch.html b/elasticsearch.html
index 25d50a7..7f95b97 100644
--- a/elasticsearch.html
+++ b/elasticsearch.html
@@ -6,14 +6,14 @@
-
Elasticsearch and Kibana — parsedmarc 10.1.1 documentation
+
Elasticsearch and Kibana — parsedmarc 10.2.0 documentation
-
+
diff --git a/genindex.html b/genindex.html
index 568b07b..70a3f5a 100644
--- a/genindex.html
+++ b/genindex.html
@@ -5,14 +5,14 @@
-
Index — parsedmarc 10.1.1 documentation
+
Index — parsedmarc 10.2.0 documentation
-
+
diff --git a/index.html b/index.html
index 163cbb0..46ba26c 100644
--- a/index.html
+++ b/index.html
@@ -6,14 +6,14 @@
-
parsedmarc documentation - Open source DMARC report analyzer and visualizer — parsedmarc 10.1.1 documentation
+
parsedmarc documentation - Open source DMARC report analyzer and visualizer — parsedmarc 10.2.0 documentation
-
+
diff --git a/installation.html b/installation.html
index a39c36d..c10a8a0 100644
--- a/installation.html
+++ b/installation.html
@@ -6,14 +6,14 @@
-
Installation — parsedmarc 10.1.1 documentation
+
Installation — parsedmarc 10.2.0 documentation
-
+
diff --git a/kibana.html b/kibana.html
index cc3b4a2..dca3507 100644
--- a/kibana.html
+++ b/kibana.html
@@ -6,14 +6,14 @@
-
Using the Kibana dashboards — parsedmarc 10.1.1 documentation
+
Using the Kibana dashboards — parsedmarc 10.2.0 documentation
-
+
diff --git a/mailing-lists.html b/mailing-lists.html
index 7e49e86..d2e6492 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -6,14 +6,14 @@
-
What about mailing lists? — parsedmarc 10.1.1 documentation
+
What about mailing lists? — parsedmarc 10.2.0 documentation
-
+
diff --git a/objects.inv b/objects.inv
index f93a5d1..fa74b7a 100644
Binary files a/objects.inv and b/objects.inv differ
diff --git a/opensearch.html b/opensearch.html
index a641c4f..da6b136 100644
--- a/opensearch.html
+++ b/opensearch.html
@@ -6,14 +6,14 @@
-
OpenSearch and Grafana — parsedmarc 10.1.1 documentation
+
OpenSearch and Grafana — parsedmarc 10.2.0 documentation
-
+
diff --git a/output.html b/output.html
index 9133901..4e9b766 100644
--- a/output.html
+++ b/output.html
@@ -6,14 +6,14 @@
-
Sample outputs — parsedmarc 10.1.1 documentation
+
Sample outputs — parsedmarc 10.2.0 documentation
-
+
diff --git a/py-modindex.html b/py-modindex.html
index b170d33..1f40ad4 100644
--- a/py-modindex.html
+++ b/py-modindex.html
@@ -5,14 +5,14 @@
-
Python Module Index — parsedmarc 10.1.1 documentation
+
Python Module Index — parsedmarc 10.2.0 documentation
-
+
diff --git a/search.html b/search.html
index 9dc16df..151d832 100644
--- a/search.html
+++ b/search.html
@@ -5,7 +5,7 @@
-
Search — parsedmarc 10.1.1 documentation
+
Search — parsedmarc 10.2.0 documentation
@@ -13,7 +13,7 @@
-
+
diff --git a/splunk.html b/splunk.html
index 83a7b0a..e16284f 100644
--- a/splunk.html
+++ b/splunk.html
@@ -6,14 +6,14 @@
-
Splunk — parsedmarc 10.1.1 documentation
+
Splunk — parsedmarc 10.2.0 documentation
-
+
diff --git a/usage.html b/usage.html
index d1c1391..7931dd5 100644
--- a/usage.html
+++ b/usage.html
@@ -6,14 +6,14 @@
-
Using parsedmarc — parsedmarc 10.1.1 documentation
+
Using parsedmarc — parsedmarc 10.2.0 documentation
-
+