Commit graph

675 commits

Author SHA1 Message Date
Griatch
b28d67534b Temporarily disabling procpool for @batchprocess to fix a traceback when building. 2012-09-26 08:34:54 +02:00
Griatch
b2028511f5 Fixing a bug with not calling the disconnect hook when killing the client uncleanly. Resolves Issue 258. Thanks to user Zeta142125 for the help. 2012-09-25 07:53:11 +02:00
Griatch
7d4bf6c8d2 Fixes a bug in scriptmanager. Resolves Issue 259. 2012-09-25 07:42:52 +02:00
Griatch
d535d77811 Restructed terminal output from Server and Portal to allow external plugin-services to cleanly add their info at startup. 2012-09-22 23:18:29 +02:00
Griatch
a30029472b Fixes @set to be more accepting of various Python structures. It will now instead convert to string on a ValueError (commonly because a string was not enclosed in quotes) while giving a error string to the user informing of this. This should fix Issue 256. 2012-09-22 22:16:30 +02:00
Griatch
93d95377ce Shifting ProcPool out of src and into a contrib, using the service plugin system. 2012-09-22 20:40:30 +02:00
Griatch
f677902811 Fixed a bug with setting a location to None. 2012-09-22 13:37:22 +02:00
Griatch
4dbdf680a1 Removed a nested _GA that made made lookup fail in players.models.player_search(). Thanks to Kelketek for pointing this bug out. 2012-09-22 10:23:42 +02:00
Griatch
e874343387 Adjusted search() functionality to handle also a list of location(s) to search. Changed "get" command to not search inventory (which could lead to multimatch errors). 2012-09-21 08:36:59 +02:00
Griatch
8ad58a3e19 Merge. Resolves Issue 254. Resolves Issue 255. 2012-09-21 08:17:27 +02:00
Adam_ASE
e748d6d5ae Addressing original issue 254 - Fixed DROP command multi-match error for similarly or identically
named items when one or more of the items are at the location but not in
character's inventory.
2012-09-20 23:50:34 -04:00
Griatch
de3d1f4a22 Minor adjustment to the __contains__ cache of cmdsets. 2012-09-21 00:15:04 +02:00
Griatch
c0b03c2ee3 Some further removal of recursive loops in the typeclass system. 2012-09-20 23:18:52 +02:00
Griatch
dc4340b34e Bugfix for latest optimization. 2012-09-20 03:01:30 +02:00
Griatch
5b88972523 Turning back more reasonable dummyrunner settings. 2012-09-20 02:56:41 +02:00
Griatch
7a130cb442 Removing some of the last self-reference loops in object.models, based on profiling. 2012-09-20 02:52:21 +02:00
Griatch
4bd3be334d Added a warning to @delete command if trying to delete CHARACTER_DEFAULT_HOME (Limbo by default). 2012-09-20 01:42:51 +02:00
Griatch
4c83d3e7a1 Various speed optimizations in various places, following further profiling. 2012-09-20 00:47:28 +02:00
Griatch
83fa9397d5 Added a plugin system for server and portal. This allows for plugging in your own services without having to edit any modules in src/server/. Also made some various cleanups and fixes. 2012-09-18 22:52:33 +02:00
Griatch
ee450a4fed Fixed a bug in the search method causing it to fail for commands ignoring the error handler (such as drop). Resolves issue 252. 2012-09-18 21:48:41 +02:00
Griatch
0dae03156c Some optimizations, cleanup and a few bugfixes. Just changing a spurious property retrieval in the typeclass removed an extra, pointless database query. 2012-09-18 01:03:35 +02:00
Griatch
160d4a2807 Minor typo cleanups. 2012-09-17 22:16:18 +02:00
Griatch
21137cc830 Run Migrations! Added a is_connected field to Players to be able to more conveniently access online status from out-of-process (resolves issue 251). Also cleaned up and added features to the default website. 2012-09-17 19:19:20 +02:00
Griatch
c53a9b5770 Changed how Objects are searched, using proper Django Q objects instead of hack-y evals to build queries. This has lead to a number of changes to the ObjectDB manager search. Notably there is now no way to supply a "location" to either of the manager search methods anymore. Instead you can now supply the keyword "candidates", a list of objects which should be used to limit the search. This is much more generic than giving location. The higher-level search (like caller.search, reached from commands) have not changed its API, so commands should work the same unless you are using the manager backbone directly. This search function is now using location to create the "candidates" list. Some other things, like matching for "me" and "here" have also been moved up to a level were it can be easily overloaded. "me" and "here" etc were also moved under i18n.
As part of this overhaul I implemented the partial_matching algorithm originally asked for by user "Adam_ASE" over IRC. This will allow for (local-only) partial matching of objects. So "big black sword" will now be matched by "bi", "sword", "bi bla" and so on. The partial matcher sits in src.utils.utils.py if one wants to use it for something else.
2012-09-17 15:31:50 +02:00
Griatch
cc6fa079b6 Added some more functionality to the copy method of objects, as well as some minor fixes. 2012-09-11 23:47:29 +02:00
Griatch
3c96dc9cc9 Fixed a too-inclusive .hgignore file as well as some other fixes. 2012-09-07 19:31:51 +02:00
Griatch
d1e0836d23 Minor fix to evaluate with _return in ProcPool execution. 2012-09-03 23:47:50 +02:00
Griatch
5348563bfb Some fixes to dummyrunner. 2012-09-03 22:29:01 +02:00
Griatch
047de533f3 Moved dummyrunner into a separate directory under src/utils 2012-09-03 21:54:13 +02:00
Griatch
d5c1d35406 Cleaning up some ampoule outputs. 2012-09-03 21:47:22 +02:00
Griatch
2481a9b493 Minor bugfix 2012-09-03 21:36:41 +02:00
Griatch
81dfeb6788 Added per-process timeout capability to run_async. Also changed contrib/evlang to use run_async 2012-09-03 21:16:54 +02:00
Griatch
5c6ee44039 Modified contrib/evlang to optionally make use of ProcPool multiprocessing. 2012-09-03 19:21:04 +02:00
Griatch
ffcf4b3c2f Added cache-resyncing to ProcPool. This makes sure to update all affected object caches
whenever the subprocess returns (this is potentially not good enough for long-running scripts,
will have to ponder that one). Made ProcPool work with MySQL (where it works much better). Tested and fixed many
small bugs.
2012-09-03 01:11:14 +02:00
Griatch
275d00d4db Some more usability additions to the ProcPool system. Also made it default
to turned off when SQLite3 is used - SQLite3 doesn't support multiple
processes.
2012-09-02 18:57:25 +02:00
Griatch
575d7a86fa Made run_async also handle function calls through the ProcPool. 2012-09-02 16:54:07 +02:00
Griatch
e25ac1e46b Changed run_async to properly relay remote error messages to the user-supplied errback. 2012-09-02 16:14:08 +02:00
Griatch
056fee5c70 Changing all text files to explicitly have .txt endings. This helps online code browsers to properly identify the files. 2012-09-02 13:05:47 +02:00
Griatch
af99a80b4b Added procpool functionality for sending arbitrary data over the wire (including
nested databaseobjects). Rules are similar to Attribute saving.
Adding a missing component to the procpool setup.
2012-09-02 12:53:11 +02:00
Griatch
3ebeab5689 Changed ProcPool to be turned off by default, while testing. 2012-09-02 10:13:10 +02:00
Griatch
f5a889e40c Added new process-pool runner based on AMPoule (integrated into Evennia).
This allows e.g. utils.utils.run_async to offload long-running functions
to a completely different subprocess entirely, offering real parallelism.

Implementation is still experimental, notably not all objects can be
transferred safely across the wire; also there is no concept of
updating caches yet - so adding an object from the subprocess side
will not be known in the main thread yet (since caches cannot yet tell
the underlying database has changed).
2012-09-02 10:10:22 +02:00
Griatch
dcc7f29a91 OBS: run migrations! This changes the Msg model to work with ManyToManyFields rather than with custom string representations for storing multiple receivers or channels. It also expands the Msg object with a "title" field and various filter options. This should make it easier to implement mail-like operations using the comms system. 2012-08-30 00:05:00 +02:00
Griatch
7995c91eee Fixed a regression in the install process with south. 2012-08-28 11:18:08 +02:00
Griatch
f68523cc22 Minor optimizations and some fixes to the dummyrunner. 2012-08-22 22:34:43 +02:00
Griatch
5117bd2a0a Minor fixes and reducing some sql calls in various managers. 2012-08-22 16:15:52 +02:00
Griatch
4edde61be4 Minor cleanups and a fix to manage.py that lead to a traceback if running without arguments. 2012-08-22 13:28:38 +02:00
Griatch
f5caab093e Fixed a spurious error messages from the location setter when logging out (need to check None location) 2012-08-19 21:36:01 +02:00
Griatch
a35fd9018e Made some test system fixes, killing unclear fails (it seems to have been a change in the way the django test system handles instances, there are a bunch of false fails. For now, I'm hiding the failing ones, just running the command itself to make sure it runs as it should. 2012-08-19 19:20:48 +02:00
Griatch
5e33690f40 Optimization: Added caching of object contents. This makes obj.contents not have to hit
the database at all. So far there are no regressions from this, but time will tell if
there are any problems.
2012-08-19 18:48:29 +02:00
Griatch
cc88d38ab6 Some optimizations towards speeding up getting the contents of a location. 2012-08-19 11:45:13 +02:00