Skip to content

chore(deps): update backend python dependencies (minor/patch) - #123

Open
renovate[bot] wants to merge 2 commits into
masterfrom
renovate/backend-python-dependencies-(minorpatch)
Open

renovate[bot] wants to merge 2 commits into
masterfrom
renovate/backend-python-dependencies-(minorpatch)

Conversation

@renovate

@renovate renovate Bot commented Nov 2, 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
line-bot-sdk ~=3.22.0 → ~=3.27.0 age confidence
pydantic (changelog) ~=2.12.3 → ~=2.14.2 age confidence
uvicorn (changelog) ~=0.40.0 → ~=0.54.0 age confidence

Release Notes

line/line-bot-sdk-python (line-bot-sdk)

v3.27.0: Increase URI Action URL Length Limit

Compare Source

What's Changed

Increase URI Action URL Length Limit

Update the OpenAPI schema to support URI action URLs up to 10,000 characters.

  • Add maxLength: 10000 to URIAction.uri.
  • Increase AltUri.desktop.maxLength from 1,000 to 10,000.

For more details, please refer to the release note: https://developers.line.biz/en/news/2026/10/27/uri-action/

(original PR is line/line-openapi#133)

line-openapi updates
Dependency updates

Full Changelog: line/line-bot-sdk-python@v3.26.0...v3.27.0


This release is prepared by @​habara-k

v3.26.0: Support templated LINE notification messages (PNP) and custom aggregation units

Compare Source

This version adds the templated LINE notification message (PNP) API, and lets you assign a custom aggregation unit (CAU) to LINE notification messages.

Schema changes: line/line-openapi#131

What's new
  • Templated PNP
    • Send — send a message built from a template registered in advance, by specifying a templateKey and substituting values into the template's emphasizedItem, items, and buttons. New endpoint: POST /v2/bot/message/pnp/templated/push.
    • Analytics — get the number of sent templated notification messages. New endpoint: GET /v2/bot/message/delivery/pnp/templated.
  • Custom aggregation unit — assign a custom aggregation unit to LINE notification messages (both templated and flexible) via customAggregationUnits, so their delivery can be aggregated per unit with the existing unit-based statistics APIs.

This is a partner-only feature that requires an application. For more details, see:

Example: send a templated LINE notification message
from linebot.v3.messaging import (
    Configuration,
    ApiClient,
    MessagingApi,
    PnpTemplatedMessageRequest,
    PnpTemplatedMessageBody,
    PnpTemplatedEmphasizedItem,
    PnpTemplatedItem,
    PnpTemplatedButton,
)

configuration = Configuration(access_token="YOUR_CHANNEL_ACCESS_TOKEN")

with ApiClient(configuration) as api_client:
    line_bot_api = MessagingApi(api_client)

    request = PnpTemplatedMessageRequest(
        # Phone number normalized to E.164 and hashed with SHA256
        to="0123...hashed_phone_number...cdef",
        template_key="order_confirmation",
        body=PnpTemplatedMessageBody(
            emphasized_item=PnpTemplatedEmphasizedItem(item_key="amount", content="$42.00"),
            items=[
                PnpTemplatedItem(item_key="order_id", content="A1234567"),
                PnpTemplatedItem(item_key="shop_name", content="LINE Store"),
            ],
            buttons=[
                PnpTemplatedButton(button_key="detail", url="https://example.com/orders/A1234567"),
            ],
        ),
        custom_aggregation_units=["promotion_a"],
    )

    # x_line_delivery_tag (16-100 chars) is returned in the delivery completion webhook
    line_bot_api.push_templated_messages_by_phone(
        request, x_line_delivery_tag="order-A1234567-0001"
    )
Example: get the number of sent templated notification messages
from linebot.v3.messaging import Configuration, ApiClient, MessagingApi

configuration = Configuration(access_token="YOUR_CHANNEL_ACCESS_TOKEN")

with ApiClient(configuration) as api_client:
    line_bot_api = MessagingApi(api_client)

    # GET /v2/bot/message/delivery/pnp/templated (date: yyyyMMdd, UTC+9)
    response = line_bot_api.get_pnp_templated_message_statistics("20240916")

    print(response.status)  # "ready" / "unready" / "unavailable_for_privacy" / "out_of_service"
    if response.status == "ready":
        print(response.success)

What's Changed

line-openapi updates
Dependency updates
Other Changes
  • Fix CI failure with tox 4.56 by setting skip_missing_interpreters = true by @​mokuzon in #​1033

Full Changelog: line/line-bot-sdk-python@v3.25.0...v3.26.0


This release is prepared by @​mokuzon

v3.25.0: Support Message Edited Webhook

Compare Source

What's Changed

Support Message Edited Webhook

Add MessageEditedEvent webhook event to support the message editing feature.

When a user edits a message in a group that includes a LINE Official Account, a webhook event with type=messageEdited is sent.

Notes
  • Currently, message editing is not available in 1:1 chats with LINE Official Accounts, so this event is only triggered in group chats.
  • Multiple messageEdited webhook events may arrive out of order. The event with the largest timestamp represents the latest edit state.

Please also refer to the document: https://developers.line.biz/en/reference/messaging-api/#edit-event

(original PR is line/line-openapi#129)

Example
from linebot.v3 import WebhookHandler
from linebot.v3.webhooks import MessageEditedEvent, TextMessageContent

handler = WebhookHandler('YOUR_CHANNEL_SECRET')

@handler.add(MessageEditedEvent, message=TextMessageContent)
def handle_message_edited(event):
    print(f"Message {event.message.id} was edited to: {event.message.text}")
line-openapi updates
Dependency updates

Full Changelog: line/line-bot-sdk-python@v3.24.0...v3.25.0


This release is prepared by @​habara-k

v3.24.0: Support rich menu summary API and daily report API

Compare Source

What's Changed

This release supports the new Rich Menu inshgit APIs.
line/line-openapi#128

  • Rich Menu summary
    • Retrieves aggregate statistics for the specified period, such as the number of users who viewed the rich menu and how many times it was viewed. The aggregation process of these statistics is usually completed within the next day.
  • Rich Menu daily report
    • Retrieves daily statistics for the specified period, such as the number of users who viewed the rich menu and how many times it was viewed. The aggregation process of these statistics is usually completed within the next day.

For details on the API, please see below.

line-openapi updates
Dependency updates
Other Changes

Full Changelog: line/line-bot-sdk-python@v3.23.1...v3.24.0


This release is prepared by @​mokuzon

v3.23.1: Add missing developers.line.biz urls

Compare Source

What's Changed

Some classes have developers.line.biz url, but others don't have it. This change adds missing urls.
Developer can get the latest information from the documentation, and search related information.

(original PR is line/line-openapi#122)

line-openapi updates
Dependency updates
Other Changes

Full Changelog: line/line-bot-sdk-python@v3.23.0...v3.23.1


This release is prepared by @​Yang-33

v3.23.0: Add wrapper methods for JWT assertion and client secret authentication

Compare Source

What's Changed

Added feature

This release adds wrapper methods for ChannelAccessToken#issue_stateless_channel_token, making stateless channel access token issuance simpler for both JWT assertion and client secret authentication. With this release, you don't have to pass empty strings ('') for unused parameters.

- token = api.issue_stateless_channel_token(
-     grant_type='client_credentials',
-     client_assertion_type='urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
-     client_assertion=client_assertion,
-     client_id='',
-     client_secret='',
- )
+ token = api.issue_stateless_channel_token_by_jwt_assertion(
+     client_assertion=client_assertion,
+ )
- token = api.issue_stateless_channel_token(
-     grant_type='client_credentials',
-     client_assertion_type='',
-     client_assertion='',
-     client_id=client_id,
-     client_secret=client_secret,
- )
+ token = api.issue_stateless_channel_token_by_client_secret(
+     client_id=client_id,
+     client_secret=client_secret,
+ )
line-openapi updates
Dependency updates
Other Changes

Full Changelog: line/line-bot-sdk-python@v3.22.0...v3.23.0


This release is prepared by @​habara-k

pydantic/pydantic (pydantic)

v2.14.2: 2026-10-29

Compare Source

v2.14.2 (2026-10-29)

This release addresses 2 security issues, GHSA-qpmf-fgh3-ff25 and GHSA-3r8g-cqwr-jr29.

Packaging
Performance
Fixes
  • Make JSON validation by iteration consistent with Python approach by @​davidhewitt in #​13275.

    JSON validation now handles field lookup and extra data the same way as Python validation. In particular, keys that only match an
    unused alias or field name are now treated as extra data, instead of being silently dropped:

    from pydantic import BaseModel, ConfigDict
    from pydantic.alias_generators import to_camel
    
    class Page(BaseModel):
        model_config = ConfigDict(extra='forbid', alias_generator=to_camel)
    
        page_size: int = 10
    
    Page.model_validate_json('{"page_size": 50}')
    # Before: Page(page_size=10)
    # After: ValidationError (extra_forbidden)

    See the pull request for the full list of behavior changes.
    This change addresses GHSA-qpmf-fgh3-ff25.

  • Ignore extra data matching a field name in TypedDict and dataclasses with extra=allow by @​Viicos in #​14090. Addresses GHSA-3r8g-cqwr-jr29.

  • Fix unpickling of generic classes defined in separate module by @​Viicos in #​13994

  • Support explicit by_alias overriding validate_by_alias in validation JSON schemas by @​Viicos in #​13997

  • Fix mypy plugin crash on deferred empty model by @​ilevkivskyi in #​14027

  • Fix infinite recursion when validating an invalid default with PydanticUseDefault by @​Viicos in #​14028

  • Implement recursion guard for validate_strings() by @​Viicos in #​14029

  • Support named tuples in Sequence serialization by @​Viicos in #​14033

  • Take preserve_empty_path into account in URL types equality by @​Viicos in #​14035

  • Fix pickling of PydanticCustomError and ValidationErrors containing custom errors by @​Viicos in #​14051

  • Do not extract attribute docstrings from nested classes and functions by @​Viicos in #​14052

  • Fix forward annotations evaluation and type variables substitution when rebuilding parametrized generic models by @​Viicos in #​14054

  • Fix Self resolution in parametrized generics by @​Viicos in #​14065

  • Check mapping max_length constraint during validation by @​Viicos in #​14092

  • Fix deep copy of self-referential models by @​Viicos in #​14116

Full Changelog: pydantic/pydantic@v2.14.1...v2.14.2

v2.14.1

Compare Source

GitHub release

The code released in v2.5.0 is functionally identical to that of v2.5.0b1.

What's Changed
Packaging
  • Update pydantic-core from 2.10.1 to 2.14.1, significant changes from these updates are described below, full changelog here
  • Update to pyright==1.1.335 by @​Viicos in #​8075
New Features
Changes
  • Significant Change: replace ultra_strict with new smart union implementation, the way unions are validated has changed significantly to improve performance and correctness, we have worked hard to absolutely minimise the number of cases where behaviour has changed, see the PR for details - by @​davidhewitt in pydantic/pydantic-core#867
  • Add support for instance method reassignment when extra='allow' by @​sydney-runkle in #​7683
  • Support JSON schema generation for Enum types with no cases by @​sydney-runkle in #​7927
  • Warn if a class inherits from Generic before BaseModel by @​alexmojaki in #​7891
Performance
Fixes

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


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "on monday"
  • 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.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • 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 dependencies Pull requests that update project dependencies. uv Pull requests that update uv and pip (Python) dependencies. labels Nov 2, 2026
Auto-generated by GitHub Actions from uv export
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

✅ Backend requirements.txt updated

Generated from backend/uv.lock using uv export --no-hashes --frozen > requirements.txt

@renovate

renovate Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update project dependencies. uv Pull requests that update uv and pip (Python) dependencies.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants