jesopo
|
a3bde5e682
|
fix ModuleManager.find_module() - don't set path until it's actually found
|
2019-12-10 11:08:44 +00:00 |
|
jesopo
|
58c09f7342
|
fix typos, type hinting and missed changes in ModuleManager
|
2019-12-10 05:32:55 +00:00 |
|
jesopo
|
638eee0d68
|
move core modules to src/core_modules, make them uneffected by white/black list
|
2019-12-10 05:27:35 +00:00 |
|
jesopo
|
374cc307b1
|
remove -m/-M and BaseModule.command_line - it doesn't work any more
|
2019-12-07 10:23:17 +00:00 |
|
jesopo
|
5730d6fe59
|
refactor commands (mostly stdout/stderr) and split typing/reply out
closes #208
|
2019-11-22 16:23:30 +00:00 |
|
jesopo
|
5e8cf06a45
|
dont expose has_magic/get_magic in utils/__init__.py, ref directly
|
2019-11-15 13:41:03 +00:00 |
|
jesopo
|
bcdffacab5
|
add on_pause() and on_resume() for module - use in rest_api.py
|
2019-11-04 10:52:41 +00:00 |
|
Valentin Lorentz
|
fbf8cd1a16
|
Fix type errors detected by 'mypy --ignore-missing-imports src'.
|
2019-10-30 22:26:59 +01:00 |
|
jesopo
|
e50290046a
|
remove safe arg from ModuleManager.load_modules() - try_reload_modules covers this now
|
2019-10-14 13:02:16 +01:00 |
|
jesopo
|
a9111c7241
|
add ModuleManager.try_reload_modules(), to try reloading in a transaction
if any of the modules fails to reload, rollback and use the already loaded modules. closes #179
|
2019-10-14 12:56:04 +01:00 |
|
jesopo
|
4940aff877
|
refactor out chosing loadable modules in to _list_valid_modules()
|
2019-10-14 11:37:04 +01:00 |
|
jesopo
|
82173a7d94
|
add external_modules directory
|
2019-09-27 16:03:06 +01:00 |
|
jesopo
|
a160148c2f
|
actually prune non-loadable modules before doing dependency checks
|
2019-09-02 15:46:31 +01:00 |
|
jesopo
|
25b507e80c
|
Refactor hook kwargs to be stored as a list of tuples to support key duplicates
closes #108
|
2019-07-28 12:35:04 +01:00 |
|
jesopo
|
77dfc76591
|
switch to function/module magic being a single object
|
2019-07-26 11:58:06 +01:00 |
|
jesopo
|
c5785a2d14
|
implement @utils.kwarg() magic, use it for command.regex hooks
|
2019-06-26 14:37:41 +01:00 |
|
jesopo
|
bb749b111f
|
Refactor EventManager to only hold hooks on a root object
|
2019-06-26 11:01:09 +01:00 |
|
jesopo
|
612c26ff7e
|
Differentiate between module "not found" and "not loaded"
|
2019-06-19 23:11:42 +01:00 |
|
jesopo
|
928f2f304d
|
Raise ModuleNotFoundException on failure to find_module()
|
2019-06-19 23:05:22 +01:00 |
|
jesopo
|
dc9cd2869f
|
Give requested module name to ModuleNotFoundException
|
2019-06-19 23:03:27 +01:00 |
|
jesopo
|
8fe5098739
|
Make 'circular dependency' WARN more explicitly about 1-to-1 dependencies
|
2019-06-05 19:13:44 +01:00 |
|
jesopo
|
69a780b596
|
append ".py" when doing find_module on ModuleType.FILE
|
2019-05-27 16:56:13 +01:00 |
|
jesopo
|
786f04ea16
|
set changed = True when we pop a module with no dependencies left
|
2019-05-27 14:50:15 +01:00 |
|
jesopo
|
ce3a0668c6
|
Throw an exception when we detect a complex circular dependency
|
2019-05-27 11:42:47 +01:00 |
|
jesopo
|
2a93a8f1dd
|
Only check for unknown dependencies once
|
2019-05-26 20:27:17 +01:00 |
|
jesopo
|
38dd69a71e
|
Only iterate a module's deps, not all modules, when checking for circular deps
|
2019-05-26 14:47:05 +01:00 |
|
jesopo
|
4048f63538
|
'cicular' -> 'circular', words are hard
|
2019-05-26 11:25:52 +01:00 |
|
jesopo
|
9815ddac8a
|
'cycular' -> 'cicular'
|
2019-05-26 06:54:29 +01:00 |
|
jesopo
|
69a1f42ecc
|
Add basic comments for dependency-sorting system
|
2019-05-25 21:47:28 +01:00 |
|
jesopo
|
bb475d5cc8
|
Implement ordering modules by depends-on hashflag
|
2019-05-25 21:43:32 +01:00 |
|
jesopo
|
eeee2458d3
|
Fix utils.parse.hashflags type hints
|
2019-05-25 21:42:42 +01:00 |
|
jesopo
|
552902d462
|
Refactor ModuleManager
|
2019-05-25 18:24:50 +01:00 |
|
jesopo
|
1c296826d7
|
Move module black/white list to IRCBot, allow "safe" loading of all modules
|
2019-05-12 14:10:59 +01:00 |
|
jesopo
|
091818fa32
|
Hold context in EventCallback objects, add name<->context translation in
ModuleManager
|
2019-05-10 16:11:22 +01:00 |
|
jesopo
|
faa305f2e8
|
Add -m/-M args to ./start.py that call command_line on individual modules
|
2019-02-24 10:43:46 +00:00 |
|
jesopo
|
8a0fd009e4
|
Also unload submodules within packages (ModuleManager.py)
|
2019-02-22 17:58:53 +00:00 |
|
jesopo
|
f94f233eb3
|
Fix mypy typing issue with importspec loader Optionalness (src/ModuleManager.py)
|
2019-02-06 22:41:37 +00:00 |
|
jesopo
|
c311521a31
|
Switch to using __init__.py as main file of directory modules, so they behave
like a package (also put the modules manually in sys.modules
|
2019-02-05 15:53:11 +00:00 |
|
jesopo
|
607c6eddf9
|
Switch to a non-deprecated method of loading files by filename
(`importlib.util.spec_from_file_location`)
|
2019-02-05 13:34:13 +00:00 |
|
jesopo
|
69edf039b3
|
Support modules being in their own folder and move github.py to github/module.py
|
2019-01-18 12:49:11 +00:00 |
|
jesopo
|
dea63d9cf2
|
By the time we take ref counts, we've already removed module from
`loaded_module`
|
2018-12-09 11:24:05 +00:00 |
|
jesopo
|
8c3f87b029
|
change self.modules to be a dict of str:LoadedModule, not str:BaseModule
|
2018-12-09 11:22:30 +00:00 |
|
jesopo
|
ac71cfa4fa
|
Add missing change to loaded_module.module (from module ) in unload_module
|
2018-12-09 11:20:55 +00:00 |
|
jesopo
|
91beadd1cd
|
def LoadedModule -> class LoadedModule
|
2018-12-09 11:18:55 +00:00 |
|
jesopo
|
6935c926dc
|
Don't store any information used to load/unload modules on the module it's self
thus preventing even the possibility that modules can change them
|
2018-12-09 11:15:04 +00:00 |
|
jesopo
|
9dd9111f85
|
Further clarification of type hints in ModuleManager.py, including now making it
explicit that module objects MUST inherit from BaseModule
|
2018-12-02 16:00:55 +00:00 |
|
jesopo
|
9466f57efc
|
Use getattr to get Module classes out of modules in ModuleManager.py; this
makes more sense and removes some errors from type linting
|
2018-12-02 10:14:18 +00:00 |
|
jesopo
|
8d32fed2fe
|
ModuleWarnings in src/ModuleManger.py should be logged as warn , not error
|
2018-11-26 14:42:41 +00:00 |
|
jesopo
|
8b9062b942
|
Better constifying of color/font chars
|
2018-11-13 16:02:26 +00:00 |
|
jesopo
|
6ca8017966
|
Give Logging.Log object to modules
|
2018-11-05 12:38:40 +00:00 |
|