# `Pyro4.utils.flame` — Foreign Location Automatic Module Exposer

Pyro FLAME: Foreign Location Automatic Module Exposer. Easy but potentially very dangerous way of exposing remote modules and builtins. Flame requires the pickle serializer to be used.

`Pyro4.utils.flame.``connect`(location, hmac_key=None)

  Connect to a Flame server on the given location, for instance localhost:9999 or ./u:unixsock This is just a convenience function to creates an appropriate Pyro proxy.

`Pyro4.utils.flame.``start`(daemon)

  Create and register a Flame server in the given daemon. Be very cautious before starting this: it allows the clients full access to everything on your system.

`Pyro4.utils.flame.``createModule`(name, source, filename='<dynamic-module>', namespace=None)

  Utility function to create a new module with the given name (dotted notation allowed), directly from the source string. Adds it to sys.modules, and returns the new module object. If you provide a namespace dict (such as `globals()`), it will import the module into that namespace too.

class `Pyro4.utils.flame.``Flame`

  The actual FLAME server logic. Usually created by using `core.Daemon.startFlame()`. Be very cautious before starting this: it allows the clients full access to everything on your system.

  `builtin`(name)

    returns a proxy to the given builtin on the server

  `console`()

    get a proxy for a remote interactive console session

  `evaluate`(expression)

    evaluate an expression and return its result

  `execute`(code)

    execute a piece of code

  `getfile`(filename)

    read any accessible file from the server

  `getmodule`(modulename)

    obtain the source code from a module on the server

  `module`(name)

    import a module on the server given by the module name and returns a proxy to it

  `sendfile`(filename, filedata)

    store a new file on the server

  `sendmodule`(modulename, modulesource)

    Send the source of a module to the server and make the server load it. Note that you still have to actually `import` it on the server to access it. Sending a module again will replace the previous one with the new.