Skip to content

Releases: pudo/dataset

dataset 2.0.0

12 Apr 10:00

Choose a tag to compare

dataset 2.0.0

SQLAlchemy 2.x

  • Full support for SQLAlchemy 2.0+ with backward compatibility to 1.4.0
  • Fixed autobegin semantics and DDL lock contention
  • Updated SQLAlchemy constraint to allow versions up to 3.0.0
  • Connection pool leak fix: thread connections are now released after transactions end (#425)

Type annotations

  • Full mypy --strict compliance across all modules
  • Added py.typed marker for downstream type checking (PEP 561)
  • Exported OutRow, RowFactory, QueryError for downstream use
  • row_type parameter typed as Callable[[Iterable[tuple[str, Any]]], OutRow]
  • primary_type parameter typed as ColumnType (SQLAlchemy TypeEngine)
  • insert/insert_ignore/upsert return type changed to Any (primary keys can be any type)

Security

  • Fixed LIKE metacharacter injection in startswith/endswith filters

Breaking changes

  • Requires Python 3.10+
  • Removed banal dependency (replaced with internal ensure_strings)
  • QueryError is now raised for invalid filter values (e.g., wrong type for startswith, between)
  • update_many no longer mutates input rows — rows are copied before modification

Build & tooling

  • Migrated from setuptools to pyproject.toml with Hatchling (PEP 621)
  • Replaced flake8 with ruff
  • Added mypy to dev dependencies and make lint
  • Switched from nose to pytest
  • Updated GitHub Actions (checkout@v4, setup-python@v5)
  • Development status changed from Alpha to Production/Stable