Pyro4.naming — Pyro name server

Name Server and helper functions.

Pyro4.naming.locateNS(host=None, port=None, broadcast=True, hmac_key=None)

Get a proxy for a name server somewhere in the network.

Pyro4.naming.resolve(uri, hmac_key=None)

Resolve a ‘magic’ uri (PYRONAME, PYROMETA) into the direct PYRO uri. It finds a name server, and use that to resolve a PYRONAME uri into the direct PYRO uri pointing to the named object. If uri is already a PYRO uri, it is returned unmodified. You can consider this a shortcut function so that you don’t have to locate and use a name server proxy yourself. Note: if you need to resolve more than a few names, consider using the name server directly instead of repeatedly calling this function, to avoid the name server lookup overhead from each call.

Pyro4.naming.type_meta(class_or_object, prefix=’class:’)

extracts type metadata from the given class or object, can be used as Name server metadata.

Pyro4.naming.startNSloop(host=None, port=None, enableBroadcast=True, bchost=None, bcport=None, unixsocket=None, nathost=None, natport=None, storage=None, hmac=None)

utility function that starts a new Name server and enters its requestloop.

Pyro4.naming.startNS(host=None, port=None, enableBroadcast=True, bchost=None, bcport=None, unixsocket=None, nathost=None, natport=None, storage=None, hmac=None)

utility fuction to quickly get a Name server daemon to be used in your own event loops. Returns (nameserverUri, nameserverDaemon, broadcastServer).

class Pyro4.naming.NameServer(storageProvider=None)

Pyro name server. Provides a simple flat name space to map logical object names to Pyro URIs. Default storage is done in an in-memory dictionary. You can provide custom storage types.

list(prefix=None, regex=None, metadata_all=None, metadata_any=None, return_metadata=False)

Retrieve the registered items as a dictionary name-to-URI. The URIs in the resulting dict are strings, not URI objects. You can filter by prefix or by regex or by metadata subset (separately)

lookup(name, return_metadata=False)

Lookup the given name, returns an URI if found. Returns tuple (uri, metadata) if return_metadata is True.


A simple test method to check if the name server is running correctly.

register(name, uri, safe=False, metadata=None)

Register a name with an URI. If safe is true, name cannot be registered twice. The uri can be a string or an URI object. Metadata must be None, or a collection of strings.

remove(name=None, prefix=None, regex=None)

Remove a registration. returns the number of items removed.

set_metadata(name, metadata)

update the metadata for an existing registration

Name Server persistent storage implementations.

class Pyro4.naming_storage.DbmStorage(dbmfile)

Storage implementation that uses a persistent dbm file. Because dbm only supports strings as key/value, we encode/decode them in utf-8. Dbm files cannot be accessed concurrently, so a strict concurrency model is used where only one operation is processed at the same time (this is very slow when compared to the in-memory storage) DbmStorage does NOT support storing metadata! It only accepts empty metadata, and always returns empty metadata.

class Pyro4.naming_storage.SqlStorage(dbfile)

Sqlite-based storage. It is just a single (name,uri) table for the names and another table for the metadata. Sqlite db connection objects aren’t thread-safe, so a new connection is created in every method.