diff --git a/bin/project_rename.py b/bin/project_rename.py index 6dc04069d4..5e935802bf 100644 --- a/bin/project_rename.py +++ b/bin/project_rename.py @@ -8,10 +8,10 @@ Griatch 2017, released under the BSD license. """ +import fnmatch +import os import re import sys -import os -import fnmatch ANSI_HILITE = "\033[1m" ANSI_RED = "\033[31m" diff --git a/bin/unix/evennia b/bin/unix/evennia index fbb3f9a73d..82f0cf9715 100755 --- a/bin/unix/evennia +++ b/bin/unix/evennia @@ -6,5 +6,6 @@ This is copied directly into the python bin directory and makes the 'evennia' program available on $PATH. """ -from evennia.server.evennia_launcher import main +from evennia.server.evennia_launcher import main + main() diff --git a/docs/pylib/api_rst2md.py b/docs/pylib/api_rst2md.py index 31bd96bb3a..6df4bba607 100755 --- a/docs/pylib/api_rst2md.py +++ b/docs/pylib/api_rst2md.py @@ -5,8 +5,9 @@ Remap autodoc API rst files to md files and wrap their contents. """ from glob import glob -from os.path import abspath, join as pathjoin, dirname from os import rename +from os.path import abspath, dirname +from os.path import join as pathjoin def _rst2md(filename_rst): diff --git a/docs/pylib/build_search_index.py b/docs/pylib/build_search_index.py index 15d4d56b0a..703b62d645 100644 --- a/docs/pylib/build_search_index.py +++ b/docs/pylib/build_search_index.py @@ -5,11 +5,14 @@ Builds a lunr static search index for optimized search """ -import os -import json import glob +import json +import os from argparse import ArgumentParser -from os.path import sep, abspath, dirname, join as joinpath +from os.path import abspath, dirname +from os.path import join as joinpath +from os.path import sep + from lunr import lunr _DOCS_PATH = dirname(dirname(abspath(__file__))) diff --git a/docs/pylib/contrib_readmes2docs.py b/docs/pylib/contrib_readmes2docs.py index a63ecae504..72797ced8e 100644 --- a/docs/pylib/contrib_readmes2docs.py +++ b/docs/pylib/contrib_readmes2docs.py @@ -4,8 +4,10 @@ an index. """ from collections import defaultdict -from os.path import abspath, dirname, join as pathjoin, sep from glob import glob +from os.path import abspath, dirname +from os.path import join as pathjoin +from os.path import sep _EVENNIA_PATH = pathjoin(dirname(dirname(dirname(abspath(__file__))))) _DOCS_PATH = pathjoin(_EVENNIA_PATH, "docs") diff --git a/docs/pylib/copy_from_wiki.py b/docs/pylib/copy_from_wiki.py index 07ab6dd8e1..6e2d54df6e 100644 --- a/docs/pylib/copy_from_wiki.py +++ b/docs/pylib/copy_from_wiki.py @@ -13,9 +13,9 @@ We also need to build the toc-tree and should do so automatically for now. """ +import datetime import glob import re -import datetime _RE_MD_LINK = re.compile(r"\[(?P[\w -\[\]]+?)\]\((?P.+?)\)", re.I + re.S + re.U) _RE_REF_LINK = re.compile(r"\[[\w -\[\]]*?\]\(.+?\)", re.I + re.S + re.U) diff --git a/docs/pylib/fmtwidth.py b/docs/pylib/fmtwidth.py index c38a2b81f6..9a093977ec 100644 --- a/docs/pylib/fmtwidth.py +++ b/docs/pylib/fmtwidth.py @@ -8,9 +8,9 @@ Usage: python fmtwidth.py --width 79 ../source/**.md """ +import argparse import glob import textwrap -import argparse _DEFAULT_WIDTH = 100 diff --git a/docs/pylib/update_default_cmd_index.py b/docs/pylib/update_default_cmd_index.py index 25733b0eb4..0f15e73df3 100644 --- a/docs/pylib/update_default_cmd_index.py +++ b/docs/pylib/update_default_cmd_index.py @@ -10,7 +10,8 @@ To test - import this from a Django-aware shell, then call run_update. from os.path import abspath, dirname from os.path import join as pathjoin -from evennia.utils.utils import callables_from_module, mod_import, variable_from_module +from evennia.utils.utils import (callables_from_module, mod_import, + variable_from_module) __all__ = "run_update" diff --git a/docs/pylib/update_dynamic_pages.py b/docs/pylib/update_dynamic_pages.py index 05fa5bd157..7a9c13434d 100644 --- a/docs/pylib/update_dynamic_pages.py +++ b/docs/pylib/update_dynamic_pages.py @@ -3,7 +3,8 @@ Update dynamically generated doc pages based on github sources. """ -from os.path import dirname, abspath, join as pathjoin +from os.path import abspath, dirname +from os.path import join as pathjoin ROOTDIR = dirname(dirname(dirname(abspath(__file__)))) DOCDIR = pathjoin(ROOTDIR, "docs") diff --git a/docs/source/conf.py b/docs/source/conf.py index 3e62351533..d9b0515c45 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -5,13 +5,12 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html import os -import sys import re +import sys # from recommonmark.transform import AutoStructify from sphinx.util.osutil import cd - # -- Project information ----------------------------------------------------- project = "Evennia" @@ -349,12 +348,8 @@ def setup(app): # build toctree file sys.path.insert(1, os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) - from docs.pylib import ( - auto_link_remapper, - update_default_cmd_index, - contrib_readmes2docs, - update_dynamic_pages, - ) + from docs.pylib import (auto_link_remapper, contrib_readmes2docs, + update_default_cmd_index, update_dynamic_pages) _no_autodoc = os.environ.get("NOAUTODOC") update_default_cmd_index.run_update(no_autodoc=_no_autodoc) diff --git a/evennia/accounts/accounts.py b/evennia/accounts/accounts.py index 8e4ca8edfc..082c0d1c4c 100644 --- a/evennia/accounts/accounts.py +++ b/evennia/accounts/accounts.py @@ -20,6 +20,7 @@ from django.core.exceptions import ImproperlyConfigured, ValidationError from django.utils import timezone from django.utils.module_loading import import_string from django.utils.translation import gettext as _ + from evennia.accounts.manager import AccountManager from evennia.accounts.models import AccountDB from evennia.commands.cmdsethandler import CmdSetHandler diff --git a/evennia/accounts/bots.py b/evennia/accounts/bots.py index 6b15e15d02..381960b1af 100644 --- a/evennia/accounts/bots.py +++ b/evennia/accounts/bots.py @@ -8,6 +8,7 @@ import time from django.conf import settings from django.utils.translation import gettext as _ + from evennia.accounts.accounts import DefaultAccount from evennia.scripts.scripts import DefaultScript from evennia.utils import search, utils diff --git a/evennia/accounts/manager.py b/evennia/accounts/manager.py index e9759bd8ca..f5d91e5fcf 100644 --- a/evennia/accounts/manager.py +++ b/evennia/accounts/manager.py @@ -3,12 +3,14 @@ The managers for the custom Account object and permissions. """ import datetime + from django.conf import settings -from django.utils import timezone from django.contrib.auth.models import UserManager -from evennia.typeclasses.managers import TypedObjectManager, TypeclassManager +from django.utils import timezone + from evennia.server import signals -from evennia.utils.utils import make_iter, class_from_module, dbid_to_obj +from evennia.typeclasses.managers import TypeclassManager, TypedObjectManager +from evennia.utils.utils import class_from_module, dbid_to_obj, make_iter __all__ = ("AccountManager", "AccountDBManager") diff --git a/evennia/accounts/migrations/0001_initial.py b/evennia/accounts/migrations/0001_initial.py index 9fb41390eb..6540708fd0 100644 --- a/evennia/accounts/migrations/0001_initial.py +++ b/evennia/accounts/migrations/0001_initial.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations -import django.utils.timezone import django.core.validators +import django.utils.timezone +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/accounts/migrations/0002_move_defaults.py b/evennia/accounts/migrations/0002_move_defaults.py index 2fe9143e1f..20259b3ad5 100644 --- a/evennia/accounts/migrations/0002_move_defaults.py +++ b/evennia/accounts/migrations/0002_move_defaults.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models def convert_defaults(apps, schema_editor): diff --git a/evennia/accounts/migrations/0003_auto_20150209_2234.py b/evennia/accounts/migrations/0003_auto_20150209_2234.py index 1a17b2c7a5..b6a47d81ff 100644 --- a/evennia/accounts/migrations/0003_auto_20150209_2234.py +++ b/evennia/accounts/migrations/0003_auto_20150209_2234.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/accounts/migrations/0004_auto_20150403_2339.py b/evennia/accounts/migrations/0004_auto_20150403_2339.py index 51217a83e5..1f10552c4f 100644 --- a/evennia/accounts/migrations/0004_auto_20150403_2339.py +++ b/evennia/accounts/migrations/0004_auto_20150403_2339.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations -import evennia.accounts.manager import django.core.validators +from django.db import migrations, models + +import evennia.accounts.manager class Migration(migrations.Migration): diff --git a/evennia/accounts/migrations/0008_auto_20190128_1820.py b/evennia/accounts/migrations/0008_auto_20190128_1820.py index 9437f900d9..603f6c8bdf 100644 --- a/evennia/accounts/migrations/0008_auto_20190128_1820.py +++ b/evennia/accounts/migrations/0008_auto_20190128_1820.py @@ -3,6 +3,7 @@ import django.contrib.auth.validators from django.db import migrations, models + import evennia.accounts.manager diff --git a/evennia/accounts/migrations/0010_auto_20210520_2137.py b/evennia/accounts/migrations/0010_auto_20210520_2137.py index 2478eb3c14..755cd58367 100644 --- a/evennia/accounts/migrations/0010_auto_20210520_2137.py +++ b/evennia/accounts/migrations/0010_auto_20210520_2137.py @@ -1,6 +1,7 @@ # Generated by Django 3.2.3 on 2021-05-20 21:37 from django.db import migrations, models + import evennia.accounts.manager diff --git a/evennia/accounts/models.py b/evennia/accounts/models.py index 50926da14b..ea00e24d9d 100644 --- a/evennia/accounts/models.py +++ b/evennia/accounts/models.py @@ -19,6 +19,7 @@ from django.conf import settings from django.contrib.auth.models import AbstractUser from django.db import models from django.utils.encoding import smart_str + from evennia.accounts.manager import AccountDBManager from evennia.server.signals import SIGNAL_ACCOUNT_POST_RENAME from evennia.typeclasses.models import TypedObject diff --git a/evennia/accounts/tests.py b/evennia/accounts/tests.py index 6b0c87dbcf..e3a607bbb4 100644 --- a/evennia/accounts/tests.py +++ b/evennia/accounts/tests.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- -from mock import Mock, MagicMock, patch from random import randint from unittest import TestCase from django.test import override_settings -from evennia.accounts.accounts import AccountSessionHandler -from evennia.accounts.accounts import DefaultAccount, DefaultGuest -from evennia.utils.test_resources import BaseEvenniaTest +from mock import MagicMock, Mock, patch + +from evennia.accounts.accounts import AccountSessionHandler, DefaultAccount, DefaultGuest from evennia.utils import create +from evennia.utils.test_resources import BaseEvenniaTest from evennia.utils.utils import uses_database diff --git a/evennia/commands/cmdhandler.py b/evennia/commands/cmdhandler.py index 4bbf3225cb..78e400f7da 100644 --- a/evennia/commands/cmdhandler.py +++ b/evennia/commands/cmdhandler.py @@ -36,13 +36,14 @@ from weakref import WeakValueDictionary from django.conf import settings from django.utils.translation import gettext as _ -from evennia.commands.command import InterruptCommand -from evennia.utils import logger, utils -from evennia.utils.utils import string_suggestions from twisted.internet import reactor from twisted.internet.defer import inlineCallbacks, returnValue from twisted.internet.task import deferLater +from evennia.commands.command import InterruptCommand +from evennia.utils import logger, utils +from evennia.utils.utils import string_suggestions + _IN_GAME_ERRORS = settings.IN_GAME_ERRORS __all__ = ("cmdhandler", "InterruptCommand") diff --git a/evennia/commands/cmdparser.py b/evennia/commands/cmdparser.py index fb9e77b69f..6ae209c258 100644 --- a/evennia/commands/cmdparser.py +++ b/evennia/commands/cmdparser.py @@ -8,7 +8,9 @@ same inputs as the default one. import re + from django.conf import settings + from evennia.utils.logger import log_trace _MULTIMATCH_REGEX = re.compile(settings.SEARCH_MULTIMATCH_REGEX, re.I + re.U) diff --git a/evennia/commands/cmdset.py b/evennia/commands/cmdset.py index f29a1cabbd..f61dd3b768 100644 --- a/evennia/commands/cmdset.py +++ b/evennia/commands/cmdset.py @@ -29,6 +29,7 @@ Set theory. from weakref import WeakKeyDictionary from django.utils.translation import gettext as _ + from evennia.utils.utils import inherits_from, is_iter __all__ = ("CmdSet",) diff --git a/evennia/commands/cmdsethandler.py b/evennia/commands/cmdsethandler.py index d6338eac75..8fda0add5d 100644 --- a/evennia/commands/cmdsethandler.py +++ b/evennia/commands/cmdsethandler.py @@ -65,15 +65,16 @@ the 'Fishing' set. Fishing from a boat? No problem! """ import sys -from traceback import format_exc from importlib import import_module from inspect import trace +from traceback import format_exc + from django.conf import settings -from evennia.utils import logger, utils +from django.utils.translation import gettext as _ + from evennia.commands.cmdset import CmdSet from evennia.server.models import ServerConfig - -from django.utils.translation import gettext as _ +from evennia.utils import logger, utils __all__ = ("import_cmdset", "CmdSetHandler") diff --git a/evennia/commands/command.py b/evennia/commands/command.py index 6cc0996ab4..213fb1ea8b 100644 --- a/evennia/commands/command.py +++ b/evennia/commands/command.py @@ -11,6 +11,7 @@ import re from django.conf import settings from django.urls import reverse from django.utils.text import slugify + from evennia.locks.lockhandler import LockHandler from evennia.utils.ansi import ANSIString from evennia.utils.evtable import EvTable diff --git a/evennia/commands/default/account.py b/evennia/commands/default/account.py index 6a5489b5e5..1048df6894 100644 --- a/evennia/commands/default/account.py +++ b/evennia/commands/default/account.py @@ -22,6 +22,7 @@ import time from codecs import lookup as codecs_lookup from django.conf import settings + from evennia.server.sessionhandler import SESSIONS from evennia.utils import create, logger, search, utils diff --git a/evennia/commands/default/admin.py b/evennia/commands/default/admin.py index 4b5606a9a0..9a2936515c 100644 --- a/evennia/commands/default/admin.py +++ b/evennia/commands/default/admin.py @@ -4,12 +4,14 @@ Admin commands """ -import time import re +import time + from django.conf import settings -from evennia.server.sessionhandler import SESSIONS + from evennia.server.models import ServerConfig -from evennia.utils import evtable, logger, search, class_from_module +from evennia.server.sessionhandler import SESSIONS +from evennia.utils import class_from_module, evtable, logger, search COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) diff --git a/evennia/commands/default/batchprocess.py b/evennia/commands/default/batchprocess.py index a6308de76a..91ed536b6f 100644 --- a/evennia/commands/default/batchprocess.py +++ b/evennia/commands/default/batchprocess.py @@ -20,10 +20,10 @@ therefore always be limited to superusers only. import re from django.conf import settings -from evennia.utils.batchprocessors import BATCHCMD, BATCHCODE + from evennia.commands.cmdset import CmdSet from evennia.utils import logger, utils - +from evennia.utils.batchprocessors import BATCHCMD, BATCHCODE _RE_COMMENT = re.compile(r"^#.*?$", re.MULTILINE + re.DOTALL) _RE_CODE_START = re.compile(r"^# batchcode code:", re.MULTILINE) diff --git a/evennia/commands/default/building.py b/evennia/commands/default/building.py index 7ef9b0004e..ffa54f25df 100644 --- a/evennia/commands/default/building.py +++ b/evennia/commands/default/building.py @@ -6,6 +6,7 @@ import re from django.conf import settings from django.core.paginator import Paginator from django.db.models import Max, Min, Q + from evennia import InterruptCommand from evennia.commands.cmdhandler import get_and_merge_cmdsets from evennia.locks.lockhandler import LockException diff --git a/evennia/commands/default/cmdset_account.py b/evennia/commands/default/cmdset_account.py index 6f132d82f6..eb5e278791 100644 --- a/evennia/commands/default/cmdset_account.py +++ b/evennia/commands/default/cmdset_account.py @@ -10,8 +10,7 @@ command method rather than caller.msg(). """ from evennia.commands.cmdset import CmdSet -from evennia.commands.default import help, comms, admin, system -from evennia.commands.default import building, account, general +from evennia.commands.default import account, admin, building, comms, general, help, system class AccountCmdSet(CmdSet): diff --git a/evennia/commands/default/cmdset_character.py b/evennia/commands/default/cmdset_character.py index 3712f00415..78c4c51798 100644 --- a/evennia/commands/default/cmdset_character.py +++ b/evennia/commands/default/cmdset_character.py @@ -5,9 +5,7 @@ communication-commands are instead put on the account level, in the Account cmdset. Account commands remain available also to Characters. """ from evennia.commands.cmdset import CmdSet -from evennia.commands.default import general, help, admin, system -from evennia.commands.default import building -from evennia.commands.default import batchprocess +from evennia.commands.default import admin, batchprocess, building, general, help, system class CharacterCmdSet(CmdSet): diff --git a/evennia/commands/default/comms.py b/evennia/commands/default/comms.py index 87c33b21a1..4c780840b3 100644 --- a/evennia/commands/default/comms.py +++ b/evennia/commands/default/comms.py @@ -8,6 +8,7 @@ Communication commands: """ from django.conf import settings + from evennia.accounts import bots from evennia.accounts.models import AccountDB from evennia.comms.comms import DefaultChannel diff --git a/evennia/commands/default/general.py b/evennia/commands/default/general.py index 2c5e58fa01..3f2cb75870 100644 --- a/evennia/commands/default/general.py +++ b/evennia/commands/default/general.py @@ -4,6 +4,7 @@ General Character commands usually available to all characters import re from django.conf import settings + from evennia.typeclasses.attributes import NickTemplateInvalid from evennia.utils import utils diff --git a/evennia/commands/default/help.py b/evennia/commands/default/help.py index a5209de138..49c139f2ab 100644 --- a/evennia/commands/default/help.py +++ b/evennia/commands/default/help.py @@ -13,6 +13,7 @@ from dataclasses import dataclass from itertools import chain from django.conf import settings + from evennia.help.filehelp import FILE_HELP_ENTRIES from evennia.help.models import HelpEntry from evennia.help.utils import help_search_with_index, parse_entry_for_subcategories diff --git a/evennia/commands/default/muxcommand.py b/evennia/commands/default/muxcommand.py index bcf24ebe73..ce1f183257 100644 --- a/evennia/commands/default/muxcommand.py +++ b/evennia/commands/default/muxcommand.py @@ -3,8 +3,8 @@ The command template for the default MUX-style command set. There is also an Account/OOC version that makes sure caller is an Account object. """ -from evennia.utils import utils from evennia.commands.command import Command +from evennia.utils import utils # limit symbol import for API __all__ = ("MuxCommand", "MuxAccountCommand") diff --git a/evennia/commands/default/syscommands.py b/evennia/commands/default/syscommands.py index 2b5aff1504..ddca9eef20 100644 --- a/evennia/commands/default/syscommands.py +++ b/evennia/commands/default/syscommands.py @@ -18,18 +18,14 @@ line with a command (if there is no match to a known command, the line is just added to the editor buffer). """ -from evennia.comms.models import ChannelDB -from evennia.utils import create -from evennia.utils.utils import at_search_result +from django.conf import settings # The command keys the engine is calling # (the actual names all start with __) -from evennia.commands.cmdhandler import CMD_NOINPUT -from evennia.commands.cmdhandler import CMD_NOMATCH -from evennia.commands.cmdhandler import CMD_MULTIMATCH -from evennia.utils import utils - -from django.conf import settings +from evennia.commands.cmdhandler import CMD_MULTIMATCH, CMD_NOINPUT, CMD_NOMATCH +from evennia.comms.models import ChannelDB +from evennia.utils import create, utils +from evennia.utils.utils import at_search_result COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) diff --git a/evennia/commands/default/system.py b/evennia/commands/default/system.py index a39b0066cd..b33f50d1ec 100644 --- a/evennia/commands/default/system.py +++ b/evennia/commands/default/system.py @@ -15,6 +15,7 @@ import traceback import django import twisted from django.conf import settings + from evennia.accounts.models import AccountDB from evennia.scripts.taskhandler import TaskHandlerTask from evennia.server.sessionhandler import SESSIONS diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index 5b92eda25e..4316f63b09 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -17,6 +17,9 @@ from unittest.mock import MagicMock, Mock, patch from anything import Anything from django.conf import settings from django.test import override_settings +from parameterized import parameterized +from twisted.internet import task + from evennia import ( DefaultCharacter, DefaultExit, @@ -38,8 +41,6 @@ from evennia.server.sessionhandler import SESSIONS from evennia.utils import create, gametime, utils from evennia.utils.test_resources import BaseEvenniaCommandTest # noqa from evennia.utils.test_resources import BaseEvenniaTest, EvenniaCommandTest -from parameterized import parameterized -from twisted.internet import task # ------------------------------------------------------------ # Command testing @@ -1584,8 +1585,9 @@ class TestBuilding(BaseEvenniaCommandTest): self.call( building.CmdTeleport(), "Obj = Room2", - "Obj(#{}) is leaving Room(#{}), heading for Room2(#{}).|Teleported Obj -> Room2." - .format(oid, rid, rid2), + "Obj(#{}) is leaving Room(#{}), heading for Room2(#{}).|Teleported Obj -> Room2.".format( + oid, rid, rid2 + ), ) self.call(building.CmdTeleport(), "NotFound = Room", "Could not find 'NotFound'.") self.call( @@ -1701,8 +1703,7 @@ class TestBuilding(BaseEvenniaCommandTest): self.call( building.CmdSpawn(), "{'prototype_key':'GOBLIN', 'typeclass':'evennia.objects.objects.DefaultCharacter', " - "'key':'goblin', 'location':'%s'}" - % spawnLoc.dbref, + "'key':'goblin', 'location':'%s'}" % spawnLoc.dbref, "Spawned goblin", ) goblin = get_object(self, "goblin") @@ -1750,8 +1751,7 @@ class TestBuilding(BaseEvenniaCommandTest): self.call( building.CmdSpawn(), "/noloc {'prototype_parent':'TESTBALL', 'key': 'Ball', 'prototype_key': 'foo'," - " 'location':'%s'}" - % spawnLoc.dbref, + " 'location':'%s'}" % spawnLoc.dbref, "Spawned Ball", ) ball = get_object(self, "Ball") diff --git a/evennia/commands/default/unloggedin.py b/evennia/commands/default/unloggedin.py index 9a32611757..16e1224ceb 100644 --- a/evennia/commands/default/unloggedin.py +++ b/evennia/commands/default/unloggedin.py @@ -7,6 +7,7 @@ import re from codecs import lookup as codecs_lookup from django.conf import settings + from evennia.commands.cmdhandler import CMD_LOGINSTART from evennia.comms.models import ChannelDB from evennia.server.sessionhandler import SESSIONS diff --git a/evennia/commands/tests.py b/evennia/commands/tests.py index 4e2ab2db40..c2357c00c6 100644 --- a/evennia/commands/tests.py +++ b/evennia/commands/tests.py @@ -4,6 +4,7 @@ Unit testing for the Command system itself. """ from django.test import override_settings + from evennia.commands import cmdparser from evennia.commands.cmdset import CmdSet from evennia.commands.command import Command @@ -990,9 +991,10 @@ class TestOptionTransferReplace(TestCase): import sys -from evennia.commands import cmdhandler from twisted.trial.unittest import TestCase as TwistedTestCase +from evennia.commands import cmdhandler + def _mockdelay(time, func, *args, **kwargs): return func(*args, **kwargs) diff --git a/evennia/comms/comms.py b/evennia/comms/comms.py index c8fd53e4b5..f483bdb0d8 100644 --- a/evennia/comms/comms.py +++ b/evennia/comms/comms.py @@ -6,9 +6,9 @@ from django.contrib.contenttypes.models import ContentType from django.urls import reverse from django.utils.text import slugify -from evennia.typeclasses.models import TypeclassBase -from evennia.comms.models import ChannelDB from evennia.comms.managers import ChannelManager +from evennia.comms.models import ChannelDB +from evennia.typeclasses.models import TypeclassBase from evennia.utils import create, logger from evennia.utils.utils import make_iter diff --git a/evennia/comms/managers.py b/evennia/comms/managers.py index f9160b332f..5a02a1dcc7 100644 --- a/evennia/comms/managers.py +++ b/evennia/comms/managers.py @@ -7,10 +7,11 @@ Comm system components. from django.conf import settings from django.db.models import Q -from evennia.typeclasses.managers import TypedObjectManager, TypeclassManager + from evennia.server import signals +from evennia.typeclasses.managers import TypeclassManager, TypedObjectManager from evennia.utils import logger -from evennia.utils.utils import dbref, make_iter, class_from_module +from evennia.utils.utils import class_from_module, dbref, make_iter _GA = object.__getattribute__ _AccountDB = None diff --git a/evennia/comms/migrations/0001_initial.py b/evennia/comms/migrations/0001_initial.py index b0b2e96189..3990782ecc 100644 --- a/evennia/comms/migrations/0001_initial.py +++ b/evennia/comms/migrations/0001_initial.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/comms/migrations/0002_msg_db_hide_from_objects.py b/evennia/comms/migrations/0002_msg_db_hide_from_objects.py index a05a492c1c..589beabf67 100644 --- a/evennia/comms/migrations/0002_msg_db_hide_from_objects.py +++ b/evennia/comms/migrations/0002_msg_db_hide_from_objects.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/comms/migrations/0003_auto_20140917_0756.py b/evennia/comms/migrations/0003_auto_20140917_0756.py index f5bf153fd6..c7417a84d5 100644 --- a/evennia/comms/migrations/0003_auto_20140917_0756.py +++ b/evennia/comms/migrations/0003_auto_20140917_0756.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/comms/migrations/0004_auto_20150118_1631.py b/evennia/comms/migrations/0004_auto_20150118_1631.py index 7343bf7742..312079caa7 100644 --- a/evennia/comms/migrations/0004_auto_20150118_1631.py +++ b/evennia/comms/migrations/0004_auto_20150118_1631.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models def convert_defaults(apps, schema_editor): diff --git a/evennia/comms/migrations/0006_channeldb_db_object_subscriptions.py b/evennia/comms/migrations/0006_channeldb_db_object_subscriptions.py index c780fadd24..900894d493 100644 --- a/evennia/comms/migrations/0006_channeldb_db_object_subscriptions.py +++ b/evennia/comms/migrations/0006_channeldb_db_object_subscriptions.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/comms/migrations/0013_auto_20170705_1726.py b/evennia/comms/migrations/0013_auto_20170705_1726.py index df238dd44f..3fa318aa41 100644 --- a/evennia/comms/migrations/0013_auto_20170705_1726.py +++ b/evennia/comms/migrations/0013_auto_20170705_1726.py @@ -2,7 +2,7 @@ # Generated by Django 1.11.2 on 2017-07-05 17:26 -from django.db import migrations, models, connection +from django.db import connection, migrations, models def _table_exists(db_cursor, tablename): diff --git a/evennia/comms/migrations/0015_auto_20170706_2041.py b/evennia/comms/migrations/0015_auto_20170706_2041.py index 8d91852570..e02255a569 100644 --- a/evennia/comms/migrations/0015_auto_20170706_2041.py +++ b/evennia/comms/migrations/0015_auto_20170706_2041.py @@ -2,7 +2,7 @@ # Generated by Django 1.11.2 on 2017-07-06 20:41 -from django.db import migrations, connection +from django.db import connection, migrations def _table_exists(db_cursor, tablename): diff --git a/evennia/comms/models.py b/evennia/comms/models.py index 23fdd8a3aa..ec6037f23f 100644 --- a/evennia/comms/models.py +++ b/evennia/comms/models.py @@ -19,14 +19,15 @@ necessary to easily be able to delete connections on the fly). """ from django.conf import settings -from django.utils import timezone from django.db import models +from django.utils import timezone + +from evennia.comms import managers +from evennia.locks.lockhandler import LockHandler from evennia.typeclasses.models import TypedObject from evennia.typeclasses.tags import Tag, TagHandler from evennia.utils.idmapper.models import SharedMemoryModel -from evennia.comms import managers -from evennia.locks.lockhandler import LockHandler -from evennia.utils.utils import crop, make_iter, lazy_property +from evennia.utils.utils import crop, lazy_property, make_iter __all__ = ("Msg", "TempMsg", "ChannelDB", "SubscriptionHandler") diff --git a/evennia/contrib/base_systems/awsstorage/aws_s3_cdn.py b/evennia/contrib/base_systems/awsstorage/aws_s3_cdn.py index 2bf626ed8c..f8633933ca 100644 --- a/evennia/contrib/base_systems/awsstorage/aws_s3_cdn.py +++ b/evennia/contrib/base_systems/awsstorage/aws_s3_cdn.py @@ -33,8 +33,8 @@ See the ./README.md file for details and install instructions. from django.core.exceptions import ( ImproperlyConfigured, - SuspiciousOperation, SuspiciousFileOperation, + SuspiciousOperation, ) try: @@ -72,6 +72,7 @@ import posixpath import threading from gzip import GzipFile from tempfile import SpooledTemporaryFile + from django.core.files.base import File from django.core.files.storage import Storage from django.utils.deconstruct import deconstructible diff --git a/evennia/contrib/base_systems/awsstorage/tests.py b/evennia/contrib/base_systems/awsstorage/tests.py index 400bfda0df..887aa5d7b9 100644 --- a/evennia/contrib/base_systems/awsstorage/tests.py +++ b/evennia/contrib/base_systems/awsstorage/tests.py @@ -1,16 +1,19 @@ +import datetime +import gzip +import pickle +import threading from unittest import skipIf -from django.test import override_settings + from django.conf import settings from django.core.exceptions import ImproperlyConfigured from django.core.files.base import ContentFile -from django.test import TestCase +from django.test import TestCase, override_settings from django.utils.timezone import is_aware, utc -import datetime, gzip, pickle, threading - _SKIP = False try: from botocore.exceptions import ClientError + from .awsstorage import aws_s3_cdn as s3boto3 except ImportError: _SKIP = True diff --git a/evennia/contrib/base_systems/building_menu/__init__.py b/evennia/contrib/base_systems/building_menu/__init__.py index 7606f80dc5..5ab8549d2d 100644 --- a/evennia/contrib/base_systems/building_menu/__init__.py +++ b/evennia/contrib/base_systems/building_menu/__init__.py @@ -2,5 +2,5 @@ Build-menu contrib - vincent-lg 2018 """ -from .building_menu import GenericBuildingCmd # noqa from .building_menu import BuildingMenu # noqa +from .building_menu import GenericBuildingCmd # noqa diff --git a/evennia/contrib/base_systems/building_menu/building_menu.py b/evennia/contrib/base_systems/building_menu/building_menu.py index 83fe02f67d..c559d8bdba 100644 --- a/evennia/contrib/base_systems/building_menu/building_menu.py +++ b/evennia/contrib/base_systems/building_menu/building_menu.py @@ -126,14 +126,14 @@ from inspect import getargspec from textwrap import dedent from django.conf import settings -from evennia import Command, CmdSet + +from evennia import CmdSet, Command from evennia.commands import cmdhandler from evennia.utils.ansi import strip_ansi from evennia.utils.eveditor import EvEditor from evennia.utils.logger import log_err, log_trace from evennia.utils.utils import class_from_module - # Constants _MAX_TEXT_WIDTH = settings.CLIENT_DEFAULT_WIDTH _CMD_NOMATCH = cmdhandler.CMD_NOMATCH diff --git a/evennia/contrib/base_systems/building_menu/tests.py b/evennia/contrib/base_systems/building_menu/tests.py index f03360b7b6..cd29faaf4e 100644 --- a/evennia/contrib/base_systems/building_menu/tests.py +++ b/evennia/contrib/base_systems/building_menu/tests.py @@ -4,6 +4,7 @@ Building menu tests. """ from evennia.commands.default.tests import BaseEvenniaCommandTest + from .building_menu import BuildingMenu, CmdNoMatch diff --git a/evennia/contrib/base_systems/color_markups/tests.py b/evennia/contrib/base_systems/color_markups/tests.py index 6c0e6f5799..79e18caed4 100644 --- a/evennia/contrib/base_systems/color_markups/tests.py +++ b/evennia/contrib/base_systems/color_markups/tests.py @@ -4,7 +4,9 @@ Test Color markup. """ import re + from evennia.utils.test_resources import BaseEvenniaTest + from . import color_markups diff --git a/evennia/contrib/base_systems/components/tests.py b/evennia/contrib/base_systems/components/tests.py index 6251575af6..9c159b72ab 100644 --- a/evennia/contrib/base_systems/components/tests.py +++ b/evennia/contrib/base_systems/components/tests.py @@ -1,9 +1,9 @@ from evennia.contrib.base_systems.components import Component, DBField, TagField, signals -from evennia.contrib.base_systems.components.holder import ComponentProperty, ComponentHolderMixin +from evennia.contrib.base_systems.components.holder import ComponentHolderMixin, ComponentProperty from evennia.contrib.base_systems.components.signals import as_listener from evennia.objects.objects import DefaultCharacter from evennia.utils import create -from evennia.utils.test_resources import EvenniaTest, BaseEvenniaTest +from evennia.utils.test_resources import BaseEvenniaTest, EvenniaTest class ComponentTestA(Component): diff --git a/evennia/contrib/base_systems/custom_gametime/__init__.py b/evennia/contrib/base_systems/custom_gametime/__init__.py index 1ba7f52308..d3ae28ded9 100644 --- a/evennia/contrib/base_systems/custom_gametime/__init__.py +++ b/evennia/contrib/base_systems/custom_gametime/__init__.py @@ -3,10 +3,10 @@ Custom gametime contrib - Griatch, vlgeoff 2017 """ -from .custom_gametime import time_to_tuple, UNITS # noqa -from .custom_gametime import gametime_to_realtime # noqa -from .custom_gametime import realtime_to_gametime # noqa -from .custom_gametime import custom_gametime # noqa -from .custom_gametime import real_seconds_until # noqa -from .custom_gametime import schedule # noqa from .custom_gametime import GametimeScript # noqa +from .custom_gametime import custom_gametime # noqa +from .custom_gametime import gametime_to_realtime # noqa +from .custom_gametime import real_seconds_until # noqa +from .custom_gametime import realtime_to_gametime # noqa +from .custom_gametime import schedule # noqa +from .custom_gametime import UNITS, time_to_tuple # noqa diff --git a/evennia/contrib/base_systems/custom_gametime/custom_gametime.py b/evennia/contrib/base_systems/custom_gametime/custom_gametime.py index eac9020b8a..ca6b26363e 100644 --- a/evennia/contrib/base_systems/custom_gametime/custom_gametime.py +++ b/evennia/contrib/base_systems/custom_gametime/custom_gametime.py @@ -35,9 +35,10 @@ the converter functions in this module. # change these to fit your game world from django.conf import settings + from evennia import DefaultScript -from evennia.utils.create import create_script from evennia.utils import gametime +from evennia.utils.create import create_script # The game time speedup / slowdown relative real time TIMEFACTOR = settings.TIME_FACTOR diff --git a/evennia/contrib/base_systems/custom_gametime/tests.py b/evennia/contrib/base_systems/custom_gametime/tests.py index ea0c300ff9..ec43500473 100644 --- a/evennia/contrib/base_systems/custom_gametime/tests.py +++ b/evennia/contrib/base_systems/custom_gametime/tests.py @@ -5,7 +5,9 @@ Testing custom game time # Testing custom_gametime from mock import Mock, patch + from evennia.utils.test_resources import BaseEvenniaTest + from .. import custom_gametime diff --git a/evennia/contrib/base_systems/email_login/__init__.py b/evennia/contrib/base_systems/email_login/__init__.py index 6d5bbf2bb4..41b0abab55 100644 --- a/evennia/contrib/base_systems/email_login/__init__.py +++ b/evennia/contrib/base_systems/email_login/__init__.py @@ -3,5 +3,5 @@ Email login contrib - Griatch 2012 """ -from .email_login import UnloggedinCmdSet # noqa from . import connection_screens # noqa +from .email_login import UnloggedinCmdSet # noqa diff --git a/evennia/contrib/base_systems/email_login/connection_screens.py b/evennia/contrib/base_systems/email_login/connection_screens.py index de87311581..c0a9e82587 100644 --- a/evennia/contrib/base_systems/email_login/connection_screens.py +++ b/evennia/contrib/base_systems/email_login/connection_screens.py @@ -21,6 +21,7 @@ of the screen is done by the unlogged-in "look" command. """ from django.conf import settings + from evennia import utils CONNECTION_SCREEN = """ diff --git a/evennia/contrib/base_systems/email_login/email_login.py b/evennia/contrib/base_systems/email_login/email_login.py index 8afc5beb28..8b84b6459e 100644 --- a/evennia/contrib/base_systems/email_login/email_login.py +++ b/evennia/contrib/base_systems/email_login/email_login.py @@ -33,6 +33,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE. """ from django.conf import settings + from evennia.accounts.models import AccountDB from evennia.commands.cmdhandler import CMD_LOGINSTART from evennia.commands.cmdset import CmdSet diff --git a/evennia/contrib/base_systems/ingame_python/__init__.py b/evennia/contrib/base_systems/ingame_python/__init__.py index 87472ff1bf..ab3eb6658a 100644 --- a/evennia/contrib/base_systems/ingame_python/__init__.py +++ b/evennia/contrib/base_systems/ingame_python/__init__.py @@ -3,10 +3,4 @@ In-game Python - vlgeoff 2017 """ -from . import callbackhandler -from . import commands -from . import eventfuncs -from . import scripts -from . import tests -from . import typeclasses -from . import utils +from . import callbackhandler, commands, eventfuncs, scripts, tests, typeclasses, utils diff --git a/evennia/contrib/base_systems/ingame_python/commands.py b/evennia/contrib/base_systems/ingame_python/commands.py index 3b2d4063d3..a3331648be 100644 --- a/evennia/contrib/base_systems/ingame_python/commands.py +++ b/evennia/contrib/base_systems/ingame_python/commands.py @@ -5,11 +5,12 @@ Module containing the commands of the in-game Python system. from datetime import datetime from django.conf import settings + +from evennia.contrib.base_systems.ingame_python.utils import get_event_handler from evennia.utils.ansi import raw from evennia.utils.eveditor import EvEditor from evennia.utils.evtable import EvTable from evennia.utils.utils import class_from_module, time_format -from evennia.contrib.base_systems.ingame_python.utils import get_event_handler COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) diff --git a/evennia/contrib/base_systems/ingame_python/scripts.py b/evennia/contrib/base_systems/ingame_python/scripts.py index dff3abcbbb..ee73bb13fe 100644 --- a/evennia/contrib/base_systems/ingame_python/scripts.py +++ b/evennia/contrib/base_systems/ingame_python/scripts.py @@ -2,21 +2,21 @@ Scripts for the in-game Python system. """ -from datetime import datetime, timedelta -from queue import Queue import re import sys import traceback +from datetime import datetime, timedelta +from queue import Queue from django.conf import settings -from evennia import DefaultObject, DefaultScript, ChannelDB, ScriptDB -from evennia import logger + +from evennia import ChannelDB, DefaultObject, DefaultScript, ScriptDB, logger +from evennia.contrib.base_systems.ingame_python.callbackhandler import CallbackHandler +from evennia.contrib.base_systems.ingame_python.utils import EVENTS, InterruptEvent, get_next_wait from evennia.utils.ansi import raw from evennia.utils.create import create_channel from evennia.utils.dbserialize import dbserialize from evennia.utils.utils import all_from_module, delay, pypath_to_realpath -from evennia.contrib.base_systems.ingame_python.callbackhandler import CallbackHandler -from evennia.contrib.base_systems.ingame_python.utils import get_next_wait, EVENTS, InterruptEvent # Constants RE_LINE_ERROR = re.compile(r'^ File "\", line (\d+)') diff --git a/evennia/contrib/base_systems/ingame_python/tests.py b/evennia/contrib/base_systems/ingame_python/tests.py index e4727f0f1e..b3f7d14a32 100644 --- a/evennia/contrib/base_systems/ingame_python/tests.py +++ b/evennia/contrib/base_systems/ingame_python/tests.py @@ -2,18 +2,20 @@ Module containing the test cases for the in-game Python system. """ -from mock import Mock from textwrap import dedent from django.conf import settings +from mock import Mock + from evennia import ScriptDB from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.objects.objects import ExitCommand from evennia.utils import ansi, utils from evennia.utils.create import create_object, create_script from evennia.utils.test_resources import BaseEvenniaTest -from .commands import CmdCallback + from .callbackhandler import CallbackHandler +from .commands import CmdCallback # Force settings settings.EVENTS_CALENDAR = "standard" diff --git a/evennia/contrib/base_systems/ingame_python/typeclasses.py b/evennia/contrib/base_systems/ingame_python/typeclasses.py index f3dd871129..1a49318132 100644 --- a/evennia/contrib/base_systems/ingame_python/typeclasses.py +++ b/evennia/contrib/base_systems/ingame_python/typeclasses.py @@ -7,15 +7,14 @@ default ones in evennia core. """ -from evennia import DefaultCharacter, DefaultExit, DefaultObject, DefaultRoom -from evennia import ScriptDB -from evennia.utils.utils import delay, inherits_from, lazy_property +from evennia import DefaultCharacter, DefaultExit, DefaultObject, DefaultRoom, ScriptDB from evennia.contrib.base_systems.ingame_python.callbackhandler import CallbackHandler from evennia.contrib.base_systems.ingame_python.utils import ( + phrase_event, register_events, time_event, - phrase_event, ) +from evennia.utils.utils import delay, inherits_from, lazy_property # Character help CHARACTER_CAN_DELETE = """ diff --git a/evennia/contrib/base_systems/ingame_python/utils.py b/evennia/contrib/base_systems/ingame_python/utils.py index 48ecab1ab0..64f8454c54 100644 --- a/evennia/contrib/base_systems/ingame_python/utils.py +++ b/evennia/contrib/base_systems/ingame_python/utils.py @@ -6,14 +6,13 @@ These functions are to be used by developers to customize events and callbacks. """ from django.conf import settings -from evennia import logger -from evennia import ScriptDB + +from evennia import ScriptDB, logger +from evennia.contrib.base_systems.custom_gametime import UNITS, gametime_to_realtime +from evennia.contrib.base_systems.custom_gametime import real_seconds_until as custom_rsu from evennia.utils.create import create_script from evennia.utils.gametime import real_seconds_until as standard_rsu from evennia.utils.utils import class_from_module -from evennia.contrib.base_systems.custom_gametime import UNITS -from evennia.contrib.base_systems.custom_gametime import gametime_to_realtime -from evennia.contrib.base_systems.custom_gametime import real_seconds_until as custom_rsu # Temporary storage for events waiting for the script to be started EVENTS = [] diff --git a/evennia/contrib/base_systems/menu_login/__init__.py b/evennia/contrib/base_systems/menu_login/__init__.py index bc1abd9b42..d71303f935 100644 --- a/evennia/contrib/base_systems/menu_login/__init__.py +++ b/evennia/contrib/base_systems/menu_login/__init__.py @@ -3,5 +3,5 @@ Menu-login - Vinvent-lg 2016, Griatch 2019 """ -from .menu_login import UnloggedinCmdSet # noqa from . import connection_screens # noqa +from .menu_login import UnloggedinCmdSet # noqa diff --git a/evennia/contrib/base_systems/menu_login/connection_screens.py b/evennia/contrib/base_systems/menu_login/connection_screens.py index 1eeaa64baa..f6cefdc731 100644 --- a/evennia/contrib/base_systems/menu_login/connection_screens.py +++ b/evennia/contrib/base_systems/menu_login/connection_screens.py @@ -21,6 +21,7 @@ of the screen is done by the unlogged-in "look" command. """ from django.conf import settings + from evennia import utils CONNECTION_SCREEN = """ diff --git a/evennia/contrib/base_systems/menu_login/menu_login.py b/evennia/contrib/base_systems/menu_login/menu_login.py index 4654faf2a4..946b4f8e27 100644 --- a/evennia/contrib/base_systems/menu_login/menu_login.py +++ b/evennia/contrib/base_systems/menu_login/menu_login.py @@ -21,10 +21,9 @@ called automatically when a new user connects. from django.conf import settings -from evennia import Command, CmdSet -from evennia import syscmdkeys +from evennia import CmdSet, Command, syscmdkeys from evennia.utils.evmenu import EvMenu -from evennia.utils.utils import random_string_from_module, class_from_module, callables_from_module +from evennia.utils.utils import callables_from_module, class_from_module, random_string_from_module _CONNECTION_SCREEN_MODULE = settings.CONNECTION_SCREEN_MODULE _GUEST_ENABLED = settings.GUEST_ENABLED diff --git a/evennia/contrib/base_systems/menu_login/tests.py b/evennia/contrib/base_systems/menu_login/tests.py index 347867ac4f..21bd136d69 100644 --- a/evennia/contrib/base_systems/menu_login/tests.py +++ b/evennia/contrib/base_systems/menu_login/tests.py @@ -4,6 +4,7 @@ Test menu_login """ from evennia.commands.default.tests import BaseEvenniaCommandTest + from . import menu_login diff --git a/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.py b/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.py index 2736f7f914..5fadf4117b 100644 --- a/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.py +++ b/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.py @@ -42,6 +42,7 @@ class CharacterCmdSet(default_cmds.CharacterCmdSet): """ from django.conf import settings + from evennia.commands.cmdset import CmdSet from evennia.commands.default.comms import CmdChannel from evennia.utils import logger diff --git a/evennia/contrib/base_systems/mux_comms_cmds/tests.py b/evennia/contrib/base_systems/mux_comms_cmds/tests.py index 17ee835c66..17e803cefb 100644 --- a/evennia/contrib/base_systems/mux_comms_cmds/tests.py +++ b/evennia/contrib/base_systems/mux_comms_cmds/tests.py @@ -4,6 +4,7 @@ Legacy Mux comms tests (extracted from 0.9.5) """ from evennia.commands.default.tests import BaseEvenniaCommandTest + from . import mux_comms_cmds as comms diff --git a/evennia/contrib/base_systems/unixcommand/tests.py b/evennia/contrib/base_systems/unixcommand/tests.py index df779e5997..adb7421352 100644 --- a/evennia/contrib/base_systems/unixcommand/tests.py +++ b/evennia/contrib/base_systems/unixcommand/tests.py @@ -4,6 +4,7 @@ Test of the Unixcommand. """ from evennia.commands.default.tests import BaseEvenniaCommandTest + from .unixcommand import UnixCommand diff --git a/evennia/contrib/full_systems/evscaperoom/commands.py b/evennia/contrib/full_systems/evscaperoom/commands.py index 07e774fe07..75251b78f9 100644 --- a/evennia/contrib/full_systems/evscaperoom/commands.py +++ b/evennia/contrib/full_systems/evscaperoom/commands.py @@ -28,11 +28,12 @@ Admin/development commands """ import re + from django.conf import settings -from evennia import SESSION_HANDLER -from evennia import Command, CmdSet, InterruptCommand, default_cmds -from evennia import syscmdkeys + +from evennia import SESSION_HANDLER, CmdSet, Command, InterruptCommand, default_cmds, syscmdkeys from evennia.utils import variable_from_module + from .utils import create_evscaperoom_object _AT_SEARCH_RESULT = variable_from_module(*settings.SEARCH_AT_RESULT.rsplit(".", 1)) diff --git a/evennia/contrib/full_systems/evscaperoom/menu.py b/evennia/contrib/full_systems/evscaperoom/menu.py index 4ee7148055..96ff22551a 100644 --- a/evennia/contrib/full_systems/evscaperoom/menu.py +++ b/evennia/contrib/full_systems/evscaperoom/menu.py @@ -8,9 +8,9 @@ new room (to start from scratch) or join an existing room (with other players). """ from evennia import EvMenu +from evennia.utils import create, justify, list_to_string, logger from evennia.utils.evmenu import list_node -from evennia.utils import create, justify, list_to_string -from evennia.utils import logger + from .room import EvscapeRoom from .utils import create_fantasy_word @@ -217,8 +217,8 @@ def node_quit(caller, raw_string, **kwargs): # we check an Attribute on the caller to see if we should # leave the game entirely when leaving if caller.db.evscaperoom_standalone: - from evennia.commands import cmdhandler from evennia import default_cmds + from evennia.commands import cmdhandler cmdhandler.cmdhandler( caller.ndb._menutree._session, "", cmdobj=default_cmds.CmdQuit(), cmdobj_key="@quit" diff --git a/evennia/contrib/full_systems/evscaperoom/objects.py b/evennia/contrib/full_systems/evscaperoom/objects.py index 7f9be4a78f..e0b91146c6 100644 --- a/evennia/contrib/full_systems/evscaperoom/objects.py +++ b/evennia/contrib/full_systems/evscaperoom/objects.py @@ -43,12 +43,13 @@ Available parents: - Positionable (supports sit/lie/knee/climb at once) """ -import re import inspect +import re + from evennia import DefaultObject from evennia.utils.utils import list_to_string, wrap -from .utils import create_evscaperoom_object -from .utils import parse_for_perspectives, parse_for_things + +from .utils import create_evscaperoom_object, parse_for_perspectives, parse_for_things class EvscaperoomObject(DefaultObject): diff --git a/evennia/contrib/full_systems/evscaperoom/room.py b/evennia/contrib/full_systems/evscaperoom/room.py index 934f363ecc..45bd3bdb18 100644 --- a/evennia/contrib/full_systems/evscaperoom/room.py +++ b/evennia/contrib/full_systems/evscaperoom/room.py @@ -7,14 +7,13 @@ that particular escaperoom challenge should be gone. """ -from evennia import DefaultRoom, DefaultCharacter, DefaultObject -from evennia import utils -from evennia.utils.ansi import strip_ansi -from evennia import logger +from evennia import DefaultCharacter, DefaultObject, DefaultRoom, logger, utils from evennia.locks.lockhandler import check_lockstring +from evennia.utils.ansi import strip_ansi from evennia.utils.utils import lazy_property, list_to_string -from .objects import EvscaperoomObject + from .commands import CmdSetEvScapeRoom +from .objects import EvscaperoomObject from .state import StateHandler diff --git a/evennia/contrib/full_systems/evscaperoom/state.py b/evennia/contrib/full_systems/evscaperoom/state.py index e8741cff27..4f8f5c486f 100644 --- a/evennia/contrib/full_systems/evscaperoom/state.py +++ b/evennia/contrib/full_systems/evscaperoom/state.py @@ -12,14 +12,15 @@ state is identified by its module name. """ -from django.conf import settings from functools import wraps -from evennia import utils -from evennia import logger + +from django.conf import settings + +from evennia import logger, utils + from .objects import EvscaperoomObject from .utils import create_evscaperoom_object, msg_cinematic, parse_for_things - # state setup if hasattr(settings, "EVSCAPEROOM_STATE_PACKAGE"): _ROOMSTATE_PACKAGE = settings.EVSCAPEROOM_STATE_PACKAGE diff --git a/evennia/contrib/full_systems/evscaperoom/states/state_001_start.py b/evennia/contrib/full_systems/evscaperoom/states/state_001_start.py index 8cf3d4d71b..920999285a 100644 --- a/evennia/contrib/full_systems/evscaperoom/states/state_001_start.py +++ b/evennia/contrib/full_systems/evscaperoom/states/state_001_start.py @@ -8,8 +8,8 @@ teleported back to the evscaperoom menu. """ -from evennia.contrib.full_systems.evscaperoom.state import BaseState from evennia.contrib.full_systems.evscaperoom import objects +from evennia.contrib.full_systems.evscaperoom.state import BaseState GREETING = """ This is the situation, {name}: diff --git a/evennia/contrib/full_systems/evscaperoom/tests.py b/evennia/contrib/full_systems/evscaperoom/tests.py index 98a0e85f8c..16d41622dc 100644 --- a/evennia/contrib/full_systems/evscaperoom/tests.py +++ b/evennia/contrib/full_systems/evscaperoom/tests.py @@ -5,13 +5,14 @@ Unit tests for the Evscaperoom import inspect import pkgutil from os import path -from evennia.commands.default.tests import BaseEvenniaCommandTest + from evennia import InterruptCommand -from evennia.utils.test_resources import BaseEvenniaTest +from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils import mod_import -from . import commands +from evennia.utils.test_resources import BaseEvenniaTest + +from . import commands, objects from . import state as basestate -from . import objects from . import utils diff --git a/evennia/contrib/full_systems/evscaperoom/utils.py b/evennia/contrib/full_systems/evscaperoom/utils.py index 0a96d00730..e42055e9fe 100644 --- a/evennia/contrib/full_systems/evscaperoom/utils.py +++ b/evennia/contrib/full_systems/evscaperoom/utils.py @@ -8,8 +8,9 @@ and does not need to be imported from here. import re from random import choice + from evennia import create_object, search_object -from evennia.utils import justify, inherits_from +from evennia.utils import inherits_from, justify _BASE_TYPECLASS_PATH = "evscaperoom.objects." _RE_PERSPECTIVE = re.compile(r"~(\w+)", re.I + re.U + re.M) diff --git a/evennia/contrib/game_systems/barter/barter.py b/evennia/contrib/game_systems/barter/barter.py index 9bef89f6ea..ae02205957 100644 --- a/evennia/contrib/game_systems/barter/barter.py +++ b/evennia/contrib/game_systems/barter/barter.py @@ -94,8 +94,8 @@ in-game. """ -from evennia.commands.command import Command from evennia.commands.cmdset import CmdSet +from evennia.commands.command import Command from evennia.scripts.scripts import DefaultScript TRADE_TIMEOUT = 60 # timeout for B to accept trade diff --git a/evennia/contrib/game_systems/barter/tests.py b/evennia/contrib/game_systems/barter/tests.py index 547d0f7fc7..96698d6f33 100644 --- a/evennia/contrib/game_systems/barter/tests.py +++ b/evennia/contrib/game_systems/barter/tests.py @@ -3,8 +3,10 @@ Test the contrib barter system """ from mock import Mock + from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils.create import create_object + from . import barter diff --git a/evennia/contrib/game_systems/clothing/clothing.py b/evennia/contrib/game_systems/clothing/clothing.py index 8c11f27d4e..0834b93c89 100644 --- a/evennia/contrib/game_systems/clothing/clothing.py +++ b/evennia/contrib/game_systems/clothing/clothing.py @@ -73,12 +73,9 @@ with which to test the system: """ -from evennia import DefaultObject -from evennia import DefaultCharacter -from evennia import default_cmds +from evennia import DefaultCharacter, DefaultObject, default_cmds from evennia.commands.default.muxcommand import MuxCommand -from evennia.utils import list_to_string -from evennia.utils import evtable +from evennia.utils import evtable, list_to_string # Options start here. # Maximum character length of 'wear style' strings, or None for unlimited. diff --git a/evennia/contrib/game_systems/clothing/tests.py b/evennia/contrib/game_systems/clothing/tests.py index 6ea80f3246..74ba1d5524 100644 --- a/evennia/contrib/game_systems/clothing/tests.py +++ b/evennia/contrib/game_systems/clothing/tests.py @@ -4,9 +4,10 @@ Testing clothing contrib """ from evennia.commands.default.tests import BaseEvenniaCommandTest -from evennia.utils.create import create_object from evennia.objects.objects import DefaultRoom +from evennia.utils.create import create_object from evennia.utils.test_resources import BaseEvenniaTest + from . import clothing diff --git a/evennia/contrib/game_systems/cooldowns/tests.py b/evennia/contrib/game_systems/cooldowns/tests.py index 356dc69f40..1aab4cbf81 100644 --- a/evennia/contrib/game_systems/cooldowns/tests.py +++ b/evennia/contrib/game_systems/cooldowns/tests.py @@ -4,7 +4,9 @@ Cooldowns tests. """ from mock import patch + from evennia.utils.test_resources import BaseEvenniaTest + from . import cooldowns diff --git a/evennia/contrib/game_systems/crafting/__init__.py b/evennia/contrib/game_systems/crafting/__init__.py index 97168f2baa..26383cf89b 100644 --- a/evennia/contrib/game_systems/crafting/__init__.py +++ b/evennia/contrib/game_systems/crafting/__init__.py @@ -3,7 +3,7 @@ Crafting - Griatch 2020 """ -from .crafting import craft # noqa from .crafting import CraftingRecipe # noqa from .crafting import CraftingRecipeBase # noqa +from .crafting import craft # noqa from .crafting import CraftingError, CraftingValidationError # noqa diff --git a/evennia/contrib/game_systems/crafting/crafting.py b/evennia/contrib/game_systems/crafting/crafting.py index 0b383854b3..112eb3c4d5 100644 --- a/evennia/contrib/game_systems/crafting/crafting.py +++ b/evennia/contrib/game_systems/crafting/crafting.py @@ -121,11 +121,12 @@ a full example of the components for creating a sword from base components. import functools from copy import copy -from evennia.utils.utils import iter_to_str, callables_from_module, inherits_from, make_iter + from evennia.commands.cmdset import CmdSet from evennia.commands.command import Command from evennia.prototypes.spawner import spawn from evennia.utils.create import create_object +from evennia.utils.utils import callables_from_module, inherits_from, iter_to_str, make_iter _RECIPE_CLASSES = {} diff --git a/evennia/contrib/game_systems/crafting/example_recipes.py b/evennia/contrib/game_systems/crafting/example_recipes.py index 0f0feb5c70..607608d609 100644 --- a/evennia/contrib/game_systems/crafting/example_recipes.py +++ b/evennia/contrib/game_systems/crafting/example_recipes.py @@ -69,10 +69,11 @@ just mocked for the example. """ -from random import random, randint -from evennia.commands.command import Command, InterruptCommand -from .crafting import craft, CraftingRecipe, CraftingValidationError +from random import randint, random +from evennia.commands.command import Command, InterruptCommand + +from .crafting import CraftingRecipe, CraftingValidationError, craft # ------------------------------------------------------------ # Sword recipe diff --git a/evennia/contrib/game_systems/crafting/tests.py b/evennia/contrib/game_systems/crafting/tests.py index 3d9ae68570..41ae4412bf 100644 --- a/evennia/contrib/game_systems/crafting/tests.py +++ b/evennia/contrib/game_systems/crafting/tests.py @@ -4,11 +4,14 @@ Unit tests for the crafting system contrib. """ from unittest import mock -from django.test import override_settings + from django.core.exceptions import ObjectDoesNotExist +from django.test import override_settings + from evennia.commands.default.tests import BaseEvenniaCommandTest -from evennia.utils.test_resources import BaseEvenniaTestCase from evennia.utils.create import create_object +from evennia.utils.test_resources import BaseEvenniaTestCase + from . import crafting, example_recipes diff --git a/evennia/contrib/game_systems/gendersub/gendersub.py b/evennia/contrib/game_systems/gendersub/gendersub.py index 5eb6e5a3a8..05bfbb7eb4 100644 --- a/evennia/contrib/game_systems/gendersub/gendersub.py +++ b/evennia/contrib/game_systems/gendersub/gendersub.py @@ -42,9 +42,9 @@ default cmdset before it becomes available. """ import re + +from evennia import Command, DefaultCharacter from evennia.utils import logger -from evennia import DefaultCharacter -from evennia import Command # gender maps diff --git a/evennia/contrib/game_systems/gendersub/tests.py b/evennia/contrib/game_systems/gendersub/tests.py index 3e8a2780d6..c50e2d6e83 100644 --- a/evennia/contrib/game_systems/gendersub/tests.py +++ b/evennia/contrib/game_systems/gendersub/tests.py @@ -4,9 +4,11 @@ Test gendersub contrib. """ +from mock import patch + from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils.create import create_object -from mock import patch + from . import gendersub diff --git a/evennia/contrib/game_systems/mail/mail.py b/evennia/contrib/game_systems/mail/mail.py index e326206464..6127d1af9d 100644 --- a/evennia/contrib/game_systems/mail/mail.py +++ b/evennia/contrib/game_systems/mail/mail.py @@ -42,11 +42,10 @@ ic/ooc to switch in and out of IC/OOC modes. """ import re -from evennia import ObjectDB, AccountDB -from evennia import default_cmds -from evennia.utils import create, evtable, make_iter, inherits_from, datetime_format -from evennia.comms.models import Msg +from evennia import AccountDB, ObjectDB, default_cmds +from evennia.comms.models import Msg +from evennia.utils import create, datetime_format, evtable, inherits_from, make_iter _HEAD_CHAR = "|015-|n" _SUB_HEAD_CHAR = "-" diff --git a/evennia/contrib/game_systems/mail/tests.py b/evennia/contrib/game_systems/mail/tests.py index f545ce6f33..fb3ee7fb3c 100644 --- a/evennia/contrib/game_systems/mail/tests.py +++ b/evennia/contrib/game_systems/mail/tests.py @@ -4,6 +4,7 @@ Test mail contrib """ from evennia.commands.default.tests import BaseEvenniaCommandTest + from . import mail diff --git a/evennia/contrib/game_systems/multidescer/multidescer.py b/evennia/contrib/game_systems/multidescer/multidescer.py index 57245c2eca..c32e92eddc 100644 --- a/evennia/contrib/game_systems/multidescer/multidescer.py +++ b/evennia/contrib/game_systems/multidescer/multidescer.py @@ -26,10 +26,10 @@ will replace the default `desc` command). """ import re -from evennia import default_cmds -from evennia.utils.utils import crop -from evennia.utils.eveditor import EvEditor +from evennia import default_cmds +from evennia.utils.eveditor import EvEditor +from evennia.utils.utils import crop # regex for the set functionality _RE_KEYS = re.compile(r"([\w\s]+)(?:\+*?)", re.U + re.I) diff --git a/evennia/contrib/game_systems/multidescer/tests.py b/evennia/contrib/game_systems/multidescer/tests.py index 13a40efffe..e1d974ecbd 100644 --- a/evennia/contrib/game_systems/multidescer/tests.py +++ b/evennia/contrib/game_systems/multidescer/tests.py @@ -4,6 +4,7 @@ Test multidescer contrib. """ from evennia.commands.default.tests import BaseEvenniaCommandTest + from . import multidescer diff --git a/evennia/contrib/game_systems/puzzles/__init__.py b/evennia/contrib/game_systems/puzzles/__init__.py index 4366b57385..ac6946460f 100644 --- a/evennia/contrib/game_systems/puzzles/__init__.py +++ b/evennia/contrib/game_systems/puzzles/__init__.py @@ -3,5 +3,5 @@ Puzzles - Henddher 2018 """ -from .puzzles import PuzzleSystemCmdSet # noqa from .puzzles import PuzzleRecipe # noqa +from .puzzles import PuzzleSystemCmdSet # noqa diff --git a/evennia/contrib/game_systems/puzzles/puzzles.py b/evennia/contrib/game_systems/puzzles/puzzles.py index 8297a618e6..9cab77d703 100644 --- a/evennia/contrib/game_systems/puzzles/puzzles.py +++ b/evennia/contrib/game_systems/puzzles/puzzles.py @@ -73,16 +73,12 @@ are spawened on their corresponding location. import itertools from random import choice -from evennia import create_script -from evennia import CmdSet -from evennia import DefaultScript -from evennia import DefaultCharacter -from evennia import DefaultRoom -from evennia import DefaultExit + +from evennia import CmdSet, DefaultCharacter, DefaultExit, DefaultRoom, DefaultScript, create_script from evennia.commands.default.muxcommand import MuxCommand -from evennia.utils.utils import inherits_from -from evennia.utils import search, utils, logger from evennia.prototypes.spawner import spawn +from evennia.utils import logger, search, utils +from evennia.utils.utils import inherits_from # Tag used by puzzles _PUZZLES_TAG_CATEGORY = "puzzles" diff --git a/evennia/contrib/game_systems/puzzles/tests.py b/evennia/contrib/game_systems/puzzles/tests.py index 1138818d44..cfd2fe205d 100644 --- a/evennia/contrib/game_systems/puzzles/tests.py +++ b/evennia/contrib/game_systems/puzzles/tests.py @@ -5,12 +5,15 @@ Testing puzzles. # Test of the Puzzles module -import re import itertools +import re + from mock import Mock -from evennia.utils import search + from evennia.commands.default.tests import BaseEvenniaCommandTest +from evennia.utils import search from evennia.utils.create import create_object + from . import puzzles diff --git a/evennia/contrib/game_systems/turnbattle/tb_basic.py b/evennia/contrib/game_systems/turnbattle/tb_basic.py index ba5e5bf679..3b6d0a5075 100644 --- a/evennia/contrib/game_systems/turnbattle/tb_basic.py +++ b/evennia/contrib/game_systems/turnbattle/tb_basic.py @@ -43,7 +43,8 @@ in your game and using it as-is. """ from random import randint -from evennia import DefaultCharacter, Command, default_cmds, DefaultScript + +from evennia import Command, DefaultCharacter, DefaultScript, default_cmds from evennia.commands.default.help import CmdHelp """ diff --git a/evennia/contrib/game_systems/turnbattle/tb_equip.py b/evennia/contrib/game_systems/turnbattle/tb_equip.py index 7ccca4a926..c89fc7b03f 100644 --- a/evennia/contrib/game_systems/turnbattle/tb_equip.py +++ b/evennia/contrib/game_systems/turnbattle/tb_equip.py @@ -55,7 +55,9 @@ in your game and using it as-is. """ from random import randint -from evennia import Command, default_cmds, DefaultObject + +from evennia import Command, DefaultObject, default_cmds + from . import tb_basic """ diff --git a/evennia/contrib/game_systems/turnbattle/tb_items.py b/evennia/contrib/game_systems/turnbattle/tb_items.py index d0f52d94e9..6d6de267f0 100644 --- a/evennia/contrib/game_systems/turnbattle/tb_items.py +++ b/evennia/contrib/game_systems/turnbattle/tb_items.py @@ -67,10 +67,12 @@ in your game and using it as-is. """ from random import randint + +from evennia import TICKER_HANDLER as tickerhandler from evennia import Command, default_cmds from evennia.commands.default.muxcommand import MuxCommand from evennia.prototypes.spawner import spawn -from evennia import TICKER_HANDLER as tickerhandler + from . import tb_basic """ diff --git a/evennia/contrib/game_systems/turnbattle/tb_magic.py b/evennia/contrib/game_systems/turnbattle/tb_magic.py index 1be372b81a..5f99ef3fc6 100644 --- a/evennia/contrib/game_systems/turnbattle/tb_magic.py +++ b/evennia/contrib/game_systems/turnbattle/tb_magic.py @@ -67,9 +67,10 @@ in your game and using it as-is. """ from random import randint -from evennia.utils.logger import log_trace -from evennia import Command, default_cmds, DefaultScript, create_object + +from evennia import Command, DefaultScript, create_object, default_cmds from evennia.commands.default.muxcommand import MuxCommand +from evennia.utils.logger import log_trace from . import tb_basic diff --git a/evennia/contrib/game_systems/turnbattle/tb_range.py b/evennia/contrib/game_systems/turnbattle/tb_range.py index cc6041c95c..7385a3a875 100644 --- a/evennia/contrib/game_systems/turnbattle/tb_range.py +++ b/evennia/contrib/game_systems/turnbattle/tb_range.py @@ -101,8 +101,10 @@ in your game and using it as-is. """ from random import randint -from evennia import DefaultObject, Command, default_cmds, DefaultScript + +from evennia import Command, DefaultObject, DefaultScript, default_cmds from evennia.commands.default.help import CmdHelp + from . import tb_basic """ diff --git a/evennia/contrib/game_systems/turnbattle/tests.py b/evennia/contrib/game_systems/turnbattle/tests.py index 6d40587876..6b11858dd1 100644 --- a/evennia/contrib/game_systems/turnbattle/tests.py +++ b/evennia/contrib/game_systems/turnbattle/tests.py @@ -3,11 +3,12 @@ Turnbattle tests. """ +from mock import MagicMock, patch + from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.objects.objects import DefaultRoom from evennia.utils.create import create_object from evennia.utils.test_resources import BaseEvenniaTest -from mock import MagicMock, patch from . import tb_basic, tb_equip, tb_items, tb_magic, tb_range diff --git a/evennia/contrib/grid/extended_room/__init__.py b/evennia/contrib/grid/extended_room/__init__.py index 45c61d8638..3714e47f1b 100644 --- a/evennia/contrib/grid/extended_room/__init__.py +++ b/evennia/contrib/grid/extended_room/__init__.py @@ -3,9 +3,9 @@ Extended Room - Griatch 2012, vincent-lg 2019 """ -from .extended_room import ExtendedRoom # noqa -from .extended_room import ExtendedRoomCmdSet # noqa -from .extended_room import CmdExtendedRoomLook # noqa from .extended_room import CmdExtendedRoomDesc # noqa from .extended_room import CmdExtendedRoomDetail # noqa from .extended_room import CmdExtendedRoomGameTime # noqa +from .extended_room import CmdExtendedRoomLook # noqa +from .extended_room import ExtendedRoom # noqa +from .extended_room import ExtendedRoomCmdSet # noqa diff --git a/evennia/contrib/grid/extended_room/extended_room.py b/evennia/contrib/grid/extended_room/extended_room.py index 8c676d4b11..5d848551ce 100644 --- a/evennia/contrib/grid/extended_room/extended_room.py +++ b/evennia/contrib/grid/extended_room/extended_room.py @@ -86,12 +86,10 @@ typeclass or use the `typeclass` command to swap existing rooms. import datetime import re + from django.conf import settings -from evennia import DefaultRoom -from evennia import gametime -from evennia import default_cmds -from evennia import utils -from evennia import CmdSet + +from evennia import CmdSet, DefaultRoom, default_cmds, gametime, utils # error return function, needed by Extended Look command _AT_SEARCH_RESULT = utils.variable_from_module(*settings.SEARCH_AT_RESULT.rsplit(".", 1)) diff --git a/evennia/contrib/grid/extended_room/tests.py b/evennia/contrib/grid/extended_room/tests.py index 23df82c2f7..22a43d5002 100644 --- a/evennia/contrib/grid/extended_room/tests.py +++ b/evennia/contrib/grid/extended_room/tests.py @@ -4,10 +4,13 @@ Testing of ExtendedRoom contrib """ import datetime -from mock import patch, Mock + from django.conf import settings +from mock import Mock, patch + from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.objects.objects import DefaultRoom + from . import extended_room diff --git a/evennia/contrib/grid/ingame_map_display/ingame_map_display.py b/evennia/contrib/grid/ingame_map_display/ingame_map_display.py index e8f5158080..f6369c7c31 100644 --- a/evennia/contrib/grid/ingame_map_display/ingame_map_display.py +++ b/evennia/contrib/grid/ingame_map_display/ingame_map_display.py @@ -57,7 +57,9 @@ If you don't want the player to be able to specify the size of the map, ignore a arguments passed into the Map command. """ import time + from django.conf import settings + from evennia import CmdSet from evennia.commands.default.muxcommand import MuxCommand diff --git a/evennia/contrib/grid/ingame_map_display/tests.py b/evennia/contrib/grid/ingame_map_display/tests.py index 555629f503..4af1cdc41c 100644 --- a/evennia/contrib/grid/ingame_map_display/tests.py +++ b/evennia/contrib/grid/ingame_map_display/tests.py @@ -4,9 +4,11 @@ Tests of ingame_map_display. """ +from typeclasses import exits, rooms + from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils.create import create_object -from typeclasses import rooms, exits + from . import ingame_map_display diff --git a/evennia/contrib/grid/mapbuilder/mapbuilder.py b/evennia/contrib/grid/mapbuilder/mapbuilder.py index 33d778f5ca..6d191914e1 100644 --- a/evennia/contrib/grid/mapbuilder/mapbuilder.py +++ b/evennia/contrib/grid/mapbuilder/mapbuilder.py @@ -279,10 +279,11 @@ EXAMPLE2_LEGEND = { --- """ from django.conf import settings -from evennia.utils import utils -from evennia import create_object from typeclasses import exits +from evennia import create_object +from evennia.utils import utils + COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) diff --git a/evennia/contrib/grid/mapbuilder/tests.py b/evennia/contrib/grid/mapbuilder/tests.py index fcd6412b92..74ddc110ec 100644 --- a/evennia/contrib/grid/mapbuilder/tests.py +++ b/evennia/contrib/grid/mapbuilder/tests.py @@ -3,16 +3,18 @@ Test map builder. """ -from evennia.commands.default.tests import BaseEvenniaCommandTest -from . import mapbuilder +import random +from random import randint -# -*- coding: utf-8 -*- +from typeclasses import exits, rooms # Add the necessary imports for your instructions here. from evennia import create_object -from typeclasses import rooms, exits -from random import randint -import random +from evennia.commands.default.tests import BaseEvenniaCommandTest + +from . import mapbuilder + +# -*- coding: utf-8 -*- # A map with a temple (▲) amongst mountains (n,∩) in a forest (♣,♠) on an diff --git a/evennia/contrib/grid/simpledoor/__init__.py b/evennia/contrib/grid/simpledoor/__init__.py index 8643fa4607..521b47d00e 100644 --- a/evennia/contrib/grid/simpledoor/__init__.py +++ b/evennia/contrib/grid/simpledoor/__init__.py @@ -3,5 +3,5 @@ Simple Door - Griatch 2016 """ -from .simpledoor import SimpleDoorCmdSet # noqa from .simpledoor import SimpleDoor # noqa +from .simpledoor import SimpleDoorCmdSet # noqa diff --git a/evennia/contrib/grid/simpledoor/tests.py b/evennia/contrib/grid/simpledoor/tests.py index 31c632e4ad..9c0d3353c1 100644 --- a/evennia/contrib/grid/simpledoor/tests.py +++ b/evennia/contrib/grid/simpledoor/tests.py @@ -5,6 +5,7 @@ Tests of simpledoor. from evennia.commands.default.tests import BaseEvenniaCommandTest + from . import simpledoor diff --git a/evennia/contrib/grid/slow_exit/__init__.py b/evennia/contrib/grid/slow_exit/__init__.py index 510066a372..7beb750427 100644 --- a/evennia/contrib/grid/slow_exit/__init__.py +++ b/evennia/contrib/grid/slow_exit/__init__.py @@ -3,7 +3,7 @@ Slow Exit - Griatch 2014 """ -from .slow_exit import SlowExitCmdSet # noqa -from .slow_exit import SlowExit # noqa from .slow_exit import CmdSetSpeed # noqa from .slow_exit import CmdStop # noqa +from .slow_exit import SlowExit # noqa +from .slow_exit import SlowExitCmdSet # noqa diff --git a/evennia/contrib/grid/slow_exit/slow_exit.py b/evennia/contrib/grid/slow_exit/slow_exit.py index e5050e3f76..6583fd00a5 100644 --- a/evennia/contrib/grid/slow_exit/slow_exit.py +++ b/evennia/contrib/grid/slow_exit/slow_exit.py @@ -55,11 +55,10 @@ TickerHandler might be better. """ +from evennia.commands.cmdset import CmdSet +from evennia.commands.command import Command from evennia.objects.objects import DefaultExit from evennia.utils import utils -from evennia.commands.command import Command -from evennia.commands.cmdset import CmdSet - MOVE_DELAY = {"stroll": 6, "walk": 4, "run": 2, "sprint": 1} diff --git a/evennia/contrib/grid/slow_exit/tests.py b/evennia/contrib/grid/slow_exit/tests.py index db6c42b360..e3ffb19123 100644 --- a/evennia/contrib/grid/slow_exit/tests.py +++ b/evennia/contrib/grid/slow_exit/tests.py @@ -4,8 +4,10 @@ Slow exit tests. """ from mock import Mock, patch + from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils.create import create_object + from . import slow_exit slow_exit.MOVE_DELAY = {"stroll": 0, "walk": 0, "run": 0, "sprint": 0} diff --git a/evennia/contrib/grid/wilderness/__init__.py b/evennia/contrib/grid/wilderness/__init__.py index 585c452f17..4118421826 100644 --- a/evennia/contrib/grid/wilderness/__init__.py +++ b/evennia/contrib/grid/wilderness/__init__.py @@ -3,10 +3,10 @@ Wilderness contrib - titeuf87, 2017 """ +from .wilderness import WildernessExit # noqa +from .wilderness import WildernessMapProvider # noqa +from .wilderness import WildernessRoom # noqa +from .wilderness import WildernessScript # noqa from .wilderness import create_wilderness # noqa from .wilderness import enter_wilderness # noqa from .wilderness import get_new_coordinates # noqa -from .wilderness import WildernessScript # noqa -from .wilderness import WildernessExit # noqa -from .wilderness import WildernessRoom # noqa -from .wilderness import WildernessMapProvider # noqa diff --git a/evennia/contrib/grid/wilderness/tests.py b/evennia/contrib/grid/wilderness/tests.py index 574272aa38..fee2fd17e4 100644 --- a/evennia/contrib/grid/wilderness/tests.py +++ b/evennia/contrib/grid/wilderness/tests.py @@ -3,9 +3,10 @@ Test wilderness """ -from evennia.utils.test_resources import BaseEvenniaTest from evennia import DefaultCharacter from evennia.utils.create import create_object +from evennia.utils.test_resources import BaseEvenniaTest + from . import wilderness diff --git a/evennia/contrib/grid/wilderness/wilderness.py b/evennia/contrib/grid/wilderness/wilderness.py index 418ad4253d..02ab90d57c 100644 --- a/evennia/contrib/grid/wilderness/wilderness.py +++ b/evennia/contrib/grid/wilderness/wilderness.py @@ -113,8 +113,7 @@ create a new wilderness (with the name "default") but using our new map provider """ -from evennia import DefaultRoom, DefaultExit, DefaultScript -from evennia import create_object, create_script +from evennia import DefaultExit, DefaultRoom, DefaultScript, create_object, create_script from evennia.utils import inherits_from diff --git a/evennia/contrib/grid/xyzgrid/__init__.py b/evennia/contrib/grid/xyzgrid/__init__.py index c12375df27..a33e47b603 100644 --- a/evennia/contrib/grid/xyzgrid/__init__.py +++ b/evennia/contrib/grid/xyzgrid/__init__.py @@ -3,6 +3,7 @@ XYZGrid - Griatch 2021 """ +from . import commands # noqa from . import example # noqa from . import launchcmd # noqa from . import prototypes # noqa @@ -12,4 +13,3 @@ from . import xymap # noqa from . import xymap_legend # noqa from . import xyzgrid # noqa from . import xyzroom # noqa -from . import commands # noqa diff --git a/evennia/contrib/grid/xyzgrid/commands.py b/evennia/contrib/grid/xyzgrid/commands.py index bb6d65061a..3ff1fe25dd 100644 --- a/evennia/contrib/grid/xyzgrid/commands.py +++ b/evennia/contrib/grid/xyzgrid/commands.py @@ -10,6 +10,7 @@ the commands with XYZ-aware equivalents. from collections import namedtuple from django.conf import settings + from evennia import CmdSet, InterruptCommand, default_cmds from evennia.commands.default import building from evennia.contrib.grid.xyzgrid.xyzgrid import get_xyzgrid diff --git a/evennia/contrib/grid/xyzgrid/launchcmd.py b/evennia/contrib/grid/xyzgrid/launchcmd.py index efac48942a..b243c9e635 100644 --- a/evennia/contrib/grid/xyzgrid/launchcmd.py +++ b/evennia/contrib/grid/xyzgrid/launchcmd.py @@ -17,11 +17,12 @@ Use `evennia xyzgrid help` for usage help. """ from os.path import join as pathjoin -from django.conf import settings -import evennia -from evennia.utils import ansi -from evennia.contrib.grid.xyzgrid.xyzgrid import get_xyzgrid +from django.conf import settings + +import evennia +from evennia.contrib.grid.xyzgrid.xyzgrid import get_xyzgrid +from evennia.utils import ansi _HELP_SHORT = """ evennia xyzgrid help | list | init | add | spawn | initpath | delete [] diff --git a/evennia/contrib/grid/xyzgrid/tests.py b/evennia/contrib/grid/xyzgrid/tests.py index f0a6030a45..11702109fc 100644 --- a/evennia/contrib/grid/xyzgrid/tests.py +++ b/evennia/contrib/grid/xyzgrid/tests.py @@ -3,14 +3,15 @@ Tests for the XYZgrid system. """ +from random import randint from unittest import mock -from random import randint -from parameterized import parameterized from django.test import TestCase -from evennia.utils.test_resources import BaseEvenniaTest -from . import xymap, xyzgrid, xymap_legend, xyzroom +from parameterized import parameterized +from evennia.utils.test_resources import BaseEvenniaTest + +from . import xymap, xymap_legend, xyzgrid, xyzroom MAP1 = """ diff --git a/evennia/contrib/grid/xyzgrid/xymap.py b/evennia/contrib/grid/xyzgrid/xymap.py index 2583e0aec3..df7926b0b4 100644 --- a/evennia/contrib/grid/xyzgrid/xymap.py +++ b/evennia/contrib/grid/xyzgrid/xymap.py @@ -95,25 +95,27 @@ See `./example.py` for a full grid example. import pickle from collections import defaultdict from os import mkdir -from os.path import isdir, isfile, join as pathjoin +from os.path import isdir, isfile +from os.path import join as pathjoin try: - from scipy.sparse.csgraph import dijkstra - from scipy.sparse import csr_matrix from scipy import zeros + from scipy.sparse import csr_matrix + from scipy.sparse.csgraph import dijkstra except ImportError as err: raise ImportError( f"{err}\nThe XYZgrid contrib requires " "the SciPy package. Install with `pip install scipy'." ) from django.conf import settings -from evennia.utils.utils import variable_from_module, mod_import, is_iter -from evennia.utils import logger + from evennia.prototypes import prototypes as protlib from evennia.prototypes.spawner import flatten_prototype +from evennia.utils import logger +from evennia.utils.utils import is_iter, mod_import, variable_from_module -from .utils import MapError, MapParserError, BIGVAL from . import xymap_legend +from .utils import BIGVAL, MapError, MapParserError _NO_DB_PROTOTYPES = True if hasattr(settings, "XYZGRID_USE_DB_PROTOTYPES"): diff --git a/evennia/contrib/grid/xyzgrid/xymap_legend.py b/evennia/contrib/grid/xyzgrid/xymap_legend.py index 99d158d9ff..a5e7937338 100644 --- a/evennia/contrib/grid/xyzgrid/xymap_legend.py +++ b/evennia/contrib/grid/xyzgrid/xymap_legend.py @@ -21,10 +21,11 @@ import uuid from collections import defaultdict from django.core import exceptions as django_exceptions + from evennia.prototypes import spawner from evennia.utils.utils import class_from_module -from .utils import MAPSCAN, REVERSE_DIRECTIONS, MapParserError, BIGVAL, MapError +from .utils import BIGVAL, MAPSCAN, REVERSE_DIRECTIONS, MapError, MapParserError NodeTypeclass = None ExitTypeclass = None diff --git a/evennia/contrib/grid/xyzgrid/xyzgrid.py b/evennia/contrib/grid/xyzgrid/xyzgrid.py index 1e8b538ab2..a5143b8b4e 100644 --- a/evennia/contrib/grid/xyzgrid/xyzgrid.py +++ b/evennia/contrib/grid/xyzgrid/xyzgrid.py @@ -19,8 +19,9 @@ The grid has three main functions: from evennia.scripts.scripts import DefaultScript from evennia.utils import logger from evennia.utils.utils import variable_from_module + from .xymap import XYMap -from .xyzroom import XYZRoom, XYZExit +from .xyzroom import XYZExit, XYZRoom class XYZGrid(DefaultScript): diff --git a/evennia/contrib/grid/xyzgrid/xyzroom.py b/evennia/contrib/grid/xyzgrid/xyzroom.py index d1f41c333b..fd4356ded4 100644 --- a/evennia/contrib/grid/xyzgrid/xyzroom.py +++ b/evennia/contrib/grid/xyzgrid/xyzroom.py @@ -9,6 +9,7 @@ used as stand-alone XYZ-coordinate-aware rooms. from django.conf import settings from django.db.models import Q + from evennia.objects.manager import ObjectManager from evennia.objects.objects import DefaultExit, DefaultRoom diff --git a/evennia/contrib/rpg/buffs/buff.py b/evennia/contrib/rpg/buffs/buff.py index c7f76154fd..acd712e76b 100644 --- a/evennia/contrib/rpg/buffs/buff.py +++ b/evennia/contrib/rpg/buffs/buff.py @@ -98,12 +98,13 @@ You can see all the features of the `BaseBuff` class below, or browse `samplebuf many attributes and hook methods you can overload to create complex, interrelated buffs. """ -from random import random import time +from random import random + from evennia import Command from evennia.server import signals -from evennia.utils import utils, search from evennia.typeclasses.attributes import AttributeProperty +from evennia.utils import search, utils class BaseBuff: diff --git a/evennia/contrib/rpg/buffs/samplebuffs.py b/evennia/contrib/rpg/buffs/samplebuffs.py index 60e3239275..3b7126326f 100644 --- a/evennia/contrib/rpg/buffs/samplebuffs.py +++ b/evennia/contrib/rpg/buffs/samplebuffs.py @@ -1,4 +1,5 @@ import random + from .buff import BaseBuff, Mod diff --git a/evennia/contrib/rpg/buffs/tests.py b/evennia/contrib/rpg/buffs/tests.py index 0d6b0f36b5..091db9acb6 100644 --- a/evennia/contrib/rpg/buffs/tests.py +++ b/evennia/contrib/rpg/buffs/tests.py @@ -2,14 +2,15 @@ Tests for the buff system contrib """ from unittest.mock import Mock, call, patch -from evennia import DefaultObject, create_object -from evennia.utils import create -from evennia.utils.utils import lazy_property -from .samplebuffs import StatBuff -from .buff import BaseBuff, Mod, BuffHandler, BuffableProperty -from evennia.utils.test_resources import EvenniaTest +from evennia import DefaultObject, create_object from evennia.contrib.rpg.buffs import buff +from evennia.utils import create +from evennia.utils.test_resources import EvenniaTest +from evennia.utils.utils import lazy_property + +from .buff import BaseBuff, BuffableProperty, BuffHandler, Mod +from .samplebuffs import StatBuff class _EmptyBuff(BaseBuff): diff --git a/evennia/contrib/rpg/character_creator/character_creator.py b/evennia/contrib/rpg/character_creator/character_creator.py index 1612c5e600..3547698235 100644 --- a/evennia/contrib/rpg/character_creator/character_creator.py +++ b/evennia/contrib/rpg/character_creator/character_creator.py @@ -19,6 +19,7 @@ import string from random import choices from django.conf import settings + from evennia import DefaultAccount from evennia.commands.default.muxcommand import MuxAccountCommand from evennia.objects.models import ObjectDB diff --git a/evennia/contrib/rpg/character_creator/example_menu.py b/evennia/contrib/rpg/character_creator/example_menu.py index 633ea55dc6..7d07758692 100644 --- a/evennia/contrib/rpg/character_creator/example_menu.py +++ b/evennia/contrib/rpg/character_creator/example_menu.py @@ -59,10 +59,11 @@ and other one-time method calls and set-up should be put here. """ import inflect +from typeclasses.characters import Character + from evennia.prototypes.spawner import spawn from evennia.utils import dedent from evennia.utils.evtable import EvTable -from typeclasses.characters import Character _INFLECT = inflect.engine() diff --git a/evennia/contrib/rpg/character_creator/tests.py b/evennia/contrib/rpg/character_creator/tests.py index e25923db62..d89a814757 100644 --- a/evennia/contrib/rpg/character_creator/tests.py +++ b/evennia/contrib/rpg/character_creator/tests.py @@ -1,5 +1,6 @@ from django.conf import settings from django.test import override_settings + from evennia import DefaultCharacter from evennia.commands.default import account from evennia.utils import inherits_from diff --git a/evennia/contrib/rpg/dice/__init__.py b/evennia/contrib/rpg/dice/__init__.py index 924c6611fe..21c50dc98e 100644 --- a/evennia/contrib/rpg/dice/__init__.py +++ b/evennia/contrib/rpg/dice/__init__.py @@ -3,7 +3,7 @@ Rolling dice - Griatch, 2012 """ -from .dice import roll # noqa -from .dice import roll_dice # noqa from .dice import CmdDice # noqa from .dice import DiceCmdSet # noqa +from .dice import roll # noqa +from .dice import roll_dice # noqa diff --git a/evennia/contrib/rpg/dice/dice.py b/evennia/contrib/rpg/dice/dice.py index 7e6776e433..0862eb066a 100644 --- a/evennia/contrib/rpg/dice/dice.py +++ b/evennia/contrib/rpg/dice/dice.py @@ -55,7 +55,8 @@ dice.roll_dice(3, 10, ("+", 2)) # 3d10 + 2 """ import re from random import randint -from evennia import default_cmds, CmdSet + +from evennia import CmdSet, default_cmds def roll(dicenum, dicetype, modifier=None, conditional=None, return_tuple=False): diff --git a/evennia/contrib/rpg/dice/tests.py b/evennia/contrib/rpg/dice/tests.py index b7569ffd8b..3f5c37cfc6 100644 --- a/evennia/contrib/rpg/dice/tests.py +++ b/evennia/contrib/rpg/dice/tests.py @@ -3,8 +3,10 @@ Testing of TestDice. """ -from evennia.commands.default.tests import BaseEvenniaCommandTest from mock import patch + +from evennia.commands.default.tests import BaseEvenniaCommandTest + from . import dice diff --git a/evennia/contrib/rpg/health_bar/tests.py b/evennia/contrib/rpg/health_bar/tests.py index 203b890dd6..fb479de563 100644 --- a/evennia/contrib/rpg/health_bar/tests.py +++ b/evennia/contrib/rpg/health_bar/tests.py @@ -4,6 +4,7 @@ Test health bar contrib """ from evennia.utils.test_resources import BaseEvenniaTest + from . import health_bar diff --git a/evennia/contrib/rpg/rpsystem/__init__.py b/evennia/contrib/rpg/rpsystem/__init__.py index 395aef660b..a6903eac2c 100644 --- a/evennia/contrib/rpg/rpsystem/__init__.py +++ b/evennia/contrib/rpg/rpsystem/__init__.py @@ -3,16 +3,34 @@ Roleplaying emotes and language - Griatch, 2015 """ -from .rpsystem import EmoteError, SdescError, RecogError, LanguageError # noqa -from .rpsystem import parse_language, parse_sdescs_and_recogs, send_emote # noqa -from .rpsystem import SdescHandler, RecogHandler # noqa -from .rpsystem import RPCommand, CmdEmote, CmdSay, CmdSdesc, CmdPose, CmdRecog, CmdMask # noqa -from .rpsystem import RPSystemCmdSet # noqa +from .rplanguage import LanguageExistsError # noqa +from .rplanguage import LanguageHandler # noqa +from .rplanguage import ( + LanguageError, + add_language, + available_languages, + obfuscate_language, + obfuscate_whisper, +) +from .rpsystem import CmdSay # noqa +from .rpsystem import ContribRPCharacter # noqa from .rpsystem import ContribRPObject # noqa from .rpsystem import ContribRPRoom # noqa -from .rpsystem import ContribRPCharacter # noqa - -from .rplanguage import LanguageError, LanguageExistsError # noqa -from .rplanguage import LanguageHandler # noqa -from .rplanguage import obfuscate_language, obfuscate_whisper # noqa -from .rplanguage import add_language, available_languages # noqa +from .rpsystem import RPSystemCmdSet # noqa +from .rpsystem import ( + CmdEmote, + CmdMask, + CmdPose, + CmdRecog, + CmdSdesc, + EmoteError, + LanguageError, + RecogError, + RecogHandler, + RPCommand, + SdescError, + SdescHandler, + parse_language, + parse_sdescs_and_recogs, + send_emote, +) diff --git a/evennia/contrib/rpg/rpsystem/rpsystem.py b/evennia/contrib/rpg/rpsystem/rpsystem.py index 25a4a9f13b..73679e9e70 100644 --- a/evennia/contrib/rpg/rpsystem/rpsystem.py +++ b/evennia/contrib/rpg/rpsystem/rpsystem.py @@ -152,6 +152,7 @@ import re from string import punctuation from django.conf import settings + from evennia.commands.cmdset import CmdSet from evennia.commands.command import Command from evennia.objects.models import ObjectDB diff --git a/evennia/contrib/rpg/rpsystem/tests.py b/evennia/contrib/rpg/rpsystem/tests.py index 178b195bd9..779c6925ac 100644 --- a/evennia/contrib/rpg/rpsystem/tests.py +++ b/evennia/contrib/rpg/rpsystem/tests.py @@ -3,13 +3,14 @@ Tests for RP system """ import time + from anything import Anything + +from evennia import create_object from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils.test_resources import BaseEvenniaTest -from evennia import create_object -from . import rpsystem -from . import rplanguage +from . import rplanguage, rpsystem mtrans = {"testing": "1", "is": "2", "a": "3", "human": "4"} atrans = ["An", "automated", "advantageous", "repeatable", "faster"] diff --git a/evennia/contrib/rpg/traits/__init__.py b/evennia/contrib/rpg/traits/__init__.py index 64f32d0017..0b3b6aa02f 100644 --- a/evennia/contrib/rpg/traits/__init__.py +++ b/evennia/contrib/rpg/traits/__init__.py @@ -3,8 +3,8 @@ Traits - Whitenoise 2014, Griatch 2020 """ -from .traits import TraitException # noqa from .traits import MandatoryTraitKey # noqa +from .traits import TraitException # noqa from .traits import TraitHandler # noqa from .traits import TraitProperty # noqa -from .traits import Trait, StaticTrait, CounterTrait, GaugeTrait # noqa +from .traits import CounterTrait, GaugeTrait, StaticTrait, Trait # noqa diff --git a/evennia/contrib/rpg/traits/tests.py b/evennia/contrib/rpg/traits/tests.py index 3d67b478db..41998b8490 100644 --- a/evennia/contrib/rpg/traits/tests.py +++ b/evennia/contrib/rpg/traits/tests.py @@ -9,9 +9,10 @@ Unit test module for Trait classes. from copy import copy from anything import Something +from mock import MagicMock, patch + from evennia.objects.objects import DefaultCharacter from evennia.utils.test_resources import BaseEvenniaTestCase, EvenniaTest -from mock import MagicMock, patch from . import traits diff --git a/evennia/contrib/rpg/traits/traits.py b/evennia/contrib/rpg/traits/traits.py index 8de10df174..897d3db3af 100644 --- a/evennia/contrib/rpg/traits/traits.py +++ b/evennia/contrib/rpg/traits/traits.py @@ -457,6 +457,7 @@ from functools import total_ordering from time import time from django.conf import settings + from evennia.utils import logger from evennia.utils.dbserialize import _SaverDict from evennia.utils.utils import class_from_module, inherits_from, list_to_string, percent diff --git a/evennia/contrib/tutorials/batchprocessor/example_batch_code.py b/evennia/contrib/tutorials/batchprocessor/example_batch_code.py index 7a640ec2b6..980ce2abb5 100644 --- a/evennia/contrib/tutorials/batchprocessor/example_batch_code.py +++ b/evennia/contrib/tutorials/batchprocessor/example_batch_code.py @@ -44,9 +44,8 @@ # everything in this block will be appended to the beginning of # all other #CODE blocks when they are executed. -from evennia import create_object, search_object +from evennia import DefaultObject, create_object, search_object from evennia.contrib.tutorials import red_button -from evennia import DefaultObject limbo = search_object("Limbo")[0] diff --git a/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.py b/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.py index 177aa669e1..009928da1f 100644 --- a/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.py +++ b/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.py @@ -14,6 +14,7 @@ make sure to put it on yourself or you won't see any messages! """ import random + from evennia import DefaultScript diff --git a/evennia/contrib/tutorials/bodyfunctions/tests.py b/evennia/contrib/tutorials/bodyfunctions/tests.py index 2848a8dfb0..2c7d6c46e6 100644 --- a/evennia/contrib/tutorials/bodyfunctions/tests.py +++ b/evennia/contrib/tutorials/bodyfunctions/tests.py @@ -3,7 +3,9 @@ Tests for the bodyfunctions. """ from mock import Mock, patch + from evennia.utils.test_resources import BaseEvenniaTest + from .bodyfunctions import BodyFunctions diff --git a/evennia/contrib/tutorials/evadventure/tests/test_chargen.py b/evennia/contrib/tutorials/evadventure/tests/test_chargen.py index 7be208c0d1..b52ed9b3c8 100644 --- a/evennia/contrib/tutorials/evadventure/tests/test_chargen.py +++ b/evennia/contrib/tutorials/evadventure/tests/test_chargen.py @@ -5,9 +5,10 @@ Test chargen. from unittest.mock import MagicMock, patch +from parameterized import parameterized + from evennia import create_object from evennia.utils.test_resources import BaseEvenniaTest -from parameterized import parameterized from .. import chargen, enums, objects diff --git a/evennia/contrib/tutorials/evadventure/tests/test_commands.py b/evennia/contrib/tutorials/evadventure/tests/test_commands.py index 1c06a4124e..05f4d1fb58 100644 --- a/evennia/contrib/tutorials/evadventure/tests/test_commands.py +++ b/evennia/contrib/tutorials/evadventure/tests/test_commands.py @@ -6,6 +6,7 @@ Test the EvAdventure commands. from unittest.mock import call, patch from anything import Something + from evennia.utils.create import create_object from evennia.utils.test_resources import BaseEvenniaCommandTest diff --git a/evennia/contrib/tutorials/evadventure/tests/test_equipment.py b/evennia/contrib/tutorials/evadventure/tests/test_equipment.py index 7ea051c971..1dbe647887 100644 --- a/evennia/contrib/tutorials/evadventure/tests/test_equipment.py +++ b/evennia/contrib/tutorials/evadventure/tests/test_equipment.py @@ -6,9 +6,10 @@ Test the EvAdventure equipment handler. from unittest.mock import MagicMock, patch -from evennia.utils.test_resources import BaseEvenniaTest from parameterized import parameterized +from evennia.utils.test_resources import BaseEvenniaTest + from ..enums import Ability, WieldLocation from ..equipment import EquipmentError from .mixins import EvAdventureMixin diff --git a/evennia/contrib/tutorials/evadventure/tests/test_rules.py b/evennia/contrib/tutorials/evadventure/tests/test_rules.py index 8d6756336e..5514eb5609 100644 --- a/evennia/contrib/tutorials/evadventure/tests/test_rules.py +++ b/evennia/contrib/tutorials/evadventure/tests/test_rules.py @@ -6,9 +6,10 @@ Test the rules and chargen. from unittest.mock import MagicMock, call, patch from anything import Something -from evennia.utils.test_resources import BaseEvenniaTest from parameterized import parameterized +from evennia.utils.test_resources import BaseEvenniaTest + from .. import characters, enums, equipment, random_tables, rules from .mixins import EvAdventureMixin diff --git a/evennia/contrib/tutorials/mirror/mirror.py b/evennia/contrib/tutorials/mirror/mirror.py index 6f51e1b045..8acd5e23dd 100644 --- a/evennia/contrib/tutorials/mirror/mirror.py +++ b/evennia/contrib/tutorials/mirror/mirror.py @@ -5,9 +5,8 @@ A simple mirror object to experiment with. """ -from evennia import DefaultObject -from evennia.utils import make_iter, is_iter -from evennia import logger +from evennia import DefaultObject, logger +from evennia.utils import is_iter, make_iter class TutorialMirror(DefaultObject): diff --git a/evennia/contrib/tutorials/talking_npc/talking_npc.py b/evennia/contrib/tutorials/talking_npc/talking_npc.py index b7c90bf1e8..3e9aa0cb42 100644 --- a/evennia/contrib/tutorials/talking_npc/talking_npc.py +++ b/evennia/contrib/tutorials/talking_npc/talking_npc.py @@ -23,10 +23,9 @@ a lot more complex possibilities. """ -from evennia import DefaultObject, CmdSet, default_cmds +from evennia import CmdSet, DefaultObject, default_cmds from evennia.utils.evmenu import EvMenu - # Menu implementing the dialogue tree diff --git a/evennia/contrib/tutorials/talking_npc/tests.py b/evennia/contrib/tutorials/talking_npc/tests.py index 102816366f..9a33eccad0 100644 --- a/evennia/contrib/tutorials/talking_npc/tests.py +++ b/evennia/contrib/tutorials/talking_npc/tests.py @@ -4,6 +4,7 @@ Tutorial - talking NPC tests. """ from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils.create import create_object + from . import talking_npc diff --git a/evennia/contrib/tutorials/tutorial_world/__init__.py b/evennia/contrib/tutorials/tutorial_world/__init__.py index ee700e30ac..a9cc203f23 100644 --- a/evennia/contrib/tutorials/tutorial_world/__init__.py +++ b/evennia/contrib/tutorials/tutorial_world/__init__.py @@ -4,4 +4,4 @@ Tutorial world - Griatch, 2011, 2015 """ -from . import mob, objects, rooms, intro_menu # noqa +from . import intro_menu, mob, objects, rooms # noqa diff --git a/evennia/contrib/tutorials/tutorial_world/intro_menu.py b/evennia/contrib/tutorials/tutorial_world/intro_menu.py index 3bfdf52f72..9e8548cc3c 100644 --- a/evennia/contrib/tutorials/tutorial_world/intro_menu.py +++ b/evennia/contrib/tutorials/tutorial_world/intro_menu.py @@ -12,9 +12,8 @@ still create the goto-callbacks. """ -from evennia import create_object -from evennia import CmdSet -from evennia.utils.evmenu import parse_menu_template, EvMenu +from evennia import CmdSet, create_object +from evennia.utils.evmenu import EvMenu, parse_menu_template # Goto callbacks and helper resources for the menu diff --git a/evennia/contrib/tutorials/tutorial_world/mob.py b/evennia/contrib/tutorials/tutorial_world/mob.py index 59a8382412..6cfe761b44 100644 --- a/evennia/contrib/tutorials/tutorial_world/mob.py +++ b/evennia/contrib/tutorials/tutorial_world/mob.py @@ -7,10 +7,8 @@ object based on that mobile class. import random -from evennia import TICKER_HANDLER -from evennia import search_object -from evennia import Command, CmdSet -from evennia import logger +from evennia import TICKER_HANDLER, CmdSet, Command, logger, search_object + from . import objects as tut_objects diff --git a/evennia/contrib/tutorials/tutorial_world/objects.py b/evennia/contrib/tutorials/tutorial_world/objects.py index f8722dd7fc..414c52a544 100644 --- a/evennia/contrib/tutorials/tutorial_world/objects.py +++ b/evennia/contrib/tutorials/tutorial_world/objects.py @@ -21,9 +21,9 @@ TutorialWeaponRack import random -from evennia import DefaultObject, DefaultExit, Command, CmdSet -from evennia.utils import search, delay, dedent +from evennia import CmdSet, Command, DefaultExit, DefaultObject from evennia.prototypes.spawner import spawn +from evennia.utils import dedent, delay, search # ------------------------------------------------------------- # diff --git a/evennia/contrib/tutorials/tutorial_world/rooms.py b/evennia/contrib/tutorials/tutorial_world/rooms.py index 54a46c3fea..6d27118812 100644 --- a/evennia/contrib/tutorials/tutorial_world/rooms.py +++ b/evennia/contrib/tutorials/tutorial_world/rooms.py @@ -11,17 +11,27 @@ in a separate module (e.g. if they could have been re-used elsewhere.) import random -from evennia import TICKER_HANDLER -from evennia import CmdSet, Command, DefaultRoom, DefaultExit -from evennia import utils, create_object, search_object -from evennia import syscmdkeys, default_cmds -from .objects import LightSource # the system error-handling module is defined in the settings. We load the # given setting here using utils.object_from_module. This way we can use # it regardless of if we change settings later. from django.conf import settings +from evennia import ( + TICKER_HANDLER, + CmdSet, + Command, + DefaultExit, + DefaultRoom, + create_object, + default_cmds, + search_object, + syscmdkeys, + utils, +) + +from .objects import LightSource + _SEARCH_AT_RESULT = utils.object_from_module(settings.SEARCH_AT_RESULT) # ------------------------------------------------------------- diff --git a/evennia/contrib/tutorials/tutorial_world/tests.py b/evennia/contrib/tutorials/tutorial_world/tests.py index 8a0b722cf9..ca1cde3924 100644 --- a/evennia/contrib/tutorials/tutorial_world/tests.py +++ b/evennia/contrib/tutorials/tutorial_world/tests.py @@ -4,12 +4,16 @@ Test tutorial_world/mob """ from mock import patch -from twisted.trial.unittest import TestCase as TwistedTestCase from twisted.internet.base import DelayedCall +from twisted.trial.unittest import TestCase as TwistedTestCase + from evennia.commands.default.tests import BaseEvenniaCommandTest from evennia.utils.create import create_object -from evennia.utils.test_resources import BaseEvenniaTest, mockdelay, mockdeferLater -from . import mob, objects as tutobjects, rooms as tutrooms +from evennia.utils.test_resources import BaseEvenniaTest, mockdeferLater, mockdelay + +from . import mob +from . import objects as tutobjects +from . import rooms as tutrooms class TestTutorialWorldMob(BaseEvenniaTest): diff --git a/evennia/contrib/utils/auditing/outputs.py b/evennia/contrib/utils/auditing/outputs.py index d57881521e..d6d4f504ef 100644 --- a/evennia/contrib/utils/auditing/outputs.py +++ b/evennia/contrib/utils/auditing/outputs.py @@ -13,10 +13,11 @@ the easiest place to do it. Write a method and invoke it via Evennia contribution - Johnny 2017 """ -from evennia.utils.logger import log_file import json import syslog +from evennia.utils.logger import log_file + def to_file(data): """ diff --git a/evennia/contrib/utils/auditing/server.py b/evennia/contrib/utils/auditing/server.py index a868f21c2c..6646d07f32 100644 --- a/evennia/contrib/utils/auditing/server.py +++ b/evennia/contrib/utils/auditing/server.py @@ -9,10 +9,11 @@ import os import re import socket -from django.utils import timezone from django.conf import settings as ev_settings -from evennia.utils import utils, logger, mod_import, get_evennia_version +from django.utils import timezone + from evennia.server.serversession import ServerSession +from evennia.utils import get_evennia_version, logger, mod_import, utils # Attributes governing auditing of commands and where to send log objects AUDIT_CALLBACK = getattr( diff --git a/evennia/contrib/utils/auditing/tests.py b/evennia/contrib/utils/auditing/tests.py index bdd288315c..930cc1993e 100644 --- a/evennia/contrib/utils/auditing/tests.py +++ b/evennia/contrib/utils/auditing/tests.py @@ -3,13 +3,16 @@ Module containing the test cases for the Audit system. """ -from anything import Anything -from mock import patch -from django.test import override_settings -from evennia.utils.test_resources import BaseEvenniaTest import re -from .server import AuditedServerSession + +from anything import Anything +from django.test import override_settings +from mock import patch + from evennia.server.sessionhandler import SESSIONS +from evennia.utils.test_resources import BaseEvenniaTest + +from .server import AuditedServerSession @override_settings(AUDIT_MASKS=[]) diff --git a/evennia/contrib/utils/fieldfill/__init__.py b/evennia/contrib/utils/fieldfill/__init__.py index 1f214b2c8d..eb64a886ac 100644 --- a/evennia/contrib/utils/fieldfill/__init__.py +++ b/evennia/contrib/utils/fieldfill/__init__.py @@ -3,8 +3,8 @@ FieldFill contrib - Tim Ashley Jenkins 2018 """ -from .fieldfill import FieldEvMenu # noqa from .fieldfill import CmdTestMenu # noqa -from .fieldfill import init_fill_field # noqa -from .fieldfill import form_template_to_dict # noqa +from .fieldfill import FieldEvMenu # noqa from .fieldfill import display_formdata # noqa +from .fieldfill import form_template_to_dict # noqa +from .fieldfill import init_fill_field # noqa diff --git a/evennia/contrib/utils/fieldfill/fieldfill.py b/evennia/contrib/utils/fieldfill/fieldfill.py index 7dbd49f9ee..174c5e1bd6 100644 --- a/evennia/contrib/utils/fieldfill/fieldfill.py +++ b/evennia/contrib/utils/fieldfill/fieldfill.py @@ -139,9 +139,9 @@ Optional: the field to False or True. """ -from evennia.utils import evmenu, evtable, delay, list_to_string, logger from evennia import Command from evennia.server.sessionhandler import SESSIONS +from evennia.utils import delay, evmenu, evtable, list_to_string, logger class FieldEvMenu(evmenu.EvMenu): diff --git a/evennia/contrib/utils/git_integration/git_integration.py b/evennia/contrib/utils/git_integration/git_integration.py index 770837e586..cf50cc9fdd 100644 --- a/evennia/contrib/utils/git_integration/git_integration.py +++ b/evennia/contrib/utils/git_integration/git_integration.py @@ -1,11 +1,12 @@ -from django.conf import settings -from evennia import CmdSet, InterruptCommand -from evennia.utils.utils import list_to_string -from evennia.commands.default.muxcommand import MuxCommand -from evennia.server.sessionhandler import SESSIONS +import datetime import git -import datetime +from django.conf import settings + +from evennia import CmdSet, InterruptCommand +from evennia.commands.default.muxcommand import MuxCommand +from evennia.server.sessionhandler import SESSIONS +from evennia.utils.utils import list_to_string class GitCommand(MuxCommand): diff --git a/evennia/contrib/utils/git_integration/tests.py b/evennia/contrib/utils/git_integration/tests.py index 5e99af6b0e..194d510f8e 100644 --- a/evennia/contrib/utils/git_integration/tests.py +++ b/evennia/contrib/utils/git_integration/tests.py @@ -3,13 +3,14 @@ Tests of git. """ -from evennia.utils.test_resources import EvenniaTest -from evennia.contrib.utils.git_integration.git_integration import GitCommand -from evennia.utils.utils import list_to_string +import datetime import git import mock -import datetime + +from evennia.contrib.utils.git_integration.git_integration import GitCommand +from evennia.utils.test_resources import EvenniaTest +from evennia.utils.utils import list_to_string class TestGitIntegration(EvenniaTest): diff --git a/evennia/contrib/utils/name_generator/namegen.py b/evennia/contrib/utils/name_generator/namegen.py index 3c2d4cf9bd..a2ddf73b41 100644 --- a/evennia/contrib/utils/name_generator/namegen.py +++ b/evennia/contrib/utils/name_generator/namegen.py @@ -69,6 +69,7 @@ NAMEGEN_FANTASY_RULES = { import random import re from os import path + from django.conf import settings from evennia.utils.utils import is_iter diff --git a/evennia/contrib/utils/name_generator/tests.py b/evennia/contrib/utils/name_generator/tests.py index 5df5cf575c..93e28b2a0c 100644 --- a/evennia/contrib/utils/name_generator/tests.py +++ b/evennia/contrib/utils/name_generator/tests.py @@ -2,8 +2,8 @@ Tests for the Random Name Generator """ -from evennia.utils.test_resources import BaseEvenniaTest from evennia.contrib.utils.name_generator import namegen +from evennia.utils.test_resources import BaseEvenniaTest _INVALID_STYLES = { "missing_keys": { diff --git a/evennia/contrib/utils/random_string_generator/__init__.py b/evennia/contrib/utils/random_string_generator/__init__.py index 67b1030955..7ce3abbe6f 100644 --- a/evennia/contrib/utils/random_string_generator/__init__.py +++ b/evennia/contrib/utils/random_string_generator/__init__.py @@ -5,4 +5,4 @@ Pseudo-random generator - vlgeoff 2017 from .random_string_generator import RandomStringGenerator # noqa from .random_string_generator import RandomStringGeneratorScript # noqa -from .random_string_generator import RejectedRegex, ExhaustedGenerator # noqa +from .random_string_generator import ExhaustedGenerator, RejectedRegex # noqa diff --git a/evennia/contrib/utils/random_string_generator/random_string_generator.py b/evennia/contrib/utils/random_string_generator/random_string_generator.py index 633bfcf189..83fb864935 100644 --- a/evennia/contrib/utils/random_string_generator/random_string_generator.py +++ b/evennia/contrib/utils/random_string_generator/random_string_generator.py @@ -49,10 +49,10 @@ available. """ -from random import choice, randint, seed import re import string import time +from random import choice, randint, seed from evennia import DefaultScript, ScriptDB from evennia.utils.create import create_script diff --git a/evennia/contrib/utils/random_string_generator/tests.py b/evennia/contrib/utils/random_string_generator/tests.py index dbaea1589d..47bfd1d7c8 100644 --- a/evennia/contrib/utils/random_string_generator/tests.py +++ b/evennia/contrib/utils/random_string_generator/tests.py @@ -4,6 +4,7 @@ Random string tests. """ from evennia.utils.test_resources import BaseEvenniaTest + from . import random_string_generator SIMPLE_GENERATOR = random_string_generator.RandomStringGenerator("simple", "[01]{2}") diff --git a/evennia/contrib/utils/tree_select/tests.py b/evennia/contrib/utils/tree_select/tests.py index 163c3a3b3c..54b43c84a2 100644 --- a/evennia/contrib/utils/tree_select/tests.py +++ b/evennia/contrib/utils/tree_select/tests.py @@ -3,9 +3,10 @@ Test tree select """ -from evennia.utils.test_resources import BaseEvenniaTest -from . import tree_select from evennia.contrib.utils.fieldfill import fieldfill +from evennia.utils.test_resources import BaseEvenniaTest + +from . import tree_select TREE_MENU_TESTSTR = """Foo Bar diff --git a/evennia/contrib/utils/tree_select/tree_select.py b/evennia/contrib/utils/tree_select/tree_select.py index a74c1c611a..eff0420b12 100644 --- a/evennia/contrib/utils/tree_select/tree_select.py +++ b/evennia/contrib/utils/tree_select/tree_select.py @@ -158,9 +158,9 @@ character's command set. """ +from evennia import Command from evennia.utils import evmenu from evennia.utils.logger import log_trace -from evennia import Command def init_tree_selection( diff --git a/evennia/game_template/server/conf/connection_screens.py b/evennia/game_template/server/conf/connection_screens.py index adfcd73022..9ef7d5fcf2 100644 --- a/evennia/game_template/server/conf/connection_screens.py +++ b/evennia/game_template/server/conf/connection_screens.py @@ -21,6 +21,7 @@ of the screen is done by the unlogged-in "look" command. """ from django.conf import settings + from evennia import utils CONNECTION_SCREEN = """ diff --git a/evennia/game_template/typeclasses/characters.py b/evennia/game_template/typeclasses/characters.py index 452cd8296d..fd5d219d15 100644 --- a/evennia/game_template/typeclasses/characters.py +++ b/evennia/game_template/typeclasses/characters.py @@ -8,6 +8,7 @@ creation commands. """ from evennia.objects.objects import DefaultCharacter + from .objects import ObjectParent diff --git a/evennia/game_template/typeclasses/exits.py b/evennia/game_template/typeclasses/exits.py index 4f1450dd15..8ccd996b8b 100644 --- a/evennia/game_template/typeclasses/exits.py +++ b/evennia/game_template/typeclasses/exits.py @@ -7,6 +7,7 @@ for allowing Characters to traverse the exit to its destination. """ from evennia.objects.objects import DefaultExit + from .objects import ObjectParent diff --git a/evennia/game_template/typeclasses/rooms.py b/evennia/game_template/typeclasses/rooms.py index 2954abb4d8..6aaabe0a13 100644 --- a/evennia/game_template/typeclasses/rooms.py +++ b/evennia/game_template/typeclasses/rooms.py @@ -6,6 +6,7 @@ Rooms are simple containers that has no location of their own. """ from evennia.objects.objects import DefaultRoom + from .objects import ObjectParent diff --git a/evennia/game_template/web/admin/urls.py b/evennia/game_template/web/admin/urls.py index f1040fd0da..196d574160 100644 --- a/evennia/game_template/web/admin/urls.py +++ b/evennia/game_template/web/admin/urls.py @@ -8,6 +8,7 @@ The main web/urls.py includes these routes for all urls starting with `admin/` from django.urls import path + from evennia.web.admin.urls import urlpatterns as evennia_admin_urlpatterns # add patterns here diff --git a/evennia/game_template/web/urls.py b/evennia/game_template/web/urls.py index e38eb472c9..673a10bf08 100644 --- a/evennia/game_template/web/urls.py +++ b/evennia/game_template/web/urls.py @@ -12,7 +12,7 @@ should modify urls.py in those sub directories. Search the Django documentation for "URL dispatcher" for more help. """ -from django.urls import path, include +from django.urls import include, path # default evennia patterns from evennia.web.urls import urlpatterns as evennia_default_urlpatterns diff --git a/evennia/game_template/web/webclient/urls.py b/evennia/game_template/web/webclient/urls.py index dcac27d948..2ddc509657 100644 --- a/evennia/game_template/web/webclient/urls.py +++ b/evennia/game_template/web/webclient/urls.py @@ -7,6 +7,7 @@ The main web/urls.py includes these routes for all urls starting with `webclient """ from django.urls import path + from evennia.web.webclient.urls import urlpatterns as evennia_webclient_urlpatterns # add patterns here diff --git a/evennia/game_template/web/website/urls.py b/evennia/game_template/web/website/urls.py index 236de84ade..0bffc16e64 100644 --- a/evennia/game_template/web/website/urls.py +++ b/evennia/game_template/web/website/urls.py @@ -7,6 +7,7 @@ so it can reroute to all website pages. """ from django.urls import path + from evennia.web.website.urls import urlpatterns as evennia_website_urlpatterns # add patterns here diff --git a/evennia/help/filehelp.py b/evennia/help/filehelp.py index 3825dd1358..8103adab75 100644 --- a/evennia/help/filehelp.py +++ b/evennia/help/filehelp.py @@ -66,13 +66,14 @@ An example of the contents of a module: """ from dataclasses import dataclass + from django.conf import settings from django.urls import reverse from django.utils.text import slugify -from evennia.utils.utils import variable_from_module, make_iter, all_from_module -from evennia.utils import logger -from evennia.utils.utils import lazy_property + from evennia.locks.lockhandler import LockHandler +from evennia.utils import logger +from evennia.utils.utils import all_from_module, lazy_property, make_iter, variable_from_module _DEFAULT_HELP_CATEGORY = settings.DEFAULT_HELP_CATEGORY diff --git a/evennia/help/manager.py b/evennia/help/manager.py index 841cc27d9f..ff8af1e7c9 100644 --- a/evennia/help/manager.py +++ b/evennia/help/manager.py @@ -2,10 +2,11 @@ Custom manager for HelpEntry objects. """ from django.db import IntegrityError -from evennia.utils import logger, utils -from evennia.typeclasses.managers import TypedObjectManager -from evennia.utils.utils import make_iter + from evennia.server import signals +from evennia.typeclasses.managers import TypedObjectManager +from evennia.utils import logger, utils +from evennia.utils.utils import make_iter __all__ = ("HelpEntryManager",) diff --git a/evennia/help/migrations/0001_initial.py b/evennia/help/migrations/0001_initial.py index 44637ac5d6..a2a22dfd67 100644 --- a/evennia/help/migrations/0001_initial.py +++ b/evennia/help/migrations/0001_initial.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/help/models.py b/evennia/help/models.py index 6f23154445..c86cab61a8 100644 --- a/evennia/help/models.py +++ b/evennia/help/models.py @@ -14,10 +14,10 @@ from django.db import models from django.urls import reverse from django.utils.text import slugify -from evennia.utils.idmapper.models import SharedMemoryModel from evennia.help.manager import HelpEntryManager -from evennia.typeclasses.models import Tag, TagHandler, AliasHandler from evennia.locks.lockhandler import LockHandler +from evennia.typeclasses.models import AliasHandler, Tag, TagHandler +from evennia.utils.idmapper.models import SharedMemoryModel from evennia.utils.utils import lazy_property __all__ = ("HelpEntry",) diff --git a/evennia/help/tests.py b/evennia/help/tests.py index ce0442ac74..6989fddfb3 100644 --- a/evennia/help/tests.py +++ b/evennia/help/tests.py @@ -5,9 +5,11 @@ command test-suite). """ from unittest import mock + +from evennia.help import filehelp +from evennia.help import utils as help_utils from evennia.utils.test_resources import TestCase from evennia.utils.utils import dedent -from evennia.help import filehelp, utils as help_utils class TestParseSubtopics(TestCase): diff --git a/evennia/help/utils.py b/evennia/help/utils.py index 85a254ac9e..d7ea8f311c 100644 --- a/evennia/help/utils.py +++ b/evennia/help/utils.py @@ -5,9 +5,10 @@ sub-categories. This is used primarily by the default `help` command. """ -from django.conf import settings import re +from django.conf import settings + # these are words that Lunr normally ignores but which we want to find # since we use them (e.g. as command names). # Lunr's default ignore-word list is found here: @@ -58,14 +59,13 @@ def help_search_with_index(query, candidate_entries, suggestion_maxnum=5, fields if not _LUNR: # we have to delay-load lunr because it messes with logging if it's imported # before twisted's logging has been set up - from lunr import lunr as _LUNR - from lunr.exceptions import QueryParseError as _LUNR_EXCEPTION from lunr import get_default_builder as _LUNR_GET_BUILDER + from lunr import lunr as _LUNR from lunr import stop_word_filter + from lunr.exceptions import QueryParseError as _LUNR_EXCEPTION from lunr.stemmer import stemmer # from lunr.trimmer import trimmer - # pre-create a lunr index-builder pipeline where we've removed some of # the stop-words from the default in lunr. diff --git a/evennia/locks/lockfuncs.py b/evennia/locks/lockfuncs.py index da4d47b03f..d9d2302561 100644 --- a/evennia/locks/lockfuncs.py +++ b/evennia/locks/lockfuncs.py @@ -17,6 +17,7 @@ a certain object type. from ast import literal_eval from django.conf import settings + from evennia.utils import utils _PERMISSION_HIERARCHY = [pe.lower() for pe in settings.PERMISSION_HIERARCHY] diff --git a/evennia/locks/lockhandler.py b/evennia/locks/lockhandler.py index 27fbc7de0a..c5fa0aa240 100644 --- a/evennia/locks/lockhandler.py +++ b/evennia/locks/lockhandler.py @@ -105,10 +105,12 @@ to any other identifier you can use. """ import re + from django.conf import settings -from evennia.utils import logger, utils from django.utils.translation import gettext as _ +from evennia.utils import logger, utils + __all__ = ("LockHandler", "LockException") WARNING_LOG = settings.LOCKWARNING_LOG_FILE diff --git a/evennia/objects/manager.py b/evennia/objects/manager.py index e6ae9164eb..7c49ac9547 100644 --- a/evennia/objects/manager.py +++ b/evennia/objects/manager.py @@ -2,14 +2,20 @@ Custom manager for Objects. """ import re -from django.db.models import Q -from django.conf import settings -from django.db.models.fields import exceptions -from evennia.typeclasses.managers import TypedObjectManager, TypeclassManager -from evennia.utils.utils import is_iter, make_iter, string_partial_matching -from evennia.utils.utils import class_from_module, dbid_to_obj -from evennia.server import signals +from django.conf import settings +from django.db.models import Q +from django.db.models.fields import exceptions + +from evennia.server import signals +from evennia.typeclasses.managers import TypeclassManager, TypedObjectManager +from evennia.utils.utils import ( + class_from_module, + dbid_to_obj, + is_iter, + make_iter, + string_partial_matching, +) __all__ = ("ObjectManager", "ObjectDBManager") _GA = object.__getattribute__ @@ -567,8 +573,8 @@ class ObjectDBManager(TypedObjectManager): new_destination = original_object.destination # create new object - from evennia.utils import create from evennia.scripts.models import ScriptDB + from evennia.utils import create new_object = create.create_object( typeclass_path, diff --git a/evennia/objects/migrations/0001_initial.py b/evennia/objects/migrations/0001_initial.py index 610b11beb7..e1357bbeae 100644 --- a/evennia/objects/migrations/0001_initial.py +++ b/evennia/objects/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/objects/migrations/0002_auto_20140917_0756.py b/evennia/objects/migrations/0002_auto_20140917_0756.py index 5cfafc720d..2aa93f4b71 100644 --- a/evennia/objects/migrations/0002_auto_20140917_0756.py +++ b/evennia/objects/migrations/0002_auto_20140917_0756.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations import django.db.models.deletion from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/objects/migrations/0003_defaultcharacter_defaultexit_defaultobject_defaultroom.py b/evennia/objects/migrations/0003_defaultcharacter_defaultexit_defaultobject_defaultroom.py index e53a616a07..8b75d23568 100644 --- a/evennia/objects/migrations/0003_defaultcharacter_defaultexit_defaultobject_defaultroom.py +++ b/evennia/objects/migrations/0003_defaultcharacter_defaultexit_defaultobject_defaultroom.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/objects/migrations/0004_auto_20150118_1622.py b/evennia/objects/migrations/0004_auto_20150118_1622.py index b77d5fdfa8..9ab5ab0155 100644 --- a/evennia/objects/migrations/0004_auto_20150118_1622.py +++ b/evennia/objects/migrations/0004_auto_20150118_1622.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models def convert_defaults(apps, schema_editor): diff --git a/evennia/objects/migrations/0005_auto_20150403_2339.py b/evennia/objects/migrations/0005_auto_20150403_2339.py index 592a0aa08a..8e3db75d34 100644 --- a/evennia/objects/migrations/0005_auto_20150403_2339.py +++ b/evennia/objects/migrations/0005_auto_20150403_2339.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/objects/migrations/0006_auto_20170606_1731.py b/evennia/objects/migrations/0006_auto_20170606_1731.py index 6128e4fe35..eda99ff60f 100644 --- a/evennia/objects/migrations/0006_auto_20170606_1731.py +++ b/evennia/objects/migrations/0006_auto_20170606_1731.py @@ -2,9 +2,10 @@ # Generated by Django 1.11.2 on 2017-06-06 17:31 +import re + import django.core.validators from django.db import migrations, models -import re class Migration(migrations.Migration): diff --git a/evennia/objects/migrations/0007_objectdb_db_account.py b/evennia/objects/migrations/0007_objectdb_db_account.py index aabc238a8b..3998a66eb5 100644 --- a/evennia/objects/migrations/0007_objectdb_db_account.py +++ b/evennia/objects/migrations/0007_objectdb_db_account.py @@ -2,8 +2,8 @@ # Generated by Django 1.11.2 on 2017-07-05 17:27 -from django.db import migrations, models, connection import django.db.models.deletion +from django.db import connection, migrations, models def _table_exists(db_cursor, tablename): diff --git a/evennia/objects/migrations/0009_remove_objectdb_db_player.py b/evennia/objects/migrations/0009_remove_objectdb_db_player.py index 4572057410..39d53e345d 100644 --- a/evennia/objects/migrations/0009_remove_objectdb_db_player.py +++ b/evennia/objects/migrations/0009_remove_objectdb_db_player.py @@ -2,7 +2,7 @@ # Generated by Django 1.11.2 on 2017-07-06 20:41 -from django.db import migrations, connection +from django.db import connection, migrations def _table_exists(db_cursor, tablename): diff --git a/evennia/objects/migrations/0010_auto_20190128_1820.py b/evennia/objects/migrations/0010_auto_20190128_1820.py index ea0396acb4..ee6c8105fe 100644 --- a/evennia/objects/migrations/0010_auto_20190128_1820.py +++ b/evennia/objects/migrations/0010_auto_20190128_1820.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.16 on 2019-01-28 18:20 -from django.conf import settings -import django.core.validators -from django.db import migrations, models -import django.db.models.deletion import re +import django.core.validators +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + class Migration(migrations.Migration): diff --git a/evennia/objects/migrations/0011_auto_20191025_0831.py b/evennia/objects/migrations/0011_auto_20191025_0831.py index 98d61b8797..6410abaaf9 100644 --- a/evennia/objects/migrations/0011_auto_20191025_0831.py +++ b/evennia/objects/migrations/0011_auto_20191025_0831.py @@ -1,8 +1,9 @@ # Generated by Django 2.2.6 on 2019-10-25 12:31 +import re + import django.core.validators from django.db import migrations, models -import re class Migration(migrations.Migration): diff --git a/evennia/objects/models.py b/evennia/objects/models.py index a282bafe0f..b58d48b177 100644 --- a/evennia/objects/models.py +++ b/evennia/objects/models.py @@ -19,6 +19,7 @@ from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from django.core.validators import validate_comma_separated_integer_list from django.db import models + from evennia.objects.manager import ObjectDBManager from evennia.typeclasses.models import TypedObject from evennia.utils import logger diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 586305c8f6..fe1282c2e5 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -13,6 +13,7 @@ from collections import defaultdict import inflect from django.conf import settings from django.utils.translation import gettext as _ + from evennia.commands import cmdset from evennia.commands.cmdsethandler import CmdSetHandler from evennia.objects.manager import ObjectManager diff --git a/evennia/prototypes/menus.py b/evennia/prototypes/menus.py index d47cfd5129..00c7f67e06 100644 --- a/evennia/prototypes/menus.py +++ b/evennia/prototypes/menus.py @@ -7,16 +7,17 @@ OLC Prototype menu nodes import json import re from random import choice -from django.db.models import Q + from django.conf import settings -from evennia.objects.models import ObjectDB -from evennia.utils.evmenu import EvMenu, list_node -from evennia.utils import evmore -from evennia.utils.ansi import strip_ansi -from evennia.utils import utils +from django.db.models import Q + from evennia.locks.lockhandler import get_all_lockfuncs +from evennia.objects.models import ObjectDB from evennia.prototypes import prototypes as protlib from evennia.prototypes import spawner +from evennia.utils import evmore, utils +from evennia.utils.ansi import strip_ansi +from evennia.utils.evmenu import EvMenu, list_node # ------------------------------------------------------------ # diff --git a/evennia/prototypes/prototypes.py b/evennia/prototypes/prototypes.py index b1155d7208..aa21641985 100644 --- a/evennia/prototypes/prototypes.py +++ b/evennia/prototypes/prototypes.py @@ -12,6 +12,7 @@ from django.conf import settings from django.core.paginator import Paginator from django.db.models import Q from django.utils.translation import gettext as _ + from evennia.locks.lockhandler import check_lockstring, validate_lockstring from evennia.objects.models import ObjectDB from evennia.scripts.scripts import DefaultScript diff --git a/evennia/prototypes/spawner.py b/evennia/prototypes/spawner.py index ffd66c9ae5..727a1b82f8 100644 --- a/evennia/prototypes/spawner.py +++ b/evennia/prototypes/spawner.py @@ -137,9 +137,10 @@ import copy import hashlib import time -import evennia from django.conf import settings from django.utils.translation import gettext as _ + +import evennia from evennia.objects.models import ObjectDB from evennia.prototypes import prototypes as protlib from evennia.prototypes.prototypes import ( diff --git a/evennia/prototypes/tests.py b/evennia/prototypes/tests.py index 7321142691..c4e77299e4 100644 --- a/evennia/prototypes/tests.py +++ b/evennia/prototypes/tests.py @@ -10,6 +10,7 @@ from time import time import mock from anything import Something from django.test.utils import override_settings + from evennia.prototypes import menus as olc_menus from evennia.prototypes import protfuncs as protofuncs from evennia.prototypes import prototypes as protlib diff --git a/evennia/scripts/manager.py b/evennia/scripts/manager.py index 8c3307e90a..b0a57df162 100644 --- a/evennia/scripts/manager.py +++ b/evennia/scripts/manager.py @@ -4,9 +4,10 @@ The custom manager for Scripts. from django.conf import settings from django.db.models import Q -from evennia.typeclasses.managers import TypedObjectManager, TypeclassManager -from evennia.utils.utils import make_iter, class_from_module, dbid_to_obj + from evennia.server import signals +from evennia.typeclasses.managers import TypeclassManager, TypedObjectManager +from evennia.utils.utils import class_from_module, dbid_to_obj, make_iter __all__ = ("ScriptManager", "ScriptDBManager") _GA = object.__getattribute__ @@ -258,8 +259,8 @@ class ScriptDBManager(TypedObjectManager): """ global _ObjectDB, _AccountDB if not _ObjectDB: - from evennia.objects.models import ObjectDB as _ObjectDB from evennia.accounts.models import AccountDB as _AccountDB + from evennia.objects.models import ObjectDB as _ObjectDB typeclass = typeclass if typeclass else settings.BASE_SCRIPT_TYPECLASS diff --git a/evennia/scripts/migrations/0001_initial.py b/evennia/scripts/migrations/0001_initial.py index fd07a93171..8f8af93f1c 100644 --- a/evennia/scripts/migrations/0001_initial.py +++ b/evennia/scripts/migrations/0001_initial.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/scripts/migrations/0002_auto_20150118_1625.py b/evennia/scripts/migrations/0002_auto_20150118_1625.py index 0c9889148e..229928b263 100644 --- a/evennia/scripts/migrations/0002_auto_20150118_1625.py +++ b/evennia/scripts/migrations/0002_auto_20150118_1625.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models def convert_defaults(apps, schema_editor): diff --git a/evennia/scripts/migrations/0003_checksessions_defaultscript_donothing_scriptbase_store_validatechannelhandler_validateidmappercache_.py b/evennia/scripts/migrations/0003_checksessions_defaultscript_donothing_scriptbase_store_validatechannelhandler_validateidmappercache_.py index 49c791ad4a..ea05481ef6 100644 --- a/evennia/scripts/migrations/0003_checksessions_defaultscript_donothing_scriptbase_store_validatechannelhandler_validateidmappercache_.py +++ b/evennia/scripts/migrations/0003_checksessions_defaultscript_donothing_scriptbase_store_validatechannelhandler_validateidmappercache_.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/scripts/migrations/0004_auto_20150306_1354.py b/evennia/scripts/migrations/0004_auto_20150306_1354.py index fad0ad151f..8991b058ea 100644 --- a/evennia/scripts/migrations/0004_auto_20150306_1354.py +++ b/evennia/scripts/migrations/0004_auto_20150306_1354.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models def remove_manage_scripts(apps, schema_editor): diff --git a/evennia/scripts/migrations/0005_auto_20150306_1441.py b/evennia/scripts/migrations/0005_auto_20150306_1441.py index 243ba29d3e..aba3361bb8 100644 --- a/evennia/scripts/migrations/0005_auto_20150306_1441.py +++ b/evennia/scripts/migrations/0005_auto_20150306_1441.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/scripts/migrations/0006_auto_20150310_2249.py b/evennia/scripts/migrations/0006_auto_20150310_2249.py index 9295741a4e..6b7a8dd1ba 100644 --- a/evennia/scripts/migrations/0006_auto_20150310_2249.py +++ b/evennia/scripts/migrations/0006_auto_20150310_2249.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models def remove_manage_scripts(apps, schema_editor): diff --git a/evennia/scripts/migrations/0007_auto_20150403_2339.py b/evennia/scripts/migrations/0007_auto_20150403_2339.py index 9c4318280a..39679dbf32 100644 --- a/evennia/scripts/migrations/0007_auto_20150403_2339.py +++ b/evennia/scripts/migrations/0007_auto_20150403_2339.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/scripts/migrations/0009_scriptdb_db_account.py b/evennia/scripts/migrations/0009_scriptdb_db_account.py index c4b8aeb3d4..bdb7cee5a9 100644 --- a/evennia/scripts/migrations/0009_scriptdb_db_account.py +++ b/evennia/scripts/migrations/0009_scriptdb_db_account.py @@ -2,8 +2,8 @@ # Generated by Django 1.11.2 on 2017-07-05 17:27 -from django.db import migrations, models, connection import django.db.models.deletion +from django.db import connection, migrations, models def _table_exists(db_cursor, tablename): diff --git a/evennia/scripts/migrations/0011_remove_scriptdb_db_player.py b/evennia/scripts/migrations/0011_remove_scriptdb_db_player.py index 84980fa256..d141cbcdf7 100644 --- a/evennia/scripts/migrations/0011_remove_scriptdb_db_player.py +++ b/evennia/scripts/migrations/0011_remove_scriptdb_db_player.py @@ -2,7 +2,7 @@ # Generated by Django 1.11.2 on 2017-07-06 20:41 -from django.db import migrations, connection +from django.db import connection, migrations def _table_exists(db_cursor, tablename): diff --git a/evennia/scripts/migrations/0012_auto_20190128_1820.py b/evennia/scripts/migrations/0012_auto_20190128_1820.py index 2918131e65..502d2f4d0d 100644 --- a/evennia/scripts/migrations/0012_auto_20190128_1820.py +++ b/evennia/scripts/migrations/0012_auto_20190128_1820.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.16 on 2019-01-28 18:20 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/evennia/scripts/models.py b/evennia/scripts/models.py index 29ad388b15..6bff24c571 100644 --- a/evennia/scripts/models.py +++ b/evennia/scripts/models.py @@ -25,10 +25,11 @@ Common examples of uses of Scripts: """ from django.conf import settings -from django.db import models from django.core.exceptions import ObjectDoesNotExist -from evennia.typeclasses.models import TypedObject +from django.db import models + from evennia.scripts.manager import ScriptDBManager +from evennia.typeclasses.models import TypedObject from evennia.utils.utils import dbref, to_str __all__ = ("ScriptDB",) diff --git a/evennia/scripts/monitorhandler.py b/evennia/scripts/monitorhandler.py index 91c50b90a0..ea3808826e 100644 --- a/evennia/scripts/monitorhandler.py +++ b/evennia/scripts/monitorhandler.py @@ -11,12 +11,11 @@ functionality: """ import inspect - from collections import defaultdict + from evennia.server.models import ServerConfig +from evennia.utils import logger, variable_from_module from evennia.utils.dbserialize import dbserialize, dbunserialize -from evennia.utils import logger -from evennia.utils import variable_from_module _SA = object.__setattr__ _GA = object.__getattribute__ diff --git a/evennia/scripts/scripthandler.py b/evennia/scripts/scripthandler.py index 2c3e2fc78a..8b4dc47c7d 100644 --- a/evennia/scripts/scripthandler.py +++ b/evennia/scripts/scripthandler.py @@ -5,12 +5,11 @@ added to all game objects. You access it through the property `scripts` on the game object. """ -from evennia.scripts.models import ScriptDB -from evennia.utils import create -from evennia.utils import logger - from django.utils.translation import gettext as _ +from evennia.scripts.models import ScriptDB +from evennia.utils import create, logger + class ScriptHandler(object): """ diff --git a/evennia/scripts/scripts.py b/evennia/scripts/scripts.py index 7abd589c34..203abfbe5f 100644 --- a/evennia/scripts/scripts.py +++ b/evennia/scripts/scripts.py @@ -6,12 +6,13 @@ ability to run timers. """ from django.utils.translation import gettext as _ +from twisted.internet.defer import Deferred, maybeDeferred +from twisted.internet.task import LoopingCall + from evennia.scripts.manager import ScriptManager from evennia.scripts.models import ScriptDB from evennia.typeclasses.models import TypeclassBase from evennia.utils import create, logger -from twisted.internet.defer import Deferred, maybeDeferred -from twisted.internet.task import LoopingCall __all__ = ["DefaultScript", "DoNothing", "Store"] diff --git a/evennia/scripts/taskhandler.py b/evennia/scripts/taskhandler.py index d0401bedb1..9e0e83b9db 100644 --- a/evennia/scripts/taskhandler.py +++ b/evennia/scripts/taskhandler.py @@ -3,14 +3,15 @@ Module containing the task handler for Evennia deferred tasks, persistent or not """ from datetime import datetime, timedelta +from pickle import PickleError from twisted.internet import reactor -from pickle import PickleError -from twisted.internet.task import deferLater from twisted.internet.defer import CancelledError as DefCancelledError +from twisted.internet.task import deferLater + from evennia.server.models import ServerConfig -from evennia.utils.logger import log_err from evennia.utils.dbserialize import dbserialize, dbunserialize +from evennia.utils.logger import log_err TASK_HANDLER = None diff --git a/evennia/scripts/tests.py b/evennia/scripts/tests.py index 3d0e7d1308..7e3cb46ddb 100644 --- a/evennia/scripts/tests.py +++ b/evennia/scripts/tests.py @@ -1,11 +1,12 @@ from unittest import TestCase, mock + from parameterized import parameterized from evennia import DefaultScript -from evennia.scripts.models import ScriptDB, ObjectDoesNotExist +from evennia.scripts.models import ObjectDoesNotExist, ScriptDB +from evennia.scripts.scripts import DoNothing, ExtendedLoopingCall from evennia.utils.create import create_script from evennia.utils.test_resources import BaseEvenniaTest -from evennia.scripts.scripts import DoNothing, ExtendedLoopingCall class TestScript(BaseEvenniaTest): diff --git a/evennia/scripts/tickerhandler.py b/evennia/scripts/tickerhandler.py index 3b2c95843a..100f5d9c3b 100644 --- a/evennia/scripts/tickerhandler.py +++ b/evennia/scripts/tickerhandler.py @@ -67,13 +67,14 @@ call the handler's `save()` and `restore()` methods when the server reboots. """ import inspect -from twisted.internet.defer import inlineCallbacks from django.core.exceptions import ObjectDoesNotExist +from twisted.internet.defer import inlineCallbacks + from evennia.scripts.scripts import ExtendedLoopingCall from evennia.server.models import ServerConfig -from evennia.utils.logger import log_trace, log_err +from evennia.utils import inherits_from, variable_from_module from evennia.utils.dbserialize import dbserialize, dbunserialize, pack_dbobj -from evennia.utils import variable_from_module, inherits_from +from evennia.utils.logger import log_err, log_trace _GA = object.__getattribute__ _SA = object.__setattr__ diff --git a/evennia/server/amp_client.py b/evennia/server/amp_client.py index beef408584..7e4d7b2bd6 100644 --- a/evennia/server/amp_client.py +++ b/evennia/server/amp_client.py @@ -5,9 +5,11 @@ Portal. This module sets up the Client-side communication. """ import os + from django.conf import settings -from evennia.server.portal import amp from twisted.internet import protocol + +from evennia.server.portal import amp from evennia.utils import logger from evennia.utils.utils import class_from_module diff --git a/evennia/server/connection_wizard.py b/evennia/server/connection_wizard.py index b8eddb6478..c672804d69 100644 --- a/evennia/server/connection_wizard.py +++ b/evennia/server/connection_wizard.py @@ -2,10 +2,12 @@ Link Evennia to external resources (wizard plugin for evennia_launcher) """ +import pprint import sys from os import path -import pprint + from django.conf import settings + from evennia.utils.utils import list_to_string, mod_import diff --git a/evennia/server/game_index_client/client.py b/evennia/server/game_index_client/client.py index 6cf978621a..f2d354cdda 100644 --- a/evennia/server/game_index_client/client.py +++ b/evennia/server/game_index_client/client.py @@ -2,16 +2,16 @@ The client for sending data to the Evennia Game Index """ -import urllib.request, urllib.parse, urllib.error import platform +import urllib.error +import urllib.parse +import urllib.request import django from django.conf import settings -from twisted.internet import defer -from twisted.internet import protocol -from twisted.internet import reactor +from twisted.internet import defer, protocol, reactor from twisted.internet.defer import inlineCallbacks -from twisted.web.client import Agent, _HTTP11ClientFactory, HTTPConnectionPool +from twisted.web.client import Agent, HTTPConnectionPool, _HTTP11ClientFactory from twisted.web.http_headers import Headers from twisted.web.iweb import IBodyProducer from zope.interface import implementer diff --git a/evennia/server/game_index_client/service.py b/evennia/server/game_index_client/service.py index 0b1f8ecc47..aba230b672 100644 --- a/evennia/server/game_index_client/service.py +++ b/evennia/server/game_index_client/service.py @@ -2,11 +2,12 @@ Service for integrating the Evennia Game Index client into Evennia. """ +from twisted.application.service import Service from twisted.internet import reactor from twisted.internet.task import LoopingCall -from twisted.application.service import Service from evennia.utils import logger + from .client import EvenniaGameIndexClient # How many seconds to wait before triggering the first EGI check-in. diff --git a/evennia/server/initial_setup.py b/evennia/server/initial_setup.py index ec6eac257d..b77bcbaadf 100644 --- a/evennia/server/initial_setup.py +++ b/evennia/server/initial_setup.py @@ -8,13 +8,14 @@ Everything starts at handle_setup() import time + from django.conf import settings from django.utils.translation import gettext as _ + from evennia.accounts.models import AccountDB from evennia.server.models import ServerConfig from evennia.utils import create, logger - ERROR_NO_SUPERUSER = """ No superuser exists yet. The superuser is the 'owner' account on the Evennia server. Create a new superuser using the command diff --git a/evennia/server/inputfuncs.py b/evennia/server/inputfuncs.py index 5bab84bdf8..6cba74f78a 100644 --- a/evennia/server/inputfuncs.py +++ b/evennia/server/inputfuncs.py @@ -22,9 +22,11 @@ settings.INPUT_FUNC_MODULES. import importlib from codecs import lookup as codecs_lookup + from django.conf import settings -from evennia.commands.cmdhandler import cmdhandler + from evennia.accounts.models import AccountDB +from evennia.commands.cmdhandler import cmdhandler from evennia.utils.logger import log_err from evennia.utils.utils import to_str diff --git a/evennia/server/migrations/0001_initial.py b/evennia/server/migrations/0001_initial.py index 2db772f8f1..2c192c5d95 100644 --- a/evennia/server/migrations/0001_initial.py +++ b/evennia/server/migrations/0001_initial.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/server/migrations/0002_auto_20190128_2311.py b/evennia/server/migrations/0002_auto_20190128_2311.py index 609e276427..dae2b569de 100644 --- a/evennia/server/migrations/0002_auto_20190128_2311.py +++ b/evennia/server/migrations/0002_auto_20190128_2311.py @@ -2,11 +2,13 @@ # Generated by Django 1.11.16 on 2019-01-28 23:11 from base64 import b64encode -from django.db import migrations -import evennia.utils.picklefield -from pickle import dumps, loads -from evennia.utils.utils import to_bytes from copy import deepcopy +from pickle import dumps, loads + +from django.db import migrations + +import evennia.utils.picklefield +from evennia.utils.utils import to_bytes def forwards(apps, schema_editor): diff --git a/evennia/server/models.py b/evennia/server/models.py index 6aee55b2d8..8a1b8e58b6 100644 --- a/evennia/server/models.py +++ b/evennia/server/models.py @@ -10,12 +10,10 @@ manager's conf() method. """ from django.db import models -from evennia.utils.idmapper.models import WeakSharedMemoryModel -from evennia.utils import logger, utils -from evennia.utils.dbserialize import to_pickle, from_pickle from evennia.server.manager import ServerConfigManager -from evennia.utils import picklefield - +from evennia.utils import logger, picklefield, utils +from evennia.utils.dbserialize import from_pickle, to_pickle +from evennia.utils.idmapper.models import WeakSharedMemoryModel # ------------------------------------------------------------ # diff --git a/evennia/server/portal/amp.py b/evennia/server/portal/amp.py index c470a71db6..35f2e604f8 100644 --- a/evennia/server/portal/amp.py +++ b/evennia/server/portal/amp.py @@ -5,16 +5,17 @@ This module acts as a central place for AMP-servers and -clients to get commands """ +import pickle import time -from functools import wraps -from twisted.protocols import amp +import zlib # Used in Compressed class from collections import defaultdict, namedtuple +from functools import wraps from io import BytesIO from itertools import count -import zlib # Used in Compressed class -import pickle -from twisted.internet.defer import DeferredList, Deferred +from twisted.internet.defer import Deferred, DeferredList +from twisted.protocols import amp + from evennia.utils.utils import variable_from_module # delayed import diff --git a/evennia/server/portal/amp_server.py b/evennia/server/portal/amp_server.py index 092281e65e..681c611edf 100644 --- a/evennia/server/portal/amp_server.py +++ b/evennia/server/portal/amp_server.py @@ -6,10 +6,12 @@ these are the Evennia Server and the evennia launcher). """ import os import sys -from twisted.internet import protocol -from evennia.server.portal import amp +from subprocess import STDOUT, Popen + from django.conf import settings -from subprocess import Popen, STDOUT +from twisted.internet import protocol + +from evennia.server.portal import amp from evennia.utils import logger from evennia.utils.utils import class_from_module diff --git a/evennia/server/portal/grapevine.py b/evennia/server/portal/grapevine.py index 3c26552ca5..f1d835ae5a 100644 --- a/evennia/server/portal/grapevine.py +++ b/evennia/server/portal/grapevine.py @@ -10,12 +10,14 @@ the grapevine client to in-game channels. """ import json -from twisted.internet import protocol + +from autobahn.twisted.websocket import WebSocketClientFactory, WebSocketClientProtocol, connectWS from django.conf import settings +from twisted.internet import protocol + from evennia.server.session import Session from evennia.utils import get_evennia_version -from evennia.utils.logger import log_info, log_err -from autobahn.twisted.websocket import WebSocketClientProtocol, WebSocketClientFactory, connectWS +from evennia.utils.logger import log_err, log_info # There is only one at this time GRAPEVINE_URI = "wss://grapevine.haus/socket" diff --git a/evennia/server/portal/irc.py b/evennia/server/portal/irc.py index 002cb767d9..c28f7742b1 100644 --- a/evennia/server/portal/irc.py +++ b/evennia/server/portal/irc.py @@ -5,12 +5,13 @@ more Evennia channels. """ import re -from twisted.application import internet -from twisted.words.protocols import irc -from twisted.internet import protocol, reactor -from evennia.server.session import Session -from evennia.utils import logger, utils, ansi +from twisted.application import internet +from twisted.internet import protocol, reactor +from twisted.words.protocols import irc + +from evennia.server.session import Session +from evennia.utils import ansi, logger, utils # IRC colors diff --git a/evennia/server/portal/mssp.py b/evennia/server/portal/mssp.py index 1c953e8559..3f57566945 100644 --- a/evennia/server/portal/mssp.py +++ b/evennia/server/portal/mssp.py @@ -11,6 +11,7 @@ active players and so on. """ from django.conf import settings + from evennia.utils import utils MSSP = bytes([70]) # b"\x46" diff --git a/evennia/server/portal/mxp.py b/evennia/server/portal/mxp.py index 80bad0e566..af3e5d1e0d 100644 --- a/evennia/server/portal/mxp.py +++ b/evennia/server/portal/mxp.py @@ -14,6 +14,7 @@ http://www.gammon.com.au/mushclient/addingservermxp.htm """ import re + from django.conf import settings LINKS_SUB = re.compile(r"\|lc(.*?)\|lt(.*?)\|le", re.DOTALL) diff --git a/evennia/server/portal/naws.py b/evennia/server/portal/naws.py index 621bbb22bd..ab7e892712 100644 --- a/evennia/server/portal/naws.py +++ b/evennia/server/portal/naws.py @@ -10,6 +10,7 @@ client and update it when the size changes """ from codecs import encode as codecs_encode + from django.conf import settings NAWS = bytes([31]) # b"\x1f" diff --git a/evennia/server/portal/portal.py b/evennia/server/portal/portal.py index e52456e37b..1510720e3b 100644 --- a/evennia/server/portal/portal.py +++ b/evennia/server/portal/portal.py @@ -7,17 +7,16 @@ sets up all the networking features. (this is done automatically by game/evennia.py). """ -import sys import os +import sys import time - -from os.path import dirname, abspath -from twisted.application import internet, service -from twisted.internet.task import LoopingCall -from twisted.internet import protocol, reactor -from twisted.logger import globalLogPublisher +from os.path import abspath, dirname import django +from twisted.application import internet, service +from twisted.internet import protocol, reactor +from twisted.internet.task import LoopingCall +from twisted.logger import globalLogPublisher django.setup() from django.conf import settings @@ -27,11 +26,10 @@ import evennia evennia._init() -from evennia.utils.utils import get_evennia_version, mod_import, make_iter, class_from_module from evennia.server.portal.portalsessionhandler import PORTAL_SESSIONS -from evennia.utils import logger from evennia.server.webserver import EvenniaReverseProxyResource - +from evennia.utils import logger +from evennia.utils.utils import class_from_module, get_evennia_version, make_iter, mod_import # we don't need a connection to the database so close it right away try: @@ -394,9 +392,10 @@ if WEBSERVER_ENABLED: if WEBSOCKET_CLIENT_ENABLED and not websocket_started: # start websocket client port for the webclient # we only support one websocket client - from evennia.server.portal import webclient # noqa from autobahn.twisted.websocket import WebSocketServerFactory + from evennia.server.portal import webclient # noqa + w_interface = WEBSOCKET_CLIENT_INTERFACE w_ifacestr = "" if w_interface not in ("0.0.0.0", "::") or len(WEBSERVER_INTERFACES) > 1: diff --git a/evennia/server/portal/portalsessionhandler.py b/evennia/server/portal/portalsessionhandler.py index 3b9e5fca55..47fd22578c 100644 --- a/evennia/server/portal/portalsessionhandler.py +++ b/evennia/server/portal/portalsessionhandler.py @@ -6,13 +6,15 @@ Sessionhandler for portal sessions. import time from collections import deque, namedtuple -from twisted.internet import reactor + from django.conf import settings +from django.utils.translation import gettext as _ +from twisted.internet import reactor + +from evennia.server.portal.amp import PCONN, PCONNSYNC, PDISCONN, PDISCONNALL from evennia.server.sessionhandler import SessionHandler -from evennia.server.portal.amp import PCONN, PDISCONN, PCONNSYNC, PDISCONNALL from evennia.utils.logger import log_trace from evennia.utils.utils import class_from_module -from django.utils.translation import gettext as _ # module import _MOD_IMPORT = None diff --git a/evennia/server/portal/rss.py b/evennia/server/portal/rss.py index 51f9c8677a..fdd5b32d2b 100644 --- a/evennia/server/portal/rss.py +++ b/evennia/server/portal/rss.py @@ -5,8 +5,9 @@ This connects an RSS feed to an in-game Evennia channel, sending messages to the channel whenever the feed updates. """ -from twisted.internet import task, threads from django.conf import settings +from twisted.internet import task, threads + from evennia.server.session import Session from evennia.utils import logger diff --git a/evennia/server/portal/ssh.py b/evennia/server/portal/ssh.py index abd8d2a0b7..745ddb172c 100644 --- a/evennia/server/portal/ssh.py +++ b/evennia/server/portal/ssh.py @@ -12,9 +12,9 @@ Using standard ssh client, import os import re +from twisted.conch.interfaces import IConchUser from twisted.cred.checkers import credentials from twisted.cred.portal import Portal -from twisted.conch.interfaces import IConchUser _SSH_IMPORT_ERROR = """ ERROR: Missing crypto library for SSH. Install it with @@ -33,19 +33,19 @@ try: except ImportError: raise ImportError(_SSH_IMPORT_ERROR) -from twisted.conch.ssh.userauth import SSHUserAuthServer -from twisted.conch.ssh import common -from twisted.conch.insults import insults -from twisted.conch.manhole_ssh import TerminalRealm, _Glue, ConchFactory -from twisted.conch.manhole import Manhole, recvline -from twisted.internet import defer, protocol -from twisted.conch import interfaces as iconch -from twisted.python import components from django.conf import settings +from twisted.conch import interfaces as iconch +from twisted.conch.insults import insults +from twisted.conch.manhole import Manhole, recvline +from twisted.conch.manhole_ssh import ConchFactory, TerminalRealm, _Glue +from twisted.conch.ssh import common +from twisted.conch.ssh.userauth import SSHUserAuthServer +from twisted.internet import defer, protocol +from twisted.python import components from evennia.accounts.models import AccountDB from evennia.utils import ansi -from evennia.utils.utils import to_str, class_from_module +from evennia.utils.utils import class_from_module, to_str _RE_N = re.compile(r"\|n$") _RE_SCREENREADER_REGEX = re.compile( diff --git a/evennia/server/portal/ssl.py b/evennia/server/portal/ssl.py index 9aca1b29ce..032f48d401 100644 --- a/evennia/server/portal/ssl.py +++ b/evennia/server/portal/ssl.py @@ -18,6 +18,7 @@ except ImportError as error: raise ImportError(errstr.format(err=error)) from django.conf import settings + from evennia.utils.utils import class_from_module _GAME_DIR = settings.GAME_DIR @@ -69,6 +70,7 @@ def verify_SSL_key_and_cert(keyfile, certfile): if not (os.path.exists(keyfile) and os.path.exists(certfile)): # key/cert does not exist. Create. import subprocess + from Crypto.PublicKey import RSA from twisted.conch.ssh.keys import Key diff --git a/evennia/server/portal/telnet.py b/evennia/server/portal/telnet.py index 5d764e34f7..cb577f3835 100644 --- a/evennia/server/portal/telnet.py +++ b/evennia/server/portal/telnet.py @@ -8,28 +8,31 @@ sessions etc. """ import re -from twisted.internet import protocol -from twisted.internet.task import LoopingCall -from twisted.conch.telnet import Telnet, StatefulTelnetProtocol + +from django.conf import settings from twisted.conch.telnet import ( - IAC, - NOP, - LINEMODE, - GA, - WILL, - WONT, ECHO, - NULL, - MODE, + GA, + IAC, + LINEMODE, LINEMODE_EDIT, LINEMODE_TRAPSIG, + MODE, + NOP, + NULL, + WILL, + WONT, + StatefulTelnetProtocol, + Telnet, ) -from django.conf import settings -from evennia.server.portal import ttype, mssp, telnet_oob, naws, suppress_ga -from evennia.server.portal.mccp import Mccp, mccp_compress, MCCP +from twisted.internet import protocol +from twisted.internet.task import LoopingCall + +from evennia.server.portal import mssp, naws, suppress_ga, telnet_oob, ttype +from evennia.server.portal.mccp import MCCP, Mccp, mccp_compress from evennia.server.portal.mxp import Mxp, mxp_parse from evennia.utils import ansi -from evennia.utils.utils import to_bytes, class_from_module +from evennia.utils.utils import class_from_module, to_bytes _RE_N = re.compile(r"\|n$") _RE_LEND = re.compile(rb"\n$|\r$|\r\n$|\r\x00$|", re.MULTILINE) diff --git a/evennia/server/portal/telnet_oob.py b/evennia/server/portal/telnet_oob.py index 3fee37719c..38012e9170 100644 --- a/evennia/server/portal/telnet_oob.py +++ b/evennia/server/portal/telnet_oob.py @@ -23,13 +23,14 @@ This implements the following telnet OOB communication protocols: ---- """ -import re import json -from evennia.utils.utils import is_iter +import re # General Telnet from twisted.conch.telnet import IAC, SB, SE +from evennia.utils.utils import is_iter + # MSDP-relevant telnet cmd/opt-codes MSDP = bytes([69]) MSDP_VAR = bytes([1]) diff --git a/evennia/server/portal/telnet_ssl.py b/evennia/server/portal/telnet_ssl.py index 508c89cce8..381e8d7ec7 100644 --- a/evennia/server/portal/telnet_ssl.py +++ b/evennia/server/portal/telnet_ssl.py @@ -26,6 +26,7 @@ except ImportError as error: raise ImportError(errstr.format(err=error)) from django.conf import settings + from evennia.server.portal.telnet import TelnetProtocol _GAME_DIR = settings.GAME_DIR diff --git a/evennia/server/portal/tests.py b/evennia/server/portal/tests.py index 81ea10432d..db906b2d15 100644 --- a/evennia/server/portal/tests.py +++ b/evennia/server/portal/tests.py @@ -8,35 +8,33 @@ try: except ImportError: import unittest -import sys -import string -import mock -import pickle import json +import pickle +import string +import sys + +import mock +from autobahn.twisted.websocket import WebSocketServerFactory +from mock import MagicMock, Mock +from twisted.conch.telnet import DO, DONT, IAC, NAWS, SB, SE, WILL +from twisted.internet.base import DelayedCall +from twisted.test import proto_helpers +from twisted.trial.unittest import TestCase as TwistedTestCase -from mock import Mock, MagicMock from evennia.server.portal import irc from evennia.utils.test_resources import BaseEvenniaTest -from twisted.conch.telnet import IAC, WILL, DONT, SB, SE, NAWS, DO -from twisted.test import proto_helpers -from twisted.trial.unittest import TestCase as TwistedTestCase -from twisted.internet.base import DelayedCall - -from .telnet import TelnetServerFactory, TelnetProtocol -from .portal import PORTAL_SESSIONS -from .suppress_ga import SUPPRESS_GA -from .naws import DEFAULT_HEIGHT, DEFAULT_WIDTH -from .ttype import TTYPE, IS +from .amp import AMP_MAXLEN, AMPMultiConnectionProtocol, MsgPortal2Server, MsgServer2Portal +from .amp_server import AMPServerFactory from .mccp import MCCP from .mssp import MSSP from .mxp import MXP +from .naws import DEFAULT_HEIGHT, DEFAULT_WIDTH +from .portal import PORTAL_SESSIONS +from .suppress_ga import SUPPRESS_GA +from .telnet import TelnetProtocol, TelnetServerFactory from .telnet_oob import MSDP, MSDP_VAL, MSDP_VAR - -from .amp import AMPMultiConnectionProtocol, MsgServer2Portal, MsgPortal2Server, AMP_MAXLEN -from .amp_server import AMPServerFactory - -from autobahn.twisted.websocket import WebSocketServerFactory +from .ttype import IS, TTYPE from .webclient import WebSocketClient diff --git a/evennia/server/portal/webclient.py b/evennia/server/portal/webclient.py index 4957d27757..fe79d56221 100644 --- a/evennia/server/portal/webclient.py +++ b/evennia/server/portal/webclient.py @@ -14,15 +14,17 @@ The most common inputfunc is "text", which takes just the text input from the command line and interprets it as an Evennia Command: `["text", ["look"], {}]` """ -import re -import json import html +import json +import re + +from autobahn.exception import Disconnected +from autobahn.twisted.websocket import WebSocketServerProtocol from django.conf import settings -from evennia.utils.utils import mod_import, class_from_module + from evennia.utils.ansi import parse_ansi from evennia.utils.text2html import parse_html -from autobahn.twisted.websocket import WebSocketServerProtocol -from autobahn.exception import Disconnected +from evennia.utils.utils import class_from_module, mod_import _RE_SCREENREADER_REGEX = re.compile( r"%s" % settings.SCREENREADER_REGEX_STRIP, re.DOTALL + re.MULTILINE diff --git a/evennia/server/portal/webclient_ajax.py b/evennia/server/portal/webclient_ajax.py index a9db360f5e..d6dc3c9fbf 100644 --- a/evennia/server/portal/webclient_ajax.py +++ b/evennia/server/portal/webclient_ajax.py @@ -17,20 +17,21 @@ http://localhost:4001/webclient.) to sessions connected over the webclient. """ +import html import json import re import time -import html -from twisted.web import server, resource -from twisted.internet.task import LoopingCall -from django.utils.functional import Promise from django.conf import settings -from evennia.utils.ansi import parse_ansi -from evennia.utils import utils -from evennia.utils.utils import to_bytes -from evennia.utils.text2html import parse_html +from django.utils.functional import Promise +from twisted.internet.task import LoopingCall +from twisted.web import resource, server + from evennia.server import session +from evennia.utils import utils +from evennia.utils.ansi import parse_ansi +from evennia.utils.text2html import parse_html +from evennia.utils.utils import to_bytes _CLIENT_SESSIONS = utils.mod_import(settings.SESSION_ENGINE).SessionStore _RE_SCREENREADER_REGEX = re.compile( diff --git a/evennia/server/profiling/dummyrunner.py b/evennia/server/profiling/dummyrunner.py index f7e6a1d67a..650090e132 100644 --- a/evennia/server/profiling/dummyrunner.py +++ b/evennia/server/profiling/dummyrunner.py @@ -32,15 +32,15 @@ for instructions on how to define this module. """ +import random import sys import time -import random from argparse import ArgumentParser -from twisted.conch import telnet -from twisted.internet import reactor, protocol -from twisted.internet.task import LoopingCall import django +from twisted.conch import telnet +from twisted.internet import protocol, reactor +from twisted.internet.task import LoopingCall django.setup() import evennia # noqa @@ -48,9 +48,10 @@ import evennia # noqa evennia._init() from django.conf import settings # noqa -from evennia.utils import mod_import, time_format # noqa -from evennia.commands.command import Command # noqa + from evennia.commands.cmdset import CmdSet # noqa +from evennia.commands.command import Command # noqa +from evennia.utils import mod_import, time_format # noqa from evennia.utils.ansi import strip_ansi # noqa # Load the dummyrunner settings module diff --git a/evennia/server/profiling/memplot.py b/evennia/server/profiling/memplot.py index b078a4962a..3f2d56dd5d 100644 --- a/evennia/server/profiling/memplot.py +++ b/evennia/server/profiling/memplot.py @@ -56,8 +56,8 @@ if __name__ == "__main__": # plot output from the file - from matplotlib import pyplot as pp import numpy + from matplotlib import pyplot as pp data = numpy.genfromtxt("../../../game/" + LOGFILE, delimiter=",") secs = data[:, 0] diff --git a/evennia/server/profiling/test_queries.py b/evennia/server/profiling/test_queries.py index 0c0090be15..ce3b9af660 100644 --- a/evennia/server/profiling/test_queries.py +++ b/evennia/server/profiling/test_queries.py @@ -4,8 +4,8 @@ query as well as count them for optimization testing. """ -import sys import os +import sys # sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))) # os.environ["DJANGO_SETTINGS_MODULE"] = "game.settings" diff --git a/evennia/server/profiling/tests.py b/evennia/server/profiling/tests.py index 2301c77776..ad0a3651ed 100644 --- a/evennia/server/profiling/tests.py +++ b/evennia/server/profiling/tests.py @@ -1,6 +1,7 @@ -from django.test import TestCase -from mock import Mock, patch, mock_open from anything import Something +from django.test import TestCase +from mock import Mock, mock_open, patch + from .dummyrunner_settings import ( c_creates_button, c_creates_obj, diff --git a/evennia/server/server.py b/evennia/server/server.py index 745dfeb480..db2548e8f9 100644 --- a/evennia/server/server.py +++ b/evennia/server/server.py @@ -31,6 +31,7 @@ from django.conf import settings from django.db import connection from django.db.utils import OperationalError from django.utils.translation import gettext as _ + from evennia.accounts.models import AccountDB from evennia.scripts.models import ScriptDB from evennia.server.models import ServerConfig diff --git a/evennia/server/serversession.py b/evennia/server/serversession.py index ffd91a9481..9cc7ddf80f 100644 --- a/evennia/server/serversession.py +++ b/evennia/server/serversession.py @@ -10,6 +10,7 @@ import time from django.conf import settings from django.utils import timezone + from evennia.commands.cmdsethandler import CmdSetHandler from evennia.comms.models import ChannelDB from evennia.scripts.monitorhandler import MONITOR_HANDLER diff --git a/evennia/server/session.py b/evennia/server/session.py index 25586a4fa5..c70c75234d 100644 --- a/evennia/server/session.py +++ b/evennia/server/session.py @@ -3,10 +3,10 @@ This module defines a generic session class. All connection instances (both on Portal and Server side) should inherit from this class. """ -from django.conf import settings - import time +from django.conf import settings + # ------------------------------------------------------------ # Server Session # ------------------------------------------------------------ diff --git a/evennia/server/sessionhandler.py b/evennia/server/sessionhandler.py index a69f8ed72f..875ddb0610 100644 --- a/evennia/server/sessionhandler.py +++ b/evennia/server/sessionhandler.py @@ -17,6 +17,7 @@ from codecs import decode as codecs_decode from django.conf import settings from django.utils.translation import gettext as _ + from evennia.commands.cmdhandler import CMD_LOGINSTART from evennia.server.portal import amp from evennia.server.signals import ( diff --git a/evennia/server/signals.py b/evennia/server/signals.py index 7f886a91a7..75909dd7bd 100644 --- a/evennia/server/signals.py +++ b/evennia/server/signals.py @@ -89,25 +89,21 @@ SIGNAL_CHANNEL_POST_CREATE = Signal() # Django default signals (https://docs.djangoproject.com/en/2.2/topics/signals/) -from django.db.models.signals import ( - pre_save, # Sent before a typeclass' .save is called. - post_save, # after " - pre_delete, # Sent before an object is deleted. - post_delete, # after " - m2m_changed, # Sent when a ManyToManyField changes. - pre_migrate, # Sent before migration starts - post_migrate, # after " - pre_init, # Sent at start of typeclass __init__ (before at_init) - post_init, # end -) -from django.core.signals import ( - request_started, # Sent when HTTP request begins. - request_finished, # " ends. -) -from django.test.signals import ( - setting_changed, # Sent when setting changes from override - template_rendered, # Sent when test system renders template -) +from django.core.signals import request_finished # " ends. +from django.core.signals import request_started # Sent when HTTP request begins. from django.db.backends.signals import ( - connection_created, # Sent when making initial connection to database -) + connection_created, +) # Sent when making initial connection to database +from django.db.models.signals import m2m_changed # Sent when a ManyToManyField changes. +from django.db.models.signals import post_delete # after " +from django.db.models.signals import post_init # end +from django.db.models.signals import post_migrate # after " +from django.db.models.signals import post_save # after " +from django.db.models.signals import pre_delete # Sent before an object is deleted. +from django.db.models.signals import pre_migrate # Sent before migration starts +from django.db.models.signals import pre_save # Sent before a typeclass' .save is called. +from django.db.models.signals import ( + pre_init, +) # Sent at start of typeclass __init__ (before at_init) +from django.test.signals import setting_changed # Sent when setting changes from override +from django.test.signals import template_rendered # Sent when test system renders template diff --git a/evennia/server/tests/test_amp_connection.py b/evennia/server/tests/test_amp_connection.py index 74da47dfdd..dbf3f83d03 100644 --- a/evennia/server/tests/test_amp_connection.py +++ b/evennia/server/tests/test_amp_connection.py @@ -4,19 +4,16 @@ Test AMP client """ import pickle -from model_mommy import mommy from unittest import TestCase from unittest.mock import MagicMock, patch -from twisted.trial.unittest import TestCase as TwistedTestCase -from evennia.server import amp_client -from evennia.server.portal import amp_server -from evennia.server.portal import amp -from evennia.server import server -from evennia.server.portal import portal -from evennia.server import serversession, session -from evennia.utils import create +from model_mommy import mommy from twisted.internet.base import DelayedCall +from twisted.trial.unittest import TestCase as TwistedTestCase + +from evennia.server import amp_client, server, serversession, session +from evennia.server.portal import amp, amp_server, portal +from evennia.utils import create DelayedCall.debug = True diff --git a/evennia/server/tests/test_initial_setup.py b/evennia/server/tests/test_initial_setup.py index b79ebd2f9a..fccc64b07d 100644 --- a/evennia/server/tests/test_initial_setup.py +++ b/evennia/server/tests/test_initial_setup.py @@ -3,9 +3,9 @@ Test initial startup procedure """ -from mock import MagicMock, patch from django.conf import settings from django.test import TestCase +from mock import MagicMock, patch from evennia.server import initial_setup diff --git a/evennia/server/tests/test_launcher.py b/evennia/server/tests/test_launcher.py index b22160e45b..5ce86fcd4e 100644 --- a/evennia/server/tests/test_launcher.py +++ b/evennia/server/tests/test_launcher.py @@ -5,15 +5,16 @@ Test the evennia launcher. import os import pickle + from anything import Something -from mock import patch, MagicMock, create_autospec +from mock import MagicMock, create_autospec, patch from twisted.internet import reactor +from twisted.internet.base import DelayedCall from twisted.trial.unittest import TestCase as TwistedTestCase + from evennia.server import evennia_launcher from evennia.server.portal import amp -from twisted.internet.base import DelayedCall - DelayedCall.debug = True diff --git a/evennia/server/tests/test_misc.py b/evennia/server/tests/test_misc.py index e0b91625d1..c1dee934d0 100644 --- a/evennia/server/tests/test_misc.py +++ b/evennia/server/tests/test_misc.py @@ -5,14 +5,13 @@ Testing various individual functionalities in the server package. """ import unittest + from django.test import TestCase - -from evennia.server.validators import EvenniaPasswordValidator -from evennia.utils.test_resources import BaseEvenniaTest - from django.test.runner import DiscoverRunner from evennia.server.throttle import Throttle +from evennia.server.validators import EvenniaPasswordValidator +from evennia.utils.test_resources import BaseEvenniaTest from ..deprecations import check_errors diff --git a/evennia/server/tests/test_server.py b/evennia/server/tests/test_server.py index a5bf8a825a..ca53cd5d65 100644 --- a/evennia/server/tests/test_server.py +++ b/evennia/server/tests/test_server.py @@ -4,8 +4,9 @@ Test the main server component """ from unittest import TestCase + from django.test import override_settings -from mock import MagicMock, patch, DEFAULT, call +from mock import DEFAULT, MagicMock, call, patch @patch("evennia.server.server.LoopingCall", new=MagicMock()) @@ -199,8 +200,8 @@ class TestServer(TestCase): class TestInitHooks(TestCase): def setUp(self): - from evennia.utils import create from evennia.server import server + from evennia.utils import create self.server = server diff --git a/evennia/server/tests/testrunner.py b/evennia/server/tests/testrunner.py index 69bd632461..1d6b63fa85 100644 --- a/evennia/server/tests/testrunner.py +++ b/evennia/server/tests/testrunner.py @@ -5,9 +5,10 @@ all over the code base and runs them. Runs as part of the Evennia's test suite with 'evennia test evennia" """ -from django.test.runner import DiscoverRunner from unittest import mock +from django.test.runner import DiscoverRunner + class EvenniaTestSuiteRunner(DiscoverRunner): """ diff --git a/evennia/server/throttle.py b/evennia/server/throttle.py index 17b18a6b71..3c58c58c0f 100644 --- a/evennia/server/throttle.py +++ b/evennia/server/throttle.py @@ -1,9 +1,11 @@ -from django.core.cache import caches -from collections import deque -from evennia.utils import logger import time +from collections import deque + +from django.core.cache import caches from django.utils.translation import gettext as _ +from evennia.utils import logger + class Throttle: """ diff --git a/evennia/server/validators.py b/evennia/server/validators.py index 2b4db29fe2..f03ce0b161 100644 --- a/evennia/server/validators.py +++ b/evennia/server/validators.py @@ -1,8 +1,10 @@ +import re + from django.conf import settings from django.core.exceptions import ValidationError from django.utils.translation import gettext as _ + from evennia.accounts.models import AccountDB -import re class EvenniaUsernameAvailabilityValidator: diff --git a/evennia/server/webserver.py b/evennia/server/webserver.py index 3a8b8a17c7..31e05bd0a9 100644 --- a/evennia/server/webserver.py +++ b/evennia/server/webserver.py @@ -14,18 +14,16 @@ a great example/aid on how to do this.) """ import urllib.parse from urllib.parse import quote as urlquote -from twisted.web import resource, http, server, static -from twisted.internet import reactor -from twisted.application import internet -from twisted.web.proxy import ReverseProxyResource -from twisted.web.server import NOT_DONE_YET -from twisted.python import threadpool -from twisted.internet import defer -from twisted.web.wsgi import WSGIResource from django.conf import settings from django.core.wsgi import get_wsgi_application - +from twisted.application import internet +from twisted.internet import defer, reactor +from twisted.python import threadpool +from twisted.web import http, resource, server, static +from twisted.web.proxy import ReverseProxyResource +from twisted.web.server import NOT_DONE_YET +from twisted.web.wsgi import WSGIResource from evennia.utils import logger diff --git a/evennia/typeclasses/attributes.py b/evennia/typeclasses/attributes.py index 68ef3101c9..ca72d1332c 100644 --- a/evennia/typeclasses/attributes.py +++ b/evennia/typeclasses/attributes.py @@ -8,20 +8,19 @@ which is a non-db version of Attributes. """ -import re import fnmatch - +import re from collections import defaultdict -from django.db import models from django.conf import settings +from django.db import models from django.utils.encoding import smart_str from evennia.locks.lockhandler import LockHandler +from evennia.utils.dbserialize import from_pickle, to_pickle from evennia.utils.idmapper.models import SharedMemoryModel -from evennia.utils.dbserialize import to_pickle, from_pickle from evennia.utils.picklefield import PickledObjectField -from evennia.utils.utils import lazy_property, to_str, make_iter, is_iter +from evennia.utils.utils import is_iter, lazy_property, make_iter, to_str _TYPECLASS_AGGRESSIVE_CACHE = settings.TYPECLASS_AGGRESSIVE_CACHE diff --git a/evennia/typeclasses/managers.py b/evennia/typeclasses/managers.py index c27e5a04e7..a9fc9a9f7b 100644 --- a/evennia/typeclasses/managers.py +++ b/evennia/typeclasses/managers.py @@ -8,6 +8,7 @@ import shlex from django.db.models import Count, ExpressionWrapper, F, FloatField, Q from django.db.models.functions import Cast + from evennia.typeclasses.attributes import Attribute from evennia.typeclasses.tags import Tag from evennia.utils import idmapper diff --git a/evennia/typeclasses/migrations/0001_initial.py b/evennia/typeclasses/migrations/0001_initial.py index 157e5e4a5d..f68bd4496a 100644 --- a/evennia/typeclasses/migrations/0001_initial.py +++ b/evennia/typeclasses/migrations/0001_initial.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations from django.conf import settings +from django.db import migrations, models + import evennia.utils.picklefield diff --git a/evennia/typeclasses/migrations/0002_auto_20150109_0913.py b/evennia/typeclasses/migrations/0002_auto_20150109_0913.py index 1822b38bde..dfdb91e7f9 100644 --- a/evennia/typeclasses/migrations/0002_auto_20150109_0913.py +++ b/evennia/typeclasses/migrations/0002_auto_20150109_0913.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/evennia/typeclasses/migrations/0003_defaultcharacter_defaultexit_defaultguest_defaultobject_defaultplayer_defaultroom_defaultscript_dono.py b/evennia/typeclasses/migrations/0003_defaultcharacter_defaultexit_defaultguest_defaultobject_defaultplayer_defaultroom_defaultscript_dono.py index 60a78a428c..a6f42ae660 100644 --- a/evennia/typeclasses/migrations/0003_defaultcharacter_defaultexit_defaultguest_defaultobject_defaultplayer_defaultroom_defaultscript_dono.py +++ b/evennia/typeclasses/migrations/0003_defaultcharacter_defaultexit_defaultguest_defaultobject_defaultplayer_defaultroom_defaultscript_dono.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- -from django.db import models, migrations +from django.db import migrations, models + import evennia.accounts.manager diff --git a/evennia/typeclasses/migrations/0008_lock_and_perm_rename.py b/evennia/typeclasses/migrations/0008_lock_and_perm_rename.py index 7df74a0d4b..84c60f527e 100644 --- a/evennia/typeclasses/migrations/0008_lock_and_perm_rename.py +++ b/evennia/typeclasses/migrations/0008_lock_and_perm_rename.py @@ -3,6 +3,7 @@ import re + from django.db import migrations diff --git a/evennia/typeclasses/migrations/0009_rename_player_cmdsets_typeclasses.py b/evennia/typeclasses/migrations/0009_rename_player_cmdsets_typeclasses.py index c95d52e531..e8eae862ed 100644 --- a/evennia/typeclasses/migrations/0009_rename_player_cmdsets_typeclasses.py +++ b/evennia/typeclasses/migrations/0009_rename_player_cmdsets_typeclasses.py @@ -3,6 +3,7 @@ import re + from django.db import migrations CASE_WORD_EXCEPTIONS = [] diff --git a/evennia/typeclasses/migrations/0010_delete_old_player_tables.py b/evennia/typeclasses/migrations/0010_delete_old_player_tables.py index 32e1f80923..31131d2b07 100644 --- a/evennia/typeclasses/migrations/0010_delete_old_player_tables.py +++ b/evennia/typeclasses/migrations/0010_delete_old_player_tables.py @@ -2,7 +2,7 @@ # Generated by Django 1.11.3 on 2017-07-13 18:47 -from django.db import migrations, connection +from django.db import connection, migrations _ENGINE = None diff --git a/evennia/typeclasses/migrations/0011_auto_20190128_1820.py b/evennia/typeclasses/migrations/0011_auto_20190128_1820.py index 67ba49affc..170e01e2a6 100644 --- a/evennia/typeclasses/migrations/0011_auto_20190128_1820.py +++ b/evennia/typeclasses/migrations/0011_auto_20190128_1820.py @@ -2,6 +2,7 @@ # Generated by Django 1.11.16 on 2019-01-28 18:20 from django.db import migrations, models + import evennia.utils.picklefield diff --git a/evennia/typeclasses/migrations/0012_attrs_to_picklev4_may_be_slow.py b/evennia/typeclasses/migrations/0012_attrs_to_picklev4_may_be_slow.py index 023436784f..7adf3355be 100644 --- a/evennia/typeclasses/migrations/0012_attrs_to_picklev4_may_be_slow.py +++ b/evennia/typeclasses/migrations/0012_attrs_to_picklev4_may_be_slow.py @@ -1,10 +1,12 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.16 on 2019-01-30 20:56 +from base64 import b64decode, b64encode from copy import deepcopy -from base64 import b64encode, b64decode -from django.db import migrations from pickle import dumps, loads + +from django.db import migrations + from evennia.utils.utils import to_bytes diff --git a/evennia/typeclasses/models.py b/evennia/typeclasses/models.py index 44677aff05..4558397727 100644 --- a/evennia/typeclasses/models.py +++ b/evennia/typeclasses/models.py @@ -25,34 +25,31 @@ This module also contains the Managers for the respective models; inherit from these to create custom managers. """ -from django.db.models import signals - -from django.db.models.base import ModelBase -from django.db import models +from django.conf import settings from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist -from django.conf import settings +from django.db import models +from django.db.models import signals +from django.db.models.base import ModelBase from django.urls import reverse from django.utils.encoding import smart_str from django.utils.text import slugify +from evennia.locks.lockhandler import LockHandler +from evennia.server.signals import SIGNAL_TYPED_OBJECT_POST_RENAME +from evennia.typeclasses import managers from evennia.typeclasses.attributes import ( Attribute, AttributeHandler, AttributeProperty, - ModelAttributeBackend, + DbHolder, InMemoryAttributeBackend, + ModelAttributeBackend, ) -from evennia.typeclasses.attributes import DbHolder -from evennia.typeclasses.tags import Tag, TagHandler, AliasHandler, PermissionHandler, TagProperty - +from evennia.typeclasses.tags import AliasHandler, PermissionHandler, Tag, TagHandler, TagProperty from evennia.utils.idmapper.models import SharedMemoryModel, SharedMemoryModelBase -from evennia.server.signals import SIGNAL_TYPED_OBJECT_POST_RENAME - -from evennia.typeclasses import managers -from evennia.locks.lockhandler import LockHandler -from evennia.utils.utils import is_iter, inherits_from, lazy_property, class_from_module from evennia.utils.logger import log_trace +from evennia.utils.utils import class_from_module, inherits_from, is_iter, lazy_property __all__ = ("TypedObject",) diff --git a/evennia/typeclasses/tags.py b/evennia/typeclasses/tags.py index 12d30433c3..eea90205ee 100644 --- a/evennia/typeclasses/tags.py +++ b/evennia/typeclasses/tags.py @@ -13,6 +13,7 @@ from collections import defaultdict from django.conf import settings from django.db import models + from evennia.locks.lockfuncs import perm as perm_lockfunc from evennia.utils.utils import make_iter, to_str diff --git a/evennia/typeclasses/tests.py b/evennia/typeclasses/tests.py index 198e3eb086..0c777718da 100644 --- a/evennia/typeclasses/tests.py +++ b/evennia/typeclasses/tests.py @@ -4,11 +4,12 @@ Unit tests for typeclass base system """ from django.test import override_settings -from evennia.objects.objects import DefaultObject -from evennia.utils.test_resources import BaseEvenniaTest, EvenniaTestCase from mock import patch from parameterized import parameterized +from evennia.objects.objects import DefaultObject +from evennia.utils.test_resources import BaseEvenniaTest, EvenniaTestCase + # ------------------------------------------------------------ # Manager tests # ------------------------------------------------------------ diff --git a/evennia/utils/ansi.py b/evennia/utils/ansi.py index 551484cb96..66daa67c8c 100644 --- a/evennia/utils/ansi.py +++ b/evennia/utils/ansi.py @@ -66,6 +66,7 @@ import re from collections import OrderedDict from django.conf import settings + from evennia.utils import logger, utils from evennia.utils.utils import to_str diff --git a/evennia/utils/batchprocessors.py b/evennia/utils/batchprocessors.py index 1fc58e37c7..b8c0289bdb 100644 --- a/evennia/utils/batchprocessors.py +++ b/evennia/utils/batchprocessors.py @@ -167,11 +167,13 @@ made available in the script namespace. script = create.create_script() """ -import re import codecs -import traceback +import re import sys +import traceback + from django.conf import settings + from evennia.utils import utils _ENCODINGS = settings.ENCODINGS diff --git a/evennia/utils/containers.py b/evennia/utils/containers.py index 331f026610..3a3268e8a8 100644 --- a/evennia/utils/containers.py +++ b/evennia/utils/containers.py @@ -15,6 +15,7 @@ from pickle import dumps from django.conf import settings from django.db.utils import OperationalError, ProgrammingError + from evennia.utils import logger from evennia.utils.utils import callables_from_module, class_from_module diff --git a/evennia/utils/create.py b/evennia/utils/create.py index 7127d7e672..e90df490ad 100644 --- a/evennia/utils/create.py +++ b/evennia/utils/create.py @@ -14,8 +14,8 @@ objects already existing in the database. """ -from django.db.utils import OperationalError, ProgrammingError from django.contrib.contenttypes.models import ContentType +from django.db.utils import OperationalError, ProgrammingError # limit symbol import from API __all__ = ( @@ -41,11 +41,11 @@ try: except (OperationalError, ProgrammingError): # this is a fallback used during tests/doc building print("Database not available yet - using temporary fallback for create managers.") - from evennia.objects.models import ObjectDB from evennia.accounts.models import AccountDB - from evennia.scripts.models import ScriptDB - from evennia.comms.models import Msg, ChannelDB + from evennia.comms.models import ChannelDB, Msg from evennia.help.models import HelpEntry + from evennia.objects.models import ObjectDB + from evennia.scripts.models import ScriptDB from evennia.typeclasses.tags import Tag # noqa # diff --git a/evennia/utils/dbserialize.py b/evennia/utils/dbserialize.py index 7f63d339fc..c1de3e8b65 100644 --- a/evennia/utils/dbserialize.py +++ b/evennia/utils/dbserialize.py @@ -30,6 +30,7 @@ except ImportError: from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ObjectDoesNotExist from django.utils.safestring import SafeString + from evennia.utils import logger from evennia.utils.utils import is_iter, to_bytes, uses_database diff --git a/evennia/utils/eveditor.py b/evennia/utils/eveditor.py index c51ff8bc4b..2df8574368 100644 --- a/evennia/utils/eveditor.py +++ b/evennia/utils/eveditor.py @@ -42,12 +42,13 @@ survive a reload. See the `EvEditor` class for more details. import re from django.conf import settings -from evennia import CmdSet -from evennia.utils import is_iter, fill, dedent, logger, justify, to_str, utils -from evennia.utils.ansi import raw -from evennia.commands import cmdhandler from django.utils.translation import gettext as _ +from evennia import CmdSet +from evennia.commands import cmdhandler +from evennia.utils import dedent, fill, is_iter, justify, logger, to_str, utils +from evennia.utils.ansi import raw + # we use cmdhandler instead of evennia.syscmdkeys to # avoid some cases of loading before evennia init'd _CMD_NOMATCH = cmdhandler.CMD_NOMATCH diff --git a/evennia/utils/evmenu.py b/evennia/utils/evmenu.py index 1111f8faea..a5bbcca6a4 100644 --- a/evennia/utils/evmenu.py +++ b/evennia/utils/evmenu.py @@ -280,6 +280,7 @@ from django.conf import settings # i18n from django.utils.translation import gettext as _ + from evennia import CmdSet, Command from evennia.commands import cmdhandler from evennia.utils import logger diff --git a/evennia/utils/evmore.py b/evennia/utils/evmore.py index bc0958cba4..4e89ef2deb 100644 --- a/evennia/utils/evmore.py +++ b/evennia/utils/evmore.py @@ -40,6 +40,7 @@ from django.conf import settings from django.core.paginator import Paginator from django.db.models.query import QuerySet from django.utils.translation import gettext as _ + from evennia.commands import cmdhandler from evennia.commands.cmdset import CmdSet from evennia.commands.command import Command diff --git a/evennia/utils/evtable.py b/evennia/utils/evtable.py index f6837a79a0..8517344f61 100644 --- a/evennia/utils/evtable.py +++ b/evennia/utils/evtable.py @@ -118,6 +118,7 @@ from copy import copy, deepcopy from textwrap import TextWrapper from django.conf import settings + from evennia.utils.ansi import ANSIString from evennia.utils.utils import display_len as d_len from evennia.utils.utils import is_iter, justify diff --git a/evennia/utils/funcparser.py b/evennia/utils/funcparser.py index 4ea426ca8a..0cef19bd7b 100644 --- a/evennia/utils/funcparser.py +++ b/evennia/utils/funcparser.py @@ -48,6 +48,7 @@ import inspect import random from django.conf import settings + from evennia.utils import logger, search from evennia.utils.utils import ( callables_from_module, diff --git a/evennia/utils/gametime.py b/evennia/utils/gametime.py index d0ca254524..b390b2a59a 100644 --- a/evennia/utils/gametime.py +++ b/evennia/utils/gametime.py @@ -12,6 +12,7 @@ from datetime import datetime, timedelta from django.conf import settings from django.db.utils import OperationalError + from evennia import DefaultScript from evennia.server.models import ServerConfig from evennia.utils.create import create_script diff --git a/evennia/utils/idmapper/models.py b/evennia/utils/idmapper/models.py index 19c63e5fa8..29ec23b632 100644 --- a/evennia/utils/idmapper/models.py +++ b/evennia/utils/idmapper/models.py @@ -18,9 +18,10 @@ from django.db.models.base import Model, ModelBase from django.db.models.signals import post_migrate, post_save, pre_delete from django.db.transaction import atomic from django.db.utils import DatabaseError +from twisted.internet.reactor import callFromThread + from evennia.utils import logger from evennia.utils.utils import dbref, get_evennia_pids, to_str -from twisted.internet.reactor import callFromThread from .manager import SharedMemoryManager diff --git a/evennia/utils/idmapper/tests.py b/evennia/utils/idmapper/tests.py index 1ecd95cde0..2703256616 100644 --- a/evennia/utils/idmapper/tests.py +++ b/evennia/utils/idmapper/tests.py @@ -1,7 +1,7 @@ +from django.db import models from django.test import TestCase from .models import SharedMemoryModel -from django.db import models class Category(SharedMemoryModel): diff --git a/evennia/utils/optionclasses.py b/evennia/utils/optionclasses.py index ef75824a47..5679e28cb3 100644 --- a/evennia/utils/optionclasses.py +++ b/evennia/utils/optionclasses.py @@ -1,9 +1,10 @@ import datetime + from evennia import logger -from evennia.utils.ansi import strip_ansi -from evennia.utils.validatorfuncs import _TZ_DICT -from evennia.utils.utils import crop from evennia.utils import validatorfuncs +from evennia.utils.ansi import strip_ansi +from evennia.utils.utils import crop +from evennia.utils.validatorfuncs import _TZ_DICT class BaseOption: diff --git a/evennia/utils/optionhandler.py b/evennia/utils/optionhandler.py index 5b562498de..4a3ffab2a6 100644 --- a/evennia/utils/optionhandler.py +++ b/evennia/utils/optionhandler.py @@ -1,7 +1,8 @@ -from evennia.utils.utils import string_partial_matching -from evennia.utils.containers import OPTION_CLASSES from django.utils.translation import gettext as _ +from evennia.utils.containers import OPTION_CLASSES +from evennia.utils.utils import string_partial_matching + _GA = object.__getattribute__ _SA = object.__setattr__ diff --git a/evennia/utils/picklefield.py b/evennia/utils/picklefield.py index bc1dad7b69..dffef0f3bb 100644 --- a/evennia/utils/picklefield.py +++ b/evennia/utils/picklefield.py @@ -29,23 +29,21 @@ Modified for Evennia by Griatch and the Evennia community. """ from ast import literal_eval +from base64 import b64decode, b64encode +from copy import Error as CopyError +from copy import deepcopy from datetime import datetime - -from copy import deepcopy, Error as CopyError -from base64 import b64encode, b64decode +from pickle import dumps, loads from zlib import compress, decompress # import six # this is actually a pypy component, not in default syslib from django.core.exceptions import ValidationError from django.db import models - from django.forms.fields import CharField from django.forms.widgets import Textarea - -from pickle import loads, dumps from django.utils.encoding import force_str -from evennia.utils.dbserialize import pack_dbobj +from evennia.utils.dbserialize import pack_dbobj DEFAULT_PROTOCOL = 4 diff --git a/evennia/utils/search.py b/evennia/utils/search.py index 6b33618c75..7f94ed6378 100644 --- a/evennia/utils/search.py +++ b/evennia/utils/search.py @@ -26,8 +26,8 @@ Example: To reach the search method 'get_object_with_account' # Import the manager methods to be wrapped -from django.db.utils import OperationalError, ProgrammingError from django.contrib.contenttypes.models import ContentType +from django.db.utils import OperationalError, ProgrammingError # limit symbol import from API __all__ = ( @@ -57,11 +57,11 @@ try: except (OperationalError, ProgrammingError): # this is a fallback used during tests/doc building print("Database not available yet - using temporary fallback for search managers.") - from evennia.objects.models import ObjectDB from evennia.accounts.models import AccountDB - from evennia.scripts.models import ScriptDB - from evennia.comms.models import Msg, ChannelDB + from evennia.comms.models import ChannelDB, Msg from evennia.help.models import HelpEntry + from evennia.objects.models import ObjectDB + from evennia.scripts.models import ScriptDB from evennia.typeclasses.tags import Tag # noqa # ------------------------------------------------------------------- diff --git a/evennia/utils/test_resources.py b/evennia/utils/test_resources.py index cdd19046a7..a77ad91cad 100644 --- a/evennia/utils/test_resources.py +++ b/evennia/utils/test_resources.py @@ -28,6 +28,9 @@ import types from django.conf import settings from django.test import TestCase, override_settings +from mock import MagicMock, Mock, patch +from twisted.internet.defer import Deferred + from evennia import settings_default from evennia.accounts.accounts import DefaultAccount from evennia.commands.command import InterruptCommand @@ -39,8 +42,6 @@ from evennia.server.sessionhandler import SESSIONS from evennia.utils import ansi, create from evennia.utils.idmapper.models import flush_cache from evennia.utils.utils import all_from_module, to_str -from mock import MagicMock, Mock, patch -from twisted.internet.defer import Deferred _RE_STRIP_EVMENU = re.compile(r"^\+|-+\+|\+-+|--+|\|(?:\s|$)", re.MULTILINE) diff --git a/evennia/utils/tests/data/broken_script.py b/evennia/utils/tests/data/broken_script.py index f27483c5f0..e8575c8212 100644 --- a/evennia/utils/tests/data/broken_script.py +++ b/evennia/utils/tests/data/broken_script.py @@ -4,7 +4,7 @@ in loading global scripts where the module can be parsed but has broken dependencies. """ -from evennia import nonexistent_module, DefaultScript +from evennia import DefaultScript, nonexistent_module class BrokenScript(DefaultScript): diff --git a/evennia/utils/tests/test_ansi.py b/evennia/utils/tests/test_ansi.py index bb9e42ef0e..4ff9d468c6 100644 --- a/evennia/utils/tests/test_ansi.py +++ b/evennia/utils/tests/test_ansi.py @@ -7,6 +7,7 @@ Test of the ANSI parsing and ANSIStrings. """ from django.test import TestCase + from evennia.utils.ansi import ANSIString as AN diff --git a/evennia/utils/tests/test_batchprocessors.py b/evennia/utils/tests/test_batchprocessors.py index 27416c2a5f..61374e6711 100644 --- a/evennia/utils/tests/test_batchprocessors.py +++ b/evennia/utils/tests/test_batchprocessors.py @@ -1,11 +1,13 @@ """Tests for batchprocessors """ import codecs -from django.test import TestCase -from evennia.utils import batchprocessors, utils -import mock import textwrap +import mock +from django.test import TestCase + +from evennia.utils import batchprocessors, utils + class TestBatchprocessorErrors(TestCase): @mock.patch.object(utils, "pypath_to_realpath", return_value=[]) diff --git a/evennia/utils/tests/test_containers.py b/evennia/utils/tests/test_containers.py index 27f9ba5090..ee0f4d2d4a 100644 --- a/evennia/utils/tests/test_containers.py +++ b/evennia/utils/tests/test_containers.py @@ -1,10 +1,11 @@ import unittest -from evennia.utils import containers from django.conf import settings from django.test import override_settings -from evennia.utils.utils import class_from_module + from evennia import DefaultScript +from evennia.utils import containers +from evennia.utils.utils import class_from_module _BASE_TYPECLASS = class_from_module(settings.BASE_SCRIPT_TYPECLASS) diff --git a/evennia/utils/tests/test_create_functions.py b/evennia/utils/tests/test_create_functions.py index 1e22913633..8c0559885b 100644 --- a/evennia/utils/tests/test_create_functions.py +++ b/evennia/utils/tests/test_create_functions.py @@ -4,9 +4,10 @@ Tests of create functions """ from django.test import TestCase -from evennia.utils.test_resources import BaseEvenniaTest + from evennia.scripts.scripts import DefaultScript from evennia.utils import create +from evennia.utils.test_resources import BaseEvenniaTest class TestCreateScript(BaseEvenniaTest): diff --git a/evennia/utils/tests/test_dbserialize.py b/evennia/utils/tests/test_dbserialize.py index 8d7950baef..893e4949cf 100644 --- a/evennia/utils/tests/test_dbserialize.py +++ b/evennia/utils/tests/test_dbserialize.py @@ -5,9 +5,10 @@ Tests for dbserialize module from collections import defaultdict, deque from django.test import TestCase +from parameterized import parameterized + from evennia.objects.objects import DefaultObject from evennia.utils import dbserialize -from parameterized import parameterized class TestDbSerialize(TestCase): diff --git a/evennia/utils/tests/test_eveditor.py b/evennia/utils/tests/test_eveditor.py index ec8cacbade..b7333d6810 100644 --- a/evennia/utils/tests/test_eveditor.py +++ b/evennia/utils/tests/test_eveditor.py @@ -3,8 +3,8 @@ Test eveditor """ -from evennia.utils import eveditor from evennia.commands.default.tests import BaseEvenniaCommandTest +from evennia.utils import eveditor class TestEvEditor(BaseEvenniaCommandTest): diff --git a/evennia/utils/tests/test_evform.py b/evennia/utils/tests/test_evform.py index 83897c1544..a3d7dd4d0f 100644 --- a/evennia/utils/tests/test_evform.py +++ b/evennia/utils/tests/test_evform.py @@ -5,6 +5,7 @@ Unit tests for the EvForm text form generator from unittest import skip from django.test import TestCase + from evennia.utils import ansi, evform, evtable diff --git a/evennia/utils/tests/test_evmenu.py b/evennia/utils/tests/test_evmenu.py index 4c1529f4fb..5c3e64b099 100644 --- a/evennia/utils/tests/test_evmenu.py +++ b/evennia/utils/tests/test_evmenu.py @@ -18,13 +18,14 @@ To help debug the menu, turn on `debug_output`, which will print the traversal p """ import copy + from anything import Anything from django.test import TestCase -from evennia.utils.test_resources import BaseEvenniaTest -from evennia.utils import evmenu -from evennia.utils import ansi from mock import MagicMock +from evennia.utils import ansi, evmenu +from evennia.utils.test_resources import BaseEvenniaTest + class TestEvMenu(TestCase): "Run the EvMenu testing." diff --git a/evennia/utils/tests/test_funcparser.py b/evennia/utils/tests/test_funcparser.py index 386d5d21ec..84bb197800 100644 --- a/evennia/utils/tests/test_funcparser.py +++ b/evennia/utils/tests/test_funcparser.py @@ -10,10 +10,11 @@ from ast import literal_eval from unittest.mock import MagicMock, patch from django.test import TestCase, override_settings -from evennia.utils import funcparser, test_resources from parameterized import parameterized from simpleeval import simple_eval +from evennia.utils import funcparser, test_resources + def _test_callable(*args, **kwargs): kwargs.pop("funcparser", None) diff --git a/evennia/utils/tests/test_gametime.py b/evennia/utils/tests/test_gametime.py index 9060546cbf..c3bd31648a 100644 --- a/evennia/utils/tests/test_gametime.py +++ b/evennia/utils/tests/test_gametime.py @@ -2,9 +2,9 @@ Unit tests for the utilities of the evennia.utils.gametime module. """ -from datetime import datetime import time import unittest +from datetime import datetime from unittest.mock import Mock from django.conf import settings diff --git a/evennia/utils/tests/test_tagparsing.py b/evennia/utils/tests/test_tagparsing.py index 5110604cc0..ac1fa3069a 100644 --- a/evennia/utils/tests/test_tagparsing.py +++ b/evennia/utils/tests/test_tagparsing.py @@ -3,10 +3,12 @@ Unit tests for all sorts of inline text-tag parsing, like ANSI, html conversion, """ import re + from django.test import TestCase, override_settings + +from evennia.utils import funcparser from evennia.utils.ansi import ANSIString from evennia.utils.text2html import TextToHTMLparser -from evennia.utils import funcparser class ANSIStringTestCase(TestCase): diff --git a/evennia/utils/tests/test_text2html.py b/evennia/utils/tests/test_text2html.py index cb99ab8bd7..aea0cb87e7 100644 --- a/evennia/utils/tests/test_text2html.py +++ b/evennia/utils/tests/test_text2html.py @@ -1,9 +1,11 @@ """Tests for text2html """ import unittest -from django.test import TestCase -from evennia.utils import ansi, text2html + import mock +from django.test import TestCase + +from evennia.utils import ansi, text2html class TestText2Html(TestCase): diff --git a/evennia/utils/tests/test_utils.py b/evennia/utils/tests/test_utils.py index b7ebaa2223..755941960d 100644 --- a/evennia/utils/tests/test_utils.py +++ b/evennia/utils/tests/test_utils.py @@ -11,11 +11,12 @@ from datetime import datetime, timedelta import mock from django.test import TestCase +from parameterized import parameterized +from twisted.internet import task + from evennia.utils import utils from evennia.utils.ansi import ANSIString from evennia.utils.test_resources import BaseEvenniaTest -from parameterized import parameterized -from twisted.internet import task class TestIsIter(TestCase): diff --git a/evennia/utils/tests/test_validatorfuncs.py b/evennia/utils/tests/test_validatorfuncs.py index e4235974a4..958708d9dd 100644 --- a/evennia/utils/tests/test_validatorfuncs.py +++ b/evennia/utils/tests/test_validatorfuncs.py @@ -1,10 +1,12 @@ """Tests for validatorfuncs """ -from django.test import TestCase -from evennia.utils import validatorfuncs -import mock import datetime + +import mock import pytz +from django.test import TestCase + +from evennia.utils import validatorfuncs class TestValidatorFuncs(TestCase): diff --git a/evennia/utils/text2html.py b/evennia/utils/text2html.py index 0e0eea41ef..1effdd3266 100644 --- a/evennia/utils/text2html.py +++ b/evennia/utils/text2html.py @@ -10,6 +10,7 @@ snippet #577349 on http://code.activestate.com. import re from html import escape as html_escape + from .ansi import * # All xterm256 RGB equivalents diff --git a/evennia/utils/utils.py b/evennia/utils/utils.py index 862dc836fe..f3b4eba682 100644 --- a/evennia/utils/utils.py +++ b/evennia/utils/utils.py @@ -34,12 +34,13 @@ from django.core.validators import validate_email as django_validate_email from django.utils import timezone from django.utils.html import strip_tags from django.utils.translation import gettext as _ -from evennia.utils import logger from simpleeval import simple_eval from twisted.internet import reactor, threads from twisted.internet.defer import returnValue # noqa - used as import target from twisted.internet.task import deferLater +from evennia.utils import logger + _MULTIMATCH_TEMPLATE = settings.SEARCH_MULTIMATCH_TEMPLATE _EVENNIA_DIR = settings.EVENNIA_DIR _GAME_DIR = settings.GAME_DIR diff --git a/evennia/utils/validatorfuncs.py b/evennia/utils/validatorfuncs.py index a21144a59b..047ddbec35 100644 --- a/evennia/utils/validatorfuncs.py +++ b/evennia/utils/validatorfuncs.py @@ -8,13 +8,16 @@ They can employ more paramters at your leisure. """ -import re as _re -import pytz as _pytz import datetime as _dt -from evennia.utils.ansi import strip_ansi -from evennia.utils.utils import string_partial_matching as _partial, validate_email_address +import re as _re + +import pytz as _pytz from django.utils.translation import gettext as _ +from evennia.utils.ansi import strip_ansi +from evennia.utils.utils import string_partial_matching as _partial +from evennia.utils.utils import validate_email_address + _TZ_DICT = {str(tz): _pytz.timezone(tz) for tz in _pytz.common_timezones} diff --git a/evennia/utils/verb_conjugation/tests.py b/evennia/utils/verb_conjugation/tests.py index 6eb96d40a7..c2d16be5f8 100644 --- a/evennia/utils/verb_conjugation/tests.py +++ b/evennia/utils/verb_conjugation/tests.py @@ -3,8 +3,9 @@ Unit tests for verb conjugation. """ -from parameterized import parameterized from django.test import TestCase +from parameterized import parameterized + from . import conjugate, pronouns diff --git a/evennia/web/admin/__init__.py b/evennia/web/admin/__init__.py index a5b6de9540..9f98ecd468 100644 --- a/evennia/web/admin/__init__.py +++ b/evennia/web/admin/__init__.py @@ -7,9 +7,9 @@ Django-admin code for customizing the web admin for Evennia. # look for `admin` in the web/ folder. from .accounts import AccountAdmin -from .objects import ObjectAdmin -from .scripts import ScriptAdmin from .comms import ChannelAdmin, MsgAdmin from .help import HelpEntryAdmin -from .tags import TagAdmin +from .objects import ObjectAdmin +from .scripts import ScriptAdmin from .server import ServerConfigAdmin +from .tags import TagAdmin diff --git a/evennia/web/admin/accounts.py b/evennia/web/admin/accounts.py index 4054997d01..a53e954c0b 100644 --- a/evennia/web/admin/accounts.py +++ b/evennia/web/admin/accounts.py @@ -3,30 +3,31 @@ # in the web admin interface. # from django import forms -from django.utils.safestring import mark_safe from django.conf import settings from django.contrib import admin, messages from django.contrib.admin.options import IS_POPUP_VAR -from django.contrib.admin.widgets import ForeignKeyRawIdWidget, FilteredSelectMultiple -from django.contrib.auth.admin import UserAdmin as BaseUserAdmin -from django.utils.translation import gettext as _ -from django.contrib.auth.forms import UserChangeForm, UserCreationForm from django.contrib.admin.utils import unquote -from django.template.response import TemplateResponse -from django.http import Http404, HttpResponseRedirect +from django.contrib.admin.widgets import FilteredSelectMultiple, ForeignKeyRawIdWidget +from django.contrib.auth import update_session_auth_hash +from django.contrib.auth.admin import UserAdmin as BaseUserAdmin +from django.contrib.auth.forms import UserChangeForm, UserCreationForm from django.core.exceptions import PermissionDenied -from django.views.decorators.debug import sensitive_post_parameters +from django.http import Http404, HttpResponseRedirect +from django.template.response import TemplateResponse +from django.urls import path, reverse from django.utils.decorators import method_decorator from django.utils.html import escape -from django.urls import path, reverse -from django.contrib.auth import update_session_auth_hash +from django.utils.safestring import mark_safe +from django.utils.translation import gettext as _ +from django.views.decorators.debug import sensitive_post_parameters -from evennia.objects.models import ObjectDB from evennia.accounts.models import AccountDB +from evennia.objects.models import ObjectDB from evennia.utils import create + +from . import utils as adminutils from .attributes import AttributeInline from .tags import TagInline -from . import utils as adminutils sensitive_post_parameters_m = method_decorator(sensitive_post_parameters()) diff --git a/evennia/web/admin/attributes.py b/evennia/web/admin/attributes.py index 7abe8094dc..7234cccdee 100644 --- a/evennia/web/admin/attributes.py +++ b/evennia/web/admin/attributes.py @@ -8,12 +8,13 @@ relevant together with a specific object. import traceback from datetime import datetime -from django.contrib import admin -from evennia.typeclasses.attributes import Attribute -from django import forms +from django import forms +from django.contrib import admin + +from evennia.typeclasses.attributes import Attribute +from evennia.utils.dbserialize import _SaverSet, from_pickle from evennia.utils.picklefield import PickledFormField -from evennia.utils.dbserialize import from_pickle, _SaverSet class AttributeForm(forms.ModelForm): diff --git a/evennia/web/admin/comms.py b/evennia/web/admin/comms.py index ddb853fad6..0e74d9f55c 100644 --- a/evennia/web/admin/comms.py +++ b/evennia/web/admin/comms.py @@ -4,9 +4,10 @@ This defines how Comm models are displayed in the web admin interface. """ from django import forms -from django.contrib import admin -from evennia.comms.models import ChannelDB, Msg from django.conf import settings +from django.contrib import admin + +from evennia.comms.models import ChannelDB, Msg from .attributes import AttributeInline from .tags import TagInline diff --git a/evennia/web/admin/frontpage.py b/evennia/web/admin/frontpage.py index eb69465a28..d20f29207c 100644 --- a/evennia/web/admin/frontpage.py +++ b/evennia/web/admin/frontpage.py @@ -4,8 +4,8 @@ Admin views. """ from django.contrib.admin.sites import site -from django.shortcuts import render from django.contrib.admin.views.decorators import staff_member_required +from django.shortcuts import render from evennia.accounts.models import AccountDB diff --git a/evennia/web/admin/help.py b/evennia/web/admin/help.py index c7f8a87b7e..4417142107 100644 --- a/evennia/web/admin/help.py +++ b/evennia/web/admin/help.py @@ -3,6 +3,7 @@ This defines how to edit help entries in Admin. """ from django import forms from django.contrib import admin + from evennia.help.models import HelpEntry from .tags import TagInline diff --git a/evennia/web/admin/objects.py b/evennia/web/admin/objects.py index 356164e19d..1545add8e5 100644 --- a/evennia/web/admin/objects.py +++ b/evennia/web/admin/objects.py @@ -2,22 +2,22 @@ # This sets up how models are displayed # in the web admin interface. # -from django.conf import settings from django import forms -from django.urls import reverse, path -from django.http import HttpResponseRedirect from django.conf import settings from django.contrib import admin, messages from django.contrib.admin.utils import flatten_fieldsets from django.contrib.admin.widgets import ForeignKeyRawIdWidget +from django.http import HttpResponseRedirect +from django.urls import path, reverse from django.utils.html import format_html from django.utils.translation import gettext as _ -from evennia.objects.models import ObjectDB from evennia.accounts.models import AccountDB +from evennia.objects.models import ObjectDB + +from . import utils as adminutils from .attributes import AttributeInline from .tags import TagInline -from . import utils as adminutils class ObjectAttributeInline(AttributeInline): diff --git a/evennia/web/admin/scripts.py b/evennia/web/admin/scripts.py index 428a0a2adb..faafe4acac 100644 --- a/evennia/web/admin/scripts.py +++ b/evennia/web/admin/scripts.py @@ -7,9 +7,10 @@ from django.conf import settings from django.contrib import admin from evennia.scripts.models import ScriptDB + +from . import utils as adminutils from .attributes import AttributeInline from .tags import TagInline -from . import utils as adminutils class ScriptForm(forms.ModelForm): diff --git a/evennia/web/admin/server.py b/evennia/web/admin/server.py index 81ce296f8c..6ceaab781a 100644 --- a/evennia/web/admin/server.py +++ b/evennia/web/admin/server.py @@ -6,6 +6,7 @@ in the web admin interface. """ from django.contrib import admin + from evennia.server.models import ServerConfig diff --git a/evennia/web/admin/tags.py b/evennia/web/admin/tags.py index 7f760e6dca..ebfe2cff56 100644 --- a/evennia/web/admin/tags.py +++ b/evennia/web/admin/tags.py @@ -6,12 +6,13 @@ Tag admin import traceback from datetime import datetime -from django.contrib import admin -from evennia.typeclasses.tags import Tag -from django import forms +from django import forms +from django.contrib import admin + +from evennia.typeclasses.tags import Tag +from evennia.utils.dbserialize import _SaverSet, from_pickle from evennia.utils.picklefield import PickledFormField -from evennia.utils.dbserialize import from_pickle, _SaverSet class TagForm(forms.ModelForm): diff --git a/evennia/web/admin/urls.py b/evennia/web/admin/urls.py index a5723be5c9..e9c4d399d6 100644 --- a/evennia/web/admin/urls.py +++ b/evennia/web/admin/urls.py @@ -6,9 +6,9 @@ These patterns are all under the admin/* namespace. """ from django.conf import settings from django.contrib import admin -from django.urls import path, include -from . import frontpage +from django.urls import include, path +from . import frontpage urlpatterns = [ # Django original admin page. Make this URL always available, whether diff --git a/evennia/web/admin/utils.py b/evennia/web/admin/utils.py index c93bc03a77..fe60df3e01 100644 --- a/evennia/web/admin/utils.py +++ b/evennia/web/admin/utils.py @@ -4,7 +4,8 @@ Helper utils for admin views. """ import importlib -from evennia.utils.utils import get_all_typeclasses, inherits_from, get_all_cmdsets + +from evennia.utils.utils import get_all_cmdsets, get_all_typeclasses, inherits_from def get_and_load_typeclasses(parent=None, excluded_parents=None): diff --git a/evennia/web/api/filters.py b/evennia/web/api/filters.py index 38bd3d1c64..29ce027dc0 100644 --- a/evennia/web/api/filters.py +++ b/evennia/web/api/filters.py @@ -8,12 +8,13 @@ https://django-filter.readthedocs.io/en/latest/guide/rest_framework.html """ from typing import Union -from django.db.models import Q -from django_filters.rest_framework.filterset import FilterSet -from django_filters.filters import CharFilter, EMPTY_VALUES -from evennia.objects.models import ObjectDB +from django.db.models import Q +from django_filters.filters import EMPTY_VALUES, CharFilter +from django_filters.rest_framework.filterset import FilterSet + from evennia.accounts.models import AccountDB +from evennia.objects.models import ObjectDB from evennia.scripts.models import ScriptDB diff --git a/evennia/web/api/permissions.py b/evennia/web/api/permissions.py index 6ed9521629..536cb9a552 100644 --- a/evennia/web/api/permissions.py +++ b/evennia/web/api/permissions.py @@ -4,8 +4,9 @@ Sets up an api-access permission check using the in-game permission hierarchy. """ -from rest_framework import permissions from django.conf import settings +from rest_framework import permissions + from evennia.locks.lockhandler import check_perm diff --git a/evennia/web/api/serializers.py b/evennia/web/api/serializers.py index 6db2a16d09..2414ec4319 100644 --- a/evennia/web/api/serializers.py +++ b/evennia/web/api/serializers.py @@ -12,12 +12,12 @@ often django model instances, that we can use (deserialization). from rest_framework import serializers -from evennia.objects.objects import DefaultObject from evennia.accounts.accounts import DefaultAccount +from evennia.help.models import HelpEntry +from evennia.objects.objects import DefaultObject from evennia.scripts.models import ScriptDB from evennia.typeclasses.attributes import Attribute from evennia.typeclasses.tags import Tag -from evennia.help.models import HelpEntry class AttributeSerializer(serializers.ModelSerializer): diff --git a/evennia/web/api/tests.py b/evennia/web/api/tests.py index e82f9e8a6c..ab2b050444 100644 --- a/evennia/web/api/tests.py +++ b/evennia/web/api/tests.py @@ -2,13 +2,15 @@ Tests for the REST API. """ +from collections import namedtuple + +from django.core.exceptions import ObjectDoesNotExist +from django.test import override_settings +from django.urls import include, path, reverse +from rest_framework.test import APIClient + from evennia.utils.test_resources import BaseEvenniaTest from evennia.web.api import serializers -from rest_framework.test import APIClient -from django.urls import reverse, path, include -from django.test import override_settings -from collections import namedtuple -from django.core.exceptions import ObjectDoesNotExist urlpatterns = [ path(r"^", include("evennia.web.website.urls")), diff --git a/evennia/web/api/urls.py b/evennia/web/api/urls.py index bbf3d784ee..a1dee13105 100644 --- a/evennia/web/api/urls.py +++ b/evennia/web/api/urls.py @@ -21,8 +21,8 @@ from django.urls import path from django.views.generic import TemplateView from rest_framework.schemas import get_schema_view -from evennia.web.api.root import APIRootRouter from evennia.web.api import views +from evennia.web.api.root import APIRootRouter app_name = "api" diff --git a/evennia/web/api/views.py b/evennia/web/api/views.py index a70135720d..eb28073d97 100644 --- a/evennia/web/api/views.py +++ b/evennia/web/api/views.py @@ -4,20 +4,18 @@ Rest Framework provides collections called 'ViewSets', which can generate a number of views for the common CRUD operations. """ -from rest_framework.viewsets import ModelViewSet +from django_filters.rest_framework import DjangoFilterBackend +from rest_framework import status from rest_framework.decorators import action from rest_framework.response import Response -from rest_framework import status - -from django_filters.rest_framework import DjangoFilterBackend +from rest_framework.viewsets import ModelViewSet +from evennia.accounts.models import AccountDB +from evennia.help.models import HelpEntry from evennia.objects.models import ObjectDB from evennia.objects.objects import DefaultCharacter, DefaultExit, DefaultRoom -from evennia.accounts.models import AccountDB from evennia.scripts.models import ScriptDB -from evennia.help.models import HelpEntry -from evennia.web.api import serializers -from evennia.web.api import filters +from evennia.web.api import filters, serializers from evennia.web.api.permissions import EvenniaPermission diff --git a/evennia/web/urls.py b/evennia/web/urls.py index c1dd78c1ea..9d481bfdd0 100644 --- a/evennia/web/urls.py +++ b/evennia/web/urls.py @@ -17,7 +17,7 @@ This is the starting point when a user enters an URL. """ from django.conf import settings -from django.urls import path, include +from django.urls import include, path from django.views.generic import RedirectView # Setup the root url tree from / diff --git a/evennia/web/utils/adminsite.py b/evennia/web/utils/adminsite.py index 6ef8fbe604..cfdbdf3047 100644 --- a/evennia/web/utils/adminsite.py +++ b/evennia/web/utils/adminsite.py @@ -8,8 +8,8 @@ of that folder for Django to find them). """ -from django.contrib.admin import apps from django.contrib import admin +from django.contrib.admin import apps class EvenniaAdminApp(apps.AdminConfig): diff --git a/evennia/web/utils/backends.py b/evennia/web/utils/backends.py index 663895208a..12f241d8aa 100644 --- a/evennia/web/utils/backends.py +++ b/evennia/web/utils/backends.py @@ -1,5 +1,5 @@ -from django.contrib.auth.backends import ModelBackend from django.contrib.auth import get_user_model +from django.contrib.auth.backends import ModelBackend class CaseInsensitiveModelBackend(ModelBackend): diff --git a/evennia/web/utils/general_context.py b/evennia/web/utils/general_context.py index b424c1707d..89b097da5e 100644 --- a/evennia/web/utils/general_context.py +++ b/evennia/web/utils/general_context.py @@ -9,7 +9,9 @@ TEMPLATES["OPTIONS"]["context_processors"] list. import os + from django.conf import settings + from evennia.utils.utils import get_evennia_version # Setup lists of the most relevant apps so diff --git a/evennia/web/utils/middleware.py b/evennia/web/utils/middleware.py index ee1286b705..437e07c274 100644 --- a/evennia/web/utils/middleware.py +++ b/evennia/web/utils/middleware.py @@ -1,4 +1,5 @@ from django.contrib.auth import authenticate, login + from evennia.accounts.models import AccountDB from evennia.utils import logger diff --git a/evennia/web/utils/tests.py b/evennia/web/utils/tests.py index b01df51d89..848919ee39 100644 --- a/evennia/web/utils/tests.py +++ b/evennia/web/utils/tests.py @@ -1,6 +1,7 @@ from django.contrib.auth.models import AnonymousUser from django.test import RequestFactory, TestCase from mock import MagicMock, patch + from . import general_context diff --git a/evennia/web/webclient/urls.py b/evennia/web/webclient/urls.py index f600edd4e8..364a72feb5 100644 --- a/evennia/web/webclient/urls.py +++ b/evennia/web/webclient/urls.py @@ -3,6 +3,7 @@ This structures the (simple) structure of the webpage 'application'. """ from django.urls import path + from . import views app_name = "webclient" diff --git a/evennia/web/webclient/views.py b/evennia/web/webclient/views.py index 9aba748ce5..3377513cd4 100644 --- a/evennia/web/webclient/views.py +++ b/evennia/web/webclient/views.py @@ -5,9 +5,9 @@ page and serve it eventual static content. """ from django.conf import settings +from django.contrib.auth import authenticate, login from django.http import Http404 from django.shortcuts import render -from django.contrib.auth import login, authenticate from evennia.accounts.models import AccountDB from evennia.utils import logger diff --git a/evennia/web/website/forms.py b/evennia/web/website/forms.py index c78d432428..8f6a779197 100644 --- a/evennia/web/website/forms.py +++ b/evennia/web/website/forms.py @@ -3,6 +3,7 @@ from django.conf import settings from django.contrib.auth.forms import UserCreationForm, UsernameField from django.forms import ModelForm from django.utils.html import escape + from evennia.utils import class_from_module diff --git a/evennia/web/website/tests.py b/evennia/web/website/tests.py index 22fe9c7891..fc1073a589 100644 --- a/evennia/web/website/tests.py +++ b/evennia/web/website/tests.py @@ -2,6 +2,7 @@ from django.conf import settings from django.test import Client, override_settings from django.urls import reverse from django.utils.text import slugify + from evennia.help import filehelp from evennia.utils import class_from_module from evennia.utils.create import create_help_entry diff --git a/evennia/web/website/urls.py b/evennia/web/website/urls.py index 8b39ec4f11..2777424eeb 100644 --- a/evennia/web/website/urls.py +++ b/evennia/web/website/urls.py @@ -4,9 +4,11 @@ This redirects to website sub-pages. """ from django.conf import settings from django.contrib import admin -from django.urls import path, include -from .views import index, errors, accounts, help as helpviews, channels, characters +from django.urls import include, path +from .views import accounts, channels, characters, errors +from .views import help as helpviews +from .views import index urlpatterns = [ # website front page diff --git a/evennia/web/website/views/accounts.py b/evennia/web/website/views/accounts.py index 75fe8f1e08..4964d3d567 100644 --- a/evennia/web/website/views/accounts.py +++ b/evennia/web/website/views/accounts.py @@ -4,14 +4,15 @@ Views for managing accounts. """ -from evennia.utils import class_from_module from django.conf import settings from django.contrib import messages -from django.urls import reverse_lazy from django.http import HttpResponseRedirect +from django.urls import reverse_lazy + +from evennia.utils import class_from_module +from evennia.web.website import forms from .mixins import EvenniaCreateView, TypeclassMixin -from evennia.web.website import forms class AccountMixin(TypeclassMixin): diff --git a/evennia/web/website/views/channels.py b/evennia/web/website/views/channels.py index cf5cf9278c..f154a76405 100644 --- a/evennia/web/website/views/channels.py +++ b/evennia/web/website/views/channels.py @@ -4,13 +4,14 @@ Views for managing channels. """ from django.conf import settings -from django.views.generic import ListView -from django.utils.text import slugify from django.db.models.functions import Lower from django.http import HttpResponseBadRequest +from django.utils.text import slugify +from django.views.generic import ListView -from evennia.utils.logger import tail_log_file from evennia.utils import class_from_module +from evennia.utils.logger import tail_log_file + from .mixins import TypeclassMixin from .objects import ObjectDetailView diff --git a/evennia/web/website/views/characters.py b/evennia/web/website/views/characters.py index 34b335eda4..82878f1270 100644 --- a/evennia/web/website/views/characters.py +++ b/evennia/web/website/views/characters.py @@ -5,18 +5,20 @@ puppeting). """ from django.conf import settings -from django.urls import reverse_lazy from django.contrib import messages from django.contrib.auth.mixins import LoginRequiredMixin -from django.http import HttpResponseRedirect from django.db.models.functions import Lower -from django.views.generic.base import RedirectView +from django.http import HttpResponseRedirect +from django.urls import reverse_lazy from django.views.generic import ListView +from django.views.generic.base import RedirectView + from evennia.utils import class_from_module -from .mixins import TypeclassMixin -from .objects import ObjectDetailView, ObjectDeleteView, ObjectUpdateView, ObjectCreateView from evennia.web.website import forms +from .mixins import TypeclassMixin +from .objects import ObjectCreateView, ObjectDeleteView, ObjectDetailView, ObjectUpdateView + class CharacterMixin(TypeclassMixin): """ diff --git a/evennia/web/website/views/help.py b/evennia/web/website/views/help.py index 0ff1410e4f..677328d57c 100644 --- a/evennia/web/website/views/help.py +++ b/evennia/web/website/views/help.py @@ -4,14 +4,15 @@ Views to manipulate help entries. Multi entry object type supported added by DaveWithTheNiceHat 2021 Pull Request #2429 """ -from django.utils.text import slugify from django.conf import settings -from evennia.utils.utils import inherits_from -from django.views.generic import ListView, DetailView from django.http import HttpResponseBadRequest -from evennia.help.models import HelpEntry +from django.utils.text import slugify +from django.views.generic import DetailView, ListView + from evennia.help.filehelp import FILE_HELP_ENTRIES +from evennia.help.models import HelpEntry from evennia.utils.ansi import strip_ansi +from evennia.utils.utils import inherits_from DEFAULT_HELP_CATEGORY = settings.DEFAULT_HELP_CATEGORY diff --git a/evennia/web/website/views/index.py b/evennia/web/website/views/index.py index 0337d17c09..0540233d1e 100644 --- a/evennia/web/website/views/index.py +++ b/evennia/web/website/views/index.py @@ -5,9 +5,10 @@ The main index page, including the game stats from django.conf import settings from django.views.generic import TemplateView + from evennia import SESSION_HANDLER -from evennia.objects.models import ObjectDB from evennia.accounts.models import AccountDB +from evennia.objects.models import ObjectDB from evennia.utils import class_from_module diff --git a/evennia/web/website/views/mixins.py b/evennia/web/website/views/mixins.py index 336e38b62d..8cecd5b241 100644 --- a/evennia/web/website/views/mixins.py +++ b/evennia/web/website/views/mixins.py @@ -3,7 +3,7 @@ These are mixins for class-based views, granting functionality. """ from django.views.generic import DetailView -from django.views.generic.edit import CreateView, UpdateView, DeleteView +from django.views.generic.edit import CreateView, DeleteView, UpdateView class TypeclassMixin: diff --git a/evennia/web/website/views/objects.py b/evennia/web/website/views/objects.py index 09341ffd2d..0fa774be27 100644 --- a/evennia/web/website/views/objects.py +++ b/evennia/web/website/views/objects.py @@ -4,14 +4,17 @@ Views for managing a specific object) """ from collections import OrderedDict + from django.conf import settings -from django.contrib.auth.mixins import LoginRequiredMixin -from django.http import HttpResponseBadRequest, HttpResponseRedirect -from django.core.exceptions import PermissionDenied from django.contrib import messages -from evennia.utils import class_from_module +from django.contrib.auth.mixins import LoginRequiredMixin +from django.core.exceptions import PermissionDenied +from django.http import HttpResponseBadRequest, HttpResponseRedirect from django.utils.text import slugify -from .mixins import EvenniaCreateView, EvenniaDeleteView, EvenniaUpdateView, EvenniaDetailView + +from evennia.utils import class_from_module + +from .mixins import EvenniaCreateView, EvenniaDeleteView, EvenniaDetailView, EvenniaUpdateView class ObjectDetailView(EvenniaDetailView): diff --git a/setup.py b/setup.py index 3e676261cd..fa78c2435b 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ import os import sys -from setuptools import setup, find_packages + +from setuptools import find_packages, setup os.chdir(os.path.dirname(os.path.realpath(__file__)))