-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
add python doc for 5.7
- Loading branch information
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,358 @@ | ||
<!doctype html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" /> | ||
<meta name="generator" content="pdoc 0.10.0" /> | ||
<title>clingo.util API documentation</title> | ||
<meta name="description" content="Utility functions and classes." /> | ||
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin> | ||
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin> | ||
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin> | ||
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style> | ||
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style> | ||
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style> | ||
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script> | ||
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script> | ||
</head> | ||
<body> | ||
<main> | ||
<article id="content"> | ||
<header> | ||
<h1 class="title">Module <code>clingo.util</code></h1> | ||
</header> | ||
<section id="section-intro"> | ||
<p>Utility functions and classes.</p> | ||
<details class="source"> | ||
<summary> | ||
<span>Expand source code</span> | ||
</summary> | ||
<pre><code class="python">""" | ||
Utility functions and classes. | ||
""" | ||
|
||
from typing import Optional, cast | ||
from collections import abc | ||
|
||
# pylint: disable=too-many-ancestors | ||
|
||
|
||
class Slice: | ||
""" | ||
Wrapper for Python's slice that computes index ranges to slice sequences. | ||
|
||
Currently, the range is recomputed each time. It is probably also possible | ||
to combine the involved slices into one. | ||
""" | ||
|
||
def __init__(self, slc: slice, rec: Optional["Slice"] = None): | ||
self._slc = slc | ||
self._rec = rec | ||
|
||
def rng(self, size): | ||
""" | ||
Return a range providing indices to access a sequence of length size. | ||
""" | ||
return ( | ||
range(*self._slc.indices(size)) | ||
if self._rec is None | ||
else self._rec.rng(size)[self._slc] | ||
) | ||
|
||
|
||
class SlicedSequence(abc.Sequence): | ||
""" | ||
Helper to slice sequences. | ||
""" | ||
|
||
def __init__(self, seq: abc.Sequence, slc: Slice): | ||
self._seq = seq | ||
self._slc = slc | ||
self._len = -1 | ||
self._lst = None | ||
|
||
@property | ||
def _rng(self): | ||
size = len(self._seq) | ||
if size != self._len: | ||
self._lst = self._slc.rng(size) | ||
self._len = size | ||
return self._lst | ||
|
||
def __len__(self) -> int: | ||
return len(self._rng) | ||
|
||
def __iter__(self): | ||
for idx in self._rng: | ||
yield self._seq[idx] | ||
|
||
def __getitem__(self, slc): | ||
if isinstance(slc, slice): | ||
return SlicedSequence(self._seq, Slice(slc, self._slc)) | ||
return self._seq[self._rng[slc]] | ||
|
||
def __str__(self): | ||
return str(list(self)) | ||
|
||
def __repr__(self): | ||
return repr(list(self)) | ||
|
||
|
||
class SlicedMutableSequence(SlicedSequence, abc.MutableSequence): | ||
""" | ||
Helper to slice sequences. | ||
""" | ||
|
||
def __init__(self, seq: abc.MutableSequence, slc: Slice): | ||
super().__init__(seq, slc) | ||
|
||
@property | ||
def _mut_seq(self): | ||
return cast(abc.MutableSequence, self._seq) | ||
|
||
def __setitem__(self, index, ast): | ||
if isinstance(index, slice): | ||
raise TypeError("slicing not implemented") | ||
self._mut_seq[self._rng[index]] = ast | ||
|
||
def __delitem__(self, index): | ||
if isinstance(index, slice): | ||
raise TypeError("slicing not implemented") | ||
del self._mut_seq[self._rng[index]] | ||
|
||
def insert(self, index, value): | ||
self._mut_seq[self._rng[index]] = value</code></pre> | ||
</details> | ||
</section> | ||
<section> | ||
</section> | ||
<section> | ||
</section> | ||
<section> | ||
</section> | ||
<section> | ||
<h2 class="section-title" id="header-classes">Classes</h2> | ||
<dl> | ||
<dt id="clingo.util.Slice"><code class="flex name class"> | ||
<span>class <span class="ident">Slice</span></span> | ||
<span>(</span><span>slc: slice, rec: Optional[ForwardRef('<a title="clingo.util.Slice" href="#clingo.util.Slice">Slice</a>')] = None)</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>Wrapper for Python's slice that computes index ranges to slice sequences.</p> | ||
<p>Currently, the range is recomputed each time. It is probably also possible | ||
to combine the involved slices into one.</p></div> | ||
<details class="source"> | ||
<summary> | ||
<span>Expand source code</span> | ||
</summary> | ||
<pre><code class="python">class Slice: | ||
""" | ||
Wrapper for Python's slice that computes index ranges to slice sequences. | ||
|
||
Currently, the range is recomputed each time. It is probably also possible | ||
to combine the involved slices into one. | ||
""" | ||
|
||
def __init__(self, slc: slice, rec: Optional["Slice"] = None): | ||
self._slc = slc | ||
self._rec = rec | ||
|
||
def rng(self, size): | ||
""" | ||
Return a range providing indices to access a sequence of length size. | ||
""" | ||
return ( | ||
range(*self._slc.indices(size)) | ||
if self._rec is None | ||
else self._rec.rng(size)[self._slc] | ||
)</code></pre> | ||
</details> | ||
<h3>Methods</h3> | ||
<dl> | ||
<dt id="clingo.util.Slice.rng"><code class="name flex"> | ||
<span>def <span class="ident">rng</span></span>(<span>self, size)</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>Return a range providing indices to access a sequence of length size.</p></div> | ||
<details class="source"> | ||
<summary> | ||
<span>Expand source code</span> | ||
</summary> | ||
<pre><code class="python">def rng(self, size): | ||
""" | ||
Return a range providing indices to access a sequence of length size. | ||
""" | ||
return ( | ||
range(*self._slc.indices(size)) | ||
if self._rec is None | ||
else self._rec.rng(size)[self._slc] | ||
)</code></pre> | ||
</details> | ||
</dd> | ||
</dl> | ||
</dd> | ||
<dt id="clingo.util.SlicedMutableSequence"><code class="flex name class"> | ||
<span>class <span class="ident">SlicedMutableSequence</span></span> | ||
<span>(</span><span>seq: collections.abc.MutableSequence, slc: <a title="clingo.util.Slice" href="#clingo.util.Slice">Slice</a>)</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>Helper to slice sequences.</p></div> | ||
<details class="source"> | ||
<summary> | ||
<span>Expand source code</span> | ||
</summary> | ||
<pre><code class="python">class SlicedMutableSequence(SlicedSequence, abc.MutableSequence): | ||
""" | ||
Helper to slice sequences. | ||
""" | ||
|
||
def __init__(self, seq: abc.MutableSequence, slc: Slice): | ||
super().__init__(seq, slc) | ||
|
||
@property | ||
def _mut_seq(self): | ||
return cast(abc.MutableSequence, self._seq) | ||
|
||
def __setitem__(self, index, ast): | ||
if isinstance(index, slice): | ||
raise TypeError("slicing not implemented") | ||
self._mut_seq[self._rng[index]] = ast | ||
|
||
def __delitem__(self, index): | ||
if isinstance(index, slice): | ||
raise TypeError("slicing not implemented") | ||
del self._mut_seq[self._rng[index]] | ||
|
||
def insert(self, index, value): | ||
self._mut_seq[self._rng[index]] = value</code></pre> | ||
</details> | ||
<h3>Ancestors</h3> | ||
<ul class="hlist"> | ||
<li><a title="clingo.util.SlicedSequence" href="#clingo.util.SlicedSequence">SlicedSequence</a></li> | ||
<li>collections.abc.MutableSequence</li> | ||
<li>collections.abc.Sequence</li> | ||
<li>collections.abc.Reversible</li> | ||
<li>collections.abc.Collection</li> | ||
<li>collections.abc.Sized</li> | ||
<li>collections.abc.Iterable</li> | ||
<li>collections.abc.Container</li> | ||
</ul> | ||
<h3>Methods</h3> | ||
<dl> | ||
<dt id="clingo.util.SlicedMutableSequence.insert"><code class="name flex"> | ||
<span>def <span class="ident">insert</span></span>(<span>self, index, value)</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>S.insert(index, value) – insert value before index</p></div> | ||
<details class="source"> | ||
<summary> | ||
<span>Expand source code</span> | ||
</summary> | ||
<pre><code class="python">def insert(self, index, value): | ||
self._mut_seq[self._rng[index]] = value</code></pre> | ||
</details> | ||
</dd> | ||
</dl> | ||
</dd> | ||
<dt id="clingo.util.SlicedSequence"><code class="flex name class"> | ||
<span>class <span class="ident">SlicedSequence</span></span> | ||
<span>(</span><span>seq: collections.abc.Sequence, slc: <a title="clingo.util.Slice" href="#clingo.util.Slice">Slice</a>)</span> | ||
</code></dt> | ||
<dd> | ||
<div class="desc"><p>Helper to slice sequences.</p></div> | ||
<details class="source"> | ||
<summary> | ||
<span>Expand source code</span> | ||
</summary> | ||
<pre><code class="python">class SlicedSequence(abc.Sequence): | ||
""" | ||
Helper to slice sequences. | ||
""" | ||
|
||
def __init__(self, seq: abc.Sequence, slc: Slice): | ||
self._seq = seq | ||
self._slc = slc | ||
self._len = -1 | ||
self._lst = None | ||
|
||
@property | ||
def _rng(self): | ||
size = len(self._seq) | ||
if size != self._len: | ||
self._lst = self._slc.rng(size) | ||
self._len = size | ||
return self._lst | ||
|
||
def __len__(self) -> int: | ||
return len(self._rng) | ||
|
||
def __iter__(self): | ||
for idx in self._rng: | ||
yield self._seq[idx] | ||
|
||
def __getitem__(self, slc): | ||
if isinstance(slc, slice): | ||
return SlicedSequence(self._seq, Slice(slc, self._slc)) | ||
return self._seq[self._rng[slc]] | ||
|
||
def __str__(self): | ||
return str(list(self)) | ||
|
||
def __repr__(self): | ||
return repr(list(self))</code></pre> | ||
</details> | ||
<h3>Ancestors</h3> | ||
<ul class="hlist"> | ||
<li>collections.abc.Sequence</li> | ||
<li>collections.abc.Reversible</li> | ||
<li>collections.abc.Collection</li> | ||
<li>collections.abc.Sized</li> | ||
<li>collections.abc.Iterable</li> | ||
<li>collections.abc.Container</li> | ||
</ul> | ||
<h3>Subclasses</h3> | ||
<ul class="hlist"> | ||
<li><a title="clingo.util.SlicedMutableSequence" href="#clingo.util.SlicedMutableSequence">SlicedMutableSequence</a></li> | ||
</ul> | ||
</dd> | ||
</dl> | ||
</section> | ||
</article> | ||
<nav id="sidebar"> | ||
<h1>Index</h1> | ||
<div class="toc"> | ||
<ul></ul> | ||
</div> | ||
<ul id="index"> | ||
<li><h3>Super-module</h3> | ||
<ul> | ||
<li><code><a title="clingo" href="index.html">clingo</a></code></li> | ||
</ul> | ||
</li> | ||
<li><h3><a href="#header-classes">Classes</a></h3> | ||
<ul> | ||
<li> | ||
<h4><code><a title="clingo.util.Slice" href="#clingo.util.Slice">Slice</a></code></h4> | ||
<ul class=""> | ||
<li><code><a title="clingo.util.Slice.rng" href="#clingo.util.Slice.rng">rng</a></code></li> | ||
</ul> | ||
</li> | ||
<li> | ||
<h4><code><a title="clingo.util.SlicedMutableSequence" href="#clingo.util.SlicedMutableSequence">SlicedMutableSequence</a></code></h4> | ||
<ul class=""> | ||
<li><code><a title="clingo.util.SlicedMutableSequence.insert" href="#clingo.util.SlicedMutableSequence.insert">insert</a></code></li> | ||
</ul> | ||
</li> | ||
<li> | ||
<h4><code><a title="clingo.util.SlicedSequence" href="#clingo.util.SlicedSequence">SlicedSequence</a></code></h4> | ||
</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</nav> | ||
</main> | ||
<footer id="footer"> | ||
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p> | ||
</footer> | ||
</body> | ||
</html> |