This is a major release featuring some infrastructure improvements and some minor API breakage.
Breaking changes:
- The custom metaclass that was once in `omniduct` has now been extracted into its own library, and gained support for checking that subclasses correctly override methods. Subclasses that override methods defined on a parent class must now explicitly annotate those method declarations with `interface_meta.override()`. Any downstream subclasses will have to conform to these changes also.
New features:
- `FilesystemClient`s can now have the home directory specified at instantiation or overridden at runtime, and can now be configured to be read only.
- `DatabaseClient`s now propagate the instantiation-time schema/database/etc namespace configuration as defaults to utility methods (such as `table_desc`, `table_list`, etc).
Bugfixes and improvements:
- SQLAlchemy schema exploration extensions are now more dialog agnostic (93)
- The 'replace' operation for the `DatabaseClient.query_to_table` method has been fixed for Presto and HiveServer2.
- REST client logging now renders JSON error responses rather than simply showing a string representation.