Releases: airbnb/omniduct
v1.1.2
This is a minor release that bumps the dependency on interface_meta
to the 1.1.x series; fixing some downstream issues the use of method descriptors (such as classmethod
and staticmethod
).
v1.1.1
This is a minor release with a minor feature improvement and a bugfix:
- Users can now pass
show=None
(in addition toshow='none'
) in database execution magics. - Fixed a bug introduced in v1.1.0 concerning S3 path resolution.
v1.1.0
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 withinterface_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 astable_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.
v1.0.3
This is a minor release with several feature additions:
New Features:
- Added support for pruning the cache based on size and/or age (#89)
- Add an option to cleanup SQL in the
render
methods (#90) - Added
template_get
,template_variables
andmeta_only
argument totemplate_render
.
Bugfixes:
- SchemaMixin bugfixes affecting some less common sqlalchemy backends (e.g. Snowflake) (#91)
v1.0.2
A minor release that improves query times the PySparkClient
, which formerly used DataFrame.toLocalIterator()
instead of .collect()
in non-streaming cases, resulting in slower and more memory consuming queries where streaming was not required.
v1.0.1
v1.0.0
This release marks an important milestone: Omniduct is now considered to be stable and feature complete!
This release focussed primarily on improving documentation, and every user-facing class and function is now documented. There were some breaking changes to the DuctRegistry
API which hitherto has not received much love, but otherwise code changes were fairly minimal.
Features and enhancements:
- Extended the
DuctRegistry
configuration format support, and made minor changes to the API to be more intuitive. [Users of omniduct v0.9.6 and earlier will need to adjust their use ofDuctRegistry
appropriately. - Added a
show_about
utility function to simplify showing of information about the Omniduct package (or dependent packages), providing the option to "endorse" Omniduct or other significant dependencies. - Included the new Omniduct logo, which you can feel free to use to endorse Omniduct in your own work.
- Extended documentation coverage to all user-facing classes and methods, and improved the consistency of documentation conventions.
- Added an example company/organisation-specific Omniduct configuration wrapper to assist with the bootstrapping of such wrappers.
Bugfixes:
- Avoid use of
_file_read
indownload
in case the_open
method was overloaded by clients, as inLocalFsClient
.
v0.9.6
v0.9.5
A minor release with several feature enhancements.
Features and enhancements:
- Enable multi-value insert mode for
dataframe_to_table
methods (from upstream pandas patches not landed in master) - Implement
mkdir
andremove
for the HDFS filesystem client. - Only check dependencies for the actual protocol (rather than all potential protocols) being used by the SQLAlchemy client.
v0.9.4
Another minor release with several feature enhancements and bugfixes. Some minor breakage may occur if you overrode the default behaviour and use the impyla
HiveServer2 backend (you will need to manually install the impyla
dependency).
Features and enhancements:
- Snowflake protocol is supported via the sqlalchemy backend
- Database queries without result sets no longer result in exceptions
FileSystemClient.mkdir
methods now default to raising exceptions if path already exists (passingexist_ok=True
will disable this behaviour)- S3
mkdir
andremove
operations are now implemented
Bugfixes:
- Fixed
dataframe_to_table
functionality when using a remote CLI for HiveServer2 (the use of backtick/grave quotations in recent releases broke the scripted command) - LocalFsClient used a Python 3 style
super()
call, breaking compatibility with Python 2 - LocalFsClient triggered preparation during initialisation, sometimes resulting in some spurious logging events
- Database queries without result sets no longer result in exceptions
Miscellaneous:
pyhive
is now the only HiveServer2 client installed by default (impyla
does not support Python 3.7, but is otherwise still usable but must be manually installed).