mirror of
https://github.com/evennia/evennia.git
synced 2026-03-26 09:46:32 +01:00
Merge branch 'master' into develop
This commit is contained in:
commit
af2c396bd3
2 changed files with 26 additions and 11 deletions
|
|
@ -1273,6 +1273,19 @@ def check_main_evennia_dependencies():
|
|||
error = True
|
||||
if error:
|
||||
sys.exit()
|
||||
|
||||
# fix a common zope issue with a missing __init__ file
|
||||
zope_interface = importlib.import_module("zope.interface")
|
||||
expected_init_path = os.path.join(
|
||||
os.path.dirname(os.path.dirname(zope_interface.__file__)), "__init__.py")
|
||||
if not os.path.exists(expected_init_path):
|
||||
# add an empty missing __init__.py file to fix the problem
|
||||
with open(expected_init_path, 'w') as zope_init_file:
|
||||
zope_init_file.write("")
|
||||
print("Note: zope_interface.__init__.py not found. This is a known issue with that package."
|
||||
"\nEvennia auto-created it at {}.".format(
|
||||
expected_init_path))
|
||||
|
||||
# return True/False if error was reported or not
|
||||
return not error
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,14 @@ def loads(data):
|
|||
return pickle.loads(to_str(data))
|
||||
|
||||
|
||||
def _get_logger():
|
||||
"Delay import of logger until absolutely necessary"
|
||||
global _LOGGER
|
||||
if not _LOGGER:
|
||||
from evennia.utils import logger as _LOGGER
|
||||
return _LOGGER
|
||||
|
||||
|
||||
@wraps
|
||||
def catch_traceback(func):
|
||||
"Helper decorator"
|
||||
|
|
@ -90,10 +98,7 @@ def catch_traceback(func):
|
|||
try:
|
||||
func(*args, **kwargs)
|
||||
except Exception as err:
|
||||
global _LOGGER
|
||||
if not _LOGGER:
|
||||
from evennia.utils import logger as _LOGGER
|
||||
_LOGGER.log_trace()
|
||||
_get_logger().log_trace()
|
||||
raise # make sure the error is visible on the other side of the connection too
|
||||
print(err)
|
||||
return decorator
|
||||
|
|
@ -282,7 +287,7 @@ class AMPMultiConnectionProtocol(amp.AMP):
|
|||
try:
|
||||
super(AMPMultiConnectionProtocol, self).dataReceived(data)
|
||||
except KeyError:
|
||||
_LOGGER.trace("Discarded incoming partial data: {}".format(to_str(data)))
|
||||
_get_logger().log_trace("Discarded incoming partial data: {}".format(to_str(data)))
|
||||
elif self.multibatches:
|
||||
# invalid AMP, but we have a pending multi-batch that is not yet complete
|
||||
if data[-2:] == NULNUL:
|
||||
|
|
@ -291,7 +296,7 @@ class AMPMultiConnectionProtocol(amp.AMP):
|
|||
try:
|
||||
super(AMPMultiConnectionProtocol, self).dataReceived(data)
|
||||
except KeyError:
|
||||
_LOGGER.trace("Discarded incoming multi-batch data:".format(to_str(data)))
|
||||
_get_logger().log_trace("Discarded incoming multi-batch data:".format(to_str(data)))
|
||||
else:
|
||||
# not an AMP communication, return warning
|
||||
self.transport.write(_HTTP_WARNING)
|
||||
|
|
@ -345,12 +350,9 @@ class AMPMultiConnectionProtocol(amp.AMP):
|
|||
info (str): Error string.
|
||||
|
||||
"""
|
||||
global _LOGGER
|
||||
if not _LOGGER:
|
||||
from evennia.utils import logger as _LOGGER
|
||||
e.trap(Exception)
|
||||
_LOGGER.log_err("AMP Error for %(info)s: %(e)s" % {'info': info,
|
||||
'e': e.getErrorMessage()})
|
||||
_get_logger().log_err("AMP Error for %(info)s: %(e)s" % {'info': info,
|
||||
'e': e.getErrorMessage()})
|
||||
|
||||
def data_in(self, packed_data):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue