Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def bind(self, address, callback, sock=None, get_address=False):
"""Bind a callback to an osc address.
A socket in the list of existing sockets of the server can be
given. If no socket is provided, the default socket of the
server is used, if no default socket has been defined, a
RuntimeError is raised.
Multiple callbacks can be bound to the same address.
"""
if not sock and self.default_socket:
sock = self.default_socket
elif not sock:
raise RuntimeError('no default socket yet and no socket provided')
if isinstance(address, UNICODE) and self.encoding:
address = address.encode(
self.encoding, errors=self.encoding_errors)
if self.advanced_matching:
address = self.create_smart_address(address)
callbacks = self.addresses.get((sock, address), [])
cb = (callback, get_address)
if cb not in callbacks:
callbacks.append(cb)
self.addresses[(sock, address)] = callbacks