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" Pythondatetime
objects from now
on, i.e. instances with or without thetzinfo
attribute set.
When notime_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 tocrate.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 thecrate
namespace package, seePEP 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