From 89c33a91975bed508d068ba37ff3cabee8606449 Mon Sep 17 00:00:00 2001 From: Griatch Date: Wed, 17 Apr 2013 19:43:37 +0200 Subject: [PATCH] Some deprecation fixes for django1.4+. Added the ability to add lists to Attribute-stores lists using e.g. obj.db.mylist + [1,2,3,4] --- contrib/evlang/evlang.py | 10 +++++++--- ev.py | 11 +++++++---- src/commands/default/player.py | 2 +- src/settings_default.py | 1 - src/utils/batchprocessors.py | 8 +++----- src/utils/dbserialize.py | 4 ++++ src/utils/dummyrunner/dummyrunner.py | 9 +++++++-- 7 files changed, 29 insertions(+), 16 deletions(-) diff --git a/contrib/evlang/evlang.py b/contrib/evlang/evlang.py index aaed327b4..eb21e9c93 100644 --- a/contrib/evlang/evlang.py +++ b/contrib/evlang/evlang.py @@ -81,10 +81,14 @@ from twisted.internet.defer import inlineCallbacks # set up django, if necessary sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -from django.core.management import setup_environ from game import settings -setup_environ(settings) -#from src.utils.utils import run_async as thread_run_async +try: + from django.conf import settings as settings2 + settings2.configure() +except RuntimeError: + pass +finally: + del settings2 _LOGGER = None diff --git a/ev.py b/ev.py index ac6a0b906..71e4551be 100644 --- a/ev.py +++ b/ev.py @@ -48,7 +48,6 @@ Notes: this API. """ - import sys, os ###################################################################### @@ -89,10 +88,14 @@ if __name__ == "__main__": ###################################################################### sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) -from django.core.management import setup_environ from game import settings -setup_environ(settings) -del setup_environ +try: + from django.conf import settings as settings2 + settings2.configure() +except RuntimeError: + pass +finally: + del settings2 from django.conf import settings as settings_full del sys, os diff --git a/src/commands/default/player.py b/src/commands/default/player.py index e9fe6acd9..682e3f5a5 100644 --- a/src/commands/default/player.py +++ b/src/commands/default/player.py @@ -384,7 +384,7 @@ class CmdWho(MuxPlayerCommand): utils.time.format(delta_conn, 0), utils,time_format(delta_cmd, 1)]) - string = "{wPlayers:\n%s\n%s unique accounts logged in." % (table, nplayers==1 and "One player" or nplayers) + string = "{wPlayers:{n\n%s\n%s unique accounts logged in." % (table, nplayers==1 and "One player" or nplayers) self.msg(string) diff --git a/src/settings_default.py b/src/settings_default.py index c240c4d57..1bfbb889c 100644 --- a/src/settings_default.py +++ b/src/settings_default.py @@ -430,7 +430,6 @@ MEDIA_URL = '/media/' # to use a trailing slash. Django1.4+ will look for admin files under # STATIC_URL/admin. STATIC_URL = '/media/' -ADMIN_MEDIA_PREFIX = STATIC_URL + "admin/" # needed for backwards compatibility django < 1.4 # The name of the currently selected web template. This corresponds to the # directory names shown in the webtemplates directory. ACTIVE_TEMPLATE = 'prosimii' diff --git a/src/utils/batchprocessors.py b/src/utils/batchprocessors.py index 08fa056ff..436418b44 100644 --- a/src/utils/batchprocessors.py +++ b/src/utils/batchprocessors.py @@ -170,7 +170,6 @@ import codecs import traceback, sys from traceback import format_exc from django.conf import settings -from django.core.management import setup_environ from src.utils import logger from src.utils import utils from game import settings as settings_module @@ -485,15 +484,14 @@ class BatchCodeProcessor(object): extra_environ - dict with environment variables """ # define the execution environment - environ = "setup_environ(settings_module)" - environdict = {"setup_environ":setup_environ, - "settings_module":settings_module} + environ = "settings_module.configure()" + environdict = {"settings_module":settings} if extra_environ: for key, value in extra_environ.items(): environdict[key] = value # merge all into one block - code = "%s # auto-added by Evennia\n%s" % (environ, codedict['code']) + code = "# auto-added by Evennia\ntry:%s\nexcept RuntimeError:pass\nfinally:del settings_module\n%s" % (environ, codedict['code']) if debug: # try to delete marked objects for obj in codedict['objs']: diff --git a/src/utils/dbserialize.py b/src/utils/dbserialize.py index 156a07646..08166e315 100644 --- a/src/utils/dbserialize.py +++ b/src/utils/dbserialize.py @@ -132,6 +132,10 @@ class _SaverList(_SaverMutable, MutableSequence): super(_SaverList, self).__init__(*args, **kwargs) self._data = list(*args) @_save + def __add__(self, otherlist): + self._data = self._data.__add__(otherlist) + return self._data + @_save def insert(self, index, value): self._data.insert(index, self._convert_mutables(value)) diff --git a/src/utils/dummyrunner/dummyrunner.py b/src/utils/dummyrunner/dummyrunner.py index 16ab6550d..39bdc2e24 100644 --- a/src/utils/dummyrunner/dummyrunner.py +++ b/src/utils/dummyrunner/dummyrunner.py @@ -41,9 +41,14 @@ from twisted.internet.task import LoopingCall # Tack on the root evennia directory to the python path and initialize django settings sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))) -from django.core.management import setup_environ from game import settings -setup_environ(settings) +try: + from django.conf import settings as settings2 + settings2.configure() +except RuntimeError + pass +finally: + del settings2 from django.conf import settings from src.utils import utils