本文整理汇总了Python中six.callable函数的典型用法代码示例。如果您正苦于以下问题:Python callable函数的具体用法?Python callable怎么用?Python callable使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了callable函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add_state
def add_state(self, state, on_enter=None, on_exit=None,
target=None, terminal=None):
"""Adds a given state to the state machine.
The on_enter and on_exit callbacks, if provided will be expected to
take two positional parameters, these being the state being exited (for
on_exit) or the state being entered (for on_enter) and a second
parameter which is the event that is being processed that caused the
state transition.
"""
if state in self._states:
raise excp.Duplicate(_("State '%s' already defined") % state)
if on_enter is not None:
if not six.callable(on_enter):
raise ValueError(_("On enter callback must be callable"))
if on_exit is not None:
if not six.callable(on_exit):
raise ValueError(_("On exit callback must be callable"))
if target is not None and target not in self._states:
raise excp.InvalidState(_("Target state '%s' does not exist")
% target)
self._states[state] = {
'terminal': bool(terminal),
'reactions': {},
'on_enter': on_enter,
'on_exit': on_exit,
'target': target,
}
self._transitions[state] = OrderedDict()
示例2: add_state
def add_state(self, state, terminal=False, on_enter=None, on_exit=None):
"""Adds a given state to the state machine.
The on_enter and on_exit callbacks, if provided will be expected to
take two positional parameters, these being the state being exited (for
on_exit) or the state being entered (for on_enter) and a second
parameter which is the event that is being processed that caused the
state transition.
"""
if self.frozen:
raise excp.FrozenMachine()
if state in self._states:
raise excp.Duplicate("State '%s' already defined" % state)
if on_enter is not None:
if not six.callable(on_enter):
raise ValueError("On enter callback must be callable")
if on_exit is not None:
if not six.callable(on_exit):
raise ValueError("On exit callback must be callable")
self._states[state] = {
'terminal': bool(terminal),
'reactions': {},
'on_enter': on_enter,
'on_exit': on_exit,
}
self._transitions[state] = collections.OrderedDict()
示例3: _select_function
def _select_function(sort, typ):
if typ in ['F','D']:
if callable(sort):
#assume the user knows what they're doing
sfunction = sort
elif sort == 'lhp':
sfunction = lambda x,y: (np.real(x/y) < 0.0)
elif sort == 'rhp':
sfunction = lambda x,y: (np.real(x/y) >= 0.0)
elif sort == 'iuc':
sfunction = lambda x,y: (abs(x/y) <= 1.0)
elif sort == 'ouc':
sfunction = lambda x,y: (abs(x/y) > 1.0)
else:
raise ValueError("sort parameter must be None, a callable, or "
"one of ('lhp','rhp','iuc','ouc')")
elif typ in ['f','d']:
if callable(sort):
#assume the user knows what they're doing
sfunction = sort
elif sort == 'lhp':
sfunction = lambda x,y,z: (np.real((x+y*1j)/z) < 0.0)
elif sort == 'rhp':
sfunction = lambda x,y,z: (np.real((x+y*1j)/z) >= 0.0)
elif sort == 'iuc':
sfunction = lambda x,y,z: (abs((x+y*1j)/z) <= 1.0)
elif sort == 'ouc':
sfunction = lambda x,y,z: (abs((x+y*1j)/z) > 1.0)
else:
raise ValueError("sort parameter must be None, a callable, or "
"one of ('lhp','rhp','iuc','ouc')")
else: # to avoid an error later
raise ValueError("dtype %s not understood" % typ)
return sfunction
示例4: register
def register(self, event_type, callback, args=None, kwargs=None, details_filter=None):
"""Register a callback to be called when event of a given type occurs.
Callback will be called with provided ``args`` and ``kwargs`` and
when event type occurs (or on any event if ``event_type`` equals to
:attr:`.ANY`). It will also get additional keyword argument,
``details``, that will hold event details provided to the
:meth:`.notify` method (if a details filter callback is provided then
the target callback will *only* be triggered if the details filter
callback returns a truthy value).
:param event_type: event type input
:param callback: function callback to be registered.
:param args: non-keyworded arguments
:type args: list
:param kwargs: key-value pair arguments
:type kwargs: dictionary
"""
if not six.callable(callback):
raise ValueError("Event callback must be callable")
if details_filter is not None:
if not six.callable(details_filter):
raise ValueError("Details filter must be callable")
if not self.can_be_registered(event_type):
raise ValueError("Disallowed event type '%s' can not have a" " callback registered" % event_type)
if self.is_registered(event_type, callback, details_filter=details_filter):
raise ValueError("Event callback already registered with" " equivalent details filter")
if kwargs:
for k in self.RESERVED_KEYS:
if k in kwargs:
raise KeyError("Reserved key '%s' not allowed in " "kwargs" % k)
self._topics[event_type].append(Listener(callback, args=args, kwargs=kwargs, details_filter=details_filter))
示例5: add_state
def add_state(self, state, terminal=False, on_enter=None, on_exit=None):
"""Adds a given state to the state machine.
:param on_enter: callback, if provided will be expected to take
two positional parameters, these being state being
entered and the second parameter is the event that is
being processed that caused the state transition
:param on_exit: callback, if provided will be expected to take
two positional parameters, these being state being
entered and the second parameter is the event that is
being processed that caused the state transition
:param state: state being entered or exited
:type state: string
"""
if state in self._states:
raise excp.Duplicate("State '%s' already defined" % state)
if on_enter is not None:
if not six.callable(on_enter):
raise ValueError("On enter callback must be callable")
if on_exit is not None:
if not six.callable(on_exit):
raise ValueError("On exit callback must be callable")
self._states[state] = {
'terminal': bool(terminal),
'reactions': {},
'on_enter': on_enter,
'on_exit': on_exit,
}
self._transitions[state] = OrderedDict()
示例6: __init__
def __init__(self, execute, name=None, provides=None,
requires=None, auto_extract=True, rebind=None, revert=None,
version=None, inject=None):
if not six.callable(execute):
raise ValueError("Function to use for executing must be"
" callable")
if revert is not None:
if not six.callable(revert):
raise ValueError("Function to use for reverting must"
" be callable")
if name is None:
name = reflection.get_callable_name(execute)
super(FunctorTask, self).__init__(name, provides=provides,
inject=inject)
self._execute = execute
self._revert = revert
if version is not None:
self.version = version
mapping = self._build_arg_mapping(execute, requires, rebind,
auto_extract)
self.rebind, exec_requires, self.optional = mapping
if revert:
revert_mapping = self._build_arg_mapping(revert, requires, rebind,
auto_extract)
else:
revert_mapping = (self.rebind, exec_requires, self.optional)
(self.revert_rebind, revert_requires,
self.revert_optional) = revert_mapping
self.requires = exec_requires.union(revert_requires)
示例7: _set_obj_extra_data_key
def _set_obj_extra_data_key(obj, eng):
my_value = value
my_key = key
if callable(my_value):
while callable(my_value):
my_value = my_value(obj, eng)
if callable(my_key):
while callable(my_key):
my_key = my_key(obj, eng)
obj.extra_data[str(my_key)] = my_value
示例8: _prepare
def _prepare(cls, elem, attr):
if not isinstance(elem, six.binary_type):
serialize = getattr(elem, 'serialize', None)
if six.callable(serialize):
return serialize()
attr_class = cls._get_attr_class(attr)
serialize = getattr(attr_class, 'serialize', None)
if six.callable(serialize):
return serialize(elem)
return elem
示例9: _foreach
def _foreach(obj, eng):
my_list_to_process = []
step = str(eng.getCurrTaskId())
try:
if "_Iterators" not in eng.extra_data:
eng.extra_data["_Iterators"] = {}
except KeyError:
eng.extra_data["_Iterators"] = {}
if step not in eng.extra_data["_Iterators"]:
eng.extra_data["_Iterators"][step] = {}
if cache_data:
if callable(get_list_function):
eng.extra_data["_Iterators"][step]["cache"] = get_list_function(obj, eng)
elif isinstance(get_list_function, list):
eng.extra_data["_Iterators"][step]["cache"] = get_list_function
else:
eng.extra_data["_Iterators"][step]["cache"] = []
my_list_to_process = eng.extra_data["_Iterators"][step]["cache"]
if order == "ASC":
eng.extra_data["_Iterators"][step].update({"value": 0})
elif order == "DSC":
eng.extra_data["_Iterators"][step].update({"value": len(my_list_to_process) - 1})
eng.extra_data["_Iterators"][step]["previous_data"] = obj.data
if callable(get_list_function):
if cache_data:
my_list_to_process = eng.extra_data["_Iterators"][step]["cache"]
else:
my_list_to_process = get_list_function(obj, eng)
elif isinstance(get_list_function, list):
my_list_to_process = get_list_function
else:
my_list_to_process = []
if order == "ASC" and eng.extra_data["_Iterators"][step]["value"] < len(my_list_to_process):
obj.data = my_list_to_process[eng.extra_data["_Iterators"][step]["value"]]
if savename is not None:
obj.extra_data[savename] = obj.data
eng.extra_data["_Iterators"][step]["value"] += 1
elif order == "DSC" and eng.extra_data["_Iterators"][step]["value"] > -1:
obj.data = my_list_to_process[eng.extra_data["_Iterators"][step]["value"]]
if savename is not None:
obj.extra_data[savename] = obj.data
eng.extra_data["_Iterators"][step]["value"] -= 1
else:
obj.data = eng.extra_data["_Iterators"][step]["previous_data"]
del eng.extra_data["_Iterators"][step]
coordonatex = len(eng.getCurrTaskId()) - 1
coordonatey = eng.getCurrTaskId()[coordonatex]
new_vector = eng.getCurrTaskId()
new_vector[coordonatex] = coordonatey + 2
eng.setPosition(eng.getCurrObjId(), new_vector)
示例10: _get_files_list
def _get_files_list(obj, eng):
if callable(parameter):
unknown = parameter
while callable(unknown):
unknown = unknown(obj, eng)
else:
unknown = parameter
result = glob.glob1(path, unknown)
for i in range(0, len(result)):
result[i] = path + os.sep + result[i]
return result
示例11: add_listener
def add_listener(self, rule, view_func, **options):
"""Adds a listener to the listeners container; verifies that
`rule` and `view_func` are callable.
:raises TypeError: if rule is not callable.
:raises TypeError: if view_func is not callable
"""
if not six.callable(rule):
raise TypeError('rule should be callable')
if not six.callable(view_func):
raise TypeError('view_func should be callable')
self.listeners.append(Listener(rule, view_func, options))
示例12: test_namespace_dereferencing
def test_namespace_dereferencing(self):
service = self.object.nested
assert service is self.object.nested
assert six.callable(service)
assert hasattr(service, 'method')
assert six.callable(service.method)
service = self.object.nested.deeper
assert service is self.object.nested.deeper
assert six.callable(service)
assert hasattr(service, 'method')
assert six.callable(service.method)
示例13: register
def register(self, event_type, callback,
args=None, kwargs=None, details_filter=None,
weak=False):
"""Register a callback to be called when event of a given type occurs.
Callback will be called with provided ``args`` and ``kwargs`` and
when event type occurs (or on any event if ``event_type`` equals to
:attr:`.ANY`). It will also get additional keyword argument,
``details``, that will hold event details provided to the
:meth:`.notify` method (if a details filter callback is provided then
the target callback will *only* be triggered if the details filter
callback returns a truthy value).
:param event_type: event type to get triggered on
:param callback: function callback to be registered.
:param args: non-keyworded arguments
:type args: list
:param kwargs: key-value pair arguments
:type kwargs: dictionary
:param weak: if the callback retained should be referenced via
a weak reference or a strong reference (defaults to
holding a strong reference)
:type weak: bool
:returns: the listener that was registered
:rtype: :py:class:`~.Listener`
"""
if not six.callable(callback):
raise ValueError("Event callback must be callable")
if details_filter is not None:
if not six.callable(details_filter):
raise ValueError("Details filter must be callable")
if not self.can_be_registered(event_type):
raise ValueError("Disallowed event type '%s' can not have a"
" callback registered" % event_type)
if kwargs:
for k in self.RESERVED_KEYS:
if k in kwargs:
raise KeyError("Reserved key '%s' not allowed in "
"kwargs" % k)
with self._lock:
if self.is_registered(event_type, callback,
details_filter=details_filter):
raise ValueError("Event callback already registered with"
" equivalent details filter")
listener = Listener(_make_ref(callback, weak=weak),
args=args, kwargs=kwargs,
details_filter=details_filter,
weak=weak)
listeners = self._topics.setdefault(event_type, [])
listeners.append(listener)
return listener
示例14: _update_last_update
def _update_last_update(obj, eng):
if "_should_last_run_be_update" in obj.extra_data:
if obj.extra_data["_should_last_run_be_update"]:
repository_list_to_process = repository_list
if not isinstance(repository_list_to_process, list):
if callable(repository_list_to_process):
while callable(repository_list_to_process):
repository_list_to_process = repository_list_to_process(
obj, eng)
else:
repository_list_to_process = [
repository_list_to_process]
for repository in repository_list_to_process:
update_lastrun(repository["id"])
示例15: valid_int
def valid_int(x, cast=None):
'''Ensure that an input value is integer-typed.
This is primarily useful for ensuring integrable-valued
array indices.
Parameters
----------
x : number
A scalar value to be cast to int
cast : function [optional]
A function to modify `x` before casting.
Default: `np.floor`
Returns
-------
x_int : int
`x_int = int(cast(x))`
Raises
------
TypeError
If `cast` is provided and is not callable.
'''
if cast is None:
cast = np.floor
if not six.callable(cast):
raise TypeError('cast parameter must be callable.')
return int(cast(x))