- Change __init__ method signature in schema.py to break its dependency
on namedtuple defined in config_manage.py
- Adjust relevant unit test + config_manage.py
- Move config_schema.yml path to config/__init__.py
- Reverse dependency: config_manage.py now imports from
config/__init__.py
Because multiple inheritance will result in calling this class 'delete' method
which is not the correct target. This also avoid a database operation
I believe, since the PurgableManagerMixin.purge also calls delete before purging.
- Create new utility module for processing yaml
- Move yaml processing into new utility module
- Factor out Schema classes out of config_manage into schema module
- Refactor yaml reading to accommodate a unit test (minor change)
- Add unit test for new schema module
Overall: this is first step towards refactoring config.
The previous version loaded these into a constant. As a result,
importing the module implied reading a file specified by a path (in the
GALAXY_APP App named_tuple) which broke building the docs (relative
path became incorrect when module executed as script called from the
Makefile that is inside doc/
Also, modified unit tests accordingly. (assertions are grouped for
performance)
- to tool_util.parser.util
- make ToolParameter.build work with InputSource
instead of plain XML as commonly done in tests
- refactor stdio related function to tool_util.parser.stdio
to avoid circular import
Co-Authored-By: Nicola Soranzo <nicola.soranzo@gmail.com>
This should reduce IO especially on instances that use a lot of
handlers and/or on a remote file system.
The process that watches the tool conf files will now
be the active process that alphabetially compares highest.
If that process goes away or is superseded by a process that
compares higher now that process will take over.
If a change has been found a control task will be sent via
the kombu messaging system.
Overall this works nicely, but while stopping the current
config watcher there is a small break during which changes
to the config don't trigger a reload, this could be handled
more gracefully.