Skip to content

Releases: crate/crate-python

2.1.1

04 Mar 21:16

Choose a tag to compare

What's Changed

  • Fix JWT token positional argument order by @amotl in #791

Full Changelog: 2.1.0...2.1.1

2.1.0

04 Mar 11:57

Choose a tag to compare

What's Changed

  • Exceptions from the BLOB API now include their full names.

  • Dropped support for Python versions earlier than 3.10 as they've reached
    their end of life.

  • Parse path prefixes from server URLs and propagate them to all requests.

  • Fixed compatibility with urllib3-future.

  • Added JWT token authentication.

Details

  • Chore(deps-dev): Update mypy requirement from <1.15 to <1.16 by @dependabot[bot] in #697
  • CI: Improve setup of and caching with uv by @amotl in #699
  • Chore(deps-dev): Update zope-testrunner requirement from <7,>=5 to >=5,<8 by @dependabot[bot] in #698
  • Chore(deps-dev): Update ruff requirement from <0.10 to <0.12 by @dependabot[bot] in #705
  • Documentation: Remove page about SQLAlchemy by @amotl in #706
  • Chore: Fix build wrt. setuptools and urllib3 by @amotl in #712
  • Chore(deps): Bump astral-sh/setup-uv from 5 to 6 by @dependabot[bot] in #710
  • CI: Use Python 3.13 for CodeQL analysis by @amotl in #713
  • Remove page local TOC by @bmunkholm in #720
  • Docs simplification by @bmunkholm in #721
  • Remove python 3.7 and 3.8 from test matrix. by @surister in #724
  • Chore(deps-dev): Update mypy requirement from <1.16 to <1.17 by @dependabot[bot] in #722
  • Update build.json to 2.1.2 by @bmunkholm in #728
  • Chore(deps-dev): Update mypy requirement from <1.17 to <1.18 by @dependabot[bot] in #730
  • Chore(deps): Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #732
  • Chore(deps): Bump actions/checkout from 4 to 5 by @dependabot[bot] in #733
  • Chore(deps-dev): Update ruff requirement from <0.12 to <0.14 by @dependabot[bot] in #731
  • Increase wait time threshold for Crate instance startup by @surister in #735
  • Chore(deps-dev): Update zope-testing requirement from <6,>=4 to >=4,<7 by @dependabot[bot] in #738
  • Modernize project by @surister in #739
  • Update Python version to include 3.14 by @surister in #737
  • Chore(deps-dev): Update ruff requirement from <0.14 to <0.15 by @dependabot[bot] in #745
  • Chore(deps): Bump astral-sh/setup-uv from 6 to 7 by @dependabot[bot] in #741
  • Chore(deps): Bump zc-buildout from 3.3 to 5.1.1 by @dependabot[bot] in #744
  • Chore(deps): Bump zope-interface from 6.4.post2 to 8.0.1 by @dependabot[bot] in #736
  • Chore(deps): Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #742
  • Chore: Relax development dependencies by @amotl in #752
  • Tests: Re-enable doctests, and a few cleanups by @amotl in #753
  • CI: Fix nightly job by @amotl in #748
  • Tests: Modernize X.509 certificates, including Authority Key Identifiers by @amotl in #754
  • Chore: Use SPDX (PEP 639). Update verlib2. by @amotl in #755
  • Chore: Fix package name. It is crate indeed. by @amotl in #756
  • Project versioning: Use versioningit by @amotl in #757
  • Project: Configure Hatch sdist packaging. Remove MANIFEST.in. by @amotl in #758
  • Chore: Update to crate-docs v2.1.5, doing parallel builds by @amotl in #760
  • Chore(deps): Update zope-testrunner requirement from <8,>=5 to >=5,<9 by @dependabot[bot] in #763
  • Chore(deps-dev): Update pytest requirement from <9 to <10 by @dependabot[bot] in #761
  • Chore(deps-dev): Update mypy requirement from <1.19 to <1.20 by @dependabot[bot] in #762
  • Chore(deps): Bump actions/checkout from 5 to 6 by @dependabot[bot] in #764
  • Chore(deps): Bump zope-interface from 8.1.1 to 8.2 by @dependabot[bot] in #765
  • Cleanup dev setup by @mfussenegger in #767
  • Re-add execution of doctests by @mfussenegger in #768
  • Remove duplicate crate_path/project_root definitions by @mfussenegger in #770
  • Remove py < 3.9 deps; Mention dropped python version support in changes by @mfussenegger in #769
  • CI: Run tests against more OS- and architecture variants by @amotl in #750
  • Propagate path prefix in server URLs to all requests by @Kleinjohann in #771
  • Chore(deps-dev): Update ruff requirement from <0.15 to <0.16 by @dependabot[bot] in #775
  • Linter: Update to ruff 0.15.0 by @amotl in #776
  • CI: Configure astral-sh/setup-uv to use the right Python version by @amotl in #778
  • Fix compatibility with urllib3-future by @amotl in #784
  • Add JWT token authentication by @amotl in #717
  • Dependencies: Relax dependency for verlib2 package by @amotl in #785
  • CI: Fix packaging by using hatch build instead of uv build by @amotl in #786
  • Revert "Project: Drop requires-python attribute for less obstacles" by @amotl in #790

New Contributors

Full Changelog: 2.0.0...2.1.0

2.0.0

30 Jan 22:45

Choose a tag to compare

What's Changed

  • Switched JSON encoder to use the orjson library, to improve JSON
    marshalling performance. Thanks, @widmogrod.

    orjson is fast and in some spots even more correct when compared against
    Python's stdlib json module. Contrary to the stdlib variant, orjson
    will serialize to bytes instead of str. When sending data to CrateDB,
    crate-python uses a custom encoder to add support for additional data
    types.

    • Python's Decimal type will be serialized to str.
    • Python's dt.datetime and dt.date types will be serialized to
      int (LONG) after converting to milliseconds since epoch, to
      optimally accommodate CrateDB's TIMESTAMP representation.
    • NumPy's data types will be handled by orjson without any ado.

Details

Full Changelog: 1.0.1...2.0.0

1.0.1

23 Nov 13:10

Choose a tag to compare

What's Changed

Details

  • CI: Fix CodeQL and Release jobs by @amotl in #673
  • Update poethepoet requirement from <0.30 to <0.31 by @dependabot in #674
  • Python: Fix "implicit namespace packages" migration by @amotl in #675
  • Chore: Suppress unqualified CodeQL admonitions by @amotl in #676
  • CI: Migrate to astral-sh/setup-uv by @amotl in #678

Full Changelog: 1.0.0...1.0.1

1.0.0

06 Nov 12:22

Choose a tag to compare

What's Changed

  • BREAKING CHANGE: The SQLAlchemy dialect has been split off into
    the sqlalchemy-cratedb package, see notice below.
  • Feature: Returned Python datetime objects are now always timezone-aware,
    using UTC by default.
    It may be a breaking change for some users of the library that don't expect
    to receive "aware" instead of "naive" Python datetime objects from now
    on, i.e. instances with or without the tzinfo attribute set.
    When no time_zone information is specified when creating a database
    connection or cursor, datetime objects will now use Coordinated
    Universal Time (UTC), like CrateDB is storing timestamp values in this
    format.
    This update is coming from a deprecation of Python's
    datetime.utcfromtimestamp(), which is effectively also phasing out
    the use of "naive" timestamp objects in Python, in favor of using
    timezone-aware objects, also to represent datetimes in UTC.
  • Feature: Configured DB API interface attribute threadsafety = 1,
    which signals "Threads may share the module, but not connections."
  • Feature: Added error_trace to string representation of an Error,
    to relay server stacktraces into exception messages.
  • Refactoring: The module namespace crate.client.test_util has been
    renamed to crate.testing.util.
  • Error handling: At two spots in cursor / value converter handling, where
    assert statements have been used, ValueError exceptions are raised
    now.
  • Python: Migrated to use "implicit namespace packages" instead of "declared
    namespaces" for the crate namespace package, see PEP 420_.

Note:

For learning about the transition to sqlalchemy-cratedb,
we recommend to read the enumeration of necessary migration steps
at Migrate from crate.client to sqlalchemy-cratedb.

Full Changelog: 0.35.2...1.0.0

0.35.2

18 Jan 18:22

Choose a tag to compare

What's Changed

  • Test compatibility: Permit installation of pandas 2.1.

Full Changelog: 0.35.1...0.35.2

0.35.1

18 Jan 17:52

Choose a tag to compare

What's Changed

  • Compatibility: Re-add crate.client._pep440.Version from verlib2.
    It is needed the prevent breaking crash.

Full Changelog: 0.35.0...0.35.1

0.35.0

17 Jan 22:30

Choose a tag to compare

What's Changed

  • Permit urllib3.Timeout instances for defining timeout values.
    This way, both connect and read socket timeout settings can be
    configured. The unit is seconds.
  • Internal: Use verlib2.Version for comparing versions.
  • CI: Add support for Python 3.12.

Full Changelog: 0.34.0...0.35.0

0.34.0

29 Sep 14:14

Choose a tag to compare

What's Changed

  • Properly handle Python-native UUID types in SQL parameters. Thanks,
    @SStorm.
  • SQLAlchemy: Fix handling URL parameters timeout and pool_size
  • Permit installation with urllib3 v2, see also urllib3 v2.0 roadmap
    and urllib3 v2.0 migration guide. You can optionally retain support
    for TLS 1.0 and TLS 1.1, but a few other outdated use-cases of X.509
    certificate details are immanent, like no longer accepting the long
    deprecated commonName attribute. Instead, going forward, only the
    subjectAltName attribute will be used.
  • SQLAlchemy: Improve DDL compiler to ignore foreign key and uniqueness
    constraints.
  • DBAPI: Properly raise IntegrityError exceptions instead of
    ProgrammingError, when CrateDB raises a DuplicateKeyException.
  • SQLAlchemy: Ignore SQL's FOR UPDATE clause. Thanks, @surister.

New Contributors

Full Changelog: 0.33.0...0.34.0

0.33.0

17 Jul 17:16

Choose a tag to compare

What's Changed

  • SQLAlchemy: Rename leftover occurrences of Object to ObjectType
  • SQLAlchemy DQL: Use CrateDB's native ILIKE operator. Thanks, @hlcianfagna.

Full Changelog: 0.32.0...0.33.0