Mercurial > hg > config
annotate python/example/fireonce.py @ 803:70e9f82c2443
* prime actually doesnt work; if i had a decent CI for my own software, i would have known that; but i dont
* resource_filename.py even _says_ example in it. let us hope it is telling the truth
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Fri, 28 Oct 2016 17:00:37 -0700 |
parents | dbe9086643bf |
children |
rev | line source |
---|---|
164
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 class fireonce(object): |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 def __init__(self, func): |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 self.func = func |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 def __call__(self, *args, **kwargs): |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 if not self.func: |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 return None |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 retval = self.func(*args, **kwargs) |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 self.func = None |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
10 @fireonce |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
11 def foo(x): |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
12 print x |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
13 |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 foo('bar') |
8006938c33ac
add fireonce decorator example
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
15 foo('fleem') # not printed |