coherence.upnp.devices (package)

coherence.upnp.devices.basics (module)

class DeviceHttpRoot(server)[source]

Bases: twisted.web.resource.Resource, coherence.log.LogAble

logCategory = 'basicdevice'
server = None
getChildWithDefault(path, request)[source]

Retrieve a static or dynamically generated child resource from me.

First checks if a resource was added manually by putChild, and then call getChild to check for dynamic resources. Only override if you want to affect behaviour of all child lookups, rather than just dynamic ones.

This will check to see if I have a pre-registered child resource of the given name, and call getChild if I do not.

@see: L{IResource.getChildWithDefault}

getChild(name, request)[source]

Retrieve a ‘child’ resource from me.

Implement this to create dynamic resource generation – resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable ‘isLeaf’ is set in your subclass; instead, the ‘postpath’ attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:

| site.resource.getChild('foo').getChild('bar').getChild('baz').

However, if the resource returned by ‘bar’ has isLeaf set to true, then the getChild call will never be made on it.

Parameters and return value have the same meaning and requirements as those defined by L{IResource.getChildWithDefault}.

listchilds(uri)[source]
render(request)[source]

Render a given resource. See L{IResource}’s render method.

I delegate to methods of self with the form ‘render_METHOD’ where METHOD is the HTTP that was used to make the request. Examples: render_GET, render_HEAD, render_POST, and so on. Generally you should implement those methods instead of overriding this one.

render_METHOD methods are expected to return a byte string which will be the rendered page, unless the return value is C{server.NOT_DONE_YET}, in which case it is this class’s responsibility to write the results using C{request.write(data)} and then call C{request.finish()}.

Old code that overrides render() directly is likewise expected to return a byte string or NOT_DONE_YET.

@see: L{IResource.render}

COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
delEntity(name)
entityType = <InterfaceClass twisted.web.resource.IResource>
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
getChildForRequest(request)
getDynamicEntity(name, request)
getStaticEntity(name)
info(message, *args, **kwargs)
isLeaf = 0
listDynamicEntities(request=None)
listDynamicNames()
listEntities()
listNames()
listStaticEntities()
listStaticNames()
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
putChild(path, child)

Register a static child.

You almost certainly don’t want ‘/’ in your path. If you intended to have the root of a folder, e.g. /foo/, you want path to be ‘’.

@see: L{IResource.putChild}

reallyPutEntity(name, entity)
render_HEAD(request)

Default handling of HEAD method.

I just return self.render_GET(request). When method is HEAD, the framework will handle this correctly.

warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
class BasicDeviceMixin(coherence, backend, **kwargs)[source]

Bases: object

init_failed(backend, msg)[source]
register()[source]
unregister()[source]

coherence.upnp.devices.control_point (module)

class DeviceQuery(type, pattern, callback, timeout=0, oneshot=True)[source]

Bases: object

fire(device)[source]
check(device)[source]
class ControlPoint(coherence, auto_client=None)[source]

Bases: coherence.log.LogAble

logCategory = 'controlpoint'
shutdown()[source]
auto_client_append(device_type)[source]
browse(device)[source]
process_queries(device)[source]
add_query(query)[source]
connect(receiver, signal=<class 'coherence.extern.louie.All'>, sender=<class 'coherence.extern.louie.Any'>, weak=True)[source]

wrapper method around louie.connect

disconnect(receiver, signal=<class 'coherence.extern.louie.All'>, sender=<class 'coherence.extern.louie.Any'>, weak=True)[source]

wrapper method around louie.disconnect

get_devices()[source]
get_device_with_id(id)[source]
get_device_by_host(host)[source]
check_device(device)[source]
completed(client, udn)[source]
remove_client(udn, client)[source]
propagate(event)[source]
put_resource(url, path)[source]
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
class XMLRPC(control_point)[source]

Bases: twisted.web.xmlrpc.XMLRPC

xmlrpc_list_devices()[source]
xmlrpc_mute_device(device_id)[source]
xmlrpc_unmute_device(device_id)[source]
xmlrpc_set_volume(device_id, volume)[source]
xmlrpc_play(device_id)[source]
xmlrpc_pause(device_id)[source]
xmlrpc_stop(device_id)[source]
xmlrpc_next(device_id)[source]
xmlrpc_previous(device_id)[source]
xmlrpc_set_av_transport_uri(device_id, uri)[source]
xmlrpc_create_object(device_id, container_id, arguments)[source]
xmlrpc_import_resource(device_id, source_uri, destination_uri)[source]
xmlrpc_put_resource(url, path)[source]
xmlrpc_ping()[source]
FAILURE = 8002
NOT_FOUND = 8001
_cbRender(result, request, responseFailed=None)[source]
_ebRender(failure)[source]
_log

A L{Logger} emits log messages to an observer. You should instantiate it as a class or module attribute, as documented in L{this module’s documentation <twisted.logger>}.

@type namespace: L{str} @ivar namespace: the namespace for this logger

@type source: L{object} @ivar source: The object which is emitting events via this logger

@type: L{ILogObserver} @ivar observer: The observer that this logger will send events to.

allowedMethods = (b'POST',)
delEntity(name)
entityType = <InterfaceClass twisted.web.resource.IResource>
getChild(path, request)

Retrieve a ‘child’ resource from me.

Implement this to create dynamic resource generation – resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable ‘isLeaf’ is set in your subclass; instead, the ‘postpath’ attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:

| site.resource.getChild('foo').getChild('bar').getChild('baz').

However, if the resource returned by ‘bar’ has isLeaf set to true, then the getChild call will never be made on it.

Parameters and return value have the same meaning and requirements as those defined by L{IResource.getChildWithDefault}.

getChildForRequest(request)
getChildWithDefault(path, request)

Retrieve a static or dynamically generated child resource from me.

First checks if a resource was added manually by putChild, and then call getChild to check for dynamic resources. Only override if you want to affect behaviour of all child lookups, rather than just dynamic ones.

This will check to see if I have a pre-registered child resource of the given name, and call getChild if I do not.

@see: L{IResource.getChildWithDefault}

getDynamicEntity(name, request)
getStaticEntity(name)
getSubHandler(prefix)[source]
getSubHandlerPrefixes()[source]
isLeaf = 1
listDynamicEntities(request=None)
listDynamicNames()
listEntities()
listNames()
listProcedures()[source]

Return a list of the names of all xmlrpc procedures.

@since: 11.1

listStaticEntities()
listStaticNames()
lookupProcedure(procedurePath)[source]

Given a string naming a procedure, return a callable object for that procedure or raise NoSuchFunction.

The returned object will be called, and should return the result of the procedure, a Deferred, or a Fault instance.

Override in subclasses if you want your own policy. The base implementation that given C{‘foo’}, C{self.xmlrpc_foo} will be returned. If C{procedurePath} contains C{self.separator}, the sub-handler for the initial prefix is used to search for the remaining path.

If you override C{lookupProcedure}, you may also want to override C{listProcedures} to accurately report the procedures supported by your resource, so that clients using the I{system.listMethods} procedure receive accurate results.

@since: 11.1

putChild(path, child)

Register a static child.

You almost certainly don’t want ‘/’ in your path. If you intended to have the root of a folder, e.g. /foo/, you want path to be ‘’.

@see: L{IResource.putChild}

putSubHandler(prefix, handler)[source]
reallyPutEntity(name, entity)
render(request)

Render a given resource. See L{IResource}’s render method.

I delegate to methods of self with the form ‘render_METHOD’ where METHOD is the HTTP that was used to make the request. Examples: render_GET, render_HEAD, render_POST, and so on. Generally you should implement those methods instead of overriding this one.

render_METHOD methods are expected to return a byte string which will be the rendered page, unless the return value is C{server.NOT_DONE_YET}, in which case it is this class’s responsibility to write the results using C{request.write(data)} and then call C{request.finish()}.

Old code that overrides render() directly is likewise expected to return a byte string or NOT_DONE_YET.

@see: L{IResource.render}

render_HEAD(request)

Default handling of HEAD method.

I just return self.render_GET(request). When method is HEAD, the framework will handle this correctly.

render_POST(request)[source]
separator = '.'
server = None
startXMLRPC(control_point, port)[source]

coherence.upnp.devices.internet_gateway_device_client (module)

class InternetGatewayDeviceClient(device)[source]

Bases: coherence.log.LogAble

logCategory = 'igd_client'
remove()[source]
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
embedded_device_notified(device)[source]
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)

coherence.upnp.devices.media_renderer (module)

class HttpRoot(server)[source]

Bases: coherence.upnp.devices.basics.DeviceHttpRoot

logCategory = 'mediarenderer'
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
delEntity(name)
entityType = <InterfaceClass twisted.web.resource.IResource>
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
getChild(name, request)

Retrieve a ‘child’ resource from me.

Implement this to create dynamic resource generation – resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable ‘isLeaf’ is set in your subclass; instead, the ‘postpath’ attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:

| site.resource.getChild('foo').getChild('bar').getChild('baz').

However, if the resource returned by ‘bar’ has isLeaf set to true, then the getChild call will never be made on it.

Parameters and return value have the same meaning and requirements as those defined by L{IResource.getChildWithDefault}.

getChildForRequest(request)
getChildWithDefault(path, request)

Retrieve a static or dynamically generated child resource from me.

First checks if a resource was added manually by putChild, and then call getChild to check for dynamic resources. Only override if you want to affect behaviour of all child lookups, rather than just dynamic ones.

This will check to see if I have a pre-registered child resource of the given name, and call getChild if I do not.

@see: L{IResource.getChildWithDefault}

getDynamicEntity(name, request)
getStaticEntity(name)
info(message, *args, **kwargs)
isLeaf = 0
listDynamicEntities(request=None)
listDynamicNames()
listEntities()
listNames()
listStaticEntities()
listStaticNames()
listchilds(uri)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
putChild(path, child)

Register a static child.

You almost certainly don’t want ‘/’ in your path. If you intended to have the root of a folder, e.g. /foo/, you want path to be ‘’.

@see: L{IResource.putChild}

reallyPutEntity(name, entity)
render(request)

Render a given resource. See L{IResource}’s render method.

I delegate to methods of self with the form ‘render_METHOD’ where METHOD is the HTTP that was used to make the request. Examples: render_GET, render_HEAD, render_POST, and so on. Generally you should implement those methods instead of overriding this one.

render_METHOD methods are expected to return a byte string which will be the rendered page, unless the return value is C{server.NOT_DONE_YET}, in which case it is this class’s responsibility to write the results using C{request.write(data)} and then call C{request.finish()}.

Old code that overrides render() directly is likewise expected to return a byte string or NOT_DONE_YET.

@see: L{IResource.render}

render_HEAD(request)

Default handling of HEAD method.

I just return self.render_GET(request). When method is HEAD, the framework will handle this correctly.

server = None
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
class MediaRenderer(coherence, backend, **kwargs)[source]

Bases: coherence.log.LogAble, coherence.upnp.devices.basics.BasicDeviceMixin

logCategory = 'mediarenderer'
device_type = 'MediaRenderer'
fire(backend, **kwargs)[source]
init_complete(backend)[source]
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
init_failed(backend, msg)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
register()
unregister()
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)

coherence.upnp.devices.media_renderer_client (module)

class MediaRendererClient(device)[source]

Bases: coherence.log.LogAble

logCategory = 'mr_client'
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
remove()[source]
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
service_notified(service)[source]
state_variable_change(variable)[source]

coherence.upnp.devices.media_server (module)

class MSRoot(server, store)[source]

Bases: twisted.web.resource.Resource, coherence.log.LogAble

logCategory = 'mediaserver'
server = None
getChildWithDefault(path, request)[source]

Retrieve a static or dynamically generated child resource from me.

First checks if a resource was added manually by putChild, and then call getChild to check for dynamic resources. Only override if you want to affect behaviour of all child lookups, rather than just dynamic ones.

This will check to see if I have a pre-registered child resource of the given name, and call getChild if I do not.

@see: L{IResource.getChildWithDefault}

requestFinished(result, id, request)[source]
import_file(name, request)[source]
prepare_connection(request)[source]
prepare_headers(ch, request)[source]
process_child(ch, name, request)[source]
getChild(name, request)[source]

Retrieve a ‘child’ resource from me.

Implement this to create dynamic resource generation – resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable ‘isLeaf’ is set in your subclass; instead, the ‘postpath’ attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:

| site.resource.getChild('foo').getChild('bar').getChild('baz').

However, if the resource returned by ‘bar’ has isLeaf set to true, then the getChild call will never be made on it.

Parameters and return value have the same meaning and requirements as those defined by L{IResource.getChildWithDefault}.

list_content(name, item, request)[source]
listchilds(uri)[source]
import_response(result, id)[source]
render(request)[source]

Render a given resource. See L{IResource}’s render method.

I delegate to methods of self with the form ‘render_METHOD’ where METHOD is the HTTP that was used to make the request. Examples: render_GET, render_HEAD, render_POST, and so on. Generally you should implement those methods instead of overriding this one.

render_METHOD methods are expected to return a byte string which will be the rendered page, unless the return value is C{server.NOT_DONE_YET}, in which case it is this class’s responsibility to write the results using C{request.write(data)} and then call C{request.finish()}.

Old code that overrides render() directly is likewise expected to return a byte string or NOT_DONE_YET.

@see: L{IResource.render}

COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
delEntity(name)
entityType = <InterfaceClass twisted.web.resource.IResource>
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
getChildForRequest(request)
getDynamicEntity(name, request)
getStaticEntity(name)
info(message, *args, **kwargs)
isLeaf = 0
listDynamicEntities(request=None)
listDynamicNames()
listEntities()
listNames()
listStaticEntities()
listStaticNames()
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
putChild(path, child)

Register a static child.

You almost certainly don’t want ‘/’ in your path. If you intended to have the root of a folder, e.g. /foo/, you want path to be ‘’.

@see: L{IResource.putChild}

reallyPutEntity(name, entity)
render_HEAD(request)

Default handling of HEAD method.

I just return self.render_GET(request). When method is HEAD, the framework will handle this correctly.

warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
class RootDeviceXML(hostname, uuid, urlbase, device_type='MediaServer', version=2, friendly_name='Coherence UPnP A/V MediaServer', xbox_hack=False, services=None, devices=None, icons=None, presentation_url=None, dlna_caps=None)[source]

Bases: twisted.web.static.Data

delEntity(name)
entityType = <InterfaceClass twisted.web.resource.IResource>
getChild(path, request)

Retrieve a ‘child’ resource from me.

Implement this to create dynamic resource generation – resources which are always available may be registered with self.putChild().

This will not be called if the class-level variable ‘isLeaf’ is set in your subclass; instead, the ‘postpath’ attribute of the request will be left as a list of the remaining path elements.

For example, the URL /foo/bar/baz will normally be:

| site.resource.getChild('foo').getChild('bar').getChild('baz').

However, if the resource returned by ‘bar’ has isLeaf set to true, then the getChild call will never be made on it.

Parameters and return value have the same meaning and requirements as those defined by L{IResource.getChildWithDefault}.

getChildForRequest(request)
getChildWithDefault(path, request)

Retrieve a static or dynamically generated child resource from me.

First checks if a resource was added manually by putChild, and then call getChild to check for dynamic resources. Only override if you want to affect behaviour of all child lookups, rather than just dynamic ones.

This will check to see if I have a pre-registered child resource of the given name, and call getChild if I do not.

@see: L{IResource.getChildWithDefault}

getDynamicEntity(name, request)
getStaticEntity(name)
isLeaf = 0
listDynamicEntities(request=None)
listDynamicNames()
listEntities()
listNames()
listStaticEntities()
listStaticNames()
putChild(path, child)

Register a static child.

You almost certainly don’t want ‘/’ in your path. If you intended to have the root of a folder, e.g. /foo/, you want path to be ‘’.

@see: L{IResource.putChild}

reallyPutEntity(name, entity)
render(request)

Render a given resource. See L{IResource}’s render method.

I delegate to methods of self with the form ‘render_METHOD’ where METHOD is the HTTP that was used to make the request. Examples: render_GET, render_HEAD, render_POST, and so on. Generally you should implement those methods instead of overriding this one.

render_METHOD methods are expected to return a byte string which will be the rendered page, unless the return value is C{server.NOT_DONE_YET}, in which case it is this class’s responsibility to write the results using C{request.write(data)} and then call C{request.finish()}.

Old code that overrides render() directly is likewise expected to return a byte string or NOT_DONE_YET.

@see: L{IResource.render}

render_GET(request)
render_HEAD(request)
server = None
class MediaServer(coherence, backend, **kwargs)[source]

Bases: coherence.log.LogAble, coherence.upnp.devices.basics.BasicDeviceMixin

logCategory = 'mediaserver'
device_type = 'MediaServer'
presentationURL = None
fire(backend, **kwargs)[source]
init_complete(backend)[source]
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
init_failed(backend, msg)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
register()
unregister()
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)

coherence.upnp.devices.media_server_client (module)

class MediaServerClient(device)[source]

Bases: coherence.log.LogAble

logCategory = 'ms_client'
remove()[source]
service_notified(service)[source]
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
state_variable_change(variable, usn)[source]
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
print_results(results)[source]
process_meta(results)[source]

coherence.upnp.devices.wan_connection_device_client (module)

class WANConnectionDeviceClient(device)[source]

Bases: coherence.log.LogAble

logCategory = 'igd_client'
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
remove()[source]
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
service_notified(service)[source]

coherence.upnp.devices.wan_device_client (module)

class WANDeviceClient(device)[source]

Bases: coherence.log.LogAble

logCategory = 'wan_device_client'
remove()[source]
COLOR_FORMAT = '[%(levelname)-18s][\x1b[1m%(name)-15s\x1b[0m] %(message)s (\x1b[1m%(filename)s\x1b[0m:%(lineno)d)'
FORMAT = '[%(levelname)-18s][$BOLD%(name)-15s$RESET] %(message)s ($BOLD%(filename)s$RESET:%(lineno)d)'
_Loggable__logger = None
critical(message, *args, **kwargs)
debug(message, *args, **kwargs)
embedded_device_notified(device)[source]
error(message, *args, **kwargs)
exception(message, *args, **kwargs)
fatal(message, *args, **kwargs)
info(message, *args, **kwargs)
log(message, *args, **kwargs)
msg(message, *args, **kwargs)
warn(message, *args, **kwargs)
warning(message, *args, **kwargs)
service_notified(service)[source]