Merge branch 'feature/add-jupyter-notebook-support' of https://github.com/duysqubix/evennia into duysqubix-feature/add-jupyter-notebook-support

This commit is contained in:
Griatch 2020-12-20 13:38:16 +01:00
commit 358fc8ff0e
5 changed files with 37 additions and 4 deletions

View file

@ -38,10 +38,38 @@ That is, enter `evennia.` and press the `<TAB>` key. This will show you all the
available at the top level of Evennia's "flat API". See the [flat API](../Evennia-API) page for more available at the top level of Evennia's "flat API". See the [flat API](../Evennia-API) page for more
info on how to explore it efficiently. info on how to explore it efficiently.
#### Jupyter Notebook Support
You can now explore evennia interactively with jupyter notebooks. There are a few extra steps that must be taken in order for this to work:
# [open a new console/terminal]
# [activate your evennia virtualenv in this console/terminal]
cd evennia
pip install -r requirements_extra.txt # this installs optional, but necessary modules for this to work.
cd mygame # make sure you are in root of your grame
evennia shell_plus --notebook& # this will start the notebook in the background
Open an existing, or create, a notebook and in the first cell you must run:
```python
import evennia
evennia._init()
```
This will initialize all module level variables located in `evennia.__init__`.
Now you have the same support as `evennia shell`, but in a more visual and persistent form.
*It is important to remember, everytime the kernel restarts within a notebook you must first run
`evennia._init()`*
You can complement your exploration by peeking at the sections of the much more detailed You can complement your exploration by peeking at the sections of the much more detailed
[Evennia Component overview](../Components/Components-Overview). The [Tutorials](../Howto/Howto-Overview) section also contains a growing collection [Evennia Component overview](../Components/Components-Overview). The [Tutorials](../Howto/Howto-Overview) section also contains a growing collection
of system- or implementation-specific help. of system- or implementation-specific help.
### Use a python syntax checker ### Use a python syntax checker
Evennia works by importing your own modules and running them as part of the server. Whereas Evennia Evennia works by importing your own modules and running them as part of the server. Whereas Evennia
@ -103,4 +131,4 @@ chat](http://webchat.freenode.net/?channels=evennia) are also there for you.
And finally, of course, have fun! And finally, of course, have fun!
[feature-request]: (https://github.com/evennia/evennia/issues/new?title=Feature+Request%3a+%3Cdescriptive+title+here%3E&body=%23%23%23%23+Description+of+the+suggested+feature+and+how+it+is+supposed+to+work+for+the+admin%2fend+user%3a%0D%0A%0D%0A%0D%0A%23%23%23%23+A+list+of+arguments+for+why+you+think+this+new+feature+should+be+included+in+Evennia%3a%0D%0A%0D%0A1.%0D%0A2.%0D%0A%0D%0A%23%23%23%23+Extra+information%2c+such+as+requirements+or+ideas+on+implementation%3a%0D%0A%0D%0A [feature-request]: (https://github.com/evennia/evennia/issues/new?title=Feature+Request%3a+%3Cdescriptive+title+here%3E&body=%23%23%23%23+Description+of+the+suggested+feature+and+how+it+is+supposed+to+work+for+the+admin%2fend+user%3a%0D%0A%0D%0A%0D%0A%23%23%23%23+A+list+of+arguments+for+why+you+think+this+new+feature+should+be+included+in+Evennia%3a%0D%0A%0D%0A1.%0D%0A2.%0D%0A%0D%0A%23%23%23%23+Extra+information%2c+such+as+requirements+or+ideas+on+implementation%3a%0D%0A%0D%0A
[bug](https://github.com/evennia/evennia/issues/new?title=Bug%3a+%3Cdescriptive+title+here%3E&body=%23%23%23%23+Steps+to+reproduce+the+issue%3a%0D%0A%0D%0A1.+%0D%0A2.+%0D%0A3.+%0D%0A%0D%0A%23%23%23%23+What+I+expect+to+see+and+what+I+actually+see+%28tracebacks%2c+error+messages+etc%29%3a%0D%0A%0D%0A%0D%0A%0D%0A%23%23%23%23+Extra+information%2c+such+as+Evennia+revision%2frepo%2fbranch%2c+operating+system+and+ideas+for+how+to+solve%3a%0D%0A%0D%0A) [bug](https://github.com/evennia/evennia/issues/new?title=Bug%3a+%3Cdescriptive+title+here%3E&body=%23%23%23%23+Steps+to+reproduce+the+issue%3a%0D%0A%0D%0A1.+%0D%0A2.+%0D%0A3.+%0D%0A%0D%0A%23%23%23%23+What+I+expect+to+see+and+what+I+actually+see+%28tracebacks%2c+error+messages+etc%29%3a%0D%0A%0D%0A%0D%0A%0D%0A%23%23%23%23+Extra+information%2c+such+as+Evennia+revision%2frepo%2fbranch%2c+operating+system+and+ideas+for+how+to+solve%3a%0D%0A%0D%0A)

View file

@ -373,7 +373,7 @@ class DefaultAccount(AccountDB, metaclass=TypeclassBase):
puppet (Object): The matching puppeted object, if any. puppet (Object): The matching puppeted object, if any.
""" """
return session.puppet return session.puppet if session else None
def get_all_puppets(self): def get_all_puppets(self):
""" """

View file

@ -999,7 +999,7 @@ class CmdQuell(COMMAND_DEFAULT_CLASS):
self.msg("Already quelling Account %s permissions." % permstr) self.msg("Already quelling Account %s permissions." % permstr)
return return
account.attributes.add("_quell", True) account.attributes.add("_quell", True)
puppet = self.session.puppet puppet = self.session.puppet if self.session else None
if puppet: if puppet:
cpermstr = "(%s)" % ", ".join(puppet.permissions.all()) cpermstr = "(%s)" % ", ".join(puppet.permissions.all())
cpermstr = "Quelling to current puppet's permissions %s." % cpermstr cpermstr = "Quelling to current puppet's permissions %s." % cpermstr

View file

@ -2259,7 +2259,7 @@ def main():
if option in ("makemessages", "compilemessages"): if option in ("makemessages", "compilemessages"):
# some commands don't require the presence of a game directory to work # some commands don't require the presence of a game directory to work
need_gamedir = False need_gamedir = False
if option in ("shell", "check", "makemigrations", "createsuperuser"): if option in ("shell", "check", "makemigrations", "createsuperuser", "shell_plus"):
# some django commands requires the database to exist, # some django commands requires the database to exist,
# or evennia._init to have run before they work right. # or evennia._init to have run before they work right.
check_db = True check_db = True

View file

@ -14,3 +14,8 @@ service_identity >= 18.1.0
# AWS-storage contrib # AWS-storage contrib
boto3 >= 1.4.4 boto3 >= 1.4.4
botocore >= 1.15 botocore >= 1.15
# Jupyter Notebook support
jupyter >= 1.0.0
ipython >= 7.19.0
django-extensions >= 3.1.0