This commit is contained in:
Sean Whalen
2018-02-08 15:17:05 -05:00
parent 238b6bfe7b
commit a62ba01c01
8 changed files with 112 additions and 39 deletions

View File

@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Overview: module code &mdash; parsedmarc 1.0.5 documentation</title>
<title>Overview: module code &mdash; parsedmarc 1.1.0 documentation</title>
@@ -35,7 +35,7 @@
<link rel="index" title="Index"
href="../genindex.html"/>
<link rel="search" title="Search" href="../search.html"/>
<link rel="top" title="parsedmarc 1.0.5 documentation" href="../index.html"/>
<link rel="top" title="parsedmarc 1.1.0 documentation" href="../index.html"/>
<script src="../_static/js/modernizr.min.js"></script>
@@ -64,7 +64,7 @@
<div class="version">
1.0.5
1.1.0
</div>
@@ -187,7 +187,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../',
VERSION:'1.0.5',
VERSION:'1.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,

View File

@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>parsedmarc &mdash; parsedmarc 1.0.5 documentation</title>
<title>parsedmarc &mdash; parsedmarc 1.1.0 documentation</title>
@@ -35,7 +35,7 @@
<link rel="index" title="Index"
href="../genindex.html"/>
<link rel="search" title="Search" href="../search.html"/>
<link rel="top" title="parsedmarc 1.0.5 documentation" href="../index.html"/>
<link rel="top" title="parsedmarc 1.1.0 documentation" href="../index.html"/>
<link rel="up" title="Module code" href="index.html"/>
@@ -65,7 +65,7 @@
<div class="version">
1.0.5
1.1.0
</div>
@@ -185,7 +185,7 @@
<span class="kn">import</span> <span class="nn">geoip2.database</span>
<span class="kn">import</span> <span class="nn">geoip2.errors</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;1.0.5&quot;</span>
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">&quot;1.1.0&quot;</span>
<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span>
<span class="n">logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">WARNING</span><span class="p">)</span>
@@ -316,7 +316,7 @@
<span class="k">return</span> <span class="n">_timestamp_to_datetime</span><span class="p">(</span><span class="n">timestamp</span><span class="p">)</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S&quot;</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_human_timestamp_to_datetime</span><span class="p">(</span><span class="n">human_timestamp</span><span class="p">):</span>
<div class="viewcode-block" id="human_timestamp_to_datetime"><a class="viewcode-back" href="../index.html#parsedmarc.human_timestamp_to_datetime">[docs]</a><span class="k">def</span> <span class="nf">human_timestamp_to_datetime</span><span class="p">(</span><span class="n">human_timestamp</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Converts a human-readable timestamp into a Python ``DateTime`` object</span>
@@ -326,7 +326,7 @@
<span class="sd"> Returns:</span>
<span class="sd"> DateTime: The converted timestamp</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">human_timestamp</span><span class="p">,</span> <span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">human_timestamp</span><span class="p">,</span> <span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S&quot;</span><span class="p">)</span></div>
<span class="k">def</span> <span class="nf">_get_ip_address_country</span><span class="p">(</span><span class="n">ip_address</span><span class="p">):</span>
@@ -583,17 +583,17 @@
<span class="s2">&quot;</span><span class="si">{0}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">error</span><span class="o">.</span><span class="fm">__str__</span><span class="p">()))</span></div>
<div class="viewcode-block" id="parse_aggregate_report_file"><a class="viewcode-back" href="../index.html#parsedmarc.parse_aggregate_report_file">[docs]</a><span class="k">def</span> <span class="nf">parse_aggregate_report_file</span><span class="p">(</span><span class="n">_input</span><span class="p">,</span> <span class="n">nameservers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mf">6.0</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Parses a file at the given path, a file-like object. or bytes as a</span>
<span class="sd"> aggregate DMARC report</span>
<div class="viewcode-block" id="extract_xml"><a class="viewcode-back" href="../index.html#parsedmarc.extract_xml">[docs]</a><span class="k">def</span> <span class="nf">extract_xml</span><span class="p">(</span><span class="n">_input</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Extracts xml from a zip or gzip file at the given path, file-like object,</span>
<span class="sd"> or bytes.</span>
<span class="sd"> Args:</span>
<span class="sd"> _input: A path to a file, a file like object, or bytes</span>
<span class="sd"> nameservers (list): A list of one or more nameservers to use</span>
<span class="sd"> timeout (float): Sets the DNS timeout in seconds</span>
<span class="sd"> Returns:</span>
<span class="sd"> OrderedDict: The parsed DMARC aggregate report</span>
<span class="sd"> str: The extracted XML</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">_input</span><span class="p">)</span> <span class="o">==</span> <span class="nb">str</span> <span class="ow">or</span> <span class="nb">type</span><span class="p">(</span><span class="n">_input</span><span class="p">)</span> <span class="o">==</span> <span class="n">unicode</span><span class="p">:</span>
<span class="n">file_object</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">_input</span><span class="p">,</span> <span class="s2">&quot;rb&quot;</span><span class="p">)</span>
@@ -616,10 +616,28 @@
<span class="k">raise</span> <span class="n">InvalidAggregateReport</span><span class="p">(</span><span class="s2">&quot;Not a valid zip, gzip, or xml file&quot;</span><span class="p">)</span>
<span class="n">file_object</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">UnicodeDecodeError</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidAggregateReport</span><span class="p">(</span><span class="s2">&quot;File objects must be opened in binary &quot;</span>
<span class="s2">&quot;(rb) mode&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">xml</span></div>
<div class="viewcode-block" id="parse_aggregate_report_file"><a class="viewcode-back" href="../index.html#parsedmarc.parse_aggregate_report_file">[docs]</a><span class="k">def</span> <span class="nf">parse_aggregate_report_file</span><span class="p">(</span><span class="n">_input</span><span class="p">,</span> <span class="n">nameservers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">timeout</span><span class="o">=</span><span class="mf">6.0</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Parses a file at the given path, a file-like object. or bytes as a</span>
<span class="sd"> aggregate DMARC report</span>
<span class="sd"> Args:</span>
<span class="sd"> _input: A path to a file, a file like object, or bytes</span>
<span class="sd"> nameservers (list): A list of one or more nameservers to use</span>
<span class="sd"> timeout (float): Sets the DNS timeout in seconds</span>
<span class="sd"> Returns:</span>
<span class="sd"> OrderedDict: The parsed DMARC aggregate report</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">xml</span> <span class="o">=</span> <span class="n">extract_xml</span><span class="p">(</span><span class="n">_input</span><span class="p">)</span>
<span class="k">return</span> <span class="n">parse_aggregate_report_xml</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span>
<span class="n">nameservers</span><span class="o">=</span><span class="n">nameservers</span><span class="p">,</span>
<span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">)</span></div>
@@ -824,7 +842,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../',
VERSION:'1.0.5',
VERSION:'1.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,

View File

@@ -9,7 +9,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Index &mdash; parsedmarc 1.0.5 documentation</title>
<title>Index &mdash; parsedmarc 1.1.0 documentation</title>
@@ -36,7 +36,7 @@
<link rel="index" title="Index"
href="#"/>
<link rel="search" title="Search" href="search.html"/>
<link rel="top" title="parsedmarc 1.0.5 documentation" href="index.html"/>
<link rel="top" title="parsedmarc 1.1.0 documentation" href="index.html"/>
<script src="_static/js/modernizr.min.js"></script>
@@ -65,7 +65,7 @@
<div class="version">
1.0.5
1.1.0
</div>
@@ -154,10 +154,28 @@
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
<a href="#I"><strong>I</strong></a>
<a href="#E"><strong>E</strong></a>
| <a href="#H"><strong>H</strong></a>
| <a href="#I"><strong>I</strong></a>
| <a href="#P"><strong>P</strong></a>
</div>
<h2 id="E">E</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#parsedmarc.extract_xml">extract_xml() (in module parsedmarc)</a>
</li>
</ul></td>
</tr></table>
<h2 id="H">H</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#parsedmarc.human_timestamp_to_datetime">human_timestamp_to_datetime() (in module parsedmarc)</a>
</li>
</ul></td>
</tr></table>
<h2 id="I">I</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
@@ -218,7 +236,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'1.0.5',
VERSION:'1.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,

View File

@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to parsedmarcs documentation! &mdash; parsedmarc 1.0.5 documentation</title>
<title>Welcome to parsedmarcs documentation! &mdash; parsedmarc 1.1.0 documentation</title>
@@ -35,7 +35,7 @@
<link rel="index" title="Index"
href="genindex.html"/>
<link rel="search" title="Search" href="search.html"/>
<link rel="top" title="parsedmarc 1.0.5 documentation" href="#"/>
<link rel="top" title="parsedmarc 1.1.0 documentation" href="#"/>
<script src="_static/js/modernizr.min.js"></script>
@@ -64,7 +64,7 @@
<div class="version">
1.0.5
1.1.0
</div>
@@ -335,6 +335,43 @@ substitute <code class="docutils literal"><span class="pre">pip</span></code> as
<dd><p>Raised when an invalid DMARC aggregate report is encountered</p>
</dd></dl>
<dl class="function">
<dt id="parsedmarc.extract_xml">
<code class="descclassname">parsedmarc.</code><code class="descname">extract_xml</code><span class="sig-paren">(</span><em>_input</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/parsedmarc.html#extract_xml"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#parsedmarc.extract_xml" title="Permalink to this definition"></a></dt>
<dd><p>Extracts xml from a zip or gzip file at the given path, file-like object,
or bytes.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>_input</strong> A path to a file, a file like object, or bytes</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The extracted XML</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">str</td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="function">
<dt id="parsedmarc.human_timestamp_to_datetime">
<code class="descclassname">parsedmarc.</code><code class="descname">human_timestamp_to_datetime</code><span class="sig-paren">(</span><em>human_timestamp</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/parsedmarc.html#human_timestamp_to_datetime"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#parsedmarc.human_timestamp_to_datetime" title="Permalink to this definition"></a></dt>
<dd><p>Converts a human-readable timestamp into a Python <code class="docutils literal"><span class="pre">DateTime</span></code> object</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>human_timestamp</strong> (<em>str</em>) A timestamp in <cite>YYYY-MM-DD HH:MM:SS`</cite> format</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The converted timestamp</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">DateTime</td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="function">
<dt id="parsedmarc.parse_aggregate_report_file">
<code class="descclassname">parsedmarc.</code><code class="descname">parse_aggregate_report_file</code><span class="sig-paren">(</span><em>_input</em>, <em>nameservers=None</em>, <em>timeout=6.0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/parsedmarc.html#parse_aggregate_report_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#parsedmarc.parse_aggregate_report_file" title="Permalink to this definition"></a></dt>
@@ -453,7 +490,7 @@ headers</p>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'1.0.5',
VERSION:'1.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,

View File

@@ -1,7 +1,7 @@
# Sphinx inventory version 2
# Project: parsedmarc
# Version: 1.0.5
# Version: 1.1.0
# The remainder of this file is compressed using zlib.
<EFBFBD>;Â0Dûœb´AÐÒQR !((#coœHþÉv¢¤ã\<5C>“àÄ
<EFBFBD><EFBFBD> [ÍμYi
±™$iWR³J , T yᥘF-<2D>˜»y¾Q5%[sn<13>{4ÚúŽ<C3BA>
¥»N1EûýŠAÐnDÚt”)<29>)(­Ážx-ù%{6Útü¿Ç—`¯µ$<ÄCt£ë{ÏÌØŽ˜2)‡IB<n\P£%¸ã<4D><C2AB>½lZ}ßÌ«­? 5êFëD™î)†Ä•A“¤È&xXŸc>äiâ„Åäl
íG/Ì £C/Ø8ÊŒ.
B•ÖUø5c..c4Ï-öÆþñ—UZù™QVùð=F“ŸȬ6ÉB¿†E<E280A0>­ew²© «éÌñ@V†rqà4×ËÓs†âyÆÚþ¢+ïÿE»x엃ƻm_§5ÎT`ÃûDÓšy×ÎïPS÷

View File

@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Python Module Index &mdash; parsedmarc 1.0.5 documentation</title>
<title>Python Module Index &mdash; parsedmarc 1.1.0 documentation</title>
@@ -35,7 +35,7 @@
<link rel="index" title="Index"
href="genindex.html"/>
<link rel="search" title="Search" href="search.html"/>
<link rel="top" title="parsedmarc 1.0.5 documentation" href="index.html"/>
<link rel="top" title="parsedmarc 1.1.0 documentation" href="index.html"/>
<script type="text/javascript">
@@ -71,7 +71,7 @@
<div class="version">
1.0.5
1.1.0
</div>
@@ -209,7 +209,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'1.0.5',
VERSION:'1.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,

View File

@@ -8,7 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Search &mdash; parsedmarc 1.0.5 documentation</title>
<title>Search &mdash; parsedmarc 1.1.0 documentation</title>
@@ -35,7 +35,7 @@
<link rel="index" title="Index"
href="genindex.html"/>
<link rel="search" title="Search" href="#"/>
<link rel="top" title="parsedmarc 1.0.5 documentation" href="index.html"/>
<link rel="top" title="parsedmarc 1.1.0 documentation" href="index.html"/>
<script src="_static/js/modernizr.min.js"></script>
@@ -64,7 +64,7 @@
<div class="version">
1.0.5
1.1.0
</div>
@@ -195,7 +195,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'1.0.5',
VERSION:'1.1.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,

View File

@@ -1 +1 @@
Search.setIndex({docnames:["index"],envversion:53,filenames:["index.rst"],objects:{"":{parsedmarc:[0,0,0,"-"]},parsedmarc:{InvalidAggregateReport:[0,1,1,""],parse_aggregate_report_file:[0,2,1,""],parse_aggregate_report_xml:[0,2,1,""],parsed_aggregate_report_to_csv:[0,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","exception","Python exception"],"2":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:exception","2":"py:function"},terms:{"byte":0,"default":0,"float":0,"null":0,"return":0,DNS:0,The:0,_input:0,abov:0,acm:0,actual:0,adkim:0,administr:0,adsl:0,aggreg:0,ani:0,answer:0,appendix:0,apt:0,argument:0,aspf:0,attach:0,auth_result:0,base_domain:0,begin_d:0,bellsouth:0,can:0,check:0,checkdmarc:0,com:0,command:0,compress:0,consist:0,content:0,convert:0,count:0,countri:0,data:0,debian:0,develop:0,directli:0,disposit:0,dkim:0,dkim_align:0,dkim_domain:0,dkim_result:0,dkim_selector:0,domain:0,domainawar:0,download:0,draft:0,email:0,encount:0,end_dat:0,envelope_from:0,envelope_to:0,error:0,even:0,exampl:0,except:0,exit:0,fail:0,few:0,file:0,file_path:0,flat:0,format:0,found:0,from:0,get:0,git:0,github:0,given:0,gzip:0,handl:0,header:0,header_from:0,here:0,http:0,identifi:0,includ:0,index:0,invalid:0,invalidaggregatereport:0,ip_address:0,issu:0,latest:0,like:0,linux:0,list:0,maco:0,mail:0,messag:0,mfrom:0,modul:0,more:0,nameserv:0,net:0,none:0,norepli:0,normal:0,number:0,object:0,often:0,older:0,one:0,onli:0,option:0,ordereddict:0,org:0,org_email:0,org_extra_contact_info:0,org_nam:0,page:0,paramet:0,pars:0,parse_aggregate_report_fil:0,parse_aggregate_report_xml:0,parsed_aggregate_report_to_csv:0,parser:0,pasedmarc:0,pass:0,path:0,pct:0,pip3:0,pip:0,place:0,pleas:0,policy_evalu:0,policy_override_com:0,policy_override_reason:0,policy_publish:0,posit:0,prefer:0,print:0,privaci:0,produc:0,program:0,provid:0,python3:0,python:0,queri:0,rais:0,rather:0,reason:0,recipi:0,record:0,regardless:0,releas:0,report_id:0,report_metadata:0,result:0,reverse_dn:0,rfc:0,run:0,schema:0,scope:0,screen:0,search:0,second:0,selector:0,send:0,set:0,show:0,shv:0,simpl:0,simpli:0,sourc:0,source_base_domain:0,source_countri:0,source_ip_address:0,source_reverse_dn:0,specifi:0,spf:0,spf_align:0,spf_domain:0,spf_result:0,spf_scope:0,stabl:0,standard:0,still:0,str:0,string:0,structur:0,substitut:0,sudo:0,support:0,system:0,than:0,them:0,thi:0,those:0,timeout:0,tracker:0,transpar:0,type:0,ubuntu:0,uncompress:0,upgrad:0,usag:0,use:0,util:0,veri:0,version:0,wait:0,when:0,who:0,wide:0,wiki:0,window:0,work:0,www:0,xml:0,xml_schema:0,you:0,zip:0},titles:["Welcome to parsedmarc\u2019s documentation!"],titleterms:{about:0,api:0,bug:0,cli:0,csv:0,dmarc:0,document:0,featur:0,forens:0,help:0,indic:0,instal:0,json:0,output:0,parsedmarc:0,report:0,sampl:0,tabl:0,welcom:0,what:0}})
Search.setIndex({docnames:["index"],envversion:53,filenames:["index.rst"],objects:{"":{parsedmarc:[0,0,0,"-"]},parsedmarc:{InvalidAggregateReport:[0,1,1,""],extract_xml:[0,2,1,""],human_timestamp_to_datetime:[0,2,1,""],parse_aggregate_report_file:[0,2,1,""],parse_aggregate_report_xml:[0,2,1,""],parsed_aggregate_report_to_csv:[0,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","exception","Python exception"],"2":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:exception","2":"py:function"},terms:{"byte":0,"default":0,"float":0,"null":0,"return":0,DNS:0,The:0,_input:0,abov:0,acm:0,actual:0,adkim:0,administr:0,adsl:0,aggreg:0,ani:0,answer:0,appendix:0,apt:0,argument:0,aspf:0,attach:0,auth_result:0,base_domain:0,begin_d:0,bellsouth:0,can:0,check:0,checkdmarc:0,com:0,command:0,compress:0,consist:0,content:0,convert:0,count:0,countri:0,data:0,datetim:0,debian:0,develop:0,directli:0,disposit:0,dkim:0,dkim_align:0,dkim_domain:0,dkim_result:0,dkim_selector:0,domain:0,domainawar:0,download:0,draft:0,email:0,encount:0,end_dat:0,envelope_from:0,envelope_to:0,error:0,even:0,exampl:0,except:0,exit:0,extract:0,extract_xml:0,fail:0,few:0,file:0,file_path:0,flat:0,format:0,found:0,from:0,get:0,git:0,github:0,given:0,gzip:0,handl:0,header:0,header_from:0,here:0,http:0,human:0,human_timestamp:0,human_timestamp_to_datetim:0,identifi:0,includ:0,index:0,invalid:0,invalidaggregatereport:0,ip_address:0,issu:0,latest:0,like:0,linux:0,list:0,maco:0,mail:0,messag:0,mfrom:0,modul:0,more:0,nameserv:0,net:0,none:0,norepli:0,normal:0,number:0,object:0,often:0,older:0,one:0,onli:0,option:0,ordereddict:0,org:0,org_email:0,org_extra_contact_info:0,org_nam:0,page:0,paramet:0,pars:0,parse_aggregate_report_fil:0,parse_aggregate_report_xml:0,parsed_aggregate_report_to_csv:0,parser:0,pasedmarc:0,pass:0,path:0,pct:0,pip3:0,pip:0,place:0,pleas:0,policy_evalu:0,policy_override_com:0,policy_override_reason:0,policy_publish:0,posit:0,prefer:0,print:0,privaci:0,produc:0,program:0,provid:0,python3:0,python:0,queri:0,rais:0,rather:0,readabl:0,reason:0,recipi:0,record:0,regardless:0,releas:0,report_id:0,report_metadata:0,result:0,reverse_dn:0,rfc:0,run:0,schema:0,scope:0,screen:0,search:0,second:0,selector:0,send:0,set:0,show:0,shv:0,simpl:0,simpli:0,sourc:0,source_base_domain:0,source_countri:0,source_ip_address:0,source_reverse_dn:0,specifi:0,spf:0,spf_align:0,spf_domain:0,spf_result:0,spf_scope:0,stabl:0,standard:0,still:0,str:0,string:0,structur:0,substitut:0,sudo:0,support:0,system:0,than:0,them:0,thi:0,those:0,timeout:0,timestamp:0,tracker:0,transpar:0,type:0,ubuntu:0,uncompress:0,upgrad:0,usag:0,use:0,util:0,veri:0,version:0,wait:0,when:0,who:0,wide:0,wiki:0,window:0,work:0,www:0,xml:0,xml_schema:0,you:0,yyyi:0,zip:0},titles:["Welcome to parsedmarc\u2019s documentation!"],titleterms:{about:0,api:0,bug:0,cli:0,csv:0,dmarc:0,document:0,featur:0,forens:0,help:0,indic:0,instal:0,json:0,output:0,parsedmarc:0,report:0,sampl:0,tabl:0,welcom:0,what:0}})