All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Split registry vs. connection modeling roles:
noteable.sql.connection.Connectionclass vsnoteable.sql.connection.ConnectionRegistryclass. - Fix bootstrap_datasource() passing along of create_engine_kwargs, otherwise misery.
- Defer data connection bootstrapping until first need, instead of at kernel launch time.
- Force all SQLAlchemy datasource subtypes to be their own individual concrete classes individually declaring their own needs_explicit_commit value for sanity, correctness, and clarity.
- Stop expecting sqlmagic_autocommit being presented in gate-side metadata. Only consider the SQLAlchemy subtype's classlevel boolean. The field will be removed from Gate side in future work.
- Athena does must not
quote_plus(connect_args['s3_staging_dir'])-- they won't work encoded that way. It wants direct passing. Not sure where I got that idea. - Reimplement schema introspection on top of neutral interface
InspectorProtocol, based on SQLAlchemy's Inspector API, but not descending from it.
%ntbl change-log-level --rtu-level DEBUGwill update relevant Sending, PA, and Origami libraries to render useful debug logs related to RTU processing in PA
%ntbl change-log-levelno longer requires--app-levelarg. If it's not passed in, it won't change PAplanar_ally.*log level from wherever it's currently set@noteablemagic changed to use duckdb, away from sqlite.%%sql @e456456 my_df << select a, b, c from foovariable assignment syntax will now always return the resulting dataframe as well as silently assign to the interpreter variable (my_dfin this case) as side-effect. Previously would only assign to the interpreter variable and announce the fact with a print(), while having no return result.- Now use jinjasql for SQL cell template expansion, not simple string.Template.
- Simpler message printed as the cell's side-effect if an unknown datasource handle is attempted.
- Repackaged all code to be in 'noteable' toplevel package, not 'noteable_magics.'
- Better datasets download progress bars
- Don't mutate
metadatapassed tobootstrap_datasource()- Previously, a
KeyErrorwould be raised, hiding the underlying error when creating a connection
- Previously, a
- Upgrade
ipythonto^7.31.1for security fix - Upgrade
numpyto^1.22.2for security fix
- Remove
%ntblcommands that interact withgitdirectly. This will need to be added to the planar-ally api now.- Remove
%ntbl diff project - Remove
%ntbl status project
- Remove
- Remove no longer used
NTBLMagicconfig values:git_user_nameandgit_user_email
- Added
change-log-levelcommand to change planar-ally's log level via API call
- Initialize
@noteablesql connection when registering the magics
- Log unexpected errors in the catch_em_all decorator
- %ntbl magic now ensures that the project directory exists instead of crashing when it doesn't
- Explicitly use
sep=kwarg forpd.read_csvto removeFutureWarning - Don't include dataframe index in SQL from
%create_or_replace_data_viewunless explicitly set with--include-index - Throw an error to stop cell execution when
NTBLMagicfails
- Use
httpxstreams properly
create_or_replace_data_viewhandles filenames with spaces (either escaped or quoted).
%ntbl push datasets [PATH]command%ntbl pull datasets [PATH]command- Logging to
/var/log/noteable_magics.logor locally to/tmp/noteable_magics.log
- Use
httpxinstead ofrequestsfor better http streaming support
- Updated magics to use
planar-allyas the sidecar with HTTP+REST
- This changelog
- Send a
FileTypewith all protobuf messages- This allows us to filter operations by this field rather than the prefix