1-
21<!DOCTYPE html>
32
4- < html lang ="en ">
3+ < html lang ="en " data-content_root =" ../ " >
54 < head >
65 < meta charset ="utf-8 " />
76 < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
87 < title > abc — Tigramite 5.2 documentation</ title >
9- < link rel ="stylesheet " type ="text/css " href ="../_static/pygments.css " />
10- < link rel ="stylesheet " type ="text/css " href ="../_static/alabaster.css " />
11- < script data-url_root ="../ " id ="documentation_options " src ="../_static/documentation_options.js "> </ script >
12- < script src ="../_static/jquery.js "> </ script >
13- < script src ="../_static/underscore.js "> </ script >
14- < script src ="../_static/_sphinx_javascript_frameworks_compat.js "> </ script >
15- < script src ="../_static/doctools.js "> </ script >
8+ < link rel ="stylesheet " type ="text/css " href ="../_static/pygments.css?v=db26dd79 " />
9+ < link rel ="stylesheet " type ="text/css " href ="../_static/alabaster.css?v=19da42e6 " />
10+ < script src ="../_static/documentation_options.js?v=625b3a9a "> </ script >
11+ < script src ="../_static/doctools.js?v=aa79a7b1 "> </ script >
12+ < script src ="../_static/sphinx_highlight.js?v=4825356b "> </ script >
1613 < link rel ="index " title ="Index " href ="../genindex.html " />
1714 < link rel ="search " title ="Search " href ="../search.html " />
1815
1916 < link rel ="stylesheet " href ="../_static/custom.css " type ="text/css " />
2017
18+
19+
2120
22- < meta name ="viewport " content ="width=device-width, initial-scale=0.9, maximum-scale=0.9 " />
2321
2422 </ head > < body >
2523
@@ -52,7 +50,7 @@ <h1>Source code for abc</h1><div class="highlight"><pre>
5250
5351< span class ="sd "> class C(metaclass=ABCMeta):</ span >
5452< span class ="sd "> @abstractmethod</ span >
55- < span class ="sd "> def my_abstract_method(self, ... ):</ span >
53+ < span class ="sd "> def my_abstract_method(self, arg1, arg2, argN ):</ span >
5654< span class ="sd "> ...</ span >
5755< span class ="sd "> """</ span >
5856 < span class ="n "> funcobj</ span > < span class ="o "> .</ span > < span class ="n "> __isabstractmethod__</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span >
@@ -136,7 +134,7 @@ <h1>Source code for abc</h1><div class="highlight"><pre>
136134< span class ="sd "> implementations defined by the registering ABC be callable (not</ span >
137135< span class ="sd "> even via super()).</ span >
138136< span class ="sd "> """</ span >
139- < span class ="k "> def</ span > < span class ="fm "> __new__</ span > < span class ="p "> (</ span > < span class ="n "> mcls</ span > < span class ="p "> ,</ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="n "> bases</ span > < span class ="p "> ,</ span > < span class ="n "> namespace</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> ):</ span >
137+ < span class ="k "> def</ span > < span class ="fm "> __new__</ span > < span class ="p "> (</ span > < span class ="n "> mcls</ span > < span class ="p "> ,</ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="n "> bases</ span > < span class ="p "> ,</ span > < span class ="n "> namespace</ span > < span class ="p "> ,</ span > < span class ="o "> / </ span > < span class =" p " > , </ span > < span class =" o " > **</ span > < span class ="n "> kwargs</ span > < span class ="p "> ):</ span >
140138 < span class ="bp "> cls</ span > < span class ="o "> =</ span > < span class ="nb "> super</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="fm "> __new__</ span > < span class ="p "> (</ span > < span class ="n "> mcls</ span > < span class ="p "> ,</ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="n "> bases</ span > < span class ="p "> ,</ span > < span class ="n "> namespace</ span > < span class ="p "> ,</ span > < span class ="o "> **</ span > < span class ="n "> kwargs</ span > < span class ="p "> )</ span >
141139 < span class ="n "> _abc_init</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> )</ span >
142140 < span class ="k "> return</ span > < span class ="bp "> cls</ span >
@@ -177,6 +175,44 @@ <h1>Source code for abc</h1><div class="highlight"><pre>
177175 < span class ="n "> _reset_caches</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> )</ span >
178176
179177
178+ < span class ="k "> def</ span > < span class ="nf "> update_abstractmethods</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> ):</ span >
179+ < span class ="w "> </ span > < span class ="sd "> """Recalculate the set of abstract methods of an abstract class.</ span >
180+
181+ < span class ="sd "> If a class has had one of its abstract methods implemented after the</ span >
182+ < span class ="sd "> class was created, the method will not be considered implemented until</ span >
183+ < span class ="sd "> this function is called. Alternatively, if a new abstract method has been</ span >
184+ < span class ="sd "> added to the class, it will only be considered an abstract method of the</ span >
185+ < span class ="sd "> class after this function is called.</ span >
186+
187+ < span class ="sd "> This function should be called before any use is made of the class,</ span >
188+ < span class ="sd "> usually in class decorators that add methods to the subject class.</ span >
189+
190+ < span class ="sd "> Returns cls, to allow usage as a class decorator.</ span >
191+
192+ < span class ="sd "> If cls is not an instance of ABCMeta, does nothing.</ span >
193+ < span class ="sd "> """</ span >
194+ < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="nb "> hasattr</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> ,</ span > < span class ="s1 "> '__abstractmethods__'</ span > < span class ="p "> ):</ span >
195+ < span class ="c1 "> # We check for __abstractmethods__ here because cls might by a C</ span >
196+ < span class ="c1 "> # implementation or a python implementation (especially during</ span >
197+ < span class ="c1 "> # testing), and we want to handle both cases.</ span >
198+ < span class ="k "> return</ span > < span class ="bp "> cls</ span >
199+
200+ < span class ="n "> abstracts</ span > < span class ="o "> =</ span > < span class ="nb "> set</ span > < span class ="p "> ()</ span >
201+ < span class ="c1 "> # Check the existing abstract methods of the parents, keep only the ones</ span >
202+ < span class ="c1 "> # that are not implemented.</ span >
203+ < span class ="k "> for</ span > < span class ="n "> scls</ span > < span class ="ow "> in</ span > < span class ="bp "> cls</ span > < span class ="o "> .</ span > < span class ="vm "> __bases__</ span > < span class ="p "> :</ span >
204+ < span class ="k "> for</ span > < span class ="n "> name</ span > < span class ="ow "> in</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="n "> scls</ span > < span class ="p "> ,</ span > < span class ="s1 "> '__abstractmethods__'</ span > < span class ="p "> ,</ span > < span class ="p "> ()):</ span >
205+ < span class ="n "> value</ span > < span class ="o "> =</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="bp "> cls</ span > < span class ="p "> ,</ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="kc "> None</ span > < span class ="p "> )</ span >
206+ < span class ="k "> if</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="s2 "> "__isabstractmethod__"</ span > < span class ="p "> ,</ span > < span class ="kc "> False</ span > < span class ="p "> ):</ span >
207+ < span class ="n "> abstracts</ span > < span class ="o "> .</ span > < span class ="n "> add</ span > < span class ="p "> (</ span > < span class ="n "> name</ span > < span class ="p "> )</ span >
208+ < span class ="c1 "> # Also add any other newly added abstract methods.</ span >
209+ < span class ="k "> for</ span > < span class ="n "> name</ span > < span class ="p "> ,</ span > < span class ="n "> value</ span > < span class ="ow "> in</ span > < span class ="bp "> cls</ span > < span class ="o "> .</ span > < span class ="vm "> __dict__</ span > < span class ="o "> .</ span > < span class ="n "> items</ span > < span class ="p "> ():</ span >
210+ < span class ="k "> if</ span > < span class ="nb "> getattr</ span > < span class ="p "> (</ span > < span class ="n "> value</ span > < span class ="p "> ,</ span > < span class ="s2 "> "__isabstractmethod__"</ span > < span class ="p "> ,</ span > < span class ="kc "> False</ span > < span class ="p "> ):</ span >
211+ < span class ="n "> abstracts</ span > < span class ="o "> .</ span > < span class ="n "> add</ span > < span class ="p "> (</ span > < span class ="n "> name</ span > < span class ="p "> )</ span >
212+ < span class ="bp "> cls</ span > < span class ="o "> .</ span > < span class ="n "> __abstractmethods__</ span > < span class ="o "> =</ span > < span class ="nb "> frozenset</ span > < span class ="p "> (</ span > < span class ="n "> abstracts</ span > < span class ="p "> )</ span >
213+ < span class ="k "> return</ span > < span class ="bp "> cls</ span >
214+
215+
180216< span class ="k "> class</ span > < span class ="nc "> ABC</ span > < span class ="p "> (</ span > < span class ="n "> metaclass</ span > < span class ="o "> =</ span > < span class ="n "> ABCMeta</ span > < span class ="p "> ):</ span >
181217< span class ="w "> </ span > < span class ="sd "> """Helper class that provides a standard way to create an ABC using</ span >
182218< span class ="sd "> inheritance.</ span >
@@ -210,15 +246,15 @@ <h3>Related Topics</h3>
210246 </ ul > </ li >
211247</ ul >
212248</ div >
213- < div id ="searchbox " style ="display: none " role ="search ">
249+ < search id ="searchbox " style ="display: none " role ="search ">
214250 < h3 id ="searchlabel "> Quick search</ h3 >
215251 < div class ="searchformwrapper ">
216252 < form class ="search " action ="../search.html " method ="get ">
217253 < input type ="text " name ="q " aria-labelledby ="searchlabel " autocomplete ="off " autocorrect ="off " autocapitalize ="off " spellcheck ="false "/>
218254 < input type ="submit " value ="Go " />
219255 </ form >
220256 </ div >
221- </ div >
257+ </ search >
222258< script > document . getElementById ( 'searchbox' ) . style . display = "block" </ script >
223259
224260
@@ -233,11 +269,11 @@ <h3 id="searchlabel">Quick search</h3>
233269 < div class ="clearer "> </ div >
234270 </ div >
235271 < div class ="footer ">
236- © ;2023, Jakob Runge.
272+ © ;2023, Jakob Runge.
237273
238274 |
239- Powered by < a href ="http ://sphinx-doc.org/ "> Sphinx 5.0.2 </ a >
240- & < a href ="https://github.com/bitprophet/ alabaster "> Alabaster 0.7.12 </ a >
275+ Powered by < a href ="https ://www. sphinx-doc.org/ "> Sphinx 7.3.7 </ a >
276+ & < a href ="https://alabaster.readthedocs.io "> Alabaster 0.7.16 </ a >
241277
242278 </ div >
243279
0 commit comments