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~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4