Cameron Simpson wrote:
get_clock already has two arguments - you can optionally hand it a clock
list - that's used by monotonic_clock() and hires_clock().
def get_clock(*flags, *, clocklist=None):
''' Return a Clock based on the supplied `flags`.
The returned clock shall have all the requested flags.
If no clock matches, return None.
'''
wanted = 0
for flag in flags:
wanted |= flag
if clocklist is None:
clocklist = ALL_CLOCKS
for clock in clocklist:
if clock.flags & wanted == wanted:
return clock.factory()
return None
Would need to make *flags change to the other *_clock functions.
Have a quick glance at:
https://bitbucket.org/cameron_simpson/css/src/tip/lib/python/cs/clockutils.py
Thanks.
The return of None is very deliberate. I _want_ user specified fallback
to be concise and easy. The example:
clock = get_clock(MONOTONIC|HIRES) or get_clock(MONOTONIC)
Which would become:
clock = get_clock(MONOTONIC, HIGHRES) or get_clock(MONOTONIC)
+1 to returning None
Exceptions are all very well when there is just one thing to do: parse
this or fail, divide this by that or fail. If fact they're the very
image of "do this one thing or FAIL". They are not such a good match for do
this thing or that thing or this other thing.
When you want a simple linear cascade of choices, Python's short circuiting
"or" operator is a very useful thing. Having an obsession with exceptions is
IMO unhealthy.
Another +1.
~Ethan~
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com