Skip to content

Commit ff43417

Browse files
committed
docs: Update docs
1 parent 6f6515b commit ff43417

13 files changed

+9553
-6591
lines changed

docs/exchangelib/account.html

+8-23
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ <h1 class="title">Module <code>exchangelib.account</code></h1>
3434
from .autodiscover import Autodiscovery
3535
from .configuration import Configuration
3636
from .credentials import ACCESS_TYPES, DELEGATE, IMPERSONATION
37-
from .errors import ErrorItemNotFound, InvalidEnumValue, InvalidTypeError, ResponseMessageError, UnknownTimeZone
37+
from .errors import InvalidEnumValue, InvalidTypeError, ResponseMessageError, UnknownTimeZone
3838
from .ewsdatetime import UTC, EWSTimeZone
3939
from .fields import FieldPath, TextField
4040
from .folders import (
@@ -815,16 +815,11 @@ <h1 class="title">Module <code>exchangelib.account</code></h1>
815815
def delete_rule(self, rule: Rule):
816816
&#34;&#34;&#34;Delete an Inbox rule.
817817

818-
:param rule: The rule to delete. Must have ID or &#39;display_name&#39;.
818+
:param rule: The rule to delete. Must have an ID.
819819
:return: None if success, else raises an error.
820820
&#34;&#34;&#34;
821821
if not rule.id:
822-
if not rule.display_name:
823-
raise ValueError(&#34;Rule must have ID or display_name&#34;)
824-
try:
825-
rule = {i.display_name: i for i in GetInboxRules(account=self).call()}[rule.display_name]
826-
except KeyError:
827-
raise ErrorItemNotFound(f&#34;No rule with name {rule.display_name!r}&#34;)
822+
raise ValueError(&#34;Rule must have an ID&#34;)
828823
DeleteInboxRule(account=self).get(rule=rule)
829824
rule.id = None
830825

@@ -1617,16 +1612,11 @@ <h2 class="section-title" id="header-classes">Classes</h2>
16171612
def delete_rule(self, rule: Rule):
16181613
&#34;&#34;&#34;Delete an Inbox rule.
16191614

1620-
:param rule: The rule to delete. Must have ID or &#39;display_name&#39;.
1615+
:param rule: The rule to delete. Must have an ID.
16211616
:return: None if success, else raises an error.
16221617
&#34;&#34;&#34;
16231618
if not rule.id:
1624-
if not rule.display_name:
1625-
raise ValueError(&#34;Rule must have ID or display_name&#34;)
1626-
try:
1627-
rule = {i.display_name: i for i in GetInboxRules(account=self).call()}[rule.display_name]
1628-
except KeyError:
1629-
raise ErrorItemNotFound(f&#34;No rule with name {rule.display_name!r}&#34;)
1619+
raise ValueError(&#34;Rule must have an ID&#34;)
16301620
DeleteInboxRule(account=self).get(rule=rule)
16311621
rule.id = None
16321622

@@ -3169,7 +3159,7 @@ <h3>Methods</h3>
31693159
</code></dt>
31703160
<dd>
31713161
<div class="desc"><p>Delete an Inbox rule.</p>
3172-
<p>:param rule: The rule to delete. Must have ID or 'display_name'.
3162+
<p>:param rule: The rule to delete. Must have an ID.
31733163
:return: None if success, else raises an error.</p></div>
31743164
<details class="source">
31753165
<summary>
@@ -3178,16 +3168,11 @@ <h3>Methods</h3>
31783168
<pre><code class="python">def delete_rule(self, rule: Rule):
31793169
&#34;&#34;&#34;Delete an Inbox rule.
31803170

3181-
:param rule: The rule to delete. Must have ID or &#39;display_name&#39;.
3171+
:param rule: The rule to delete. Must have an ID.
31823172
:return: None if success, else raises an error.
31833173
&#34;&#34;&#34;
31843174
if not rule.id:
3185-
if not rule.display_name:
3186-
raise ValueError(&#34;Rule must have ID or display_name&#34;)
3187-
try:
3188-
rule = {i.display_name: i for i in GetInboxRules(account=self).call()}[rule.display_name]
3189-
except KeyError:
3190-
raise ErrorItemNotFound(f&#34;No rule with name {rule.display_name!r}&#34;)
3175+
raise ValueError(&#34;Rule must have an ID&#34;)
31913176
DeleteInboxRule(account=self).get(rule=rule)
31923177
rule.id = None</code></pre>
31933178
</details>

docs/exchangelib/fields.html

+168-1
Original file line numberDiff line numberDiff line change
@@ -1203,6 +1203,19 @@ <h1 class="title">Module <code>exchangelib.fields</code></h1>
12031203
return super().clean(value, version=version)
12041204

12051205

1206+
class AddressListField(EWSElementListField):
1207+
def __init__(self, *args, **kwargs):
1208+
from .properties import Address
1209+
1210+
kwargs[&#34;value_cls&#34;] = Address
1211+
super().__init__(*args, **kwargs)
1212+
1213+
def clean(self, value, version=None):
1214+
if value is not None:
1215+
value = [self.value_cls(email_address=s) if isinstance(s, str) else s for s in value]
1216+
return super().clean(value, version=version)
1217+
1218+
12061219
class MemberListField(EWSElementListField):
12071220
def __init__(self, *args, **kwargs):
12081221
from .properties import Member
@@ -1812,7 +1825,23 @@ <h1 class="title">Module <code>exchangelib.fields</code></h1>
18121825

18131826
def __init__(self, *args, **kwargs):
18141827
kwargs[&#34;choices&#34;] = SENSITIVITY_CHOICES
1815-
super().__init__(*args, **kwargs)</code></pre>
1828+
super().__init__(*args, **kwargs)
1829+
1830+
1831+
class FolderActionField(EWSElementField):
1832+
def __init__(self, *args, **kwargs):
1833+
super().__init__(*args, **kwargs)
1834+
1835+
def clean(self, value, version=None):
1836+
from .folders import DistinguishedFolderId, Folder
1837+
1838+
if isinstance(value, Folder):
1839+
folder_id = value.to_id()
1840+
if isinstance(folder_id, DistinguishedFolderId):
1841+
value = self.value_cls(distinguished_folder_id=folder_id)
1842+
else:
1843+
value = self.value_cls(folder_id=folder_id)
1844+
return super().clean(value, version=version)</code></pre>
18161845
</details>
18171846
</section>
18181847
<section>
@@ -1928,6 +1957,64 @@ <h2 class="section-title" id="header-functions">Functions</h2>
19281957
<section>
19291958
<h2 class="section-title" id="header-classes">Classes</h2>
19301959
<dl>
1960+
<dt id="exchangelib.fields.AddressListField"><code class="flex name class">
1961+
<span>class <span class="ident">AddressListField</span></span>
1962+
<span>(</span><span>*args, **kwargs)</span>
1963+
</code></dt>
1964+
<dd>
1965+
<div class="desc"><p>Like EWSElementField, but for lists of EWSElement objects.</p></div>
1966+
<details class="source">
1967+
<summary>
1968+
<span>Expand source code</span>
1969+
</summary>
1970+
<pre><code class="python">class AddressListField(EWSElementListField):
1971+
def __init__(self, *args, **kwargs):
1972+
from .properties import Address
1973+
1974+
kwargs[&#34;value_cls&#34;] = Address
1975+
super().__init__(*args, **kwargs)
1976+
1977+
def clean(self, value, version=None):
1978+
if value is not None:
1979+
value = [self.value_cls(email_address=s) if isinstance(s, str) else s for s in value]
1980+
return super().clean(value, version=version)</code></pre>
1981+
</details>
1982+
<h3>Ancestors</h3>
1983+
<ul class="hlist">
1984+
<li><a title="exchangelib.fields.EWSElementListField" href="#exchangelib.fields.EWSElementListField">EWSElementListField</a></li>
1985+
<li><a title="exchangelib.fields.EWSElementField" href="#exchangelib.fields.EWSElementField">EWSElementField</a></li>
1986+
<li><a title="exchangelib.fields.FieldURIField" href="#exchangelib.fields.FieldURIField">FieldURIField</a></li>
1987+
<li><a title="exchangelib.fields.Field" href="#exchangelib.fields.Field">Field</a></li>
1988+
<li><a title="exchangelib.version.SupportedVersionInstanceMixIn" href="version.html#exchangelib.version.SupportedVersionInstanceMixIn">SupportedVersionInstanceMixIn</a></li>
1989+
</ul>
1990+
<h3>Methods</h3>
1991+
<dl>
1992+
<dt id="exchangelib.fields.AddressListField.clean"><code class="name flex">
1993+
<span>def <span class="ident">clean</span></span>(<span>self, value, version=None)</span>
1994+
</code></dt>
1995+
<dd>
1996+
<div class="desc"></div>
1997+
<details class="source">
1998+
<summary>
1999+
<span>Expand source code</span>
2000+
</summary>
2001+
<pre><code class="python">def clean(self, value, version=None):
2002+
if value is not None:
2003+
value = [self.value_cls(email_address=s) if isinstance(s, str) else s for s in value]
2004+
return super().clean(value, version=version)</code></pre>
2005+
</details>
2006+
</dd>
2007+
</dl>
2008+
<h3>Inherited members</h3>
2009+
<ul class="hlist">
2010+
<li><code><b><a title="exchangelib.fields.EWSElementListField" href="#exchangelib.fields.EWSElementListField">EWSElementListField</a></b></code>:
2011+
<ul class="hlist">
2012+
<li><code><a title="exchangelib.fields.EWSElementListField.from_xml" href="#exchangelib.fields.Field.from_xml">from_xml</a></code></li>
2013+
<li><code><a title="exchangelib.fields.EWSElementListField.to_xml" href="#exchangelib.fields.Field.to_xml">to_xml</a></code></li>
2014+
</ul>
2015+
</li>
2016+
</ul>
2017+
</dd>
19312018
<dt id="exchangelib.fields.AppointmentStateField"><code class="flex name class">
19322019
<span>class <span class="ident">AppointmentStateField</span></span>
19332020
<span>(</span><span>*args, **kwargs)</span>
@@ -3308,6 +3395,7 @@ <h3>Subclasses</h3>
33083395
<li><a title="exchangelib.fields.BodyContentAttributedValueField" href="#exchangelib.fields.BodyContentAttributedValueField">BodyContentAttributedValueField</a></li>
33093396
<li><a title="exchangelib.fields.EWSElementListField" href="#exchangelib.fields.EWSElementListField">EWSElementListField</a></li>
33103397
<li><a title="exchangelib.fields.EffectiveRightsField" href="#exchangelib.fields.EffectiveRightsField">EffectiveRightsField</a></li>
3398+
<li><a title="exchangelib.fields.FolderActionField" href="#exchangelib.fields.FolderActionField">FolderActionField</a></li>
33113399
<li><a title="exchangelib.fields.GenericEventListField" href="#exchangelib.fields.GenericEventListField">GenericEventListField</a></li>
33123400
<li><a title="exchangelib.fields.IdElementField" href="#exchangelib.fields.IdElementField">IdElementField</a></li>
33133401
<li><a title="exchangelib.fields.IndexedField" href="#exchangelib.fields.IndexedField">IndexedField</a></li>
@@ -3372,6 +3460,7 @@ <h3>Ancestors</h3>
33723460
</ul>
33733461
<h3>Subclasses</h3>
33743462
<ul class="hlist">
3463+
<li><a title="exchangelib.fields.AddressListField" href="#exchangelib.fields.AddressListField">AddressListField</a></li>
33753464
<li><a title="exchangelib.fields.AttachmentField" href="#exchangelib.fields.AttachmentField">AttachmentField</a></li>
33763465
<li><a title="exchangelib.fields.AttendeesField" href="#exchangelib.fields.AttendeesField">AttendeesField</a></li>
33773466
<li><a title="exchangelib.fields.EmailAddressAttributedValueField" href="#exchangelib.fields.EmailAddressAttributedValueField">EmailAddressAttributedValueField</a></li>
@@ -4751,6 +4840,72 @@ <h3>Inherited members</h3>
47514840
</li>
47524841
</ul>
47534842
</dd>
4843+
<dt id="exchangelib.fields.FolderActionField"><code class="flex name class">
4844+
<span>class <span class="ident">FolderActionField</span></span>
4845+
<span>(</span><span>*args, **kwargs)</span>
4846+
</code></dt>
4847+
<dd>
4848+
<div class="desc"><p>A generic field for any EWSElement object.</p></div>
4849+
<details class="source">
4850+
<summary>
4851+
<span>Expand source code</span>
4852+
</summary>
4853+
<pre><code class="python">class FolderActionField(EWSElementField):
4854+
def __init__(self, *args, **kwargs):
4855+
super().__init__(*args, **kwargs)
4856+
4857+
def clean(self, value, version=None):
4858+
from .folders import DistinguishedFolderId, Folder
4859+
4860+
if isinstance(value, Folder):
4861+
folder_id = value.to_id()
4862+
if isinstance(folder_id, DistinguishedFolderId):
4863+
value = self.value_cls(distinguished_folder_id=folder_id)
4864+
else:
4865+
value = self.value_cls(folder_id=folder_id)
4866+
return super().clean(value, version=version)</code></pre>
4867+
</details>
4868+
<h3>Ancestors</h3>
4869+
<ul class="hlist">
4870+
<li><a title="exchangelib.fields.EWSElementField" href="#exchangelib.fields.EWSElementField">EWSElementField</a></li>
4871+
<li><a title="exchangelib.fields.FieldURIField" href="#exchangelib.fields.FieldURIField">FieldURIField</a></li>
4872+
<li><a title="exchangelib.fields.Field" href="#exchangelib.fields.Field">Field</a></li>
4873+
<li><a title="exchangelib.version.SupportedVersionInstanceMixIn" href="version.html#exchangelib.version.SupportedVersionInstanceMixIn">SupportedVersionInstanceMixIn</a></li>
4874+
</ul>
4875+
<h3>Methods</h3>
4876+
<dl>
4877+
<dt id="exchangelib.fields.FolderActionField.clean"><code class="name flex">
4878+
<span>def <span class="ident">clean</span></span>(<span>self, value, version=None)</span>
4879+
</code></dt>
4880+
<dd>
4881+
<div class="desc"></div>
4882+
<details class="source">
4883+
<summary>
4884+
<span>Expand source code</span>
4885+
</summary>
4886+
<pre><code class="python">def clean(self, value, version=None):
4887+
from .folders import DistinguishedFolderId, Folder
4888+
4889+
if isinstance(value, Folder):
4890+
folder_id = value.to_id()
4891+
if isinstance(folder_id, DistinguishedFolderId):
4892+
value = self.value_cls(distinguished_folder_id=folder_id)
4893+
else:
4894+
value = self.value_cls(folder_id=folder_id)
4895+
return super().clean(value, version=version)</code></pre>
4896+
</details>
4897+
</dd>
4898+
</dl>
4899+
<h3>Inherited members</h3>
4900+
<ul class="hlist">
4901+
<li><code><b><a title="exchangelib.fields.EWSElementField" href="#exchangelib.fields.EWSElementField">EWSElementField</a></b></code>:
4902+
<ul class="hlist">
4903+
<li><code><a title="exchangelib.fields.EWSElementField.from_xml" href="#exchangelib.fields.Field.from_xml">from_xml</a></code></li>
4904+
<li><code><a title="exchangelib.fields.EWSElementField.to_xml" href="#exchangelib.fields.Field.to_xml">to_xml</a></code></li>
4905+
</ul>
4906+
</li>
4907+
</ul>
4908+
</dd>
47544909
<dt id="exchangelib.fields.FreeBusyStatusField"><code class="flex name class">
47554910
<span>class <span class="ident">FreeBusyStatusField</span></span>
47564911
<span>(</span><span>*args, **kwargs)</span>
@@ -7223,6 +7378,12 @@ <h1>Index</h1>
72237378
<li><h3><a href="#header-classes">Classes</a></h3>
72247379
<ul>
72257380
<li>
7381+
<h4><code><a title="exchangelib.fields.AddressListField" href="#exchangelib.fields.AddressListField">AddressListField</a></code></h4>
7382+
<ul class="">
7383+
<li><code><a title="exchangelib.fields.AddressListField.clean" href="#exchangelib.fields.AddressListField.clean">clean</a></code></li>
7384+
</ul>
7385+
</li>
7386+
<li>
72267387
<h4><code><a title="exchangelib.fields.AppointmentStateField" href="#exchangelib.fields.AppointmentStateField">AppointmentStateField</a></code></h4>
72277388
<ul class="">
72287389
<li><code><a title="exchangelib.fields.AppointmentStateField.CANCELLED" href="#exchangelib.fields.AppointmentStateField.CANCELLED">CANCELLED</a></code></li>
@@ -7449,6 +7610,12 @@ <h4><code><a title="exchangelib.fields.FieldURIField" href="#exchangelib.fields.
74497610
<h4><code><a title="exchangelib.fields.FlaggedForActionField" href="#exchangelib.fields.FlaggedForActionField">FlaggedForActionField</a></code></h4>
74507611
</li>
74517612
<li>
7613+
<h4><code><a title="exchangelib.fields.FolderActionField" href="#exchangelib.fields.FolderActionField">FolderActionField</a></code></h4>
7614+
<ul class="">
7615+
<li><code><a title="exchangelib.fields.FolderActionField.clean" href="#exchangelib.fields.FolderActionField.clean">clean</a></code></li>
7616+
</ul>
7617+
</li>
7618+
<li>
74527619
<h4><code><a title="exchangelib.fields.FreeBusyStatusField" href="#exchangelib.fields.FreeBusyStatusField">FreeBusyStatusField</a></code></h4>
74537620
</li>
74547621
<li>

0 commit comments

Comments
 (0)