Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: aio-libs/aiobotocore
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2.9.1
Choose a base ref
...
head repository: aio-libs/aiobotocore
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 7,591 additions and 1,594 deletions.
  1. +2 −1 .codecov.yml
  2. +13 −10 .github/FUNDING.yml
  3. +9 −8 .github/dependabot.yml
  4. +141 −0 .github/workflows/ci-cd.yml
  5. +0 −74 .github/workflows/codeql.yml
  6. +0 −18 .github/workflows/pre-commit.yml
  7. +0 −126 .github/workflows/python-package.yml
  8. +35 −0 .github/workflows/stale.yml
  9. +1 −1 .gitignore
  10. +46 −24 .pre-commit-config.yaml
  11. +19 −0 .readthedocs.yml
  12. +15 −0 .yamllint
  13. +109 −0 CHANGES.rst
  14. +39 −22 CONTRIBUTING.rst
  15. +0 −5 MANIFEST.in
  16. +5 −11 Makefile
  17. +29 −51 README.rst
  18. +1 −1 aiobotocore/__init__.py
  19. +0 −9 aiobotocore/_helpers.py
  20. +19 −4 aiobotocore/args.py
  21. +26 −25 aiobotocore/client.py
  22. +14 −1 aiobotocore/config.py
  23. +93 −72 aiobotocore/credentials.py
  24. +1 −2 aiobotocore/discovery.py
  25. +21 −22 aiobotocore/endpoint.py
  26. +5 −20 aiobotocore/handlers.py
  27. +5 −3 aiobotocore/hooks.py
  28. +78 −10 aiobotocore/httpchecksum.py
  29. +73 −50 aiobotocore/httpsession.py
  30. +10 −6 aiobotocore/regions.py
  31. 0 {tests/boto_tests → aiobotocore/retries}/__init__.py
  32. +1 −0 aiobotocore/retries/adaptive.py
  33. +1 −0 aiobotocore/retries/bucket.py
  34. +3 −5 aiobotocore/retries/standard.py
  35. +3 −3 aiobotocore/retryhandler.py
  36. +31 −6 aiobotocore/session.py
  37. +103 −9 aiobotocore/signers.py
  38. +2 −2 aiobotocore/stub.py
  39. +1 −3 aiobotocore/tokens.py
  40. +18 −17 aiobotocore/utils.py
  41. +8 −10 aiobotocore/waiter.py
  42. +15 −24 docs/conf.py
  43. +1 −1 docs/examples.rst
  44. +1 −1 docs/examples/dynamo_db/insertions.rst
  45. +1 −1 docs/examples/dynamo_db/tables.rst
  46. +2 −1 docs/examples/s3/basic_usage.rst
  47. +4 −2 docs/index.rst
  48. +0 −36 docs/make.bat
  49. +1 −1 docs/requirements.txt
  50. +1 −0 examples/sqs_queue_consumer.py
  51. +1 −0 examples/sqs_queue_producer.py
  52. +163 −3 pyproject.toml
  53. +0 −11 readthedocs.yml
  54. +0 −20 requirements-dev.in
  55. +0 −3 setup.cfg
  56. +0 −70 setup.py
  57. +0 −6 tests/_helpers.py
  58. +0 −37 tests/boto_tests/test_signers.py
  59. +95 −0 tests/botocore_tests/__init__.py
  60. +2 −2 tests/{boto_tests → botocore_tests}/helpers.py
  61. 0 tests/{python3.8/boto_tests → botocore_tests/unit}/__init__.py
  62. +8 −0 tests/botocore_tests/unit/cfg/foo_config
  63. +408 −85 tests/{boto_tests → botocore_tests/unit}/test_credentials.py
  64. +567 −0 tests/botocore_tests/unit/test_eventstream.py
  65. +53 −0 tests/botocore_tests/unit/test_handlers.py
  66. +586 −0 tests/botocore_tests/unit/test_httpchecksum.py
  67. +551 −0 tests/botocore_tests/unit/test_session.py
  68. +154 −0 tests/botocore_tests/unit/test_signers.py
  69. +13 −34 tests/{boto_tests → botocore_tests/unit}/test_utils.py
  70. +61 −42 tests/conftest.py
  71. +23 −68 tests/mock_server.py
  72. +0 −145 tests/moto_server.py
  73. 0 tests/python3.8/botocore_tests/__init__.py
  74. 0 tests/python3.8/botocore_tests/unit/__init__.py
  75. +1 −31 tests/python3.8/{boto_tests → botocore_tests/unit}/test_credentials.py
  76. +0 −16 tests/python3.8/{boto_tests → botocore_tests/unit}/test_signers.py
  77. +0 −4 tests/python3.8/{boto_tests → botocore_tests/unit}/test_tokens.py
  78. +1 −49 tests/python3.8/{boto_tests → botocore_tests/unit}/test_utils.py
  79. +2 −2 tests/python3.8/test_eventstreams.py
  80. +2 −13 tests/test_adaptive.py
  81. +30 −65 tests/test_basic_s3.py
  82. +0 −5 tests/test_batch.py
  83. +24 −0 tests/test_client.py
  84. +29 −10 tests/test_config.py
  85. +18 −0 tests/test_configprovider.py
  86. +2 −16 tests/test_dynamodb.py
  87. +0 −5 tests/test_ec2.py
  88. +11 −0 tests/test_endpoint.py
  89. +0 −4 tests/test_eventstreams.py
  90. +0 −2 tests/test_lambda.py
  91. +0 −4 tests/test_monitor.py
  92. +1 −2 tests/test_mturk.py
  93. +155 −63 tests/test_patches.py
  94. +0 −30 tests/test_response.py
  95. +7 −5 tests/test_session.py
  96. +0 −10 tests/test_sns.py
  97. +0 −8 tests/test_sqs.py
  98. +0 −6 tests/test_stubber.py
  99. +41 −18 tests/test_version.py
  100. +26 −2 tests/test_waiter.py
  101. +3,550 −0 uv.lock
3 changes: 2 additions & 1 deletion .codecov.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
---
codecov:
branch: master

coverage:
range: "95..100"

status:
project: no
project: false

flags:
library:
23 changes: 13 additions & 10 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
---
# These are supported funding model platforms

github: [thehesiod, terrycain] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
github:
- thehesiod
- terrycain
patreon:
open_collective:
ko_fi:
tidelift:
community_bridge:
liberapay:
issuehunt:
otechie:
custom:
17 changes: 9 additions & 8 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
---
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
141 changes: 141 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
---
name: CI/CD

on:
merge_group:
push:
branches:
- master
tags:
- >-
[0-9]+.[0-9]+.[0-9]+
- >-
[0-9]+.[0-9]+.[0-9]+.dev[0-9]+
pull_request:
branches:
- master
- >-
[0-9].[0-9]+.[0-9]+
env:
FORCE_COLOR: 1

jobs:
build:
name: Build distribution 📦
runs-on: ubuntu-24.04
timeout-minutes: 5

steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Build distribution 📦
run: uv build
- name: Check distribution 📦
run: uvx twine check --strict dist/*
- name: Upload distribution 📦
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/

test:
name: Test Python ${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
python-version:
- 3.8
- 3.9
- >-
3.10
- 3.11
- 3.12
- 3.13
os:
- ubuntu-24.04
- ubuntu-24.04-arm
include:
- experimental: false
- experimental: true # no reliable moto release available
python-version: 3.8
os: ubuntu-24.04-arm
- upload-coverage: false
- upload-coverage: true
python-version: 3.11
os: ubuntu-24.04
fail-fast: false
env:
UV_FROZEN: 1
timeout-minutes: 5

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}
- name: Run pre-commit hooks
run: |
uv run make pre-commit
- name: Run unittests
env:
COLOR: 'yes'
run: |
uv run make mototest
- name: Upload coverage to Codecov
if: ${{ matrix.upload-coverage }}
uses: codecov/codecov-action@v5.4.0
with:
token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
files: ./coverage.xml
flags: unittests # optional
name: codecov-umbrella # optional
fail_ci_if_error: true # optional (default = false)
verbose: true # optional (default = false)

check: # This job does nothing and is only used for the branch protection
if: always()
needs:
- build
- test
runs-on: ubuntu-24.04
timeout-minutes: 5

steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}

pypi-publish:
name: Publish Python 🐍 distribution 📦 to PyPI
if: github.ref_type == 'tag' # only publish on tag pushes
needs:
- check
runs-on: ubuntu-24.04
environment:
name: pypi
url: https://pypi.org/project/aiobotocore/${{ github.ref_name }}
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
timeout-minutes: 5

steps:
- name: Download distribution 📦
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Check if distribution 📦 names match git tag
run: |
test -f "dist/aiobotocore-${{ github.ref_name }}.tar.gz"
test -f "dist/aiobotocore-${{ github.ref_name }}-py3-none-any.whl"
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
74 changes: 0 additions & 74 deletions .github/workflows/codeql.yml

This file was deleted.

18 changes: 0 additions & 18 deletions .github/workflows/pre-commit.yml

This file was deleted.

Loading