Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.10'

- name: Install Poetry
uses: snok/install-poetry@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
python-version: '3.10'

- name: Install Poetry
uses: snok/install-poetry@v1
Expand Down
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.9
3.10
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ The Bing Webmaster API Client is a modern, async Python library that provides a
- **Production-ready** - Extensive logging, testing, and error handling

### Requirements
- Python 3.9 or higher
- Python 3.10 or higher
- Bing Webmaster API key (follow the instructions [here](https://learn.microsoft.com/en-us/bingwebmaster/getting-access#using-api-key))

## Installation
Expand Down
3,506 changes: 2,103 additions & 1,403 deletions poetry.lock

Large diffs are not rendered by default.

17 changes: 9 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "bing-webmaster-tools"
version = "1.2.0"
version = "1.3.0"
description = "Python wrapper for the Bing Webmaster Tools API"
authors = [
"Ryan Siddle <ryan.siddle@merj.com>",
Expand All @@ -15,7 +15,6 @@ classifiers = [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand All @@ -27,22 +26,21 @@ readme = "README.md"
packages = [{ include = "bing_webmaster_tools" }]

[tool.poetry.dependencies]
python = "^3.9"
python = "^3.10"
pydantic = "^2.9.2"
tenacity = "^9.0.0"
aiohttp = "^3.10.11"
aiohttp = "^3.14.3"
pydantic-settings = "^2.6.0"
jinja2 = "^3.1.5"

[tool.poetry.group.dev.dependencies]
pytest = "^8.3.3"
pytest = "^9.0.3"
ruff = "^0.7.0"
typer = "^0.12.5"
pre-commit = "^4.0.1"
poethepoet = "^0.29.0"
mypy = "^1.13.0"
pytest-cov = "^5.0.0"
pytest-asyncio = "^0.24.0"
pytest-asyncio = "^1.0.0"
pytest-recording = "^0.13.2"

[tool.poetry.group.docs]
Expand All @@ -52,6 +50,7 @@ optional = true
mkdocs = "^1.5.0"
mkdocs-material = "^9.5.0"
mkdocstrings = { extras = ["python"], version = "^0.24.0" }
jinja2 = "^3.1.6"

[tool.mypy]
plugins = ["pydantic.mypy"]
Expand All @@ -75,7 +74,7 @@ init_typed = true
warn_required_dynamic_aliases = true

[tool.ruff]
target-version = "py39"
target-version = "py310"
line-length = 120

[tool.ruff.lint]
Expand Down Expand Up @@ -110,6 +109,8 @@ markers = [
]
pythonpath = ["bing_webmaster_tools_sdk"]
asyncio_mode = "auto" # Added for async tests
asyncio_default_fixture_loop_scope = "session"
asyncio_default_test_loop_scope = "session"

[tool.coverage.run]
source = ["bing_webmaster"]
Expand Down
10 changes: 0 additions & 10 deletions tests/integration/conftest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import asyncio
import json
import os
from typing import Any, AsyncGenerator, Dict
Expand Down Expand Up @@ -80,15 +79,6 @@ def _anonymize_test_site_response(response):
}


@pytest.fixture(scope="session", autouse=True)
def event_loop():
"""Create an instance of the default event loop for each test case."""
policy = asyncio.get_event_loop_policy()
loop = policy.new_event_loop()
yield loop
loop.close()


@pytest_asyncio.fixture(scope="session")
async def client() -> AsyncGenerator[BingWebmasterClient, None]:
"""Fixture providing a configured BingWebmasterClient."""
Expand Down
Loading