Source code for evennia.contrib.base_systems.awsstorage.tests
-from unittest import skipIf
-from django.test import override_settings
+import datetime
+import gzip
+import pickle
+import threading
+from unittest import skipIf
+
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/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/building_menu.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/building_menu.html
index 505037d54f..3be14f15b5 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/building_menu.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/building_menu.html
@@ -202,14 +202,14 @@
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/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/tests.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/tests.html
index 8acbefd90b..0774b75625 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/building_menu/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.commands.default.tests import BaseEvenniaCommandTest
+
from .building_menu import BuildingMenu, CmdNoMatch
diff --git a/docs/1.0-dev/_modules/evennia/contrib/base_systems/color_markups/tests.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/color_markups/tests.html
index 78c20704b8..dac634243c 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/color_markups/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/color_markups/tests.html
@@ -80,7 +80,9 @@
"""
import re
+
from evennia.utils.test_resources import BaseEvenniaTest
+
from . import color_markups
diff --git a/docs/1.0-dev/_modules/evennia/contrib/base_systems/components/tests.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/components/tests.html
index 3afee2cda1..1adb36d1cf 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/components/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/components/tests.html
@@ -76,11 +76,11 @@
Source code for evennia.contrib.base_systems.components.tests
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
[docs]class ComponentTestA(Component):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/custom_gametime.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/custom_gametime.html
index c8bea8b852..dec819e052 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/custom_gametime.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/custom_gametime.html
@@ -111,9 +111,10 @@
# 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/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/tests.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/tests.html
index 7387b17b90..5dca85ca2e 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/custom_gametime/tests.html
@@ -81,7 +81,9 @@
# Testing custom_gametime
from mock import Mock, patch
+
from evennia.utils.test_resources import BaseEvenniaTest
+
from .. import custom_gametime
diff --git a/docs/1.0-dev/_modules/evennia/contrib/base_systems/email_login/email_login.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/email_login/email_login.html
index cc647fe8d7..ef4aaed94f 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/email_login/email_login.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/email_login/email_login.html
@@ -109,6 +109,7 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/commands.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/commands.html
index 89f6da9602..c2c6e94081 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/commands.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/commands.html
@@ -81,11 +81,12 @@
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/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/scripts.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/scripts.html
index 0289e4a0dd..60aef274b1 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/scripts.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/scripts.html
@@ -78,21 +78,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 "\<string\>", line (\d+)')
diff --git a/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/tests.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/tests.html
index 923d76d054..c5abb24669 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/tests.html
@@ -78,18 +78,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/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/utils.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/utils.html
index 2d98164022..bd59e57549 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/utils.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/ingame_python/utils.html
@@ -82,14 +82,13 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.html
index af8ca82d9c..a1ece23bfb 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/mux_comms_cmds.html
@@ -118,6 +118,7 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/tests.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/tests.html
index 1e2011ac32..9739ddc19c 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/mux_comms_cmds/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.commands.default.tests import BaseEvenniaCommandTest
+
from . import mux_comms_cmds as comms
diff --git a/docs/1.0-dev/_modules/evennia/contrib/base_systems/unixcommand/tests.html b/docs/1.0-dev/_modules/evennia/contrib/base_systems/unixcommand/tests.html
index 53e1aeef29..755d6cbb0a 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/base_systems/unixcommand/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/base_systems/unixcommand/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.commands.default.tests import BaseEvenniaCommandTest
+
from .unixcommand import UnixCommand
diff --git a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html
index 63c2f8abb8..70fe967d47 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/commands.html
@@ -104,11 +104,12 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/menu.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/menu.html
index 5a543b86bf..71b7218c14 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/menu.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/menu.html
@@ -84,9 +84,9 @@
"""
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
@@ -293,8 +293,8 @@
# 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/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/objects.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/objects.html
index 74bee9a616..3889bd12e5 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/objects.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/objects.html
@@ -119,12 +119,13 @@
- 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
[docs]class EvscaperoomObject(DefaultObject):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html
index 8a260d52d1..9f75714fde 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/room.html
@@ -83,14 +83,13 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/state.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/state.html
index 2bb02d52fb..4aefe34842 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/state.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/state.html
@@ -88,14 +88,15 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/tests.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/tests.html
index 9712d73c46..a4c04be522 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/tests.html
@@ -81,13 +81,14 @@
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/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/utils.html b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/utils.html
index 8ca12ade0e..45fd45c531 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/utils.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/full_systems/evscaperoom/utils.html
@@ -84,8 +84,9 @@
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/barter.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/barter.html
index 1ded8aa13c..b592a7e789 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/barter.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/barter.html
@@ -170,8 +170,8 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/tests.html
index 9b2be66d8e..34617c6d96 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/barter/tests.html
@@ -79,8 +79,10 @@
"""
from mock import Mock
+
from evennia.commands.default.tests import BaseEvenniaCommandTest
from evennia.utils.create import create_object
+
from . import barter
diff --git a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html
index d755da62c5..95ed293ab5 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/clothing.html
@@ -149,12 +149,9 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html
index cda71cfe16..24a3171a51 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/clothing/tests.html
@@ -80,9 +80,10 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/cooldowns/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/cooldowns/tests.html
index be333ce14c..22f947b9ca 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/cooldowns/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/cooldowns/tests.html
@@ -80,7 +80,9 @@
"""
from mock import patch
+
from evennia.utils.test_resources import BaseEvenniaTest
+
from . import cooldowns
diff --git a/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/crafting.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/crafting.html
index 535f3bc35d..d888d3da42 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/crafting.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/crafting.html
@@ -197,11 +197,12 @@
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/example_recipes.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/example_recipes.html
index 4cff8db5bd..0782af350c 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/example_recipes.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/example_recipes.html
@@ -145,10 +145,11 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/tests.html
index ca1d907015..365d1b3550 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/crafting/tests.html
@@ -80,11 +80,14 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/gendersub.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/gendersub.html
index e8340694f4..bbd0244e33 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/gendersub.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/gendersub.html
@@ -118,9 +118,9 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/tests.html
index 11cf14414e..b2ba86b529 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/gendersub/tests.html
@@ -80,9 +80,11 @@
"""
+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/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/mail.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/mail.html
index 94ef4ae2bf..f62078eeee 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/mail.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/mail.html
@@ -118,11 +118,10 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/tests.html
index 48786c24ba..479407a2ad 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/mail/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.commands.default.tests import BaseEvenniaCommandTest
+
from . import mail
diff --git a/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/multidescer.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/multidescer.html
index df18da5019..37c498a939 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/multidescer.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/multidescer.html
@@ -102,10 +102,10 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/tests.html
index 4c2b2dcecd..af41027039 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/multidescer/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.commands.default.tests import BaseEvenniaCommandTest
+
from . import multidescer
diff --git a/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/puzzles.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/puzzles.html
index e6d31f1c7f..36e510c49a 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/puzzles.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/puzzles.html
@@ -149,16 +149,12 @@
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/tests.html
index 9b7c1b9441..3e7e804e21 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/puzzles/tests.html
@@ -81,12 +81,15 @@
# 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/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html
index ca697883f4..2e272ffb71 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_basic.html
@@ -119,7 +119,8 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_equip.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_equip.html
index c5bf90e337..a897f9d4d3 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_equip.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_equip.html
@@ -131,7 +131,9 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_items.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_items.html
index 90d667265e..a153e0c9d0 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_items.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_items.html
@@ -143,10 +143,12 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_magic.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_magic.html
index 090b3b0497..03a88f2d13 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_magic.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_magic.html
@@ -143,9 +143,10 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_range.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_range.html
index f615dd4f1e..5c1deb8549 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_range.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tb_range.html
@@ -177,8 +177,10 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tests.html b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tests.html
index 6f91123fb8..1aa1db484f 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/game_systems/turnbattle/tests.html
@@ -79,11 +79,12 @@
"""
+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/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/extended_room.html b/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/extended_room.html
index 77c90c2721..91d37ce675 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/extended_room.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/extended_room.html
@@ -162,12 +162,10 @@
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/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/tests.html b/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/tests.html
index 793f4e0db5..43c60e01e1 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/extended_room/tests.html
@@ -80,10 +80,13 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/grid/ingame_map_display/ingame_map_display.html b/docs/1.0-dev/_modules/evennia/contrib/grid/ingame_map_display/ingame_map_display.html
index dfb1ea18bb..842b38635b 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/ingame_map_display/ingame_map_display.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/ingame_map_display/ingame_map_display.html
@@ -133,7 +133,9 @@
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/docs/1.0-dev/_modules/evennia/contrib/grid/simpledoor/tests.html b/docs/1.0-dev/_modules/evennia/contrib/grid/simpledoor/tests.html
index c4e6101b62..403ea9ff08 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/simpledoor/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/simpledoor/tests.html
@@ -81,6 +81,7 @@
from evennia.commands.default.tests import BaseEvenniaCommandTest
+
from . import simpledoor
diff --git a/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html b/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html
index 5ff6418ad6..dd43853ff3 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/slow_exit.html
@@ -131,11 +131,10 @@
"""
+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/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/tests.html b/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/tests.html
index ef270c2332..3e5f348fc4 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/slow_exit/tests.html
@@ -80,8 +80,10 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/tests.html b/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/tests.html
index a2f63f73b0..f3475e8805 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/tests.html
@@ -79,9 +79,10 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html b/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html
index 52f5fe63af..d73ba50c40 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/wilderness/wilderness.html
@@ -189,8 +189,7 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/commands.html b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/commands.html
index f4a0dba01f..02aa070d7e 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/commands.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/commands.html
@@ -86,6 +86,7 @@
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/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/launchcmd.html b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/launchcmd.html
index 461d196a31..0eb23853ca 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/launchcmd.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/launchcmd.html
@@ -93,11 +93,12 @@
"""
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 [<options>]
diff --git a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/tests.html b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/tests.html
index cd4bc51a4c..b1b65e5dc8 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/tests.html
@@ -79,14 +79,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/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap.html b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap.html
index a8c0ead5cf..65c3cc319d 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap.html
@@ -171,25 +171,27 @@
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/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap_legend.html b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap_legend.html
index 02507c5f88..797946f9e5 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap_legend.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xymap_legend.html
@@ -97,10 +97,11 @@
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/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzgrid.html b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzgrid.html
index efa2f833db..215e488c50 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzgrid.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzgrid.html
@@ -95,8 +95,9 @@
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
[docs]class XYZGrid(DefaultScript):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzroom.html b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzroom.html
index 5a0f8e3e25..ee7c3e119e 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzroom.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/grid/xyzgrid/xyzroom.html
@@ -85,6 +85,7 @@
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/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/buff.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/buff.html
index 344da8fc34..9d1c447b98 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/buff.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/buff.html
@@ -174,12 +174,13 @@
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
[docs]class BaseBuff:
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/samplebuffs.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/samplebuffs.html
index bb45392742..81e455bb3e 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/samplebuffs.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/samplebuffs.html
@@ -75,6 +75,7 @@
Source code for evennia.contrib.rpg.buffs.samplebuffs
import random
+
from .buff import BaseBuff, Mod
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/tests.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/tests.html
index 490be2875f..adf077bc31 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/buffs/tests.html
@@ -78,14 +78,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/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/dice.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/dice.html
index 58f4c8e69f..bbae8a3b6b 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/dice.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/dice.html
@@ -131,7 +131,8 @@
"""
import re
from random import randint
-from evennia import default_cmds, CmdSet
+
+from evennia import CmdSet, default_cmds
[docs]def roll(dicenum, dicetype, modifier=None, conditional=None, return_tuple=False):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/tests.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/tests.html
index 75185b5ff6..d0ccf6007c 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/dice/tests.html
@@ -79,8 +79,10 @@
"""
-from evennia.commands.default.tests import BaseEvenniaCommandTest
from mock import patch
+
+from evennia.commands.default.tests import BaseEvenniaCommandTest
+
from . import dice
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/health_bar/tests.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/health_bar/tests.html
index f80ef678b0..81029ce775 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/health_bar/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/health_bar/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.utils.test_resources import BaseEvenniaTest
+
from . import health_bar
diff --git a/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html
index 46b2b819d3..1a41ac8124 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/rpsystem.html
@@ -228,6 +228,7 @@
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/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html
index 12316fc403..4b69f3e527 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/rpsystem/tests.html
@@ -79,13 +79,14 @@
"""
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/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/tests.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/tests.html
index 0aae0998e8..b329980cdc 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/tests.html
@@ -85,9 +85,10 @@
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/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html b/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html
index b6bce1511b..e58d2c2a9e 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/rpg/traits/traits.html
@@ -533,6 +533,7 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.html
index f402bd172f..4f52673c82 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/bodyfunctions.html
@@ -90,6 +90,7 @@
"""
import random
+
from evennia import DefaultScript
diff --git a/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/tests.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/tests.html
index 6291e3ef25..5bfbc61113 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/bodyfunctions/tests.html
@@ -79,7 +79,9 @@
"""
from mock import Mock, patch
+
from evennia.utils.test_resources import BaseEvenniaTest
+
from .bodyfunctions import BodyFunctions
diff --git a/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_chargen.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_chargen.html
index c49e71003e..0f8ec42976 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_chargen.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_chargen.html
@@ -81,9 +81,10 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_commands.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_commands.html
index 92a13f91b8..4d6e6e1ba0 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_commands.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_commands.html
@@ -82,6 +82,7 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_equipment.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_equipment.html
index 60ebb38418..95b7088cf8 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_equipment.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_equipment.html
@@ -82,9 +82,10 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_rules.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_rules.html
index b4d2c28fca..8cfa586f99 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_rules.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/evadventure/tests/test_rules.html
@@ -82,9 +82,10 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/mirror/mirror.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/mirror/mirror.html
index 463abfc2c7..ca2af3f854 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/mirror/mirror.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/mirror/mirror.html
@@ -81,9 +81,8 @@
"""
-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
[docs]class TutorialMirror(DefaultObject):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/talking_npc.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/talking_npc.html
index 5b4416268f..18f0592cce 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/talking_npc.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/talking_npc.html
@@ -99,10 +99,9 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/tests.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/tests.html
index 20e2fa28d6..5a7be4825e 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/talking_npc/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.commands.default.tests import BaseEvenniaCommandTest
from evennia.utils.create import create_object
+
from . import talking_npc
diff --git a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/intro_menu.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/intro_menu.html
index 34d6c021ea..8c88cf22b0 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/intro_menu.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/intro_menu.html
@@ -88,9 +88,8 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/mob.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/mob.html
index 4d302a0a21..994ef94e49 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/mob.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/mob.html
@@ -83,10 +83,8 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/objects.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/objects.html
index 2226d7cd6e..5b3b550949 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/objects.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/objects.html
@@ -97,9 +97,9 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html
index 84fb0ae020..c6b5717259 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/rooms.html
@@ -87,17 +87,27 @@
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/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html
index e5cf7b375e..c60e9c6f4c 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/tutorials/tutorial_world/tests.html
@@ -80,12 +80,16 @@
"""
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
[docs]class TestTutorialWorldMob(BaseEvenniaTest):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/outputs.html b/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/outputs.html
index 77561ac8ff..b95455a0e3 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/outputs.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/outputs.html
@@ -89,10 +89,11 @@
Evennia contribution - Johnny 2017
"""
-from evennia.utils.logger import log_file
import json
import syslog
+from evennia.utils.logger import log_file
+
[docs]def to_file(data):
"""
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/server.html b/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/server.html
index c418373801..ee7ba6acc4 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/server.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/server.html
@@ -85,10 +85,11 @@
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/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/tests.html b/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/tests.html
index 9bbb5e694b..72a9c8b03a 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/auditing/tests.html
@@ -79,13 +79,16 @@
"""
-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
[docs]@override_settings(AUDIT_MASKS=[])
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/fieldfill/fieldfill.html b/docs/1.0-dev/_modules/evennia/contrib/utils/fieldfill/fieldfill.html
index 75df78be0f..1ce345e38b 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/fieldfill/fieldfill.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/fieldfill/fieldfill.html
@@ -215,9 +215,9 @@
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
[docs]class FieldEvMenu(evmenu.EvMenu):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/git_integration.html b/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/git_integration.html
index ade44f7cac..a2814c6121 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/git_integration.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/git_integration.html
@@ -74,14 +74,15 @@
Source code for evennia.contrib.utils.git_integration.git_integration
-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
[docs]class GitCommand(MuxCommand):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/tests.html b/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/tests.html
index 4b96be5837..e588f02ab9 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/git_integration/tests.html
@@ -79,13 +79,14 @@
"""
-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
[docs]class TestGitIntegration(EvenniaTest):
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/namegen.html b/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/namegen.html
index ffd76e65b3..8f0be922c3 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/namegen.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/namegen.html
@@ -145,6 +145,7 @@
import random
import re
from os import path
+
from django.conf import settings
from evennia.utils.utils import is_iter
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/tests.html b/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/tests.html
index 009e24b73d..54d8fce207 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/name_generator/tests.html
@@ -78,8 +78,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/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/random_string_generator.html b/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/random_string_generator.html
index caed66ea08..d8b49c3c8e 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/random_string_generator.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/random_string_generator.html
@@ -125,10 +125,10 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/tests.html b/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/tests.html
index 15064c7cdb..e45f2ee51f 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/random_string_generator/tests.html
@@ -80,6 +80,7 @@
"""
from evennia.utils.test_resources import BaseEvenniaTest
+
from . import random_string_generator
SIMPLE_GENERATOR = random_string_generator.RandomStringGenerator("simple", "[01]{2}")
diff --git a/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tests.html b/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tests.html
index e0ae7f8906..c24b4753ba 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tests.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tests.html
@@ -79,9 +79,10 @@
"""
-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/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tree_select.html b/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tree_select.html
index 0e8629df49..a98228a29b 100644
--- a/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tree_select.html
+++ b/docs/1.0-dev/_modules/evennia/contrib/utils/tree_select/tree_select.html
@@ -234,9 +234,9 @@
"""
+from evennia import Command
from evennia.utils import evmenu
from evennia.utils.logger import log_trace
-from evennia import Command
[docs]def init_tree_selection(
diff --git a/docs/1.0-dev/_modules/evennia/help/filehelp.html b/docs/1.0-dev/_modules/evennia/help/filehelp.html
index 0081f0c970..85d0e54284 100644
--- a/docs/1.0-dev/_modules/evennia/help/filehelp.html
+++ b/docs/1.0-dev/_modules/evennia/help/filehelp.html
@@ -142,13 +142,14 @@
"""
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/docs/1.0-dev/_modules/evennia/help/manager.html b/docs/1.0-dev/_modules/evennia/help/manager.html
index 47d23a9f7e..45b3f3889b 100644
--- a/docs/1.0-dev/_modules/evennia/help/manager.html
+++ b/docs/1.0-dev/_modules/evennia/help/manager.html
@@ -78,10 +78,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/docs/1.0-dev/_modules/evennia/help/models.html b/docs/1.0-dev/_modules/evennia/help/models.html
index addcb7b4c1..0e5ff97e14 100644
--- a/docs/1.0-dev/_modules/evennia/help/models.html
+++ b/docs/1.0-dev/_modules/evennia/help/models.html
@@ -90,10 +90,10 @@
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/docs/1.0-dev/_modules/evennia/help/utils.html b/docs/1.0-dev/_modules/evennia/help/utils.html
index 1c19ee62a1..2a4370b62e 100644
--- a/docs/1.0-dev/_modules/evennia/help/utils.html
+++ b/docs/1.0-dev/_modules/evennia/help/utils.html
@@ -81,9 +81,10 @@
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:
@@ -134,14 +135,13 @@
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/docs/1.0-dev/_modules/evennia/locks/lockfuncs.html b/docs/1.0-dev/_modules/evennia/locks/lockfuncs.html
index 30e0f1d8b9..b611bc5e0e 100644
--- a/docs/1.0-dev/_modules/evennia/locks/lockfuncs.html
+++ b/docs/1.0-dev/_modules/evennia/locks/lockfuncs.html
@@ -93,6 +93,7 @@
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/docs/1.0-dev/_modules/evennia/locks/lockhandler.html b/docs/1.0-dev/_modules/evennia/locks/lockhandler.html
index f9190c576d..746cbf957e 100644
--- a/docs/1.0-dev/_modules/evennia/locks/lockhandler.html
+++ b/docs/1.0-dev/_modules/evennia/locks/lockhandler.html
@@ -181,10 +181,12 @@
"""
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/docs/1.0-dev/_modules/evennia/objects/manager.html b/docs/1.0-dev/_modules/evennia/objects/manager.html
index f35feabe22..6d121f65bf 100644
--- a/docs/1.0-dev/_modules/evennia/objects/manager.html
+++ b/docs/1.0-dev/_modules/evennia/objects/manager.html
@@ -78,14 +78,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__
@@ -643,8 +649,8 @@
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/docs/1.0-dev/_modules/evennia/objects/models.html b/docs/1.0-dev/_modules/evennia/objects/models.html
index 13894a58d8..c42e0fc262 100644
--- a/docs/1.0-dev/_modules/evennia/objects/models.html
+++ b/docs/1.0-dev/_modules/evennia/objects/models.html
@@ -95,6 +95,7 @@
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/docs/1.0-dev/_modules/evennia/objects/objects.html b/docs/1.0-dev/_modules/evennia/objects/objects.html
index 5300275206..d97f2eed2f 100644
--- a/docs/1.0-dev/_modules/evennia/objects/objects.html
+++ b/docs/1.0-dev/_modules/evennia/objects/objects.html
@@ -89,6 +89,7 @@
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/docs/1.0-dev/_modules/evennia/prototypes/menus.html b/docs/1.0-dev/_modules/evennia/prototypes/menus.html
index 233d9f9fb3..efcb2ba068 100644
--- a/docs/1.0-dev/_modules/evennia/prototypes/menus.html
+++ b/docs/1.0-dev/_modules/evennia/prototypes/menus.html
@@ -83,16 +83,17 @@
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/docs/1.0-dev/_modules/evennia/prototypes/prototypes.html b/docs/1.0-dev/_modules/evennia/prototypes/prototypes.html
index 6f2005d5e8..589401fbec 100644
--- a/docs/1.0-dev/_modules/evennia/prototypes/prototypes.html
+++ b/docs/1.0-dev/_modules/evennia/prototypes/prototypes.html
@@ -88,6 +88,7 @@
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/docs/1.0-dev/_modules/evennia/prototypes/spawner.html b/docs/1.0-dev/_modules/evennia/prototypes/spawner.html
index 89102ab285..ed50b9ec52 100644
--- a/docs/1.0-dev/_modules/evennia/prototypes/spawner.html
+++ b/docs/1.0-dev/_modules/evennia/prototypes/spawner.html
@@ -213,9 +213,10 @@
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/docs/1.0-dev/_modules/evennia/scripts/manager.html b/docs/1.0-dev/_modules/evennia/scripts/manager.html
index 197e18f05e..5b385f9764 100644
--- a/docs/1.0-dev/_modules/evennia/scripts/manager.html
+++ b/docs/1.0-dev/_modules/evennia/scripts/manager.html
@@ -80,9 +80,10 @@
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__
@@ -334,8 +335,8 @@
"""
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/docs/1.0-dev/_modules/evennia/scripts/models.html b/docs/1.0-dev/_modules/evennia/scripts/models.html
index 3ddc5f93ef..76c02314cd 100644
--- a/docs/1.0-dev/_modules/evennia/scripts/models.html
+++ b/docs/1.0-dev/_modules/evennia/scripts/models.html
@@ -101,10 +101,11 @@
"""
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/docs/1.0-dev/_modules/evennia/scripts/monitorhandler.html b/docs/1.0-dev/_modules/evennia/scripts/monitorhandler.html
index db46b65811..331426c277 100644
--- a/docs/1.0-dev/_modules/evennia/scripts/monitorhandler.html
+++ b/docs/1.0-dev/_modules/evennia/scripts/monitorhandler.html
@@ -87,12 +87,11 @@
"""
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/docs/1.0-dev/_modules/evennia/scripts/scripthandler.html b/docs/1.0-dev/_modules/evennia/scripts/scripthandler.html
index ff7b7808f0..1552e4983a 100644
--- a/docs/1.0-dev/_modules/evennia/scripts/scripthandler.html
+++ b/docs/1.0-dev/_modules/evennia/scripts/scripthandler.html
@@ -81,12 +81,11 @@
`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
+
[docs]class ScriptHandler(object):
"""
diff --git a/docs/1.0-dev/_modules/evennia/scripts/scripts.html b/docs/1.0-dev/_modules/evennia/scripts/scripts.html
index ff23ef301c..4eca5bbe30 100644
--- a/docs/1.0-dev/_modules/evennia/scripts/scripts.html
+++ b/docs/1.0-dev/_modules/evennia/scripts/scripts.html
@@ -82,12 +82,13 @@
"""
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/docs/1.0-dev/_modules/evennia/scripts/taskhandler.html b/docs/1.0-dev/_modules/evennia/scripts/taskhandler.html
index 2bfe9ab736..e248b59500 100644
--- a/docs/1.0-dev/_modules/evennia/scripts/taskhandler.html
+++ b/docs/1.0-dev/_modules/evennia/scripts/taskhandler.html
@@ -79,14 +79,15 @@
"""
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/docs/1.0-dev/_modules/evennia/scripts/tickerhandler.html b/docs/1.0-dev/_modules/evennia/scripts/tickerhandler.html
index 12859e6b04..df9ab040e5 100644
--- a/docs/1.0-dev/_modules/evennia/scripts/tickerhandler.html
+++ b/docs/1.0-dev/_modules/evennia/scripts/tickerhandler.html
@@ -143,13 +143,14 @@
"""
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/docs/1.0-dev/_modules/evennia/server/amp_client.html b/docs/1.0-dev/_modules/evennia/server/amp_client.html
index 6141bfe1dd..68f9b3e25e 100644
--- a/docs/1.0-dev/_modules/evennia/server/amp_client.html
+++ b/docs/1.0-dev/_modules/evennia/server/amp_client.html
@@ -81,9 +81,11 @@
"""
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/docs/1.0-dev/_modules/evennia/server/connection_wizard.html b/docs/1.0-dev/_modules/evennia/server/connection_wizard.html
index e0a098259e..2764b99a89 100644
--- a/docs/1.0-dev/_modules/evennia/server/connection_wizard.html
+++ b/docs/1.0-dev/_modules/evennia/server/connection_wizard.html
@@ -78,10 +78,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/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html b/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html
index 89bce0bd02..d1d11c9ab3 100644
--- a/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html
+++ b/docs/1.0-dev/_modules/evennia/server/game_index_client/client.html
@@ -78,16 +78,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/docs/1.0-dev/_modules/evennia/server/game_index_client/service.html b/docs/1.0-dev/_modules/evennia/server/game_index_client/service.html
index 45040ad54e..d7171b0b7f 100644
--- a/docs/1.0-dev/_modules/evennia/server/game_index_client/service.html
+++ b/docs/1.0-dev/_modules/evennia/server/game_index_client/service.html
@@ -78,11 +78,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/docs/1.0-dev/_modules/evennia/server/initial_setup.html b/docs/1.0-dev/_modules/evennia/server/initial_setup.html
index 38496e379e..8bd5422690 100644
--- a/docs/1.0-dev/_modules/evennia/server/initial_setup.html
+++ b/docs/1.0-dev/_modules/evennia/server/initial_setup.html
@@ -84,13 +84,14 @@
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/docs/1.0-dev/_modules/evennia/server/inputfuncs.html b/docs/1.0-dev/_modules/evennia/server/inputfuncs.html
index 2fcb8d47db..60072eefae 100644
--- a/docs/1.0-dev/_modules/evennia/server/inputfuncs.html
+++ b/docs/1.0-dev/_modules/evennia/server/inputfuncs.html
@@ -98,9 +98,11 @@
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/docs/1.0-dev/_modules/evennia/server/models.html b/docs/1.0-dev/_modules/evennia/server/models.html
index 5500c841af..a75eadf651 100644
--- a/docs/1.0-dev/_modules/evennia/server/models.html
+++ b/docs/1.0-dev/_modules/evennia/server/models.html
@@ -86,12 +86,10 @@
"""
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/docs/1.0-dev/_modules/evennia/server/portal/amp.html b/docs/1.0-dev/_modules/evennia/server/portal/amp.html
index 609778ed2b..1575dc5d80 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/amp.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/amp.html
@@ -81,16 +81,17 @@
"""
+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/docs/1.0-dev/_modules/evennia/server/portal/amp_server.html b/docs/1.0-dev/_modules/evennia/server/portal/amp_server.html
index 035bf7851b..339bcd3b66 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/amp_server.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/amp_server.html
@@ -82,10 +82,12 @@
"""
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/docs/1.0-dev/_modules/evennia/server/portal/grapevine.html b/docs/1.0-dev/_modules/evennia/server/portal/grapevine.html
index efe6726b81..af6d9fb775 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/grapevine.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/grapevine.html
@@ -86,12 +86,14 @@
"""
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/docs/1.0-dev/_modules/evennia/server/portal/irc.html b/docs/1.0-dev/_modules/evennia/server/portal/irc.html
index 42d63d38ff..2703ee9b03 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/irc.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/irc.html
@@ -81,12 +81,13 @@
"""
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/docs/1.0-dev/_modules/evennia/server/portal/mssp.html b/docs/1.0-dev/_modules/evennia/server/portal/mssp.html
index 9c956667a5..dc3ff9be52 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/mssp.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/mssp.html
@@ -87,6 +87,7 @@
"""
from django.conf import settings
+
from evennia.utils import utils
MSSP = bytes([70]) # b"\x46"
diff --git a/docs/1.0-dev/_modules/evennia/server/portal/mxp.html b/docs/1.0-dev/_modules/evennia/server/portal/mxp.html
index 1d5be8c7d2..2d7831b4b1 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/mxp.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/mxp.html
@@ -90,6 +90,7 @@
"""
import re
+
from django.conf import settings
LINKS_SUB = re.compile(r"\|lc(.*?)\|lt(.*?)\|le", re.DOTALL)
diff --git a/docs/1.0-dev/_modules/evennia/server/portal/naws.html b/docs/1.0-dev/_modules/evennia/server/portal/naws.html
index 11f51e7bb5..13c6cf68c0 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/naws.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/naws.html
@@ -86,6 +86,7 @@
"""
from codecs import encode as codecs_encode
+
from django.conf import settings
NAWS = bytes([31]) # b"\x1f"
diff --git a/docs/1.0-dev/_modules/evennia/server/portal/portal.html b/docs/1.0-dev/_modules/evennia/server/portal/portal.html
index 7bbeaeb358..2320143cd0 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/portal.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/portal.html
@@ -83,17 +83,16 @@
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
@@ -103,11 +102,10 @@
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:
@@ -470,9 +468,10 @@
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/docs/1.0-dev/_modules/evennia/server/portal/portalsessionhandler.html b/docs/1.0-dev/_modules/evennia/server/portal/portalsessionhandler.html
index a457812249..b83584ffda 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/portalsessionhandler.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/portalsessionhandler.html
@@ -82,13 +82,15 @@
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/docs/1.0-dev/_modules/evennia/server/portal/rss.html b/docs/1.0-dev/_modules/evennia/server/portal/rss.html
index 8e6f02b97f..ac41379833 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/rss.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/rss.html
@@ -81,8 +81,9 @@
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/docs/1.0-dev/_modules/evennia/server/portal/ssh.html b/docs/1.0-dev/_modules/evennia/server/portal/ssh.html
index 1e0d84fbb0..f13b42a134 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/ssh.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/ssh.html
@@ -88,9 +88,9 @@
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
@@ -109,19 +109,19 @@
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/docs/1.0-dev/_modules/evennia/server/portal/ssl.html b/docs/1.0-dev/_modules/evennia/server/portal/ssl.html
index 9f4946c723..57f3dc1646 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/ssl.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/ssl.html
@@ -94,6 +94,7 @@
raise ImportError(errstr.format(err=error))
from django.conf import settings
+
from evennia.utils.utils import class_from_module
_GAME_DIR = settings.GAME_DIR
@@ -145,6 +146,7 @@
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/docs/1.0-dev/_modules/evennia/server/portal/telnet.html b/docs/1.0-dev/_modules/evennia/server/portal/telnet.html
index 1151633857..bcffd26567 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/telnet.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/telnet.html
@@ -84,28 +84,31 @@
"""
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/docs/1.0-dev/_modules/evennia/server/portal/telnet_oob.html b/docs/1.0-dev/_modules/evennia/server/portal/telnet_oob.html
index 9b44ac2a3f..c10dc04cb8 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/telnet_oob.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/telnet_oob.html
@@ -99,13 +99,14 @@
----
"""
-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/docs/1.0-dev/_modules/evennia/server/portal/telnet_ssl.html b/docs/1.0-dev/_modules/evennia/server/portal/telnet_ssl.html
index fb56913b06..4c72a6d02e 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/telnet_ssl.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/telnet_ssl.html
@@ -102,6 +102,7 @@
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/docs/1.0-dev/_modules/evennia/server/portal/tests.html b/docs/1.0-dev/_modules/evennia/server/portal/tests.html
index 20166924a1..50039aba11 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/tests.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/tests.html
@@ -84,35 +84,33 @@
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/docs/1.0-dev/_modules/evennia/server/portal/webclient.html b/docs/1.0-dev/_modules/evennia/server/portal/webclient.html
index 3dfa7e6a10..3219c2e75f 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/webclient.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/webclient.html
@@ -90,15 +90,17 @@
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/docs/1.0-dev/_modules/evennia/server/portal/webclient_ajax.html b/docs/1.0-dev/_modules/evennia/server/portal/webclient_ajax.html
index 50c9b64c16..03f653b4bf 100644
--- a/docs/1.0-dev/_modules/evennia/server/portal/webclient_ajax.html
+++ b/docs/1.0-dev/_modules/evennia/server/portal/webclient_ajax.html
@@ -93,20 +93,21 @@
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/docs/1.0-dev/_modules/evennia/server/profiling/dummyrunner.html b/docs/1.0-dev/_modules/evennia/server/profiling/dummyrunner.html
index 32ba05a9b7..4c0df09a3c 100644
--- a/docs/1.0-dev/_modules/evennia/server/profiling/dummyrunner.html
+++ b/docs/1.0-dev/_modules/evennia/server/profiling/dummyrunner.html
@@ -108,15 +108,15 @@
"""
+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
@@ -124,9 +124,10 @@
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/docs/1.0-dev/_modules/evennia/server/profiling/memplot.html b/docs/1.0-dev/_modules/evennia/server/profiling/memplot.html
index 683aaac16e..5684f3b7e1 100644
--- a/docs/1.0-dev/_modules/evennia/server/profiling/memplot.html
+++ b/docs/1.0-dev/_modules/evennia/server/profiling/memplot.html
@@ -132,8 +132,8 @@
# 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/docs/1.0-dev/_modules/evennia/server/profiling/test_queries.html b/docs/1.0-dev/_modules/evennia/server/profiling/test_queries.html
index 612a866566..07ad7846ff 100644
--- a/docs/1.0-dev/_modules/evennia/server/profiling/test_queries.html
+++ b/docs/1.0-dev/_modules/evennia/server/profiling/test_queries.html
@@ -80,8 +80,8 @@
"""
-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/docs/1.0-dev/_modules/evennia/server/profiling/tests.html b/docs/1.0-dev/_modules/evennia/server/profiling/tests.html
index 63d5826b51..2413e4e38b 100644
--- a/docs/1.0-dev/_modules/evennia/server/profiling/tests.html
+++ b/docs/1.0-dev/_modules/evennia/server/profiling/tests.html
@@ -74,9 +74,10 @@
Source code for evennia.server.profiling.tests
-from django.test import TestCase
-from mock import Mock, patch, mock_open
-from anything import Something
+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/docs/1.0-dev/_modules/evennia/server/server.html b/docs/1.0-dev/_modules/evennia/server/server.html
index 168e84d60e..b74f8ac390 100644
--- a/docs/1.0-dev/_modules/evennia/server/server.html
+++ b/docs/1.0-dev/_modules/evennia/server/server.html
@@ -107,6 +107,7 @@
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/docs/1.0-dev/_modules/evennia/server/serversession.html b/docs/1.0-dev/_modules/evennia/server/serversession.html
index fbc270baa0..1f8d543d3c 100644
--- a/docs/1.0-dev/_modules/evennia/server/serversession.html
+++ b/docs/1.0-dev/_modules/evennia/server/serversession.html
@@ -86,6 +86,7 @@
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/docs/1.0-dev/_modules/evennia/server/session.html b/docs/1.0-dev/_modules/evennia/server/session.html
index 04018c0aa9..f6b8a8bd44 100644
--- a/docs/1.0-dev/_modules/evennia/server/session.html
+++ b/docs/1.0-dev/_modules/evennia/server/session.html
@@ -79,10 +79,10 @@
(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/docs/1.0-dev/_modules/evennia/server/sessionhandler.html b/docs/1.0-dev/_modules/evennia/server/sessionhandler.html
index b398f10da4..cde1d9129f 100644
--- a/docs/1.0-dev/_modules/evennia/server/sessionhandler.html
+++ b/docs/1.0-dev/_modules/evennia/server/sessionhandler.html
@@ -93,6 +93,7 @@
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/docs/1.0-dev/_modules/evennia/server/throttle.html b/docs/1.0-dev/_modules/evennia/server/throttle.html
index dee065c119..9e1496ec84 100644
--- a/docs/1.0-dev/_modules/evennia/server/throttle.html
+++ b/docs/1.0-dev/_modules/evennia/server/throttle.html
@@ -74,12 +74,14 @@
Source code for evennia.server.throttle
-from django.core.cache import caches
+import time
from collections import deque
-from evennia.utils import logger
-import time
+
+from django.core.cache import caches
from django.utils.translation import gettext as _
+from evennia.utils import logger
+
[docs]class Throttle:
"""
diff --git a/docs/1.0-dev/_modules/evennia/server/validators.html b/docs/1.0-dev/_modules/evennia/server/validators.html
index 48ae5d2bb5..a2a100ed55 100644
--- a/docs/1.0-dev/_modules/evennia/server/validators.html
+++ b/docs/1.0-dev/_modules/evennia/server/validators.html
@@ -74,11 +74,13 @@
Source code for evennia.server.validators
-from django.conf import settings
+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
[docs]class EvenniaUsernameAvailabilityValidator:
diff --git a/docs/1.0-dev/_modules/evennia/server/webserver.html b/docs/1.0-dev/_modules/evennia/server/webserver.html
index d568b6c90b..77c8daf527 100644
--- a/docs/1.0-dev/_modules/evennia/server/webserver.html
+++ b/docs/1.0-dev/_modules/evennia/server/webserver.html
@@ -90,18 +90,16 @@
"""
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/docs/1.0-dev/_modules/evennia/typeclasses/attributes.html b/docs/1.0-dev/_modules/evennia/typeclasses/attributes.html
index 397a61df9a..3c2dc79486 100644
--- a/docs/1.0-dev/_modules/evennia/typeclasses/attributes.html
+++ b/docs/1.0-dev/_modules/evennia/typeclasses/attributes.html
@@ -84,20 +84,19 @@
"""
-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/docs/1.0-dev/_modules/evennia/typeclasses/managers.html b/docs/1.0-dev/_modules/evennia/typeclasses/managers.html
index 6af3afa861..bbdc2d3ce0 100644
--- a/docs/1.0-dev/_modules/evennia/typeclasses/managers.html
+++ b/docs/1.0-dev/_modules/evennia/typeclasses/managers.html
@@ -84,6 +84,7 @@
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/docs/1.0-dev/_modules/evennia/typeclasses/models.html b/docs/1.0-dev/_modules/evennia/typeclasses/models.html
index d1e549226f..dbb7e74e48 100644
--- a/docs/1.0-dev/_modules/evennia/typeclasses/models.html
+++ b/docs/1.0-dev/_modules/evennia/typeclasses/models.html
@@ -101,34 +101,31 @@
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/docs/1.0-dev/_modules/evennia/typeclasses/tags.html b/docs/1.0-dev/_modules/evennia/typeclasses/tags.html
index f555c1befc..56d1abe679 100644
--- a/docs/1.0-dev/_modules/evennia/typeclasses/tags.html
+++ b/docs/1.0-dev/_modules/evennia/typeclasses/tags.html
@@ -89,6 +89,7 @@
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/docs/1.0-dev/_modules/evennia/utils/ansi.html b/docs/1.0-dev/_modules/evennia/utils/ansi.html
index 8fba8472c9..e9d3dd1cb6 100644
--- a/docs/1.0-dev/_modules/evennia/utils/ansi.html
+++ b/docs/1.0-dev/_modules/evennia/utils/ansi.html
@@ -142,6 +142,7 @@
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/docs/1.0-dev/_modules/evennia/utils/batchprocessors.html b/docs/1.0-dev/_modules/evennia/utils/batchprocessors.html
index e56dedf234..41a9c0770d 100644
--- a/docs/1.0-dev/_modules/evennia/utils/batchprocessors.html
+++ b/docs/1.0-dev/_modules/evennia/utils/batchprocessors.html
@@ -243,11 +243,13 @@
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/docs/1.0-dev/_modules/evennia/utils/containers.html b/docs/1.0-dev/_modules/evennia/utils/containers.html
index 45f284348b..c50fd431dd 100644
--- a/docs/1.0-dev/_modules/evennia/utils/containers.html
+++ b/docs/1.0-dev/_modules/evennia/utils/containers.html
@@ -91,6 +91,7 @@
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/docs/1.0-dev/_modules/evennia/utils/dbserialize.html b/docs/1.0-dev/_modules/evennia/utils/dbserialize.html
index 0bd61ef2f6..036c32529e 100644
--- a/docs/1.0-dev/_modules/evennia/utils/dbserialize.html
+++ b/docs/1.0-dev/_modules/evennia/utils/dbserialize.html
@@ -106,6 +106,7 @@
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/docs/1.0-dev/_modules/evennia/utils/eveditor.html b/docs/1.0-dev/_modules/evennia/utils/eveditor.html
index b49582ab78..8d0a249d76 100644
--- a/docs/1.0-dev/_modules/evennia/utils/eveditor.html
+++ b/docs/1.0-dev/_modules/evennia/utils/eveditor.html
@@ -118,12 +118,13 @@
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/docs/1.0-dev/_modules/evennia/utils/evmenu.html b/docs/1.0-dev/_modules/evennia/utils/evmenu.html
index 1f430c96a8..973d5cb58c 100644
--- a/docs/1.0-dev/_modules/evennia/utils/evmenu.html
+++ b/docs/1.0-dev/_modules/evennia/utils/evmenu.html
@@ -356,6 +356,7 @@
# 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/docs/1.0-dev/_modules/evennia/utils/evmore.html b/docs/1.0-dev/_modules/evennia/utils/evmore.html
index d6b21170c1..58dd720c1d 100644
--- a/docs/1.0-dev/_modules/evennia/utils/evmore.html
+++ b/docs/1.0-dev/_modules/evennia/utils/evmore.html
@@ -116,6 +116,7 @@
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/docs/1.0-dev/_modules/evennia/utils/evtable.html b/docs/1.0-dev/_modules/evennia/utils/evtable.html
index 855b15ea7d..3652b0035d 100644
--- a/docs/1.0-dev/_modules/evennia/utils/evtable.html
+++ b/docs/1.0-dev/_modules/evennia/utils/evtable.html
@@ -194,6 +194,7 @@
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/docs/1.0-dev/_modules/evennia/utils/funcparser.html b/docs/1.0-dev/_modules/evennia/utils/funcparser.html
index 960c998714..5b8515a323 100644
--- a/docs/1.0-dev/_modules/evennia/utils/funcparser.html
+++ b/docs/1.0-dev/_modules/evennia/utils/funcparser.html
@@ -124,6 +124,7 @@
import random
from django.conf import settings
+
from evennia.utils import logger, search
from evennia.utils.utils import (
callables_from_module,
diff --git a/docs/1.0-dev/_modules/evennia/utils/gametime.html b/docs/1.0-dev/_modules/evennia/utils/gametime.html
index ff6be51e96..d611035096 100644
--- a/docs/1.0-dev/_modules/evennia/utils/gametime.html
+++ b/docs/1.0-dev/_modules/evennia/utils/gametime.html
@@ -88,6 +88,7 @@
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/docs/1.0-dev/_modules/evennia/utils/idmapper/models.html b/docs/1.0-dev/_modules/evennia/utils/idmapper/models.html
index a0bddd09f0..a90a6e3d17 100644
--- a/docs/1.0-dev/_modules/evennia/utils/idmapper/models.html
+++ b/docs/1.0-dev/_modules/evennia/utils/idmapper/models.html
@@ -94,9 +94,10 @@
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/docs/1.0-dev/_modules/evennia/utils/idmapper/tests.html b/docs/1.0-dev/_modules/evennia/utils/idmapper/tests.html
index e1dfa41e8d..916a709e0e 100644
--- a/docs/1.0-dev/_modules/evennia/utils/idmapper/tests.html
+++ b/docs/1.0-dev/_modules/evennia/utils/idmapper/tests.html
@@ -74,10 +74,10 @@
Source code for evennia.utils.idmapper.tests
-from django.test import TestCase
+from django.db import models
+from django.test import TestCase
from .models import SharedMemoryModel
-from django.db import models
[docs]class Category(SharedMemoryModel):
diff --git a/docs/1.0-dev/_modules/evennia/utils/optionclasses.html b/docs/1.0-dev/_modules/evennia/utils/optionclasses.html
index e8995c4eae..1cc7e4c5e2 100644
--- a/docs/1.0-dev/_modules/evennia/utils/optionclasses.html
+++ b/docs/1.0-dev/_modules/evennia/utils/optionclasses.html
@@ -75,11 +75,12 @@
Source code for evennia.utils.optionclasses
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
[docs]class BaseOption:
diff --git a/docs/1.0-dev/_modules/evennia/utils/optionhandler.html b/docs/1.0-dev/_modules/evennia/utils/optionhandler.html
index 217e44d4bc..7c6fda9c8d 100644
--- a/docs/1.0-dev/_modules/evennia/utils/optionhandler.html
+++ b/docs/1.0-dev/_modules/evennia/utils/optionhandler.html
@@ -74,9 +74,10 @@
Source code for evennia.utils.optionhandler
-from evennia.utils.utils import string_partial_matching
+from django.utils.translation import gettext as _
+
from evennia.utils.containers import OPTION_CLASSES
-from django.utils.translation import gettext as _
+from evennia.utils.utils import string_partial_matching
_GA = object.__getattribute__
_SA = object.__setattr__
diff --git a/docs/1.0-dev/_modules/evennia/utils/picklefield.html b/docs/1.0-dev/_modules/evennia/utils/picklefield.html
index 31d1143639..ea884ec113 100644
--- a/docs/1.0-dev/_modules/evennia/utils/picklefield.html
+++ b/docs/1.0-dev/_modules/evennia/utils/picklefield.html
@@ -105,23 +105,21 @@
"""
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/docs/1.0-dev/_modules/evennia/utils/search.html b/docs/1.0-dev/_modules/evennia/utils/search.html
index d2890b91b4..1f96de1e67 100644
--- a/docs/1.0-dev/_modules/evennia/utils/search.html
+++ b/docs/1.0-dev/_modules/evennia/utils/search.html
@@ -102,8 +102,8 @@
# 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__ = (
@@ -133,11 +133,11 @@
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/docs/1.0-dev/_modules/evennia/utils/test_resources.html b/docs/1.0-dev/_modules/evennia/utils/test_resources.html
index 94a75ac40a..f3164c1ac5 100644
--- a/docs/1.0-dev/_modules/evennia/utils/test_resources.html
+++ b/docs/1.0-dev/_modules/evennia/utils/test_resources.html
@@ -104,6 +104,9 @@
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
@@ -115,8 +118,6 @@
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/docs/1.0-dev/_modules/evennia/utils/text2html.html b/docs/1.0-dev/_modules/evennia/utils/text2html.html
index c7b09ebf56..c8458e264d 100644
--- a/docs/1.0-dev/_modules/evennia/utils/text2html.html
+++ b/docs/1.0-dev/_modules/evennia/utils/text2html.html
@@ -86,6 +86,7 @@
import re
from html import escape as html_escape
+
from .ansi import *
# All xterm256 RGB equivalents
diff --git a/docs/1.0-dev/_modules/evennia/utils/utils.html b/docs/1.0-dev/_modules/evennia/utils/utils.html
index 03da606df4..4b65fed143 100644
--- a/docs/1.0-dev/_modules/evennia/utils/utils.html
+++ b/docs/1.0-dev/_modules/evennia/utils/utils.html
@@ -110,12 +110,13 @@
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/docs/1.0-dev/_modules/evennia/utils/validatorfuncs.html b/docs/1.0-dev/_modules/evennia/utils/validatorfuncs.html
index 7e58ef11aa..5c8660591d 100644
--- a/docs/1.0-dev/_modules/evennia/utils/validatorfuncs.html
+++ b/docs/1.0-dev/_modules/evennia/utils/validatorfuncs.html
@@ -84,13 +84,16 @@
"""
-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/docs/1.0-dev/_modules/evennia/utils/verb_conjugation/tests.html b/docs/1.0-dev/_modules/evennia/utils/verb_conjugation/tests.html
index a1f4fbae93..3306cf87b4 100644
--- a/docs/1.0-dev/_modules/evennia/utils/verb_conjugation/tests.html
+++ b/docs/1.0-dev/_modules/evennia/utils/verb_conjugation/tests.html
@@ -79,8 +79,9 @@
"""
-from parameterized import parameterized
from django.test import TestCase
+from parameterized import parameterized
+
from . import conjugate, pronouns
diff --git a/docs/1.0-dev/_modules/evennia/web/admin/accounts.html b/docs/1.0-dev/_modules/evennia/web/admin/accounts.html
index f8f0f91803..112182502d 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/accounts.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/accounts.html
@@ -79,30 +79,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/docs/1.0-dev/_modules/evennia/web/admin/attributes.html b/docs/1.0-dev/_modules/evennia/web/admin/attributes.html
index 1d9cd1f11a..beccb593c3 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/attributes.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/attributes.html
@@ -84,12 +84,13 @@
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
[docs]class AttributeForm(forms.ModelForm):
diff --git a/docs/1.0-dev/_modules/evennia/web/admin/comms.html b/docs/1.0-dev/_modules/evennia/web/admin/comms.html
index 2383123044..7c53d5fe4f 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/comms.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/comms.html
@@ -80,9 +80,10 @@
"""
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/docs/1.0-dev/_modules/evennia/web/admin/frontpage.html b/docs/1.0-dev/_modules/evennia/web/admin/frontpage.html
index 0ee47009bb..901c4c9a03 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/frontpage.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/frontpage.html
@@ -80,8 +80,8 @@
"""
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/docs/1.0-dev/_modules/evennia/web/admin/help.html b/docs/1.0-dev/_modules/evennia/web/admin/help.html
index e41e44d232..042839c35f 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/help.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/help.html
@@ -79,6 +79,7 @@
"""
from django import forms
from django.contrib import admin
+
from evennia.help.models import HelpEntry
from .tags import TagInline
diff --git a/docs/1.0-dev/_modules/evennia/web/admin/objects.html b/docs/1.0-dev/_modules/evennia/web/admin/objects.html
index c5441fed7b..ef44b942f7 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/objects.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/objects.html
@@ -78,22 +78,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
[docs]class ObjectAttributeInline(AttributeInline):
diff --git a/docs/1.0-dev/_modules/evennia/web/admin/scripts.html b/docs/1.0-dev/_modules/evennia/web/admin/scripts.html
index 6af43f27f5..3d1e547cc1 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/scripts.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/scripts.html
@@ -83,9 +83,10 @@
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
[docs]class ScriptForm(forms.ModelForm):
diff --git a/docs/1.0-dev/_modules/evennia/web/admin/server.html b/docs/1.0-dev/_modules/evennia/web/admin/server.html
index f09dbf5487..9633a75521 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/server.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/server.html
@@ -82,6 +82,7 @@
"""
from django.contrib import admin
+
from evennia.server.models import ServerConfig
diff --git a/docs/1.0-dev/_modules/evennia/web/admin/tags.html b/docs/1.0-dev/_modules/evennia/web/admin/tags.html
index 8de451c54e..437fa473f6 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/tags.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/tags.html
@@ -82,12 +82,13 @@
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
[docs]class TagForm(forms.ModelForm):
diff --git a/docs/1.0-dev/_modules/evennia/web/admin/utils.html b/docs/1.0-dev/_modules/evennia/web/admin/utils.html
index 2eb26a5ce1..cc9ba046fb 100644
--- a/docs/1.0-dev/_modules/evennia/web/admin/utils.html
+++ b/docs/1.0-dev/_modules/evennia/web/admin/utils.html
@@ -80,7 +80,8 @@
"""
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
[docs]def get_and_load_typeclasses(parent=None, excluded_parents=None):
diff --git a/docs/1.0-dev/_modules/evennia/web/api/filters.html b/docs/1.0-dev/_modules/evennia/web/api/filters.html
index 4c89ba58ba..568f609670 100644
--- a/docs/1.0-dev/_modules/evennia/web/api/filters.html
+++ b/docs/1.0-dev/_modules/evennia/web/api/filters.html
@@ -84,12 +84,13 @@
"""
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/docs/1.0-dev/_modules/evennia/web/api/permissions.html b/docs/1.0-dev/_modules/evennia/web/api/permissions.html
index 95a5778936..3db049e1bf 100644
--- a/docs/1.0-dev/_modules/evennia/web/api/permissions.html
+++ b/docs/1.0-dev/_modules/evennia/web/api/permissions.html
@@ -80,8 +80,9 @@
"""
-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/docs/1.0-dev/_modules/evennia/web/api/serializers.html b/docs/1.0-dev/_modules/evennia/web/api/serializers.html
index 63abcc3d12..e65a5ea485 100644
--- a/docs/1.0-dev/_modules/evennia/web/api/serializers.html
+++ b/docs/1.0-dev/_modules/evennia/web/api/serializers.html
@@ -88,12 +88,12 @@
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
[docs]class AttributeSerializer(serializers.ModelSerializer):
diff --git a/docs/1.0-dev/_modules/evennia/web/api/tests.html b/docs/1.0-dev/_modules/evennia/web/api/tests.html
index 68f8589e2f..860d8cb786 100644
--- a/docs/1.0-dev/_modules/evennia/web/api/tests.html
+++ b/docs/1.0-dev/_modules/evennia/web/api/tests.html
@@ -78,13 +78,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/docs/1.0-dev/_modules/evennia/web/api/views.html b/docs/1.0-dev/_modules/evennia/web/api/views.html
index 1269c20a82..6ccf37ac54 100644
--- a/docs/1.0-dev/_modules/evennia/web/api/views.html
+++ b/docs/1.0-dev/_modules/evennia/web/api/views.html
@@ -80,20 +80,18 @@
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/docs/1.0-dev/_modules/evennia/web/utils/adminsite.html b/docs/1.0-dev/_modules/evennia/web/utils/adminsite.html
index 4d9055d533..b79d9df011 100644
--- a/docs/1.0-dev/_modules/evennia/web/utils/adminsite.html
+++ b/docs/1.0-dev/_modules/evennia/web/utils/adminsite.html
@@ -84,8 +84,8 @@
"""
-from django.contrib.admin import apps
from django.contrib import admin
+from django.contrib.admin import apps
[docs]class EvenniaAdminApp(apps.AdminConfig):
diff --git a/docs/1.0-dev/_modules/evennia/web/utils/backends.html b/docs/1.0-dev/_modules/evennia/web/utils/backends.html
index bfa63ad2a0..4ada82ac79 100644
--- a/docs/1.0-dev/_modules/evennia/web/utils/backends.html
+++ b/docs/1.0-dev/_modules/evennia/web/utils/backends.html
@@ -74,8 +74,8 @@
Source code for evennia.web.utils.backends
-from django.contrib.auth.backends import ModelBackend
-from django.contrib.auth import get_user_model
+from django.contrib.auth import get_user_model
+from django.contrib.auth.backends import ModelBackend
[docs]class CaseInsensitiveModelBackend(ModelBackend):
diff --git a/docs/1.0-dev/_modules/evennia/web/utils/general_context.html b/docs/1.0-dev/_modules/evennia/web/utils/general_context.html
index 1b5fe81d25..7d7ca1b6ce 100644
--- a/docs/1.0-dev/_modules/evennia/web/utils/general_context.html
+++ b/docs/1.0-dev/_modules/evennia/web/utils/general_context.html
@@ -85,7 +85,9 @@
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/docs/1.0-dev/_modules/evennia/web/utils/middleware.html b/docs/1.0-dev/_modules/evennia/web/utils/middleware.html
index 034916705b..6c0ed7e431 100644
--- a/docs/1.0-dev/_modules/evennia/web/utils/middleware.html
+++ b/docs/1.0-dev/_modules/evennia/web/utils/middleware.html
@@ -75,6 +75,7 @@
Source code for evennia.web.utils.middleware
from django.contrib.auth import authenticate, login
+
from evennia.accounts.models import AccountDB
from evennia.utils import logger
diff --git a/docs/1.0-dev/_modules/evennia/web/utils/tests.html b/docs/1.0-dev/_modules/evennia/web/utils/tests.html
index cabe0f5700..dcb48f0766 100644
--- a/docs/1.0-dev/_modules/evennia/web/utils/tests.html
+++ b/docs/1.0-dev/_modules/evennia/web/utils/tests.html
@@ -77,6 +77,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/docs/1.0-dev/_modules/evennia/web/webclient/views.html b/docs/1.0-dev/_modules/evennia/web/webclient/views.html
index 9a08e12381..30ce9553ef 100644
--- a/docs/1.0-dev/_modules/evennia/web/webclient/views.html
+++ b/docs/1.0-dev/_modules/evennia/web/webclient/views.html
@@ -81,9 +81,9 @@
"""
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/docs/1.0-dev/_modules/evennia/web/website/forms.html b/docs/1.0-dev/_modules/evennia/web/website/forms.html
index 3f1efd2333..9b775349df 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/forms.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/forms.html
@@ -79,6 +79,7 @@
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/docs/1.0-dev/_modules/evennia/web/website/tests.html b/docs/1.0-dev/_modules/evennia/web/website/tests.html
index e01333a6ff..dc9fde610b 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/tests.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/tests.html
@@ -78,6 +78,7 @@
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/docs/1.0-dev/_modules/evennia/web/website/views/accounts.html b/docs/1.0-dev/_modules/evennia/web/website/views/accounts.html
index 3ccf0cf6b1..a5eb5c0f16 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/views/accounts.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/views/accounts.html
@@ -80,14 +80,15 @@
"""
-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
[docs]class AccountMixin(TypeclassMixin):
diff --git a/docs/1.0-dev/_modules/evennia/web/website/views/channels.html b/docs/1.0-dev/_modules/evennia/web/website/views/channels.html
index 8698b21a6a..87e531fb65 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/views/channels.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/views/channels.html
@@ -80,13 +80,14 @@
"""
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/docs/1.0-dev/_modules/evennia/web/website/views/characters.html b/docs/1.0-dev/_modules/evennia/web/website/views/characters.html
index e7f8d10965..b1878cd856 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/views/characters.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/views/characters.html
@@ -81,18 +81,20 @@
"""
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
+
[docs]class CharacterMixin(TypeclassMixin):
"""
diff --git a/docs/1.0-dev/_modules/evennia/web/website/views/help.html b/docs/1.0-dev/_modules/evennia/web/website/views/help.html
index 707861abdd..bd4ae4bdd7 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/views/help.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/views/help.html
@@ -80,14 +80,15 @@
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/docs/1.0-dev/_modules/evennia/web/website/views/index.html b/docs/1.0-dev/_modules/evennia/web/website/views/index.html
index de12020146..ba05954cb3 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/views/index.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/views/index.html
@@ -81,9 +81,10 @@
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/docs/1.0-dev/_modules/evennia/web/website/views/mixins.html b/docs/1.0-dev/_modules/evennia/web/website/views/mixins.html
index 183344faa3..1647a05c92 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/views/mixins.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/views/mixins.html
@@ -79,7 +79,7 @@
"""
from django.views.generic import DetailView
-from django.views.generic.edit import CreateView, UpdateView, DeleteView
+from django.views.generic.edit import CreateView, DeleteView, UpdateView
[docs]class TypeclassMixin:
diff --git a/docs/1.0-dev/_modules/evennia/web/website/views/objects.html b/docs/1.0-dev/_modules/evennia/web/website/views/objects.html
index 63f747dcb5..89f3be4443 100644
--- a/docs/1.0-dev/_modules/evennia/web/website/views/objects.html
+++ b/docs/1.0-dev/_modules/evennia/web/website/views/objects.html
@@ -80,14 +80,17 @@
"""
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
[docs]class ObjectDetailView(EvenniaDetailView):
diff --git a/docs/1.0-dev/api/evennia.commands.default.building.html b/docs/1.0-dev/api/evennia.commands.default.building.html
index 912bca0e71..fc2ce0d4cc 100644
--- a/docs/1.0-dev/api/evennia.commands.default.building.html
+++ b/docs/1.0-dev/api/evennia.commands.default.building.html
@@ -590,7 +590,7 @@ You can specify the /force switch to bypass this confirmation.
@@ -631,7 +631,7 @@ You can specify the /force switch to bypass this confirmation.
-
-
search_index_entry = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}¶
+search_index_entry = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}¶
@@ -1343,7 +1343,7 @@ server settings.
-
-
aliases = ['@update', '@type', '@swap', '@parent', '@typeclasses']¶
+aliases = ['@typeclasses', '@type', '@parent', '@update', '@swap']¶
@@ -1374,7 +1374,7 @@ server settings.
-
-
search_index_entry = {'aliases': '@update @type @swap @parent @typeclasses', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass update type swap parent typeclasses', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶
+search_index_entry = {'aliases': '@typeclasses @type @parent @update @swap', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass typeclasses type parent update swap', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}¶
@@ -1529,7 +1529,7 @@ If object is not specified, the current location is examined.
@@ -1797,7 +1797,7 @@ the cases, see the module doc.
-
-
search_index_entry = {'aliases': '@ex @exam', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine ex exam', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}¶
+search_index_entry = {'aliases': '@exam @ex', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine exam ex', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}¶
@@ -1831,7 +1831,7 @@ one is given.
@@ -1862,7 +1862,7 @@ one is given.
-
-
search_index_entry = {'aliases': '@locate @search', 'category': 'building', 'key': '@find', 'no_prefix': 'find locate search', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}¶
+search_index_entry = {'aliases': '@search @locate', 'category': 'building', 'key': '@find', 'no_prefix': 'find search locate', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}¶
diff --git a/docs/1.0-dev/api/evennia.commands.default.comms.html b/docs/1.0-dev/api/evennia.commands.default.comms.html
index 3bbcb3973d..b2741edd0f 100644
--- a/docs/1.0-dev/api/evennia.commands.default.comms.html
+++ b/docs/1.0-dev/api/evennia.commands.default.comms.html
@@ -254,7 +254,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.
@@ -780,7 +780,7 @@ don’t actually sub to yet.
-
-
search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
+search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
@@ -933,7 +933,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.
@@ -953,7 +953,7 @@ ban mychannel1,mychannel2= EvilUser : Was banned for spamming.
-
-
search_index_entry = {'aliases': '@chan @channels', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel chan channels', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
+search_index_entry = {'aliases': '@channels @chan', 'category': 'comms', 'key': '@channel', 'no_prefix': 'channel channels chan', 'tags': '', 'text': "\n Use and manage in-game channels.\n\n Usage:\n channel channelname <msg>\n channel channel name = <msg>\n channel (show all subscription)\n channel/all (show available channels)\n channel/alias channelname = alias[;alias...]\n channel/unalias alias\n channel/who channelname\n channel/history channelname [= index]\n channel/sub channelname [= alias[;alias...]]\n channel/unsub channelname[,channelname, ...]\n channel/mute channelname[,channelname,...]\n channel/unmute channelname[,channelname,...]\n\n channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n channel/desc channelname = description\n channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n channel/ban channelname (list bans)\n channel/ban[/quiet] channelname[, channelname, ...] = subscribername [: reason]\n channel/unban[/quiet] channelname[, channelname, ...] = subscribername\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n\n # subtopics\n\n ## sending\n\n Usage: channel channelname msg\n channel channel name = msg (with space in channel name)\n\n This sends a message to the channel. Note that you will rarely use this\n command like this; instead you can use the alias\n\n channelname <msg>\n channelalias <msg>\n\n For example\n\n public Hello World\n pub Hello World\n\n (this shortcut doesn't work for aliases containing spaces)\n\n See channel/alias for help on setting channel aliases.\n\n ## alias and unalias\n\n Usage: channel/alias channel = alias[;alias[;alias...]]\n channel/unalias alias\n channel - this will list your subs and aliases to each channel\n\n Set one or more personal aliases for referencing a channel. For example:\n\n channel/alias warrior's guild = warrior;wguild;warchannel;warrior guild\n\n You can now send to the channel using all of these:\n\n warrior's guild Hello\n warrior Hello\n wguild Hello\n warchannel Hello\n\n Note that this will not work if the alias has a space in it. So the\n 'warrior guild' alias must be used with the `channel` command:\n\n channel warrior guild = Hello\n\n Channel-aliases can be removed one at a time, using the '/unalias' switch.\n\n ## who\n\n Usage: channel/who channelname\n\n List the channel's subscribers. Shows who are currently offline or are\n muting the channel. Subscribers who are 'muting' will not see messages sent\n to the channel (use channel/mute to mute a channel).\n\n ## history\n\n Usage: channel/history channel [= index]\n\n This will display the last |c20|n lines of channel history. By supplying an\n index number, you will step that many lines back before viewing those 20 lines.\n\n For example:\n\n channel/history public = 35\n\n will go back 35 lines and show the previous 20 lines from that point (so\n lines -35 to -55).\n\n ## sub and unsub\n\n Usage: channel/sub channel [=alias[;alias;...]]\n channel/unsub channel\n\n This subscribes you to a channel and optionally assigns personal shortcuts\n for you to use to send to that channel (see aliases). When you unsub, all\n your personal aliases will also be removed.\n\n ## mute and unmute\n\n Usage: channel/mute channelname\n channel/unmute channelname\n\n Muting silences all output from the channel without actually\n un-subscribing. Other channel members will see that you are muted in the /who\n list. Sending a message to the channel will automatically unmute you.\n\n ## create and destroy\n\n Usage: channel/create channelname[;alias;alias[:typeclass]] [= description]\n channel/destroy channelname [= reason]\n\n Creates a new channel (or destroys one you control). You will automatically\n join the channel you create and everyone will be kicked and loose all aliases\n to a destroyed channel.\n\n ## lock and unlock\n\n Usage: channel/lock channelname = lockstring\n channel/unlock channelname = lockstring\n\n Note: this is an admin command.\n\n A lockstring is on the form locktype:lockfunc(). Channels understand three\n locktypes:\n listen - who may listen or join the channel.\n send - who may send messages to the channel\n control - who controls the channel. This is usually the one creating\n the channel.\n\n Common lockfuncs are all() and perm(). To make a channel everyone can\n listen to but only builders can talk on, use this:\n\n listen:all()\n send: perm(Builders)\n\n ## boot and ban\n\n Usage:\n channel/boot[/quiet] channelname[,channelname,...] = subscribername [: reason]\n channel/ban channelname[, channelname, ...] = subscribername [: reason]\n channel/unban channelname[, channelname, ...] = subscribername\n channel/unban channelname\n channel/ban channelname (list bans)\n\n Booting will kick a named subscriber from channel(s) temporarily. The\n 'reason' will be passed to the booted user. Unless the /quiet switch is\n used, the channel will also be informed of the action. A booted user is\n still able to re-connect, but they'll have to set up their aliases again.\n\n Banning will blacklist a user from (re)joining the provided channels. It\n will then proceed to boot them from those channels if they were connected.\n The 'reason' and `/quiet` works the same as for booting.\n\n Example:\n boot mychannel1 = EvilUser : Kicking you to cool down a bit.\n ban mychannel1,mychannel2= EvilUser : Was banned for spamming.\n\n "}¶
diff --git a/docs/1.0-dev/api/evennia.commands.default.general.html b/docs/1.0-dev/api/evennia.commands.default.general.html
index a72a318029..97fd99a720 100644
--- a/docs/1.0-dev/api/evennia.commands.default.general.html
+++ b/docs/1.0-dev/api/evennia.commands.default.general.html
@@ -707,7 +707,7 @@ automatically begin with your name.
@@ -748,7 +748,7 @@ space.
-
-
search_index_entry = {'aliases': ': emote', 'category': 'general', 'key': 'pose', 'no_prefix': ' : emote', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
+search_index_entry = {'aliases': 'emote :', 'category': 'general', 'key': 'pose', 'no_prefix': ' emote :', 'tags': '', 'text': "\n strike a pose\n\n Usage:\n pose <pose text>\n pose's <pose text>\n\n Example:\n pose is standing by the wall, smiling.\n -> others will see:\n Tom is standing by the wall, smiling.\n\n Describe an action being taken. The pose text will\n automatically begin with your name.\n "}¶
diff --git a/docs/1.0-dev/api/evennia.commands.default.tests.html b/docs/1.0-dev/api/evennia.commands.default.tests.html
index b6bf005b2b..8d7ecb4641 100644
--- a/docs/1.0-dev/api/evennia.commands.default.tests.html
+++ b/docs/1.0-dev/api/evennia.commands.default.tests.html
@@ -900,7 +900,7 @@ main test suite started with
Test the batch processor.
+red_button = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp9qhx00ov/7d2d8aaa49e8e4b7f4000bef078036b7bd8ed2fd/evennia/contrib/tutorials/red_button/red_button.py'>¶
diff --git a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
index 1207ce9859..4dbc4dbec0 100644
--- a/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
+++ b/docs/1.0-dev/api/evennia.commands.default.unloggedin.html
@@ -120,7 +120,7 @@ connect “account name” “pass word”
@@ -155,7 +155,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'co con conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' co con conn', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶
+search_index_entry = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}¶
@@ -333,7 +333,7 @@ for simplicity. It shows a pane of info.
@@ -359,7 +359,7 @@ for simplicity. It shows a pane of info.
-
-
search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶
+search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n get help when in unconnected-in state\n\n Usage:\n help\n\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html b/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html
index de52b84a0a..a9ce68c054 100644
--- a/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html
+++ b/docs/1.0-dev/api/evennia.contrib.base_systems.email_login.email_login.html
@@ -137,7 +137,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.
@@ -167,7 +167,7 @@ there is no object yet before the account has logged in)
-
-
search_index_entry = {'aliases': 'co con conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' co con conn', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}¶
+search_index_entry = {'aliases': 'con co conn', 'category': 'general', 'key': 'connect', 'no_prefix': ' con co conn', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}¶
@@ -333,7 +333,7 @@ for simplicity. It shows a pane of info.
@@ -359,7 +359,7 @@ for simplicity. It shows a pane of info.
-
-
search_index_entry = {'aliases': 'h ?', 'category': 'general', 'key': 'help', 'no_prefix': ' h ?', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶
+search_index_entry = {'aliases': '? h', 'category': 'general', 'key': 'help', 'no_prefix': ' ? h', 'tags': '', 'text': '\n This is an unconnected version of the help command,\n for simplicity. It shows a pane of info.\n '}¶
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html b/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html
index ee2699c248..ef6742c570 100644
--- a/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html
+++ b/docs/1.0-dev/api/evennia.contrib.base_systems.ingame_python.commands.html
@@ -114,7 +114,7 @@
@@ -195,7 +195,7 @@ on user permission.
-
-
search_index_entry = {'aliases': '@callbacks @callback @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callbacks callback calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶
+search_index_entry = {'aliases': '@calls @callbacks @callback', 'category': 'building', 'key': '@call', 'no_prefix': 'call calls callbacks callback', 'tags': '', 'text': '\n Command to edit callbacks.\n '}¶
diff --git a/docs/1.0-dev/api/evennia.contrib.base_systems.menu_login.connection_screens.html b/docs/1.0-dev/api/evennia.contrib.base_systems.menu_login.connection_screens.html
index 2a75b1aa1a..3c6d870756 100644
--- a/docs/1.0-dev/api/evennia.contrib.base_systems.menu_login.connection_screens.html
+++ b/docs/1.0-dev/api/evennia.contrib.base_systems.menu_login.connection_screens.html
@@ -99,8 +99,23 @@
-
diff --git a/docs/1.0-dev/genindex.html b/docs/1.0-dev/genindex.html
index 0c46df238e..d714f07a5e 100644
--- a/docs/1.0-dev/genindex.html
+++ b/docs/1.0-dev/genindex.html
@@ -6422,6 +6422,13 @@
- module
+
+
+ -
+ evennia.contrib.base_systems.menu_login.connection_screens
+
+
+ - module
-
@@ -7201,6 +7208,8 @@
- module
+
+
-
evennia.contrib.tutorials.evadventure.rooms
@@ -7208,8 +7217,6 @@
- module
-
-
-
evennia.contrib.tutorials.evadventure.rules
@@ -14360,6 +14367,8 @@
- evennia.contrib.base_systems.ingame_python.tests
- evennia.contrib.base_systems.ingame_python.utils
+
+ - evennia.contrib.base_systems.menu_login.connection_screens
- evennia.contrib.base_systems.mux_comms_cmds
diff --git a/docs/1.0-dev/objects.inv b/docs/1.0-dev/objects.inv
index 2c17d76f2a4a454e1c4b3b3ca126c06d00b3a7c3..8cbae2135c1ebfc2fd39860afc6dfd40ac70dd78 100644
GIT binary patch
delta 145860
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 4F#3VvM3X
FmijO6u%2KgI0
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