mirror of
https://github.com/python-telegram-bot/python-telegram-bot.git
synced 2026-06-19 15:45:13 +00:00
Compare commits
62 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0015fcdf9d | |||
| 54f80cb54f | |||
| 4bc2f1f60b | |||
| 4f7f1ba21b | |||
| 9c0efaf2f6 | |||
| 8434c0aaea | |||
| 96138510ca | |||
| 6e951a9fd3 | |||
| 1f5cfc8f9b | |||
| 066ba5bb32 | |||
| 0375b7d701 | |||
| 67db3df426 | |||
| 152269cdcd | |||
| 8043bf265d | |||
| 14f8e89cef | |||
| 0f7d9ec5da | |||
| 047844f9af | |||
| caceaf71b8 | |||
| cfa9230f15 | |||
| b37ba3a44e | |||
| 1116de4ebd | |||
| 437c4d7bfb | |||
| 630db8f0ef | |||
| 008fcdea5f | |||
| 7aa1356089 | |||
| ecfb4583d6 | |||
| f56371fae3 | |||
| 9f3c5e4f2b | |||
| 489561d531 | |||
| 568e63933c | |||
| f8f12e7bd4 | |||
| 94afda2b69 | |||
| a81fc86792 | |||
| 0748538b6f | |||
| 539cc13097 | |||
| 068ee7ea9d | |||
| 73e5958ee6 | |||
| 0790bd8364 | |||
| 9205d01edc | |||
| 55241e4aed | |||
| 4a0fb4d533 | |||
| 3e82dd4afd | |||
| aa11132358 | |||
| 646730eed1 | |||
| 08385e27db | |||
| 8bb5c93c09 | |||
| 1472674587 | |||
| 19d891aceb | |||
| 47fd9fcc7e | |||
| 4654d195f5 | |||
| 58390dd350 | |||
| cea812dabd | |||
| 94da8a8d67 | |||
| 616cfe59b9 | |||
| aeb4b58fa1 | |||
| 4196a3d787 | |||
| 7e75469697 | |||
| a76fa2c79e | |||
| 197f29b6eb | |||
| 89dd168ab2 | |||
| 6752547460 | |||
| 996b0b3025 |
@@ -87,7 +87,7 @@ Here's how to make a one-off code change.
|
||||
|
||||
- Documenting types of global variables and complex types of class members can be done using the Sphinx docstring convention.
|
||||
|
||||
- In addition, PTB uses some formatting/styling and linting tools in the pre-commit setup. Some of those tools also have command line tools that can help to run these tools outside of the pre-commit step. If you'd like to leverage that, please have a look at the `pre-commit config file`_ for an overview of which tools (and which versions of them) are used. For example, we use `Black`_ for code formatting. Plugins for Black exist for some `popular editors`_. You can use those instead of manually formatting everything.
|
||||
- In addition, PTB uses some formatting/styling and linting tools in the pre-commit setup. Some of those tools also have command line tools that can help to run these tools outside of the pre-commit step. If you'd like to leverage that, please have a look at the `pre-commit config file`_ for an overview of which tools (and which versions of them) are used. For example, we use `Ruff`_ for linting and formatting.
|
||||
|
||||
- Please ensure that the code you write is well-tested and that all automated tests still pass. We
|
||||
have dedicated an `testing page`_ to help you with that.
|
||||
@@ -288,8 +288,7 @@ to add new required arguments. It's also more explicit and easier to read.
|
||||
.. _`MyPy`: https://mypy.readthedocs.io/en/stable/index.html
|
||||
.. _`here`: https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html
|
||||
.. _`pre-commit config file`: https://github.com/python-telegram-bot/python-telegram-bot/blob/master/.pre-commit-config.yaml
|
||||
.. _`Black`: https://black.readthedocs.io/en/stable/index.html
|
||||
.. _`popular editors`: https://black.readthedocs.io/en/stable/integrations/editors.html
|
||||
.. _`Ruff`: https://docs.astral.sh/ruff/
|
||||
.. _`RTD`: https://docs.python-telegram-bot.org/
|
||||
.. _`RTD build`: https://docs.python-telegram-bot.org/en/doc-fixes
|
||||
.. _`CSI`: https://standards.mousepawmedia.com/en/stable/csi.html
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
This is a python project which is a wrapper for the Telegram Bot API. Please read the contributing
|
||||
guidelines mentioned in .github/CONTRIBUTING.rst to know how to contribute to this project. The
|
||||
README.rst file lists the features and usage of the project.
|
||||
|
||||
### Development Environment:
|
||||
|
||||
Your development environment is set up using `uv`, a tool for managing Python environments and dependencies.
|
||||
Your environment has all extra dependencies and groups installed, on Python 3.13. Please continue using `uv` for managing your development environment,
|
||||
and for any scripts or tools you need to run.
|
||||
|
||||
Some example commands on `uv`:
|
||||
- `uv sync --all-extras --all-groups --locked` to install all dependencies and groups required by the project.
|
||||
- `uv run -p 3.14 --all-groups --all-extras --locked tests/` to run tests on a specific Python version. Please use the `-p` flag often.
|
||||
- `uv pip install <package>` to install a package in the current environment.
|
||||
|
||||
If uv is somehow not available, you can install it using `pip install uv`.
|
||||
|
||||
### Repository Structure:
|
||||
|
||||
The repository follows a standard structure for Python projects. Here are some key directories and files:
|
||||
|
||||
- `src/`: This directory contains the main source code for the project.
|
||||
- `tests/`: This directory contains test cases for the project.
|
||||
- `pyproject.toml`: This file contains the project metadata and dependencies.
|
||||
- `.github/`: This directory contains GitHub-specific files, including workflows and issue templates.
|
||||
|
||||
|
||||
### Things to keep in mind while coding:
|
||||
|
||||
- Ensure that your code is properly and fully typed. All your code should be compatible from
|
||||
Python 3.9 to 3.14. Don't use the `typing_extensions` module.
|
||||
- Read the stability guide mentioned at docs/source/stability_policy.rst to understand if your changes
|
||||
are breaking or incompatible.
|
||||
- Try to make sure your code is asyncio-friendly and thread-safe.
|
||||
- Run `uv run pre-commit` to run pre-commit hooks before committing your changes, but after `git add`ing them.
|
||||
- Make sure you always test your changes. Either update or write new tests in the `tests/` directory.
|
||||
|
||||
### Pull Requests:
|
||||
|
||||
When you create a pull request, please also add the appropriate labels to it.
|
||||
@@ -1,20 +0,0 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "friday"
|
||||
labels:
|
||||
- "⚙️ dependencies"
|
||||
- "🔗 python"
|
||||
|
||||
# Updates the dependencies of the GitHub Actions workflows
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
day: "friday"
|
||||
labels:
|
||||
- "⚙️ dependencies"
|
||||
- "🔗 github-actions"
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [ // See what config:best-practices does: https://docs.renovatebot.com/presets-config/#configbest-practices
|
||||
"config:best-practices",
|
||||
// Opt-in to updating the pre-commit-config.yaml file too:
|
||||
":enablePreCommit",
|
||||
":prConcurrentLimitNone" // No limits on the number of open PRs.
|
||||
],
|
||||
|
||||
// Add pull request labels:
|
||||
"labels": ["⚙️ ci-cd"],
|
||||
|
||||
// Bump even patch versions:
|
||||
"bumpVersion": "patch",
|
||||
|
||||
// Let Renovate decide how to update. See docs: https://docs.renovatebot.com/configuration-options/#rangestrategy
|
||||
"rangeStrategy": "auto",
|
||||
|
||||
// Update the lock files:
|
||||
"lockFileMaintenance": {
|
||||
"enabled": true,
|
||||
"schedule": ["* 0-3 1 * *"], // https://docs.renovatebot.com/presets-schedule/#schedulemonthly
|
||||
"automerge": true
|
||||
},
|
||||
|
||||
// Enable automerge globally:
|
||||
"automerge": true,
|
||||
|
||||
// Group package updates together:
|
||||
"packageRules": [
|
||||
// Linting dependencies in pyproject.toml in sync with the pre-commit-config hooks:
|
||||
// Unfortunately it seems we need to do this for every dependency group (https://github.com/python-telegram-bot/python-telegram-bot/pull/4887#discussion_r2272025832):
|
||||
{
|
||||
"description": "Group Ruff updates together",
|
||||
"matchPackageNames": ["ruff", "astral-sh/ruff-pre-commit"],
|
||||
"groupName": "Ruff"
|
||||
},
|
||||
{
|
||||
"description": "Group mypy updates together",
|
||||
"matchPackageNames": ["mypy", "pre-commit/mirrors-mypy"],
|
||||
"groupName": "Mypy"
|
||||
},
|
||||
{
|
||||
"description": "Group pylint updates together",
|
||||
"matchPackageNames": ["pylint", "PyCQA/pylint"],
|
||||
"groupName": "Pylint"
|
||||
},
|
||||
{
|
||||
"description": "Group chango updates together",
|
||||
"matchPackageNames": ["chango", "Bibo-Joshi/chango"],
|
||||
"groupName": "Chango"
|
||||
},
|
||||
|
||||
// Don't automerge major updates for project dependencies:
|
||||
{
|
||||
"matchUpdateTypes": ["major"],
|
||||
"matchDepTypes": ["project.dependencies", "project.optional-dependencies"],
|
||||
"automerge": false
|
||||
},
|
||||
|
||||
// Apply the "dependencies" label to all updates of optional/required dependencies:
|
||||
{
|
||||
"matchDepTypes": ["project.optional-dependencies", "project.dependencies"],
|
||||
"labels": ["⚙️ dependencies"]
|
||||
}
|
||||
],
|
||||
|
||||
// Increase the number of PR's Renovate can create in a hour. Default is 2.
|
||||
"prHourlyLimit": 5,
|
||||
|
||||
// Temporarily disabled:
|
||||
"ignoreDeps": ["pytest-asyncio"],
|
||||
|
||||
// schedule to allow PR's from Renovate:
|
||||
"schedule": ["* * * * 0,6"] // Every weekend
|
||||
|
||||
}
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
IS_RELEASE_PR: ${{ steps.check_title.outputs.IS_RELEASE_PR }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
# needed for commit and push step at the end
|
||||
persist-credentials: true
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
fi
|
||||
|
||||
# Create the new fragment
|
||||
- uses: Bibo-Joshi/chango@9d6bd9d7612eca5fab2c5161687011be59baaf19 # v0.4.0
|
||||
- uses: Bibo-Joshi/chango@212fc662da1b1026f335e110270d75690df05758 # 0.5.0
|
||||
with:
|
||||
github-token: ${{ secrets.CHANGO_PAT }}
|
||||
query-issue-types: true
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
# Run `chango release` if applicable - needs some additional setup.
|
||||
- name: Set up Python
|
||||
if: steps.check_title.outputs.IS_RELEASE_PR == 'true'
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
with:
|
||||
python-version: "3.x"
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# This file is for the copilot agent on Github. This helps to set up the development environment
|
||||
# See the docs here: https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/coding-agent/customize-the-agent-environment#preinstalling-tools-or-dependencies-in-copilots-environment
|
||||
name: "Copilot Setup Steps"
|
||||
|
||||
# Automatically run the setup steps when they are changed to allow for easy validation, and
|
||||
# allow manual testing through the repository's "Actions" tab
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/copilot-setup-steps.yml
|
||||
|
||||
jobs:
|
||||
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
|
||||
copilot-setup-steps:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Set the permissions to the lowest permissions possible needed for your steps.
|
||||
# Copilot will be given its own token for its operations.
|
||||
permissions:
|
||||
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
|
||||
contents: read
|
||||
pull-requests: write # So copilot can add labels to the PR
|
||||
|
||||
# You can define any steps you want, and they will run before the agent starts.
|
||||
# If you do not check out your code, Copilot will do this for you.
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@b75a909f75acd358c2196fb9a5f1299a9a8868a4 # v6.7.0
|
||||
with:
|
||||
# Install a specific version of uv.
|
||||
version: "0.8.22"
|
||||
# Install 3.13:
|
||||
python-version: 3.13
|
||||
|
||||
- name: Install the project
|
||||
run: uv sync --all-extras --all-groups --locked
|
||||
@@ -1,41 +0,0 @@
|
||||
name: Process Dependabot PRs
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, reopened]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
process-dependabot-prs:
|
||||
permissions:
|
||||
pull-requests: read
|
||||
contents: write
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }}
|
||||
steps:
|
||||
|
||||
- name: Fetch Dependabot metadata
|
||||
id: dependabot-metadata
|
||||
uses: dependabot/fetch-metadata@08eff52bf64351f401fb50d4972fa95b9f2c2d1b # v2.4.0
|
||||
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
persist-credentials: false
|
||||
|
||||
- name: Update Version Number in Other Files
|
||||
uses: jacobtomlinson/gha-find-replace@f1069b438f125e5395d84d1c6fd3b559a7880cb5 # v3
|
||||
with:
|
||||
find: ${{ steps.dependabot-metadata.outputs.previous-version }}
|
||||
replace: ${{ steps.dependabot-metadata.outputs.new-version }}
|
||||
regex: false
|
||||
exclude: CHANGES.rst
|
||||
|
||||
- name: Commit & Push Changes to PR
|
||||
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9.1.4
|
||||
with:
|
||||
message: 'Update version number in other files'
|
||||
committer_name: GitHub Actions
|
||||
committer_email: 41898282+github-actions[bot]@users.noreply.github.com
|
||||
@@ -24,11 +24,11 @@ jobs:
|
||||
os: [ubuntu-latest]
|
||||
fail-fast: False
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
cache: 'pip'
|
||||
|
||||
@@ -19,11 +19,11 @@ jobs:
|
||||
os: [ubuntu-latest]
|
||||
fail-fast: False
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
|
||||
@@ -17,17 +17,17 @@ jobs:
|
||||
security-events: write
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install the latest version of uv
|
||||
uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1
|
||||
uses: astral-sh/setup-uv@b75a909f75acd358c2196fb9a5f1299a9a8868a4 # v6.7.0
|
||||
- name: Run zizmor
|
||||
run: uvx zizmor --persona=pedantic --format sarif . > results.sarif
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Upload SARIF file
|
||||
uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
|
||||
uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
category: zizmor
|
||||
category: zizmor
|
||||
|
||||
@@ -17,11 +17,11 @@ jobs:
|
||||
actions: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- name: Install pypa/build
|
||||
@@ -55,12 +55,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
- name: Publish to PyPI
|
||||
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
|
||||
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
|
||||
|
||||
compute-signatures:
|
||||
name: Compute SHA1 Sums and Sign with Sigstore
|
||||
@@ -74,7 +74,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
@@ -110,11 +110,11 @@ jobs:
|
||||
actions: read # for downloading artifacts
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: python-package-distributions-and-signatures
|
||||
path: dist/
|
||||
@@ -155,7 +155,7 @@ jobs:
|
||||
permissions: {}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Publish to Telegram Channel
|
||||
|
||||
@@ -17,11 +17,11 @@ jobs:
|
||||
actions: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
with:
|
||||
python-version: "3.x"
|
||||
- name: Install pypa/build
|
||||
@@ -55,12 +55,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
- name: Publish to Test PyPI
|
||||
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
|
||||
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
|
||||
with:
|
||||
repository-url: https://test.pypi.org/legacy/
|
||||
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: python-package-distributions
|
||||
path: dist/
|
||||
@@ -112,11 +112,11 @@ jobs:
|
||||
actions: read # for downloading artifacts
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Download all the dists
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: python-package-distributions-and-signatures
|
||||
path: dist/
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
# For adding labels and closing
|
||||
issues: write
|
||||
steps:
|
||||
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
|
||||
- uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0
|
||||
with:
|
||||
# PRs never get stale
|
||||
days-before-stale: 3
|
||||
|
||||
@@ -23,11 +23,11 @@ jobs:
|
||||
os: [ubuntu-latest]
|
||||
fail-fast: False
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
name: test-type-completeness
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: Bibo-Joshi/pyright-type-completeness@c85a67ff3c66f51dcbb2d06bfcf4fe83a57d69cc # v1.0.1
|
||||
- uses: Bibo-Joshi/pyright-type-completeness@c85a67ff3c66f51dcbb2d06bfcf4fe83a57d69cc # 1.0.1
|
||||
with:
|
||||
package-name: telegram
|
||||
python-version: 3.12
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
name: test-type-completeness
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: Bibo-Joshi/pyright-type-completeness@c85a67ff3c66f51dcbb2d06bfcf4fe83a57d69cc # v1.0.1
|
||||
- uses: Bibo-Joshi/pyright-type-completeness@c85a67ff3c66f51dcbb2d06bfcf4fe83a57d69cc # 1.0.1
|
||||
id: pyright-type-completeness
|
||||
with:
|
||||
package-name: telegram
|
||||
|
||||
@@ -9,9 +9,6 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
schedule:
|
||||
# Run monday and friday morning at 03:07 - odd time to spread load on GitHub Actions
|
||||
- cron: '7 3 * * 1,5'
|
||||
|
||||
permissions: {}
|
||||
|
||||
@@ -25,11 +22,11 @@ jobs:
|
||||
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||
fail-fast: False
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
cache: 'pip'
|
||||
@@ -86,7 +83,7 @@ jobs:
|
||||
.test_report_optionals_junit.xml
|
||||
|
||||
- name: Submit coverage
|
||||
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
env_vars: OS,PYTHON
|
||||
name: ${{ matrix.os }}-${{ matrix.python-version }}
|
||||
|
||||
+4
-1
@@ -97,4 +97,7 @@ pyvenv.cfg
|
||||
Scripts/
|
||||
|
||||
# environment manager:
|
||||
.mise.toml
|
||||
.mise.toml
|
||||
|
||||
# Support for uv.lock will come in a future PR. See #4796
|
||||
uv.lock
|
||||
|
||||
+21
-44
@@ -1,83 +1,60 @@
|
||||
# Make sure that the additional_dependencies here match pyproject.toml
|
||||
|
||||
ci:
|
||||
autofix_prs: false
|
||||
# We use Renovate to update this file now, but we can't disable automatic pre-commit updates
|
||||
# when using the `pre-commit` GitHub Action, so we set the schedule to quarterly to avoid
|
||||
# frequent updates.
|
||||
autoupdate_schedule: quarterly
|
||||
autoupdate_commit_msg: 'Bump `pre-commit` Hooks to Latest Versions'
|
||||
|
||||
repos:
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: 'v0.12.2'
|
||||
rev: 'v0.13.2'
|
||||
hooks:
|
||||
- id: ruff
|
||||
name: ruff
|
||||
additional_dependencies:
|
||||
- httpx~=0.27
|
||||
- tornado~=6.4
|
||||
- APScheduler~=3.10.4
|
||||
- cachetools>=5.3.3,<5.5.0
|
||||
- aiolimiter~=1.1,<1.3
|
||||
- repo: https://github.com/psf/black-pre-commit-mirror
|
||||
rev: 25.1.0
|
||||
hooks:
|
||||
- id: black
|
||||
args:
|
||||
- --diff
|
||||
- --check
|
||||
- repo: https://github.com/PyCQA/flake8
|
||||
rev: 7.3.0
|
||||
hooks:
|
||||
- id: flake8
|
||||
# Run the linter:
|
||||
- id: ruff-check
|
||||
name: ruff check
|
||||
# Run the formatter:
|
||||
- id: ruff-format
|
||||
name: ruff format
|
||||
- repo: https://github.com/PyCQA/pylint
|
||||
rev: v3.3.7
|
||||
rev: v3.3.8
|
||||
hooks:
|
||||
- id: pylint
|
||||
files: ^(?!(tests|docs)).*\.py$
|
||||
language: python
|
||||
additional_dependencies:
|
||||
- httpx~=0.27
|
||||
- tornado~=6.4
|
||||
- APScheduler~=3.10.4
|
||||
- cachetools>=5.3.3,<5.5.0
|
||||
- APScheduler>=3.10.4,<3.12.0
|
||||
- cachetools>=5.3.3,<6.3.0
|
||||
- aiolimiter~=1.1,<1.3
|
||||
- . # this basically does `pip install -e .`
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
rev: v1.16.1
|
||||
rev: v1.18.2
|
||||
hooks:
|
||||
- id: mypy
|
||||
name: mypy-ptb
|
||||
files: ^(?!(tests|examples|docs)).*\.py$
|
||||
language: python
|
||||
additional_dependencies:
|
||||
- types-pytz
|
||||
- types-cryptography
|
||||
- types-cachetools
|
||||
- httpx~=0.27
|
||||
- tornado~=6.4
|
||||
- APScheduler~=3.10.4
|
||||
- cachetools>=5.3.3,<5.5.0
|
||||
- APScheduler>=3.10.4,<3.12.0
|
||||
- cachetools>=5.3.3,<6.3.0
|
||||
- aiolimiter~=1.1,<1.3
|
||||
- . # this basically does `pip install -e .`
|
||||
- id: mypy
|
||||
name: mypy-examples
|
||||
files: ^examples/.*\.py$
|
||||
language: python
|
||||
args:
|
||||
- --no-strict-optional
|
||||
- --follow-imports=silent
|
||||
additional_dependencies:
|
||||
- tornado~=6.4
|
||||
- APScheduler~=3.10.4
|
||||
- cachetools>=5.3.3,<5.5.0
|
||||
- APScheduler>=3.10.4,<3.12.0
|
||||
- cachetools>=5.3.3,<6.3.0
|
||||
- . # this basically does `pip install -e .`
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v3.20.0
|
||||
hooks:
|
||||
- id: pyupgrade
|
||||
args:
|
||||
- --py39-plus
|
||||
- repo: https://github.com/pycqa/isort
|
||||
rev: 6.0.1
|
||||
hooks:
|
||||
- id: isort
|
||||
name: isort
|
||||
args:
|
||||
- --diff
|
||||
- --check
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ build:
|
||||
jobs:
|
||||
install:
|
||||
- pip install -U pip
|
||||
- pip install .[all] --group 'all' # install all the dependency groups
|
||||
- pip install .[all] --group 'docs' --group 'tests' # install most dependency groups
|
||||
|
||||
post_build:
|
||||
# Based on https://github.com/readthedocs/readthedocs.org/issues/3242#issuecomment-1410321534
|
||||
|
||||
+4
-4
@@ -11,7 +11,7 @@
|
||||
:target: https://pypi.org/project/python-telegram-bot/
|
||||
:alt: Supported Python versions
|
||||
|
||||
.. image:: https://img.shields.io/badge/Bot%20API-9.1-blue?logo=telegram
|
||||
.. image:: https://img.shields.io/badge/Bot%20API-9.2-blue?logo=telegram
|
||||
:target: https://core.telegram.org/bots/api-changelog
|
||||
:alt: Supported Bot API version
|
||||
|
||||
@@ -81,7 +81,7 @@ After installing_ the library, be sure to check out the section on `working with
|
||||
Telegram API support
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
All types and methods of the Telegram Bot API **9.1** are natively supported by this library.
|
||||
All types and methods of the Telegram Bot API **9.2** are natively supported by this library.
|
||||
In addition, Bot API functionality not yet natively included can still be used as described `in our wiki <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Bot-API-Forward-Compatibility>`_.
|
||||
|
||||
Notable Features
|
||||
@@ -159,7 +159,7 @@ PTB can be installed with optional dependencies:
|
||||
* ``pip install "python-telegram-bot[http2]"`` installs `httpx[http2] <https://www.python-httpx.org/#dependencies>`_. Use this, if you want to use HTTP/2.
|
||||
* ``pip install "python-telegram-bot[rate-limiter]"`` installs `aiolimiter~=1.1,<1.3 <https://aiolimiter.readthedocs.io/en/stable/>`_. Use this, if you want to use ``telegram.ext.AIORateLimiter``.
|
||||
* ``pip install "python-telegram-bot[webhooks]"`` installs the `tornado~=6.4 <https://www.tornadoweb.org/en/stable/>`_ library. Use this, if you want to use ``telegram.ext.Updater.start_webhook``/``telegram.ext.Application.run_webhook``.
|
||||
* ``pip install "python-telegram-bot[callback-data]"`` installs the `cachetools>=5.3.3,<6.2.0 <https://cachetools.readthedocs.io/en/latest/>`_ library. Use this, if you want to use `arbitrary callback_data <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Arbitrary-callback_data>`_.
|
||||
* ``pip install "python-telegram-bot[callback-data]"`` installs the `cachetools>=5.3.3,<6.3.0 <https://cachetools.readthedocs.io/en/latest/>`_ library. Use this, if you want to use `arbitrary callback_data <https://github.com/python-telegram-bot/python-telegram-bot/wiki/Arbitrary-callback_data>`_.
|
||||
* ``pip install "python-telegram-bot[job-queue]"`` installs the `APScheduler>=3.10.4,<3.12.0 <https://apscheduler.readthedocs.io/en/3.x/>`_ library. Use this, if you want to use the ``telegram.ext.JobQueue``.
|
||||
|
||||
To install multiple optional dependencies, separate them by commas, e.g. ``pip install "python-telegram-bot[socks,webhooks]"``.
|
||||
@@ -206,7 +206,7 @@ Concurrency
|
||||
~~~~~~~~~~~
|
||||
|
||||
Since v20.0, ``python-telegram-bot`` is built on top of Pythons ``asyncio`` module.
|
||||
Because ``asyncio`` is in general single-threaded, ``python-telegram-bot`` does currently not aim to be thread-safe.
|
||||
Because ``asyncio`` is in general single-threaded, ``python-telegram-bot`` currently does not aim to be thread-safe.
|
||||
Noteworthy parts of ``python-telegram-bots`` API that are likely to cause issues (e.g. race conditions) when used in a multi-threaded setting include:
|
||||
|
||||
* ``telegram.ext.Application/Updater.update_queue``
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
features = "Extend :meth:`telegram.Message.delete` shortcut to support business message deletion"
|
||||
[[pull_requests]]
|
||||
uid = "4869"
|
||||
author_uid = "jainamoswal"
|
||||
closes_threads = ["4867"]
|
||||
@@ -0,0 +1,5 @@
|
||||
bugfixes = "Adapt logic on getting the event loop in ``Application.run_polling/webhook`` to Python 3.14"
|
||||
[[pull_requests]]
|
||||
uid = "4875"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = ["4874"]
|
||||
@@ -0,0 +1,9 @@
|
||||
documentation = "Documentation Improvements"
|
||||
|
||||
[[pull_requests]]
|
||||
uid = "4878"
|
||||
author_uid = "Bibo-Joshi"
|
||||
|
||||
[[pull_requests]]
|
||||
uid = "4872"
|
||||
author_uid = "Ca5parAD"
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Address Failing Unit Test for ``send_paid_media``"
|
||||
|
||||
[[pull_requests]]
|
||||
uid = "4879"
|
||||
author_uid = "Bibo-Joshi"
|
||||
@@ -0,0 +1,6 @@
|
||||
internal = "Improve Internal Logic for Network Retries"
|
||||
|
||||
[[pull_requests]]
|
||||
uid = "4880"
|
||||
author_uid = "Bibo-Joshi"
|
||||
closes_threads = ["4871"]
|
||||
@@ -0,0 +1,6 @@
|
||||
features = "Add convenience properties for ``firstname``, ``lastname``, and ``username`` to ``SharedUser`` and ``ChatShared``"
|
||||
internal = "Introduce utility module ``_utils.usernames`` refactoring convenience properties around Telegram Objects' ``firstname``, ``lastname``, and ``username``"
|
||||
pull_requests = [
|
||||
{ uid = "4881", author_uid = "aelkheir" },
|
||||
{ uid = "4713", author_uid = "david-shiko" },
|
||||
]
|
||||
@@ -0,0 +1,10 @@
|
||||
other = """
|
||||
Set the default connection pool size for ``HTTPXRequest`` to 256 to allow more concurrent requests by default. Drop the ``httpx`` parameter ``max_keepalive_connections``. This way, the ``httpx`` default of 20 is used, leading to a smaller number of idle connections in large connection pools.
|
||||
|
||||
.. hint::
|
||||
If you manually build the ``HTTPXRequest`` objects, please be aware that these changes also applies to you. Kindly double check your settings. To specify custom limits, you can set them via the parameter ``httpx_kwargs`` of ``HTTPXRequest``. See also `the httpx documentation <https://www.python-httpx.org/advanced/resource-limits/>`__ for more details on these settings."
|
||||
"""
|
||||
[[pull_requests]]
|
||||
uid = "4882"
|
||||
author_uid = "Poolitzer"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Add Copilot Instructions and Setup Steps"
|
||||
[[pull_requests]]
|
||||
uid = "4884"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Remove ``black``, ``isort``, ``flake8``, and ``pyupgrade`` in favor of ``ruff``"
|
||||
[[pull_requests]]
|
||||
uid = "4886"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Use Renovate to Keep Dependencies Up-To-Date"
|
||||
[[pull_requests]]
|
||||
uid = "4887"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Add and use a ``uv.lock`` lockfile when setting up the development environment using ``uv``."
|
||||
[[pull_requests]]
|
||||
uid = "4890"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = ["4796"]
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump ``pytest`` from 8.4.0 to 8.4.1"
|
||||
[[pull_requests]]
|
||||
uid = "4892"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump ``pytest-xdist`` from 3.6.1 to 3.8.0"
|
||||
[[pull_requests]]
|
||||
uid = "4893"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
documentation = "Bump ``furo`` from 2024.8.6 to 2025.7.19"
|
||||
[[pull_requests]]
|
||||
uid = "4894"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump ``astral-sh/setup-uv`` from 6.3.1 to 6.4.3"
|
||||
[[pull_requests]]
|
||||
uid = "4895"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump ``github/codeql-action`` from 3.29.2 to 3.29.5"
|
||||
[[pull_requests]]
|
||||
uid = "4896"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
features = "Add ``filters.FORUM`` to filter messages from forum topic chats"
|
||||
[[pull_requests]]
|
||||
uid = "4906"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
bugfixes = "Fix ``ResourceWarning`` when passing ``pathlib.Path`` objects to methods which accept file input"
|
||||
[[pull_requests]]
|
||||
uid = "4908"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = ["4907"]
|
||||
@@ -0,0 +1,14 @@
|
||||
features = "Full Support for Bot API 9.2"
|
||||
|
||||
pull_requests = [
|
||||
{ uid = "4911", author_uid = "aelkheir", closes_threads = ["4910"] },
|
||||
{ uid = "4918", author_uid = "Poolitzer" },
|
||||
{ uid = "4917", author_uid = "Poolitzer" },
|
||||
{ uid = "4914", author_uid = "harshil21"},
|
||||
{ uid = "4916", author_uid = "harshil21"},
|
||||
{ uid = "4912", author_uid = "aelkheir" },
|
||||
{ uid = "4921", author_uid = "aelkheir" },
|
||||
{ uid = "4936", author_uid = "Bibo-Joshi" },
|
||||
{ uid = "4935", author_uid = "Bibo-Joshi" },
|
||||
{ uid = "4931", author_uid = "aelkheir" },
|
||||
]
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Don't update ``uv.lock`` in copilot runtime environment"
|
||||
[[pull_requests]]
|
||||
uid = "4915"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
dependencies = "Update cachetools requirement from <6.2.0,>=5.3.3 to >=5.3.3,<6.3.0"
|
||||
[[pull_requests]]
|
||||
uid = "4923"
|
||||
author_uid = "dependabot[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump actions/checkout from 4.2.2 to 5.0.0"
|
||||
[[pull_requests]]
|
||||
uid = "4925"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump codecov/codecov-action from 5.4.3 to 5.5.0"
|
||||
[[pull_requests]]
|
||||
uid = "4926"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump actions/download-artifact from 4.3.0 to 5.0.0"
|
||||
[[pull_requests]]
|
||||
uid = "4927"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump astral-sh/setup-uv from 6.4.3 to 6.6.1"
|
||||
[[pull_requests]]
|
||||
uid = "4928"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump github/codeql-action from 3.29.7 to 3.30.0"
|
||||
[[pull_requests]]
|
||||
uid = "4929"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Bump pytest from 8.4.1 to 8.4.2"
|
||||
[[pull_requests]]
|
||||
uid = "4933"
|
||||
author_uid = "dependabot"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Use Tagged Release of `pydantic` in Development Dependencies"
|
||||
[[pull_requests]]
|
||||
uid = "4934"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = ["4932"]
|
||||
@@ -0,0 +1,5 @@
|
||||
other = "Bump Version to v22.4"
|
||||
[[pull_requests]]
|
||||
uid = "4939"
|
||||
author_uid = "Bibo-Joshi"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,10 @@
|
||||
features = """
|
||||
Add convenience methods for ``BusinessOpeningHours``:
|
||||
|
||||
* ``get_opening_hours_for_day``: returns the opening hours applicable for a specific date
|
||||
* ``is_open``: indicates whether the business is open at the specified date and time.
|
||||
"""
|
||||
[[pull_requests]]
|
||||
uid = "4861"
|
||||
author_uid = "Aweryc"
|
||||
closes_threads = ["4194"]
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Lock file maintenance"
|
||||
[[pull_requests]]
|
||||
uid = "4938"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update astral-sh/setup-uv digest to b75a909"
|
||||
[[pull_requests]]
|
||||
uid = "4943"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update codecov/codecov-action action to v5.5.1"
|
||||
[[pull_requests]]
|
||||
uid = "4944"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update dependency astral-sh/uv to v0.8.17"
|
||||
[[pull_requests]]
|
||||
uid = "4945"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update github/codeql-action action to v3.30.3"
|
||||
[[pull_requests]]
|
||||
uid = "4946"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update Pylint to v3.3.8"
|
||||
[[pull_requests]]
|
||||
uid = "4947"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update Chango to v0.5.0"
|
||||
[[pull_requests]]
|
||||
uid = "4948"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update Mypy to v1.18.1"
|
||||
[[pull_requests]]
|
||||
uid = "4949"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Align pre-commit hook APScheduler to with ``pyproject.toml``"
|
||||
[[pull_requests]]
|
||||
uid = "4950"
|
||||
author_uids = ["renovate[bot]", "Bibo-Joshi"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Align pre-commit hook cachetools to with ``pyproject.toml``"
|
||||
[[pull_requests]]
|
||||
uid = "4951"
|
||||
author_uids = ["renovate[bot]", "Bibo-Joshi"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update pypa/gh-action-pypi-publish action to v1.13.0"
|
||||
[[pull_requests]]
|
||||
uid = "4952"
|
||||
author_uid = "renovate[bot]"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Renovate: No README updates, label behaviour change, automerge lockfiles"
|
||||
[[pull_requests]]
|
||||
uid = "4953"
|
||||
author_uid = "harshil21"
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Lock file maintenance"
|
||||
[[pull_requests]]
|
||||
uid = "4954"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Lock file maintenance"
|
||||
[[pull_requests]]
|
||||
uid = "4955"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update astral-sh/setup-uv digest to 208b0c0"
|
||||
[[pull_requests]]
|
||||
uid = "4958"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update dependency astral-sh/uv to v0.8.19"
|
||||
[[pull_requests]]
|
||||
uid = "4959"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update Mypy to v1.18.2"
|
||||
[[pull_requests]]
|
||||
uid = "4960"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update astral-sh/setup-uv action to v6.7.0"
|
||||
[[pull_requests]]
|
||||
uid = "4961"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update Ruff to v0.13.1"
|
||||
[[pull_requests]]
|
||||
uid = "4962"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update actions/stale action to v10"
|
||||
[[pull_requests]]
|
||||
uid = "4964"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Properly Pin Dependency to ``astral/setup-uv`` in Copilot Setup Steps"
|
||||
[[pull_requests]]
|
||||
uid = "4965"
|
||||
author_uids = ["Bibo-Joshi"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Lock file maintenance"
|
||||
[[pull_requests]]
|
||||
uid = "4967"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Tune Renovate Configuration"
|
||||
[[pull_requests]]
|
||||
uid = "4968"
|
||||
author_uids = ["harshil21"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,10 @@
|
||||
breaking = """Move param ``ReplyParameters.checklist_task_id`` to last position.
|
||||
|
||||
.. hint::
|
||||
This change addresses a breaking change accidentally introduced in version 22.4 where the introduction of the new parameter was not done in a backward compatible way.
|
||||
Existing code using keyword arguments is unaffected. Only code using positional arguments (and based on version 22.4) may need updates.
|
||||
"""
|
||||
[[pull_requests]]
|
||||
uid = "4972"
|
||||
author_uids = ["aelkheir"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
bugfixes = "Fix Handling of Infinite Bootstrap Retries in ``Application.run_*`` and ``Updater.start_*``"
|
||||
[[pull_requests]]
|
||||
uid = "4973"
|
||||
author_uids = ["Bibo-Joshi"]
|
||||
closes_threads = ["4966"]
|
||||
@@ -0,0 +1,4 @@
|
||||
documentation = "Documentation Improvemennts"
|
||||
[[pull_requests]]
|
||||
uid = "4974"
|
||||
author_uids = ["Bibo-Joshi"]
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update dependency astral-sh/uv to v0.8.22"
|
||||
[[pull_requests]]
|
||||
uid = "4975"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update github/codeql-action action to v3.30.5"
|
||||
[[pull_requests]]
|
||||
uid = "4976"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update Ruff to v0.13.2"
|
||||
[[pull_requests]]
|
||||
uid = "4977"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
internal = "Update dependency furo to v2025.9.25"
|
||||
[[pull_requests]]
|
||||
uid = "4978"
|
||||
author_uids = ["renovate[bot]"]
|
||||
closes_threads = []
|
||||
@@ -0,0 +1,5 @@
|
||||
other = "Bump Version to v22.5"
|
||||
[[pull_requests]]
|
||||
uid = "4979"
|
||||
author_uids = ["Bibo-Joshi"]
|
||||
closes_threads = []
|
||||
@@ -19,6 +19,7 @@
|
||||
to link to the correct files & lines on github. Can be simplified once
|
||||
https://github.com/sphinx-doc/sphinx/issues/1556 is closed
|
||||
"""
|
||||
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
@@ -121,6 +121,10 @@
|
||||
- Used for approving a chat join request
|
||||
* - :meth:`~telegram.Bot.decline_chat_join_request`
|
||||
- Used for declining a chat join request
|
||||
* - :meth:`~telegram.Bot.approve_suggested_post`
|
||||
- Used for approving a suggested post
|
||||
* - :meth:`~telegram.Bot.decline_suggested_post`
|
||||
- Used for declining a suggested post
|
||||
* - :meth:`~telegram.Bot.ban_chat_member`
|
||||
- Used for banning a member from the chat
|
||||
* - :meth:`~telegram.Bot.unban_chat_member`
|
||||
|
||||
@@ -71,6 +71,7 @@ Available Types
|
||||
telegram.contact
|
||||
telegram.dice
|
||||
telegram.directmessagepricechanged
|
||||
telegram.directmessagestopic
|
||||
telegram.document
|
||||
telegram.externalreplyinfo
|
||||
telegram.file
|
||||
@@ -168,6 +169,14 @@ Available Types
|
||||
telegram.storyareatypesuggestedreaction
|
||||
telegram.storyareatypeuniquegift
|
||||
telegram.storyareatypeweather
|
||||
telegram.suggestedpostapprovalfailed
|
||||
telegram.suggestedpostapproved
|
||||
telegram.suggestedpostdeclined
|
||||
telegram.suggestedpostinfo
|
||||
telegram.suggestedpostpaid
|
||||
telegram.suggestedpostparameters
|
||||
telegram.suggestedpostprice
|
||||
telegram.suggestedpostrefunded
|
||||
telegram.switchinlinequerychosenchat
|
||||
telegram.telegramobject
|
||||
telegram.textquote
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
DirectMessagesTopic
|
||||
===================
|
||||
|
||||
.. autoclass:: telegram.DirectMessagesTopic
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostApprovalFailed
|
||||
===========================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostApprovalFailed
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostApproved
|
||||
=====================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostApproved
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostDeclined
|
||||
=====================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostDeclined
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostInfo
|
||||
=================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostInfo
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostPaid
|
||||
=================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostPaid
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostParameters
|
||||
=======================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostParameters
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostPrice
|
||||
==================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostPrice
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -0,0 +1,6 @@
|
||||
SuggestedPostRefunded
|
||||
=====================
|
||||
|
||||
.. autoclass:: telegram.SuggestedPostRefunded
|
||||
:members:
|
||||
:show-inheritance:
|
||||
@@ -96,6 +96,10 @@
|
||||
|
||||
.. |allow_paid_broadcast| replace:: Pass True to allow up to :tg-const:`telegram.constants.FloodLimit.PAID_MESSAGES_PER_SECOND` messages per second, ignoring `broadcasting limits <https://core.telegram.org/bots/faq#how-can-i-message-all-of-my-bot-39s-subscribers-at-once>`__ for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance.
|
||||
|
||||
.. |direct_messages_topic_id| replace:: Identifier of the direct messages topic to which the message will be sent; required if the message is sent to a direct messages chat.
|
||||
|
||||
.. |suggested_post_parameters| replace:: An object containing the parameters of the suggested post to send; for direct messages chats only. If the message is sent as a reply to another suggested post, then that suggested post is automatically declined.
|
||||
|
||||
.. |tz-naive-dtms| replace:: For timezone naive :obj:`datetime.datetime` objects, the default timezone of the bot will be used, which is UTC unless :attr:`telegram.ext.Defaults.tzinfo` is used.
|
||||
|
||||
.. |org-verify| replace:: `on behalf of the organization <https://telegram.org/verify#third-party-verification>`__
|
||||
|
||||
@@ -11,6 +11,7 @@ Note:
|
||||
To use arbitrary callback data, you must install PTB via
|
||||
`pip install "python-telegram-bot[callback-data]"`
|
||||
"""
|
||||
|
||||
import logging
|
||||
from typing import cast
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ Set bot Token, URL, admin CHAT_ID and PORT after the imports.
|
||||
You may also need to change the `listen` value in the uvicorn configuration to match your setup.
|
||||
Press Ctrl-C on the command line or send a signal to the process to stop the bot.
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import html
|
||||
import json
|
||||
|
||||
@@ -13,6 +13,7 @@ Set bot Token, URL, admin CHAT_ID and PORT after the imports.
|
||||
You may also need to change the `listen` value in the uvicorn configuration to match your setup.
|
||||
Press Ctrl-C on the command line or send a signal to the process to stop the bot.
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import html
|
||||
import logging
|
||||
|
||||
@@ -13,6 +13,7 @@ Set bot Token, URL, admin CHAT_ID and PORT after the imports.
|
||||
You may also need to change the `listen` value in the uvicorn configuration to match your setup.
|
||||
Press Ctrl-C on the command line or send a signal to the process to stop the bot.
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import html
|
||||
import logging
|
||||
|
||||
@@ -13,6 +13,7 @@ Set bot Token, URL, admin CHAT_ID and PORT after the imports.
|
||||
You may also need to change the `listen` value in the uvicorn configuration to match your setup.
|
||||
Press Ctrl-C on the command line or send a signal to the process to stop the bot.
|
||||
"""
|
||||
|
||||
import asyncio
|
||||
import html
|
||||
import logging
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user