[pre-commit.ci] pre-commit autoupdate #1170
Open
GitHub Actions / Test Results - 3.8
failed
Dec 9, 2024 in 0s
1 fail, 5 skipped, 91 pass in 18s
Annotations
Check warning on line 0 in duckdb_engine.tests.test_basic
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
Loading