- Support for Python 3.13 (#484)
- New Postgres backend based on multicorn2 (#397)
- Add support for Python 3.12, drop support for 3.8 (#478)
- Allow finer grain for the requests cache (#471)
- Removes pagination from Preset API and adds note to documentation (#469)
- Add
UPGRADE()
function to upgrade the library (#468)
- Improve generic JSON to handle arrays of strings (#466)
- Relax
pyarrow
dependency (#465)
- Relax
packaging
dependency (#464)
- Support for GitHub stats (#463)
- Handle array-only responses in the generic JSON adapter (#461)
- Fix for invalid pattern in GSheets (#458)
- dbt MetricFlow adapter (#459)
- Add
import_dbapi()
to supress warning (#452) - Remove
LIMIT
andOFFSET
from GitHub adapter (#456)
- Relax
tabulate
dependency for Apache Superset (#443)
- Fix OAuth2 flow in GSheets (#438)
- Add support for GitHub issues (#433)
- Allow for custom expiration time in the generic JSON/XML adapters (#429)
- Use a different JSONPath library that handles root better (#431)
- Preset adapter now handles pagination, offset and limit (#427)
- Preset adapter can now query workspaces (#423)
- Add custom adapter for the Preset API (#421)
DROP TABLE
now handles comments in query (#417)
- Relax
holidays
dependency for Apache Superset (#416)
- Add missing
requests-cache
dependency (#413)
- Improve Datasette detection (#399)
- Fix generic JSON handling of null values (#399)
- Add holidays adapter (#409)
- Add support for decimals (#410)
- Add new cost model
NetworkAPICostModel
(#381) - Add a generic XML adapter (#391)
- Fix unneeded error when an operators is not supported by adapter (#378)
- Fix comparison to empty strings in GSheets (#379)
- Add support for querying durations in Google Sheets (#374)
- System adapter now supports memory (virtual/swap) queries (#369 and #372)
- Relax dependency for
requests-cache
correctly (#362)
- Add
yarl
dependency to the generic JSON adapter (#355) - Only warn of errors when loading adapters if they are explicitly requested (#360)
- Relax dependency for
requests-cache
(#361)
- Allow passing request headers to the generic JSON adapter via query arguments (#354)
- Allow specifying custom request headers when using the generic JSON adapter (#337)
- Fix for escaping identifiers correctly (#340)
- Support for S3-compatible storage (#343)
- Adapters can now know which columns were requested (#345)
- Python 3.11 officially supported (#334)
- Fix for error when an adapter can't be loaded (#346)
- Fix for
BestIndexObject
(#350) - Fix for empty dataframes (#351)
- Use
marshal
instead ofpickle
for adapter argument serde (#321) - Support SQLAlchemy 2.0 (and 1.4) (#331)
s3_select
can now use credentials from the environment or config files
- Handle dataframes without column names (#319)
- Support booleans when inferring types from data (#318)
- Support JSON files in the S3 Select adapter (#314)
- Improve generic JSON adapter to handle nested fields (#309)
- Fix preventing loading of non-requested adapters (#303)
- New generic JSON adapter (#304)
- Add support for CSV files over HTTP(S) (#296)
- Fix for fraction parsing in GSheets (#298)
- Fix for negative dollar format in GSheets (#299)
- Other small fixes and typos.
- CLI now supports multi-line statements (#205)
- Add new adapter for CSV/JSON/Parquet files stored in S3 (#254)
- Add support for
DROP TABLE
(#258) - Add new adapter for scraping data from HTML tables (#259)
- Add registry for adapters (#268)
- Adapters can implement
LIMIT
andOFSET
(#270) - Add support for polymorphic fields (#280)
- Add docs on architecture (#273), dialects (#278)
- Improve docs on custom fields (#275)
- Configuration directory is now system dependent (#283)
- Row updates should no longer raise errors in SQLAlchemy (#284)
- Better serialize/deserialize for virtual table arguments, supporting bytes and other types
- Represent integers as strings in SQLite to prevent overflow
- Add S3 Select adapter
- Fix for column names with double quotes
- Remove support for Python 3.7
- Remove upper bounds from dependencies
- Allow adapters/dialects to pass custom parameters to
apsw.Connection
- Read SQLite constants from
apsw
- Fix description returned in the case of empty set
- Change cost to be a float
- Fix GSheets
do_ping
- Small fixes and typos.
- Relax
requests
dependency - Enable
supports_statement_cache
- Fix for GSheets where the first row is not detected as column names
- Do not try to import non-specified adapters
- Fix for querying datetime/date/time via SQLAlchemy
- Add support for using Google Application Default Credentials for Google Sheets
- Make package PEP 561 compatible
- Add
requests
as a dependency - Documentation fixes
- Add an adapter for system resources (CPU usage for now)
- Improve PEP 249 compatibility
- Implement
do_ping
for GSheets dialect - Create a
cookiecutter
template for new adapters - Add a
StringDuration
field - Add GitHub adapter
- Handle arbitrary number formats in Gsheets
- Add pattern parser/formatter for GSheets
- Add optional dependencies for Datasette
- Fix Datasette by always using
LIMIT
withOFFSET
- More operators:
LIKE
,IS NULL
,IS NOT NULL
and!=
- Add cost estimation to all adapters
- Add Datasette adapter
- Remove
csv://
anddatasette+
prefixes to simply URIs - Add
has_table
method to dialects
- Move config to
~/.config/shillelagh/
- Add function
get_available_adapters
to list installed adapters - Developer and user docs added
- Small fixes
- Add integration tests
- Fix couple bugs on GSheets while adding integration tests
- Refactor fields
- Change GSheets to use formatted values
- Fix bug in GSheets DML with datime/date/time
- Return naive objects when no timezone specified
- Fix DML bug in GSheets with a middle nameless column
- Relax
google-auth
dependency
- Fix
SELECT
bug in GSheets with a middle nameless column
- Relax SQLAlchemy dependency
- Add support for DML to the GSheets adapter
- GSheets dialect now return "main" as its schema
- Schema prefix can now be used on table names
- GSheets now supports defining a catalog of spreadsheets
- Improve many small bugs in the type conversion system
- Add
sleep
,version
, andget_metadata
functions - Add REPL command-line utility (
shillelagh
) - Remove
adapter_args
, use onlyadapter_kwargs
now
- Parse bindings in
execute
, allowing native Python types - Allow configuring adapters via kwargs in addition to args
- Handle type conversion via fields
- Fix Socrata, mapping
calendar_date
toDate
- Adapter for Socrata
- Better error handling in the GSheets dialect
- Use GSheets URL parameters on
get_table_names
- Use new GSheets API v4
- Implement
get_table_names
for GSheets dialect - Allow passing parameters to GSheets dialect via URL query
- Import
Literal
fromtyping_extensions
for Python 3.7 compatibility
- Fix for some Google sheets where headers are not picked up
- Make
parse_uri
signature more generic
- Allow adapters to return complex types (eg, datetime)
- Implement
Order.ANY
for columns that can be sorted by the adapter - Add all columns to the weatherapi.com adapter
- Add safe mode through
shillelagh+safe://
- Fix isolation levels for apsw
- Handle conversion of datetime objects (time, date, datetime) natively
- Ignore empty columns in gsheets
- Add DB API 2.0 layer
- Add SQLAlchemy dialect
- Add GSheets adapter
- Add drop-in replacement for
gsheets://
dialect
- Initial release