Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pre-commit.ci] pre-commit autoupdate #1170

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

[pre-commit.ci] pre-commit autoupdate

02d6095
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Open

[pre-commit.ci] pre-commit autoupdate #1170

[pre-commit.ci] pre-commit autoupdate
02d6095
Select commit
Loading
Failed to load commit list.
GitHub Actions / Test Results - 3.8 failed Dec 9, 2024 in 0s

1 fail, 5 skipped, 91 pass in 18s

97 tests  ±0   91 ✅  - 1   18s ⏱️ -1s
 1 suites ±0    5 💤 ±0 
 1 files   ±0    1 ❌ +1 

Results for commit 02d6095. ± Comparison against earlier commit 3694c73.

Annotations

Check warning on line 0 in duckdb_engine.tests.test_basic

See this annotation in the file changed.

@github-actions github-actions / Test Results - 3.8

test_preload_extension (duckdb_engine.tests.test_basic) failed

results.xml [took 0s]
Raw output
sqlalchemy.exc.OperationalError: (duckdb.duckdb.IOException) IO Error: Extension "/home/runner/.duckdb/extensions/4ec388e033/linux_amd64_gcc4/httpfs.duckdb_extension" could not be loaded because its signature is either missing or invalid and unsigned extensions are disabled by configuration (allow_unsigned_extensions)
(Background on this error at: https://sqlalche.me/e/14/e3q8)
self = Engine(duckdb:///)
fn = <bound method Pool.connect of <sqlalchemy.pool.impl.QueuePool object at 0x7fd32e61b3a0>>
connection = None

    #x1B[0m#x1B[94mdef#x1B[39;49;00m #x1B[92m_wrap_pool_connect#x1B[39;49;00m(#x1B[96mself#x1B[39;49;00m, fn, connection):#x1B[90m#x1B[39;49;00m
        dialect = #x1B[96mself#x1B[39;49;00m.dialect#x1B[90m#x1B[39;49;00m
        #x1B[94mtry#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
>           #x1B[94mreturn#x1B[39;49;00m fn()#x1B[90m#x1B[39;49;00m

#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/base.py#x1B[0m:3371: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:327: in connect
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m _ConnectionFairy._checkout(#x1B[96mself#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:894: in _checkout
    #x1B[0mfairy = _ConnectionRecord.checkout(pool)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:493: in checkout
    #x1B[0mrec = pool._do_get()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/impl.py#x1B[0m:146: in _do_get
    #x1B[0m#x1B[96mself#x1B[39;49;00m._dec_overflow()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py#x1B[0m:70: in __exit__
    #x1B[0mcompat.raise_(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/compat.py#x1B[0m:211: in raise_
    #x1B[0m#x1B[94mraise#x1B[39;49;00m exception#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/impl.py#x1B[0m:143: in _do_get
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m._create_connection()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:273: in _create_connection
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m _ConnectionRecord(#x1B[96mself#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:388: in __init__
    #x1B[0m#x1B[96mself#x1B[39;49;00m.__connect()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:691: in __connect
    #x1B[0mpool.logger.debug(#x1B[33m"#x1B[39;49;00m#x1B[33mError on connect(): #x1B[39;49;00m#x1B[33m%s#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, e)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py#x1B[0m:70: in __exit__
    #x1B[0mcompat.raise_(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/compat.py#x1B[0m:211: in raise_
    #x1B[0m#x1B[94mraise#x1B[39;49;00m exception#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:686: in __connect
    #x1B[0m#x1B[96mself#x1B[39;49;00m.dbapi_connection = connection = pool._invoke_creator(#x1B[96mself#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/create.py#x1B[0m:574: in connect
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m dialect.connect(*cargs, **cparams)#x1B[90m#x1B[39;49;00m
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <duckdb_engine.Dialect object at 0x7fd32e60e760>, cargs = ()
cparams = {'config': {'custom_user_agent': 'duckdb_engine/0.13.7-pre0(sqlalchemy/1.4.54)'}}
preload_extensions = ['httpfs']
ext = {'s3_region': 'ap-southeast-2', 's3_use_ssl': True}
user_agent = 'duckdb_engine/0.13.7-pre0(sqlalchemy/1.4.54)'
conn = <duckdb.duckdb.DuckDBPyConnection object at 0x7fd32e60c8f0>
extension = 'httpfs'

    #x1B[0m#x1B[94mdef#x1B[39;49;00m #x1B[92mconnect#x1B[39;49;00m(#x1B[96mself#x1B[39;49;00m, *cargs: Any, **cparams: Any) -> #x1B[33m"#x1B[39;49;00m#x1B[33mConnection#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
        core_keys = get_core_config()#x1B[90m#x1B[39;49;00m
        preload_extensions = cparams.pop(#x1B[33m"#x1B[39;49;00m#x1B[33mpreload_extensions#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, [])#x1B[90m#x1B[39;49;00m
        config = #x1B[96mdict#x1B[39;49;00m(cparams.get(#x1B[33m"#x1B[39;49;00m#x1B[33mconfig#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, {}))#x1B[90m#x1B[39;49;00m
        cparams[#x1B[33m"#x1B[39;49;00m#x1B[33mconfig#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m] = config#x1B[90m#x1B[39;49;00m
        config.update(cparams.pop(#x1B[33m"#x1B[39;49;00m#x1B[33murl_config#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, {}))#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
        ext = {k: config.pop(k) #x1B[94mfor#x1B[39;49;00m k #x1B[95min#x1B[39;49;00m #x1B[96mlist#x1B[39;49;00m(config) #x1B[94mif#x1B[39;49;00m k #x1B[95mnot#x1B[39;49;00m #x1B[95min#x1B[39;49;00m core_keys}#x1B[90m#x1B[39;49;00m
        #x1B[94mif#x1B[39;49;00m supports_user_agent:#x1B[90m#x1B[39;49;00m
            user_agent = #x1B[33mf#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33mduckdb_engine/#x1B[39;49;00m#x1B[33m{#x1B[39;49;00m__version__#x1B[33m}#x1B[39;49;00m#x1B[33m(sqlalchemy/#x1B[39;49;00m#x1B[33m{#x1B[39;49;00msqlalchemy_version#x1B[33m}#x1B[39;49;00m#x1B[33m)#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
            #x1B[94mif#x1B[39;49;00m #x1B[33m"#x1B[39;49;00m#x1B[33mcustom_user_agent#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m #x1B[95min#x1B[39;49;00m config:#x1B[90m#x1B[39;49;00m
                user_agent = #x1B[33mf#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33m{#x1B[39;49;00muser_agent#x1B[33m}#x1B[39;49;00m#x1B[33m #x1B[39;49;00m#x1B[33m{#x1B[39;49;00mconfig[#x1B[33m'#x1B[39;49;00m#x1B[33mcustom_user_agent#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m]#x1B[33m}#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
            config[#x1B[33m"#x1B[39;49;00m#x1B[33mcustom_user_agent#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m] = user_agent#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
        conn = duckdb.connect(*cargs, **cparams)#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
        #x1B[94mfor#x1B[39;49;00m extension #x1B[95min#x1B[39;49;00m preload_extensions:#x1B[90m#x1B[39;49;00m
>           conn.execute(#x1B[33mf#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33mLOAD #x1B[39;49;00m#x1B[33m{#x1B[39;49;00mextension#x1B[33m}#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31mE           duckdb.duckdb.IOException: IO Error: Extension "/home/runner/.duckdb/extensions/4ec388e033/linux_amd64_gcc4/httpfs.duckdb_extension" could not be loaded because its signature is either missing or invalid and unsigned extensions are disabled by configuration (allow_unsigned_extensions)#x1B[0m

#x1B[1m#x1B[31mduckdb_engine/__init__.py#x1B[0m:278: IOException

#x1B[33mThe above exception was the direct cause of the following exception:#x1B[0m

    #x1B[0m#x1B[37m@mark#x1B[39;49;00m.skipif(os.uname().machine == #x1B[33m"#x1B[39;49;00m#x1B[33maarch64#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, reason=#x1B[33m"#x1B[39;49;00m#x1B[33mnot supported on aarch64#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
    #x1B[37m@mark#x1B[39;49;00m.remote_data#x1B[90m#x1B[39;49;00m
    #x1B[94mdef#x1B[39;49;00m #x1B[92mtest_preload_extension#x1B[39;49;00m() -> #x1B[94mNone#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
        duckdb.connect().execute(#x1B[33m"#x1B[39;49;00m#x1B[33mINSTALL httpfs#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
        engine = create_engine(#x1B[90m#x1B[39;49;00m
            #x1B[33m"#x1B[39;49;00m#x1B[33mduckdb:///#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
            connect_args={#x1B[90m#x1B[39;49;00m
                #x1B[33m"#x1B[39;49;00m#x1B[33mpreload_extensions#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: [#x1B[33m"#x1B[39;49;00m#x1B[33mhttpfs#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m],#x1B[90m#x1B[39;49;00m
                #x1B[33m"#x1B[39;49;00m#x1B[33mconfig#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: {#x1B[33m"#x1B[39;49;00m#x1B[33ms3_region#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: #x1B[33m"#x1B[39;49;00m#x1B[33map-southeast-2#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, #x1B[33m"#x1B[39;49;00m#x1B[33ms3_use_ssl#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: #x1B[94mTrue#x1B[39;49;00m},#x1B[90m#x1B[39;49;00m
            },#x1B[90m#x1B[39;49;00m
        )#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
        #x1B[90m# check that we get an error indicating that the extension was loaded#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
>       #x1B[94mwith#x1B[39;49;00m engine.connect() #x1B[94mas#x1B[39;49;00m conn, raises(#x1B[96mException#x1B[39;49;00m, match=#x1B[33m"#x1B[39;49;00m#x1B[33mHTTP HEAD#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m):#x1B[90m#x1B[39;49;00m

#x1B[1m#x1B[31mduckdb_engine/tests/test_basic.py#x1B[0m:271: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/base.py#x1B[0m:3325: in connect
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m._connection_cls(#x1B[96mself#x1B[39;49;00m, close_with_result=close_with_result)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/base.py#x1B[0m:96: in __init__
    #x1B[0m#x1B[94melse#x1B[39;49;00m engine.raw_connection()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/base.py#x1B[0m:3404: in raw_connection
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m._wrap_pool_connect(#x1B[96mself#x1B[39;49;00m.pool.connect, _connection)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/base.py#x1B[0m:3374: in _wrap_pool_connect
    #x1B[0mConnection._handle_dbapi_exception_noconnection(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/base.py#x1B[0m:2208: in _handle_dbapi_exception_noconnection
    #x1B[0mutil.raise_(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/compat.py#x1B[0m:211: in raise_
    #x1B[0m#x1B[94mraise#x1B[39;49;00m exception#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/base.py#x1B[0m:3371: in _wrap_pool_connect
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m fn()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:327: in connect
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m _ConnectionFairy._checkout(#x1B[96mself#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:894: in _checkout
    #x1B[0mfairy = _ConnectionRecord.checkout(pool)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:493: in checkout
    #x1B[0mrec = pool._do_get()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/impl.py#x1B[0m:146: in _do_get
    #x1B[0m#x1B[96mself#x1B[39;49;00m._dec_overflow()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py#x1B[0m:70: in __exit__
    #x1B[0mcompat.raise_(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/compat.py#x1B[0m:211: in raise_
    #x1B[0m#x1B[94mraise#x1B[39;49;00m exception#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/impl.py#x1B[0m:143: in _do_get
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m._create_connection()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:273: in _create_connection
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m _ConnectionRecord(#x1B[96mself#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:388: in __init__
    #x1B[0m#x1B[96mself#x1B[39;49;00m.__connect()#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:691: in __connect
    #x1B[0mpool.logger.debug(#x1B[33m"#x1B[39;49;00m#x1B[33mError on connect(): #x1B[39;49;00m#x1B[33m%s#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, e)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py#x1B[0m:70: in __exit__
    #x1B[0mcompat.raise_(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/util/compat.py#x1B[0m:211: in raise_
    #x1B[0m#x1B[94mraise#x1B[39;49;00m exception#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/pool/base.py#x1B[0m:686: in __connect
    #x1B[0m#x1B[96mself#x1B[39;49;00m.dbapi_connection = connection = pool._invoke_creator(#x1B[96mself#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.nox/nightly-3-8/lib/python3.8/site-packages/sqlalchemy/engine/create.py#x1B[0m:574: in connect
    #x1B[0m#x1B[94mreturn#x1B[39;49;00m dialect.connect(*cargs, **cparams)#x1B[90m#x1B[39;49;00m
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <duckdb_engine.Dialect object at 0x7fd32e60e760>, cargs = ()
cparams = {'config': {'custom_user_agent': 'duckdb_engine/0.13.7-pre0(sqlalchemy/1.4.54)'}}
preload_extensions = ['httpfs']
ext = {'s3_region': 'ap-southeast-2', 's3_use_ssl': True}
user_agent = 'duckdb_engine/0.13.7-pre0(sqlalchemy/1.4.54)'
conn = <duckdb.duckdb.DuckDBPyConnection object at 0x7fd32e60c8f0>
extension = 'httpfs'

    #x1B[0m#x1B[94mdef#x1B[39;49;00m #x1B[92mconnect#x1B[39;49;00m(#x1B[96mself#x1B[39;49;00m, *cargs: Any, **cparams: Any) -> #x1B[33m"#x1B[39;49;00m#x1B[33mConnection#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
        core_keys = get_core_config()#x1B[90m#x1B[39;49;00m
        preload_extensions = cparams.pop(#x1B[33m"#x1B[39;49;00m#x1B[33mpreload_extensions#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, [])#x1B[90m#x1B[39;49;00m
        config = #x1B[96mdict#x1B[39;49;00m(cparams.get(#x1B[33m"#x1B[39;49;00m#x1B[33mconfig#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, {}))#x1B[90m#x1B[39;49;00m
        cparams[#x1B[33m"#x1B[39;49;00m#x1B[33mconfig#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m] = config#x1B[90m#x1B[39;49;00m
        config.update(cparams.pop(#x1B[33m"#x1B[39;49;00m#x1B[33murl_config#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, {}))#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
        ext = {k: config.pop(k) #x1B[94mfor#x1B[39;49;00m k #x1B[95min#x1B[39;49;00m #x1B[96mlist#x1B[39;49;00m(config) #x1B[94mif#x1B[39;49;00m k #x1B[95mnot#x1B[39;49;00m #x1B[95min#x1B[39;49;00m core_keys}#x1B[90m#x1B[39;49;00m
        #x1B[94mif#x1B[39;49;00m supports_user_agent:#x1B[90m#x1B[39;49;00m
            user_agent = #x1B[33mf#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33mduckdb_engine/#x1B[39;49;00m#x1B[33m{#x1B[39;49;00m__version__#x1B[33m}#x1B[39;49;00m#x1B[33m(sqlalchemy/#x1B[39;49;00m#x1B[33m{#x1B[39;49;00msqlalchemy_version#x1B[33m}#x1B[39;49;00m#x1B[33m)#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
            #x1B[94mif#x1B[39;49;00m #x1B[33m"#x1B[39;49;00m#x1B[33mcustom_user_agent#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m #x1B[95min#x1B[39;49;00m config:#x1B[90m#x1B[39;49;00m
                user_agent = #x1B[33mf#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33m{#x1B[39;49;00muser_agent#x1B[33m}#x1B[39;49;00m#x1B[33m #x1B[39;49;00m#x1B[33m{#x1B[39;49;00mconfig[#x1B[33m'#x1B[39;49;00m#x1B[33mcustom_user_agent#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m]#x1B[33m}#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
            config[#x1B[33m"#x1B[39;49;00m#x1B[33mcustom_user_agent#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m] = user_agent#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
        conn = duckdb.connect(*cargs, **cparams)#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
        #x1B[94mfor#x1B[39;49;00m extension #x1B[95min#x1B[39;49;00m preload_extensions:#x1B[90m#x1B[39;49;00m
>           conn.execute(#x1B[33mf#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33mLOAD #x1B[39;49;00m#x1B[33m{#x1B[39;49;00mextension#x1B[33m}#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31mE           sqlalchemy.exc.OperationalError: (duckdb.duckdb.IOException) IO Error: Extension "/home/runner/.duckdb/extensions/4ec388e033/linux_amd64_gcc4/httpfs.duckdb_extension" could not be loaded because its signature is either missing or invalid and unsigned extensions are disabled by configuration (allow_unsigned_extensions)#x1B[0m
#x1B[1m#x1B[31mE           (Background on this error at: https://sqlalche.me/e/14/e3q8)#x1B[0m

#x1B[1m#x1B[31mduckdb_engine/__init__.py#x1B[0m:278: OperationalError