5.0.1 with fix for Azure tokens / binary attrs_before
This is a bug fix for 5.0.0 that restores the ability to pass bytes objects in the attrs_before parameter when connecting. This is often used for Azure with a token. Issue #1289
5.0.0 Release
This is the first 3.x only pyodbc release, supporting Python 3.8-3.12.
The API is backwards compatible, so previous Python 3 products using pyodbc should not need any changes.
Please note that macOS ARM / Apple Silicon binary builds have been problematic due inconsistencies in the way unixODBC libraries can be installed. Please see the issues and discussions.
5.0.0 beta2 - Help test macOS Apple Silicon binary wheels
We're retrying macOS Apple Silicon wheels, for those with M1, M2, etc. chips. If you have one of these, please give this release a try so we know before the final 5.0.0 release in a few days.
This means you would not use Rosetta. Just install normally using pip install pyodbc==5.0.0b2. Don't use --no-binary.
For those wondering, the inability to supply these wheels has not been due to any pyodbc code issues. We use Github Actions to build all the different versions and it still doesn't have complete support for macOS Apple Silicon CI runners. At this time, only Intel is supported. However, we can cross-compile and generate ARM wheels on Intel, but we can't test them. That's why we need your help!
5.0.0 Beta 1
This is a beta release for the upcoming 5.0 that drops Python 2 and adds Python 3.12
Source and wheels for 5.0.0b1 is available on PyPI.
This beta restores fast_executemany, so it should be feature complete. If there are no serious issues reported, it will be released as 5.0.0 this week (before Python 3.12 is officially released).
5.0.0 alpha 2
This is a test release for the upcoming 5.0 that drops Python 2 and supports Python 3.12
Source and wheels for 5.0.0a2 is available on PyPI
Note that fastexecmany is not available in this release, but will be ported to the next.
Stubgen will now include __all__ in its output if it is in the input file (PR 16356).
Mypy 1.7
We’ve just uploaded mypy 1.7 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:
python3 -m pip install -U mypy
You can read the full documentation for this release on Read the Docs.
Using TypedDict for **kwargs Typing
Mypy now has support for using Unpack[...] with a TypedDict type to annotate **kwargs arguments enabled by default. Example:
# Or 'from typing_extensions import ...'
from typing import TypedDict, Unpack
class Person(TypedDict):
name: str
age: int
def foo(**kwargs: Unpack[Person]) -> None:
...
foo(name="x", age=1) # Ok
foo(name=1) # Error
The definition of foo above is equivalent to the one below, with keyword-only arguments name and age:
def foo(*, name: str, age: int) -> None:
...
Refer to PEP 692 for more information. Note that unlike in the current version of the PEP, mypy always treats signatures with Unpack[SomeTypedDict] as equivalent to their expanded forms with explicit keyword arguments, and there aren't special type checking rules for TypedDict arguments.
This was contributed by Ivan Levkivskyi back in 2022 (PR 13471).
TypeVarTuple Support Enabled (Experimental)
Mypy now has support for variadic generics (TypeVarTuple) enabled by default, as an experimental feature. Refer to PEP 646 for the details.
TypeVarTuple was implemented by Jared Hance and Ivan Levkivskyi over several mypy releases, with help from Jukka Lehtosalo.
Integration-Test-Docker-Environment 2.0.0, released 2023-08-07
Summary
Version 2.0.0 of ITDE comes with breaking changes as the public API class DatabaseInfo has been changed. Former separate attributes database_port_forwardand bucketfs_port_forward have been replaced by a single attribute port set to an instance of PortForwarding with attributes database, bucketfs, and ssh.
Previous versions of the ITDE used docker_exec to access the Docker Container, e.g. to analyze the content of logfiles or execute some shell commands. In future versions of the Exasol Docker-DB the format of the Docker Containers might change so that docker_exec is no longer possible. Instead ITDE will then need to use SSH access.
The current release therefore enhances ITDE to enable to access the Docker Container via SSH. The user can select the docker access method with command line option --db-os-access and can specify a port number to which ITDE forwards the SSH port of the Docker Container, see User Guide.
Additionally the directory for storing the randomly generated SSH keys has been moved to ~/.cache/exasol/itde/. By that ITDE can restrict file permissions allowing access only by the current user.
This release also removes versions 7.0.x of the Exasol database from the regular CI builds as version 8.x is already available and ITDE only supports the latest two minor versions.
Supported Exasol Versions
7.1: up to 7.1.17
8: 8.18.1
If you need further versions, please open an issue.
Internal
Changes
#329: Added CLI option --ssh-port-forward to forward SSH port
#343: Added SshInfo to DatabaseInfo containing user, port and path to SSH key file
#308: Unified ports for database, BucketFS, and SSH
#322: Added additional tests for environment variable LOG_ENV_VARIABLE_NAME
#359: Fixed custom logging path not working if dir does not exist.
#304: Create SSH access replacements for calls to docker.exec_run()
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the other group with 6 updates:
4.0.39
5.0.1
23.10.1
23.11.0
2.17.7
3.0.2
2022.12.7
2023.9.10
1.6.1
1.7.0
1.7.1
2.0.0
Updates
pyodbc
from 4.0.39 to 5.0.1Release notes
Sourced from pyodbc's releases.
Commits
32d1073
Release 5.0.1d5a9359
attrs_before: Add error for unknown type4435d14
odbcversion doc and pyi updates19beb9a
handle bytes in attrs_before7f91191
Updating version to 5.0.0215dbaa
params: Move xdecrefs after last use8a4555d
Allow customization of default odbc version36148c3
Upgrade Python syntax with pyupgrade --py38-plusd84993b
Drop support for EOL Python 3.7885a84c
Remove redundant code for dropped Python versionsUpdates
black
from 23.10.1 to 23.11.0Release notes
Sourced from black's releases.
Changelog
Sourced from black's changelog.
Commits
2a1c67e
Prepare release 23.11.0 (#4032)72e7a2e
Remove redundant condition fromhas_magic_trailing_comma
(#4023)1a7d9c2
Preserve visible quote types for f-string debug expressions (#4005)f4c7be5
docs: fix minor typo (#4030)2e4fac9
Apply force exclude logic before symlink resolution (#4015)66008fd
[563] Fix standalone comments inside complex blocks crashing Black (#4016)50ed622
Fix long case blocks not split into multiple lines (#4024)46be1f8
Support formatting specified lines (#4020)ecbd9e8
Fix crash with f-string docstrings (#4019)e808e61
Preview: Keep requiring two empty lines between module-level docstring and fi...Updates
pylint
from 2.17.7 to 3.0.2Commits
efee961
Bump pylint to 3.0.2, update changelog31aca81
Fixes duplicate-code check with ignore-imports (#9147) (#9176)792da24
Escape special symbols and newlines in messages. (#9164) (#9165)759e2cc
Fixused-before-assignment
FP for generic type syntax (Py 3.12) (#9150) (#9...a77f0c1
Respect py-version forinconsistent-quotes
inside f-strings (#9152) (#9155)a9d9dc3
Fix suggestion for min-max with expressions (#9131) (#9141)f2cded4
Bump pylint to 3.0.1, update changelog (#9119)a1443ed
Fix a crash for Enum class decorated with dataclass (#9104) (#9112)2d8a894
Fix false positive forinherit-non-class
for generic Protocols (#9108) (#...4a7ad5e
Bump pylint to 3.0.0, update changelogUpdates
furo
from 2022.12.7 to 2023.9.10Changelog
Sourced from furo's changelog.
... (truncated)
Commits
2718ca4
Prepare release: 2023.09.10c22c99d
Update changelogc37e849
Quote a not-runtime-generic type annotation9cfdf44
Rework infrastructure for linting5abeb9f
Fix the check for HTML buildersee2ab54
Tweak how tests are run with noxcdae236
Test against Sphinx minor versions in CI9e40071
Make asset hash injection idempotentaab86f4
Revert "Exclude incompatible Sphinx releases (#711)"4dd6eec
Exclude incompatible Sphinx releases (#711)Updates
mypy
from 1.6.1 to 1.7.0Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
f6b9972
Remove +dev from version62bcae2
Fix handling of tuple type context with unpacks (#16444)c22294a
Handle TypeVarTupleType when checking overload constraints (#16428)8813968
Fix type narrowing in lambda expressions (#16407)681e54c
Fix crash on unpack call special-casing (#16381)f68f463
Fix file reloading in dmypy with --export-types (#16359)5624f40
Fix daemon crash caused by deleted submodule (#16370)ad0e183
Enable Unpack/TypeVarTuple support (#16354)b064a5c
Fix dmypy inspect on Windows (#16355)4e30e89
Fix dmypy inspect for namespace packages (#16357)Updates
exasol-integration-test-docker-environment
from 1.7.1 to 2.0.0Release notes
Sourced from exasol-integration-test-docker-environment's releases.
Commits
41a7c72
[run all tests]1e40864
Fixed typo found during review1713cb9
[run all tests]2f313f4
Updated changes file37ff344
Replaced calls to DockerContainer.exec_run() to support SSH access alternativ...9d045bf
Removed versions 7.0.x of Exasol database (#369)7c0e930
Create SSH access replacements for calls to docker.exec_run() (#362)d6fcbaa
Fixed env variable LOG_ENV_VARIABLE_NAME (#360)390968a
Unify ports for database, BucketFS, and SSH (#354)985abe2
Add port, keys, user to DatabaseInfo with parent field ssh_info (#353)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show