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.Connection
class vsnoteable.sql.connection.ConnectionRegistry
class. - 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 DEBUG
will update relevant Sending, PA, and Origami libraries to render useful debug logs related to RTU processing in PA
%ntbl change-log-level
no longer requires--app-level
arg. If it's not passed in, it won't change PAplanar_ally.*
log level from wherever it's currently set@noteable
magic changed to use duckdb, away from sqlite.%%sql @e456456 my_df << select a, b, c from foo
variable assignment syntax will now always return the resulting dataframe as well as silently assign to the interpreter variable (my_df
in 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
metadata
passed tobootstrap_datasource()
- Previously, a
KeyError
would be raised, hiding the underlying error when creating a connection
- Previously, a
- Upgrade
ipython
to^7.31.1
for security fix - Upgrade
numpy
to^1.22.2
for security fix
- Remove
%ntbl
commands that interact withgit
directly. 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
NTBLMagic
config values:git_user_name
andgit_user_email
- Added
change-log-level
command to change planar-ally's log level via API call
- Initialize
@noteable
sql 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_csv
to removeFutureWarning
- Don't include dataframe index in SQL from
%create_or_replace_data_view
unless explicitly set with--include-index
- Throw an error to stop cell execution when
NTBLMagic
fails
- Use
httpx
streams properly
create_or_replace_data_view
handles filenames with spaces (either escaped or quoted).
%ntbl push datasets [PATH]
command%ntbl pull datasets [PATH]
command- Logging to
/var/log/noteable_magics.log
or locally to/tmp/noteable_magics.log
- Use
httpx
instead ofrequests
for better http streaming support
- Updated magics to use
planar-ally
as the sidecar with HTTP+REST
- This changelog
- Send a
FileType
with all protobuf messages- This allows us to filter operations by this field rather than the prefix