Skip to content

fix(deps): update dependency pyathena to v4 - #401

Merged
amotl merged 1 commit into
mainfrom
renovate/pyathena-4.x
Oct 20, 2026
Merged

amotl merged 1 commit into
mainfrom
renovate/pyathena-4.x

Conversation

@renovate

@renovate renovate Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
pyathena (changelog) <4 → <5 age confidence

Release Notes

pyathena-dev/PyAthena (pyathena)

v4.2.0

Compare Source

Breaking changes

  • A closed cursor raises ProgrammingError("Cursor is closed.") from execute(), executemany(), the fetch methods, iteration, cancel(), the metadata methods, and its other methods (#​1274). Before, fetches returned None or [] and execute() ran a new query. Cursors have a new is_closed property.
  • A closed result set raises ProgrammingError from its fetch methods, iteration, as_pandas(), as_arrow(), as_polars(), and iter_chunks(), instead of returning None, [], or an empty DataFrame or table (#​1274).
  • next() on an asyncio cursor or result set raises TypeError instead of returning an un-awaited coroutine (#​1274).
  • After a fetch raises, later fetchone(), fetchmany(), and fetchall() calls raise ProgrammingError (#​1238). Before, the pandas and Polars result sets returned no more rows, and the other result sets continued after the skipped rows. Invalid arguments, such as a non-integer fetchmany() size, do not count as a failed fetch.
  • Calling one cursor or result set from several threads is not supported, as threadsafety = 2 declares (#​1238). This includes cancel() from a timer thread and close() during a fetch. To stop a query from another thread, use its query ID.
  • A cancelled fetch of AioPandasCursor, AioArrowCursor, AioPolarsCursor, or AioS3FSCursor drops the result set from the cursor, so later fetches raise ProgrammingError("No result set.") (#​1238). A cancelled as_*() call of these cursors does the same (#​1286).
  • AioPandasCursor.as_pandas(), AioPolarsCursor.as_polars() / as_arrow(), and AioArrowCursor.as_arrow() / as_polars() are coroutines: use await cursor.as_pandas() (#​1286). AioPandasCursor.as_pandas() always returns a DataFrame. To read chunks one at a time, use the new async iter_chunks() of AioPandasCursor and AioPolarsCursor.
  • After close() of AsyncCursor or one of its variants (dict, pandas, Arrow, Polars, S3FS), the futures of execute(), description(), and poll() that still wait for their query raise ProgrammingError (#​1279, #​1300). The query is not cancelled. A result set built after the close is closed before its future resolves. The futures of cancel() and query_execution() still run. A result set whose future resolved before the close stays open and belongs to the caller.
  • AsyncCursor.description(query_id) reads only the result set metadata, or the Parquet schema of an UNLOAD result, and no longer reads the result rows (#​1300). It uses the new metadata reader classes, such as AthenaResultSetMetadataReader. A custom result set class that overrides the description property no longer changes what description(query_id) returns; make that change in its metadata reader class instead.
  • PandasCursor's temporal dtypes now depend only on the Athena type (#​1273). The same applies to AsyncPandasCursor and AioPandasCursor.
    • timestamp is always datetime64[us], and digits beyond microseconds are truncated. It was [ns] for 7 or more fractional digits, [s] when all values were NULL or with engine="pyarrow" and no fraction, [ns] with engine="pyarrow" and a fraction, and str when a column also held values outside the nanosecond range.
    • timestamp with time zone is datetime64[us, UTC]. It had the data's zone, or was object for several zones or an all-NULL column.
    • date from UNLOAD results is datetime64[us], as from CSV results. It was object (date).
    • The fetch methods return datetime, date, and aware datetime in UTC, and None for NULL. They returned pd.Timestamp and NaT.
    • When parse_dates, dtype, or converters is given to execute(), PyAthena leaves the temporal columns to pandas, and the fetch methods return pandas' values for them.
    • engine="pyarrow" is now also used for results with timestamp with time zone columns.
  • A timestamp with time zone value raises DataError when its zone name is unknown, or when its zone repeats or skips its local time (daylight saving time) (#​1224). Before, it returned a naive datetime or the earlier instant. Convert such values to UTC in SQL (AT TIME ZONE 'UTC') or read to_unixtime(). tzdata>=2024.2 is required.
  • S3File.multipart_upload is read-only, and S3File.multipart_upload_parts is removed (#​1232). S3File.completed_parts returns the uploaded or copied parts in part-number order. commit() raises S3MultipartStateError after discard() or after a failed write or commit. Before, it uploaded the buffered data after a discard and did nothing after a failure.
  • A failed read of an UNLOAD data manifest, or of a Spark calculation's output file through get_std_out() / get_std_error(), raises OperationalError instead of the botocore exception (#​1278). Callers that catch botocore errors there must catch OperationalError.
  • Custom result set subclasses: fetchmany() and fetchall() now take rows through _take_rows(). A subclass whose fetchone() does not use the row buffer must override _take_rows() as well (#​1195). Several private result set helpers moved to the metadata reader classes or were removed (#​1300).

Behavior changes

  • PandasCursor, ArrowCursor, and PolarsCursor read UNLOAD timestamps at microseconds at every nesting level, in whole and chunked reads (#​1233). The dtypes are datetime64[us], timestamp[us], and Datetime("us"), as for CSV results. Values outside 1677-09-21 to 2262-04-11 are now correct; before, they were wrapped or saturated.
    • PandasCursor: coerce_int96_timestamp_unit given to execute() still replaces the unit. coerce_int96_timestamp_unit=None is the same as not giving it (#​1291).
    • PolarsCursor: a schema given to execute() is used as given.
    • PolarsCursor with Polars 1.x reads UNLOAD timestamps at nanoseconds and casts them to microseconds, so values outside 1677-09-21 to 2262-04-11 are wrong. It logs a warning that recommends Polars 2.0 or later. Chunked reads with pyarrow installed and no read options given to execute() read them correctly (#​1282).
  • ArrowCursor reads date from CSV results as date32 instead of timestamp[ms], as from UNLOAD results (#​1236). as_polars() gives pl.Date instead of pl.Datetime("ms").
  • ArrowCursor reads NULL time, time with time zone, and timestamp with time zone values of CSV results as null instead of '' (#​1236). The fetch methods still return None.
  • In every cursor, a value that fails to convert raises DataError naming the column (Column 'name': ...) (#​1273, #​1277). PandasCursor whole reads raise it instead of an OperationalError that wrapped it. A DataError from a function given in converters is still wrapped in OperationalError.
  • PolarsCursor with ignore_errors=True truncates a CSV timestamp with more than nine fractional digits instead of returning null (#​1234). Text that is not a timestamp is still null.
  • PolarsCursor with Polars 2.0 (#​1169):
    • When new_columns is given together with schema_overrides, it must name every column.
    • A map column of an UNLOAD result is described as map, and its values are dicts.
    • ArrowCursor.as_polars() returns map columns as pl.Map.
    • On every Polars version, a struct column that contains a list is described as row instead of array.
  • For a chunked CSV result of PolarsCursor, AioPolarsCursor, and AsyncPolarsCursor, the HeadObject size check runs when the result set is created, and its error is raised there instead of at the first fetch (#​1190).
  • The chunk iterators of the pandas and Polars result sets, from iter_chunks() or as_pandas(), raise ProgrammingError at their next read once their result set is closed, for example by another query on the cursor (#​1286). Before, they ended without an error.
  • An UNLOAD result of PandasCursor and PolarsCursor that has data files is described by its columns, as in ArrowCursor (#​1300). Before, a result whose read options dropped every row was described as []. For a chunked pandas read whose files hold no rows, engine="c" now raises ProgrammingError.
  • to_sql() with the default flavor="spark" creates tables whose column names have spaces, tabs, newlines, and ,;{}()= replaced with _, matching the names in the Parquet files (#​1299). Such columns used to read as NULL. Tables created before keep the old names, and appending does not change them; recreate them, for example with if_exists="replace".
  • Cancelling an asyncio call stops the retries of its Athena requests in the thread: status polling, metadata, AioCursor pages, and object construction (#​1223). A request already sent still runs to its end. The cleanup requests (StopQueryExecution, StopCalculationExecution, TerminateSession) keep their retries.
  • Cancelling an AioS3FileSystem coroutine stops the retries of its S3 requests (#​1231). Cancelling a chunked UNLOAD read of AioPandasCursor or AioPolarsCursor stops the retries of the requests that open its Parquet files (#​1297). Closing a chunked UNLOAD result no longer waits for the retries of a Parquet file being opened ahead (#​1297).
  • AioS3FileSystem runs its blocking calls, including multipart copies, in a pool of up to max_workers threads of the filesystem (#​1184). Each of its files uses a pool of up to max_workers threads. The event loop's default executor no longer limits them, so a process can use more threads than before. A max_workers that is not positive raises ValueError when the filesystem is created. After S3AioExecutor.shutdown(), submit() raises RuntimeError.
  • S3File multipart writes keep at most max_workers parts in flight, counting the part copies of an append, and a write waits until a part finishes (#​1165, #​1232). A part that failed is raised by the next write(), flush(), or close(), which closes the file without committing it (#​1176, #​1183, #​1232). Before, it was raised only by close() or commit(). Inside an fsspec transaction, the error is raised by the write. If the caller catches it, the transaction fails when it commits. Committing again after a successful commit sends no request.
  • A failed part, completion, or part copy stops the retries of the running requests before the abort, and the requests that have not started are cancelled (#​1192, #​1231). A failed range of a parallel read cancels the ranges that have not started. A recursive chmod stops after the first failed update, and the keys it has not updated keep their ACL (#​1231).
  • In the traceback of an error from an S3 request or from a call run by an S3Executor, the frames below S3Core.call() or the executor no longer hold local variables, for example in pdb.pm() (#​1192).
  • executemany() closes only the result set after a failure, not the cursor (#​1274).

Benchmark

The benchmark of this release ran on commit 9e99caa8 (#​1288), whose package code is identical to this release: the release commit baee716c differs from it only in one test file (#​1311). Its history entries are benchmarks/history/2026-10-19-9e99caa8.md and benchmarks/history/2026-10-19-9e99caa8-filesystem.md (#​1310). Highlights:

  • pandas.read_sql_query() through the result-file drivers is faster, because the row output of PandasCursor and PolarsCursor is faster (#​1167, #​1177). For 10 million flat rows, awsathena+pandas with unload=true took 50.7 seconds instead of 162.6, and awsathena+polars with unload=true 48.7 seconds instead of 92.0.
  • AioS3FileSystem writes and copies as fast as S3FileSystem with 40 workers (#​1184): a 6 GiB multipart copy ran at 1,889–1,925 MiB/s instead of 521–540.
  • Chunked reads of 100 million flat rows, about 29 GB of CSV, peaked at 462 MiB (PandasCursor CSV), 1.0 GiB (PolarsCursor CSV and UNLOAD), and 986 MiB (PandasCursor UNLOAD), with chunksize=100000.

Known issues

  • PolarsCursor with Polars 1.x holds a copy of the CSV result file while it reads a CSV result whole, so the peak memory of such reads grew by about the size of the file (#​1307). Polars 2.0, chunked reads, and UNLOAD results are not affected.

What's Changed

New Contributors

Full Changelog: pyathena-dev/PyAthena@v4.1.0...v4.2.0

v4.1.0

Compare Source

Breaking changes

  • The asyncio SQLAlchemy adapter classes in pyathena.aio.sqlalchemy.base are renamed, with no aliases for the old names: AsyncAdapt_pyathena_cursor → AthenaAioAdaptedCursor, AsyncAdapt_pyathena_connection → AthenaAioAdaptedConnection, AsyncAdapt_pyathena_dbapi → AthenaAioAdaptedDBAPI (#​1151). Code that imports the old names must use the new ones. Engines created with the awsathena+aio* URLs are unaffected.

Behavior changes

  • PandasCursor parses CSV results with json columns with pandas' default low_memory=True and converts the json columns after parsing (#​1141). pandas now applies these options to the JSON text instead of the converted value:
    • parse_dates naming a json column no longer parses a JSON string such as "2020-01-01", which keeps its quotes; cast in SQL instead.
    • With engine="python" and NA options such as keep_default_na=True, a JSON string that matches an NA token, such as "NA", stays a string; SQL NULL is still None.

Benchmark

The benchmark of this release is in benchmarks/history/2026-10-13-437276e1.md and benchmarks/history/2026-10-13-437276e1-filesystem.md (#​1157). Highlights:

  • PandasCursor reads CSV results faster than in 4.0.0, for example 10 million flat rows in 74 seconds instead of 110 (#​1134, #​1144).
  • Chunked UNLOAD reads in PandasCursor and PolarsCursor stay at about 600 MiB for 10 million rows (#​1135, #​1143).

What's Changed

Full Changelog: pyathena-dev/PyAthena@v4.0.0...v4.1.0

v4.0.0

Compare Source

v4.0.0 changes the project's copyright notices. Please read the Copyright and license notices section first and review NOTICE. The license itself is still the MIT License.

v4.0.0 is a major release from master, which was branched from the 3.x line at v3.36.0. It drops Python 3.10, raises the minimum versions of the core and optional dependencies, makes connection and cursor settings keyword-only, and rejects arguments that used to be ignored silently. It also contains a large number of fixes and behavior changes across the cursors, the SQLAlchemy dialect, Spark, and the S3 filesystem.

Read Breaking changes before upgrading. The usage guide has migration sections for the keyword-only arguments, the worker settings, and the environment fallbacks ("... in PyAthena 4.0" in docs/usage.md), and the Spark and S3FS guides have their own 4.0 sections. Users who need Python 3.10, pandas 2, an older pyarrow or Polars, or SQLAlchemy 1.x can stay on the 3.x maintenance line (latest v3.39.0).

Several fixes in this release were already backported to 3.x in v3.37.0, v3.38.0, and v3.39.0. They are listed under Already in 3.x releases at the end and marked in "What's Changed"; users upgrading from v3.39.0 already have them.

Thanks to @​mvanhorn for the STRUCT DDL fix (#​870), to @​aminghadersohi for the bare awsathena:// scheme fix (#​839) and for reporting #​854, #​855, and #​857, and to @​innicoder for reporting the memory issue #​417, which #​1001 addresses.

Copyright and license notices

  • The copyright holder in LICENSE changes from "laughingman7743" to "The PyAthena authors" (Copyright 2017 The PyAthena authors). The license terms are unchanged (MIT) (#​809, #​790).
  • The package metadata lists "The PyAthena authors" as the author and laughingman7743 as the maintainer, and uses PEP 639 license metadata: the license expression MIT with LICENSE and NOTICE as license files, so both files are included in the sdist and wheel (#​809).
  • Files that contain only original work by the PyAthena authors carry the header Copyright <year> The PyAthena authors with SPDX-License-Identifier: MIT. Existing files written solely by the maintainer received it, new original files must carry it, and a check enforces the headers across the repository (#​805, #​808).
  • The new NOTICE file acknowledges PyHive, which informed PyAthena's early development, and lists the parts that still follow it, with PyHive's Apache License 2.0 notice. It also records the other third-party material (the GitHub Actions OIDC CloudFormation template and strtobool) and explains which files do not carry the header, such as files with contributions from other contributors, whose authorship is recorded in the Git history (#​802). The per-file classification is recorded in #​790.
  • Redistributors and packagers should include NOTICE together with LICENSE.

Breaking changes

Python and dependencies
  • Python 3.10 is no longer supported; PyAthena requires Python 3.11 or later (#​884, #​864).
  • Minimum versions of the core dependencies (#​1036, #​1055, #​1126, #​1125):
    • boto3>=1.43.31 and botocore>=1.43.31 (was 1.41.2). botocore 1.43.31 is the first release with the S3 annotation operations used by multipart copies.
    • fsspec>=2026.9.0 (no lower bound before).
    • tenacity>=8.0.1 (was 4.1.0). Older releases break retry_api_call(): releases before 6.1.0 fail on Python 3.11+, and 8.0.0 raises TypeError from after_log on the first retry. (Also in v3.39.0.)
    • python-dateutil is no longer a dependency; tzdata is required.
  • Minimum versions of the extras (#​858, #​885, #​828):
    • sqlalchemy: sqlalchemy>=2.0.0 (was 1.0.0). Environments pinned to SQLAlchemy 1.4 cannot install pyathena[sqlalchemy] 4.0.0.
    • pandas: pandas>=3.0.0.
    • arrow: pyarrow>=22.0.0.
    • polars: polars>=1.39.0 (was 1.0.0). This applies even to users who never set chunksize: Polars 1.34–1.36 silently truncate chunked reads on errors, and Polars before 1.39 fill a local file cache that is not released.
  • The package is marked Development Status :: 5 - Production/Stable (#​904, #​865).
Connections and cursors
  • Connection settings and cursor constructor settings are keyword-only; positional settings raise TypeError. execute() keeps operation and parameters positional and requires keywords after them. connection.cursor(CursorClass) still works (#​1101, #​1092).
  • Unknown cursor constructor keywords, given directly or through the connection's cursor_kwargs, raise TypeError. execute() of the default, dict, Arrow, S3FS, and Spark cursors raises TypeError for unknown keywords before changing cursor state or starting a query. The pandas and Polars cursors still pass unused execute() keywords to the reader, which rejects unknown ones when it reads the results. connection.cursor(OtherCursor) raises if cursor_kwargs contain options that OtherCursor does not accept. A cursor subclass that passes its own settings from cursor_kwargs on to the base constructor must consume them first (#​1102, #​1093).
  • The S3 read worker argument of PandasCursor, PolarsCursor, AioPandasCursor, and AioPolarsCursor is renamed from max_workers to s3_max_workers, in the constructor and in execute(). In AsyncPandasCursor and AsyncPolarsCursor, max_workers sizes only the cursor's thread pool and s3_max_workers sets the S3 read workers; pass both to AsyncPolarsCursor to keep its former values. The old name raises TypeError (in execute(), when the result set is created after the query has run) (#​1103, #​1094).
  • arraysize passed at cursor creation now takes effect and is validated: Cursor, DictCursor, AioCursor, AioDictCursor, AsyncCursor, and AsyncDictCursor raise ProgrammingError for values above 1000, and every SQL cursor raises it for zero or negative values. Before, the value was ignored by Cursor, DictCursor, AioCursor, and AioDictCursor (since v2.0.0), so a small value now means more GetQueryResults calls. The Arrow, pandas, Polars, and S3FS cursors still accept values above 1000 (#​901, #​897).
  • connect(endpoint_url=...) no longer applies to S3. Setups that serve Athena and S3 from one endpoint (for example LocalStack) need AWS_ENDPOINT_URL_S3 or AWS_ENDPOINT_URL. This affects the result sets, S3FileSystem(connection=...), Polars storage_options, the Spark cursors, and to_sql() (#​1058, #​1011).
  • The connection's work_group follows the same environment fallback rule as s3_staging_dir: only an omitted argument or None reads AWS_ATHENA_WORK_GROUP; an explicit empty string skips the fallback and means no work group (#​1108, #​1096).
  • DefaultCSVReader (S3FS cursor) is renamed to EmptyStringAsNullCSVReader, without an alias (#​1107, #​1097).
  • Removed compatibility APIs (#​1100, #​1095, #​1088, #​1087):
    • pyathena.formatter._escape_presto; use _escape_trino.
    • The individual execution keywords of the private BaseCursor._execute() / AioBaseCursor._execute(); pass options=ExecuteOptions(...).
    • pyathena.util.strtobool() returns bool instead of int; call int(strtobool(value)) where an integer is required.
SQLAlchemy
  • pyathena.sqlalchemy.types.get_double_type is removed; use sqlalchemy.types.DOUBLE (#​860).
  • AthenaDialect declares SQLAlchemy 2.0's type_compiler_cls instead of the legacy type_compiler, so code that reads AthenaDialect.type_compiler on the class no longer finds the compiler class (#​895, #​894).
  • Type rendering is split into a Hive DDL compiler and a Trino DML compiler (#​961):
    • TypeEngine.compile(dialect) renders AthenaStruct as STRUCT<name:type> instead of ROW(name type), and Integer (including subclasses and TypeDecorators over it) as INT in all DDL.
    • Integer().with_variant(OtherType(), "awsathena") renders the variant in CREATE TABLE.
    • A JSON column, an AthenaStruct without fields, and NullType in DDL raise CompileError instead of emitting DDL that Athena rejects. CAST(... AS JSON) is unchanged. CLOB/NCLOB render STRING instead of BINARY.
Spark
  • SparkCursor, AsyncSparkCursor, and AioSparkCursor raise NotSupportedError for any parameters value other than None, and their execute() no longer takes work_group (TypeError, even for None). Before, both were silently ignored (#​1108, #​1096).
  • Closing a Spark cursor created with session_id no longer terminates that session. Pass terminate_session_on_close=True to keep the previous behavior (#​844, #​793, #​796).
S3 filesystem
  • S3FileSystem.PATTERN_PATH and S3FileSystem.parse_path() / AioS3FileSystem.parse_path() are removed. Use S3Path.parse(path) and its bucket, key, and version_id attributes (#​1100, #​1052).
  • S3FileSystem.OBJECT_ACLS, BUCKET_ACLS, and the MULTIPART_UPLOAD_* limits are removed; use S3Core.OBJECT_ACLS / S3Core.BUCKET_ACLS (for example fs.core.OBJECT_ACLS) (#​1090).
  • The max_worker keyword of open() and pipe_file() is removed; pass max_workers (#​948, #​925).
  • open() for writing or appending (wb, ab, xb) raises ValueError for a path with ?versionId= (#​958, #​936).
  • find(maxdepth=n) lists n levels instead of n + 1, and maxdepth=0 raises ValueError. rm(), glob(), du(), expand_path(), copy(), and get() pass maxdepth through find(), so rm(path, recursive=True, maxdepth=1) no longer deletes the objects one level below the path. Callers relying on the old numbering need maxdepth + 1 (#​956, #​933).
  • S3FileSystem.request_kwargs is a read-only property that returns a copy; pass requester_pays=True to the constructor instead of changing it (#​1060).
  • S3File calls submit_to() on its executor. An executor passed to S3File that does not subclass S3Executor must provide it (#​1113).

Dependencies and packaging

  • New public API: S3Core (S3FileSystem.core, AioS3FileSystem.core) with typed listing entries, pages, and delete/multipart/copy/tagging/ACL/presign requests; S3Path; S3MultipartWriter; S3Executor.submit_to(); connect(s3_config=...) and Connection.s3_client; TERMINAL_STATES on the query and calculation execution models (#​1060, #​1052, #​1085, #​1113, #​1058, #​881).
  • Every public API in pyathena/ has a Google-style docstring, checked with ruff (#​919).

Connections and cursors

  • With the default kill_on_interrupt=True, an interrupt during execute() of a SQL cursor now propagates as KeyboardInterrupt / asyncio.CancelledError after the query is stopped, instead of surfacing as OperationalError or being lost when the query succeeded. asyncio.wait_for() now raises TimeoutError. An interrupt while a query is being started waits for StartQueryExecution and stops the query it started (#​853, #​840).
  • An explicit cursor() argument now overrides the same key in the connection's cursor_kwargs; before, cursor_kwargs won silently (#​872, #​859).
  • dict_type passed to one dict cursor no longer changes the row type of other dict cursors, and dict_type=None uses the default (#​930, #​923).
  • One S3 client and connection pool per connection is shared across result sets and filesystems, and Connection.close() closes the network connections of its clients. SQLAlchemy URLs with use_ssl=false now disable TLS, as connect(use_ssl=False) does (#​1058, #​1011).
  • Result-set filesystems are kept out of fsspec's instance cache, and the pandas result set reads through one filesystem and owns the CSV file it reads (#​1001, #​417, #​978).
  • Managed query result storage (no output location): the pandas, Arrow, and Polars cursors read the results as an S3 CSV result file would be read, with the same types and values, and the cursor's converter applies to them, including a custom one. For example, pandas date columns are datetime64, array/map/row are Athena text, a result without rows has its columns, and result_set_type_hints no longer applies to these cursors on managed storage (#​1061, #​1028, #​1042).
  • ArrowCursor reads timestamp columns as timestamp[us] instead of timestamp[ms]; the Arrow and (unchunked) Polars cursors

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Oct 11, 2026
@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one): 1
  • coderabbit-review

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: panodata/omniload/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 0cb40810-6dd2-43c9-bb67-5569b8603408

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.32%. Comparing base (17b4a17) to head (24f7ca7).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #401   +/-   ##
=======================================
  Coverage   58.32%   58.32%           
=======================================
  Files         199      199           
  Lines        9956     9956           
=======================================
  Hits         5807     5807           
  Misses       4149     4149           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate
renovate Bot force-pushed the renovate/pyathena-4.x branch from fe54bf5 to 81dc76e Compare October 19, 2026 21:26
@read-the-docs-community

read-the-docs-community Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 omniload | 🛠️ Build #35258867 | 📁 Comparing 24f7ca7 against latest (ecec70b)

  🔍 Preview build  

3 files changed
+ supported-sources/turso.html
± changelog.html
± supported-sources/index.html

@amotl
amotl force-pushed the renovate/pyathena-4.x branch from 81dc76e to b2540e0 Compare October 20, 2026 02:41
@renovate
renovate Bot force-pushed the renovate/pyathena-4.x branch from b2540e0 to 24f7ca7 Compare October 20, 2026 02:49
@amotl
amotl merged commit 129218c into main Oct 20, 2026
14 checks passed
@amotl
amotl deleted the renovate/pyathena-4.x branch October 20, 2026 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant