Files
HP_InHand_IG502/APPS_UNCOMPILED/lib/Pyro4/configuration.py
2025-04-30 08:48:49 -05:00

160 lines
6.1 KiB
Python

# 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 = "<broadcast>, 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()