# uncompyle6 version 3.9.2 # Python bytecode version base 3.7.0 (3394) # Decompiled from: Python 3.8.19 (default, Mar 20 2024, 15:27:52) # [Clang 14.0.6 ] # Embedded file name: /var/user/app/device_supervisorbak/device_supervisor/lib/Pyro4/configuration.py # Compiled at: 2024-04-18 03:12:55 # Size of source mod 2**32: 6892 bytes """ Configuration settings. Pyro - Python Remote Objects. Copyright by Irmen de Jong (irmen@razorvine.net). """ from __future__ import print_function import os, platform, pickle, socket from Pyro4 import constants class Configuration(object): __slots__ = ('HOST', 'NS_HOST', 'NS_PORT', 'NS_BCPORT', 'NS_BCHOST', 'NS_AUTOCLEAN', 'COMPRESSION', 'SERVERTYPE', 'COMMTIMEOUT', 'POLLTIMEOUT', 'ONEWAY_THREADED', 'DETAILED_TRACEBACK', 'SOCK_REUSE', 'SOCK_NODELAY', 'PREFER_IP_VERSION', 'THREADPOOL_SIZE', 'THREADPOOL_SIZE_MIN', 'AUTOPROXY', 'PICKLE_PROTOCOL_VERSION', 'BROADCAST_ADDRS', 'NATHOST', 'NATPORT', 'MAX_MESSAGE_SIZE', 'FLAME_ENABLED', 'SERIALIZER', 'SERIALIZERS_ACCEPTED', 'LOGWIRE', 'METADATA', 'REQUIRE_EXPOSE', 'USE_MSG_WAITALL', 'JSON_MODULE', 'MAX_RETRIES', 'DILL_PROTOCOL_VERSION', 'ITER_STREAMING', 'ITER_STREAM_LIFETIME', 'ITER_STREAM_LINGER', 'SSL', 'SSL_REQUIRECLIENTCERT', 'SSL_CACERTS', 'SSL_SERVERCERT', 'SSL_SERVERKEY', 'SSL_SERVERKEYPASSWD', 'SSL_CLIENTCERT', 'SSL_CLIENTKEY', 'SSL_CLIENTKEYPASSWD') def __init__(self): self.reset() def reset(self, useenvironment=True): """ Set default config items. If useenvironment is False, won't read environment variables settings (useful if you can't trust your env). """ self.HOST = "localhost" self.NS_HOST = self.HOST self.NS_PORT = 9090 self.NS_BCPORT = 9091 self.NS_BCHOST = None self.NS_AUTOCLEAN = 0.0 self.NATHOST = None self.NATPORT = 0 self.COMPRESSION = False self.SERVERTYPE = "thread" self.COMMTIMEOUT = 0.0 self.POLLTIMEOUT = 2.0 self.SOCK_REUSE = True self.SOCK_NODELAY = False self.ONEWAY_THREADED = True self.DETAILED_TRACEBACK = False self.THREADPOOL_SIZE = 40 self.THREADPOOL_SIZE_MIN = 4 self.AUTOPROXY = True self.MAX_MESSAGE_SIZE = 0 self.BROADCAST_ADDRS = ", 0.0.0.0" self.FLAME_ENABLED = False self.PREFER_IP_VERSION = 4 self.SERIALIZER = "serpent" self.SERIALIZERS_ACCEPTED = "serpent,marshal,json" self.LOGWIRE = False self.PICKLE_PROTOCOL_VERSION = pickle.HIGHEST_PROTOCOL try: import dill self.DILL_PROTOCOL_VERSION = dill.HIGHEST_PROTOCOL except ImportError: self.DILL_PROTOCOL_VERSION = -1 self.METADATA = True self.REQUIRE_EXPOSE = True self.USE_MSG_WAITALL = hasattr(socket, "MSG_WAITALL") and platform.system() != "Windows" self.JSON_MODULE = "json" self.MAX_RETRIES = 0 self.ITER_STREAMING = True self.ITER_STREAM_LIFETIME = 0.0 self.ITER_STREAM_LINGER = 30.0 self.SSL = False self.SSL_SERVERCERT = "" self.SSL_SERVERKEY = "" self.SSL_SERVERKEYPASSWD = "" self.SSL_REQUIRECLIENTCERT = False self.SSL_CLIENTCERT = "" self.SSL_CLIENTKEY = "" self.SSL_CLIENTKEYPASSWD = "" self.SSL_CACERTS = "" if useenvironment: PREFIX = "PYRO_" for symbol in self.__slots__: if PREFIX + symbol in os.environ: value = getattr(self, symbol) envvalue = os.environ[PREFIX + symbol] if value is not None: valuetype = type(value) if valuetype is bool: envvalue = envvalue.lower() if envvalue in ('0', 'off', 'no', 'false'): envvalue = False else: if envvalue in ('1', 'yes', 'on', 'true'): envvalue = True else: raise ValueError("invalid boolean value: %s%s=%s" % (PREFIX, symbol, envvalue)) else: envvalue = valuetype(envvalue) setattr(self, symbol, envvalue) self.SERIALIZERS_ACCEPTED = set(self.SERIALIZERS_ACCEPTED.split(",")) def asDict(self): """returns the current config as a regular dictionary""" result = {} for item in self.__slots__: result[item] = getattr(self, item) return result def parseAddressesString(self, addresses): """ Parses the addresses string which contains one or more ip addresses separated by a comma. Returns a sequence of these addresses. '' is replaced by the empty string. """ result = [] for addr in addresses.split(","): addr = addr.strip() if addr == "''": addr = "" result.append(addr) return result def dump(self): if hasattr(platform, "python_implementation"): implementation = platform.python_implementation() else: implementation = "???" config = self.asDict() config["LOGFILE"] = os.environ.get("PYRO_LOGFILE") config["LOGLEVEL"] = os.environ.get("PYRO_LOGLEVEL") result = ["Pyro version: %s" % constants.VERSION, "Loaded from: %s" % os.path.dirname(__file__), "Python version: %s %s (%s, %s)" % (implementation, platform.python_version(), platform.system(), os.name), "Protocol version: %d" % constants.PROTOCOL_VERSION, "Currently active configuration settings:"] for n, v in sorted(config.items()): result.append("%s = %s" % (n, v)) return "\n".join(result) config = Configuration() def main(): print(config.dump()) if __name__ == "__main__": main()