python-kanka 2.6.1__tar.gz → 2.6.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_kanka-2.6.1 → python_kanka-2.6.4}/.bumpversion.cfg +1 -1
- python_kanka-2.6.4/.github/renovate.json +18 -0
- python_kanka-2.6.4/.github/workflows/automerge.yml +14 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/.github/workflows/ci.yml +5 -5
- {python_kanka-2.6.1 → python_kanka-2.6.4}/.github/workflows/docs.yml +4 -4
- {python_kanka-2.6.1 → python_kanka-2.6.4}/.github/workflows/publish.yml +10 -10
- {python_kanka-2.6.1 → python_kanka-2.6.4}/CHANGELOG.md +12 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/PKG-INFO +13 -10
- {python_kanka-2.6.1 → python_kanka-2.6.4}/README.md +5 -3
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/README.md +1 -1
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/getting-started.md +1 -1
- {python_kanka-2.6.1 → python_kanka-2.6.4}/mkdocs.yml +2 -2
- {python_kanka-2.6.1 → python_kanka-2.6.4}/pyproject.toml +21 -20
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/_version.py +1 -1
- python_kanka-2.6.4/uv.lock +1840 -0
- python_kanka-2.6.1/.github/renovate.json +0 -79
- python_kanka-2.6.1/uv.lock +0 -1450
- {python_kanka-2.6.1 → python_kanka-2.6.4}/.gitignore +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/.pre-commit-config.yaml +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/CLAUDE.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/LICENSE +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/MANIFEST.in +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/Makefile +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/PUBLISHING.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/CNAME +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/api-reference.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/assets-and-images.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/core-concepts.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/debug-mode.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/entities.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/entity-types-reference.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/error-handling.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/gallery.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/known-limitations.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/last-sync.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/pagination.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/posts.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/rate-limiting.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/docs/search-and-filtering.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/pytest.ini +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/__init__.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/client.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/exceptions.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/managers.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/models/__init__.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/models/base.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/models/common.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/models/entities.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/py.typed +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/src/kanka/types.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/__init__.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/README.md +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/__init__.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/base.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/run_integration_tests.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/setup_test_env.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_calendars_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_calendars_simple.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_characters_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_creatures_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_entities_api_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_entity_assets_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_entity_images_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_entity_tags_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_events_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_families_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_gallery_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_journals_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_locations_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_mentions_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_notes_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_organisations_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_posts_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_quests_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_races_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_rate_limiting.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_search_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_tag_colour.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/integration/test_tags_integration.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/mypy.ini +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/test_client.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/test_client_advanced.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/test_entity_models.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/test_exceptions.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/test_managers.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/test_models.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/test_models_advanced.py +0 -0
- {python_kanka-2.6.1 → python_kanka-2.6.4}/tests/utils.py +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
+
"extends": [
|
|
4
|
+
"github>twistymaze/renovate-config:auto-merge"
|
|
5
|
+
],
|
|
6
|
+
"packageRules": [
|
|
7
|
+
{
|
|
8
|
+
"description": "The supported Python minimum is a compatibility policy, not a runtime pin.",
|
|
9
|
+
"matchManagers": [
|
|
10
|
+
"pep621"
|
|
11
|
+
],
|
|
12
|
+
"matchDepTypes": [
|
|
13
|
+
"requires-python"
|
|
14
|
+
],
|
|
15
|
+
"enabled": false
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
name: automerge
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
types: [opened, reopened, synchronize, labeled, review_requested]
|
|
5
|
+
permissions:
|
|
6
|
+
contents: write
|
|
7
|
+
pull-requests: write
|
|
8
|
+
jobs:
|
|
9
|
+
call:
|
|
10
|
+
uses: twistymaze/renovate-config/.github/workflows/automerge.yml@f7393091020465a83cf3da651e7c5e28583effe9 # main
|
|
11
|
+
with:
|
|
12
|
+
app-client-id: ${{ vars.AUTOMERGE_APP_CLIENT_ID }}
|
|
13
|
+
secrets:
|
|
14
|
+
app-private-key: ${{ secrets.AUTOMERGE_APP_PRIVATE_KEY }}
|
|
@@ -12,13 +12,13 @@ jobs:
|
|
|
12
12
|
strategy:
|
|
13
13
|
fail-fast: false
|
|
14
14
|
matrix:
|
|
15
|
-
python-version: ["3.12", "3.13", "3.14"]
|
|
15
|
+
python-version: ["3.12", "3.13", "3.14", "3.15"]
|
|
16
16
|
|
|
17
17
|
steps:
|
|
18
|
-
- uses: actions/checkout@
|
|
18
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
19
19
|
|
|
20
20
|
- name: Install uv
|
|
21
|
-
uses: astral-sh/setup-uv@
|
|
21
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
22
22
|
with:
|
|
23
23
|
enable-cache: true
|
|
24
24
|
cache-dependency-glob: "uv.lock"
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
|
|
29
29
|
- name: Install dependencies
|
|
30
30
|
run: |
|
|
31
|
-
uv sync --all-groups
|
|
31
|
+
uv sync --locked --all-groups --python ${{ matrix.python-version }}
|
|
32
32
|
uv pip install -e .
|
|
33
33
|
|
|
34
34
|
- name: Run all quality checks
|
|
@@ -42,7 +42,7 @@ jobs:
|
|
|
42
42
|
|
|
43
43
|
- name: Upload coverage reports to Codecov
|
|
44
44
|
if: matrix.python-version == '3.14'
|
|
45
|
-
uses: codecov/codecov-action@
|
|
45
|
+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7
|
|
46
46
|
env:
|
|
47
47
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
48
48
|
with:
|
|
@@ -18,10 +18,10 @@ jobs:
|
|
|
18
18
|
build:
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
steps:
|
|
21
|
-
- uses: actions/checkout@
|
|
21
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
22
22
|
|
|
23
23
|
- name: Install uv
|
|
24
|
-
uses: astral-sh/setup-uv@
|
|
24
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
25
25
|
|
|
26
26
|
- name: Set up Python
|
|
27
27
|
run: uv python install 3.14
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
cp docs/README.md site/llms.txt
|
|
48
48
|
|
|
49
49
|
- name: Upload Pages artifact
|
|
50
|
-
uses: actions/upload-pages-artifact@
|
|
50
|
+
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
|
|
51
51
|
with:
|
|
52
52
|
path: site/
|
|
53
53
|
|
|
@@ -60,4 +60,4 @@ jobs:
|
|
|
60
60
|
steps:
|
|
61
61
|
- name: Deploy to GitHub Pages
|
|
62
62
|
id: deployment
|
|
63
|
-
uses: actions/deploy-pages@
|
|
63
|
+
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5
|
|
@@ -16,13 +16,13 @@ jobs:
|
|
|
16
16
|
runs-on: ubuntu-latest
|
|
17
17
|
strategy:
|
|
18
18
|
matrix:
|
|
19
|
-
python-version: ["3.12", "3.13", "3.14"]
|
|
19
|
+
python-version: ["3.12", "3.13", "3.14", "3.15"]
|
|
20
20
|
|
|
21
21
|
steps:
|
|
22
|
-
- uses: actions/checkout@
|
|
22
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
23
23
|
|
|
24
24
|
- name: Install uv
|
|
25
|
-
uses: astral-sh/setup-uv@
|
|
25
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
26
26
|
with:
|
|
27
27
|
enable-cache: true
|
|
28
28
|
cache-dependency-glob: "uv.lock"
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
|
|
33
33
|
- name: Install dependencies
|
|
34
34
|
run: |
|
|
35
|
-
uv sync --all-groups
|
|
35
|
+
uv sync --locked --all-groups --python ${{ matrix.python-version }}
|
|
36
36
|
uv pip install -e .
|
|
37
37
|
|
|
38
38
|
- name: Run all quality checks
|
|
@@ -43,10 +43,10 @@ jobs:
|
|
|
43
43
|
needs: test
|
|
44
44
|
runs-on: ubuntu-latest
|
|
45
45
|
steps:
|
|
46
|
-
- uses: actions/checkout@
|
|
46
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
47
47
|
|
|
48
48
|
- name: Install uv
|
|
49
|
-
uses: astral-sh/setup-uv@
|
|
49
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
50
50
|
|
|
51
51
|
- name: Set up Python
|
|
52
52
|
run: uv python install 3.14
|
|
@@ -56,7 +56,7 @@ jobs:
|
|
|
56
56
|
uv build
|
|
57
57
|
|
|
58
58
|
- name: Upload artifacts
|
|
59
|
-
uses: actions/upload-artifact@
|
|
59
|
+
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7
|
|
60
60
|
with:
|
|
61
61
|
name: dist
|
|
62
62
|
path: dist/
|
|
@@ -71,20 +71,20 @@ jobs:
|
|
|
71
71
|
|
|
72
72
|
steps:
|
|
73
73
|
- name: Download artifacts
|
|
74
|
-
uses: actions/download-artifact@
|
|
74
|
+
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8
|
|
75
75
|
with:
|
|
76
76
|
name: dist
|
|
77
77
|
path: dist/
|
|
78
78
|
|
|
79
79
|
- name: Publish to Test PyPI
|
|
80
80
|
if: github.event_name == 'workflow_dispatch' && github.event.inputs.test_pypi == 'true'
|
|
81
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
81
|
+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # release/v1
|
|
82
82
|
with:
|
|
83
83
|
repository-url: https://test.pypi.org/legacy/
|
|
84
84
|
skip-existing: true
|
|
85
85
|
|
|
86
86
|
- name: Publish to PyPI
|
|
87
87
|
if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_pypi == 'false')
|
|
88
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
88
|
+
uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # release/v1
|
|
89
89
|
with:
|
|
90
90
|
skip-existing: true
|
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.6.4] - 2026-10-26
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- Restore the supported Python requirement to 3.12 or newer instead of a single interpreter patch version.
|
|
14
|
+
- Test Python 3.12–3.15 explicitly in CI and the release workflow.
|
|
15
|
+
- Keep the supported Python minimum under manual compatibility review in Renovate.
|
|
16
|
+
- Synchronize package and runtime versions; the previous v2.6.3 GitHub release still declared 2.6.2 and did not publish a 2.6.3 package.
|
|
17
|
+
|
|
18
|
+
### Dependencies
|
|
19
|
+
- Release the dependency updates already on main, including Pydantic 2.14.1 and requests 2.34.2. Pydantic's pydantic-core 2.50.1 provides Python 3.15 wheels.
|
|
20
|
+
- No public API changes since 2.6.2.
|
|
21
|
+
|
|
10
22
|
### Documentation
|
|
11
23
|
- Added documentation for using Kanka's native `lastSync` parameter with the list() method
|
|
12
24
|
- Added example showing how to use lastSync for efficient synchronization in API_REFERENCE.md
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: python-kanka
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.4
|
|
4
4
|
Summary: Python client for the Kanka API
|
|
5
|
-
Project-URL: Homepage, https://github.com/
|
|
5
|
+
Project-URL: Homepage, https://github.com/twistymaze/python-kanka
|
|
6
6
|
Project-URL: Documentation, https://python-kanka.ewal.dev/
|
|
7
|
-
Project-URL: Repository, https://github.com/
|
|
8
|
-
Project-URL: Issues, https://github.com/
|
|
7
|
+
Project-URL: Repository, https://github.com/twistymaze/python-kanka
|
|
8
|
+
Project-URL: Issues, https://github.com/twistymaze/python-kanka/issues
|
|
9
9
|
Author-email: Erv Walter <erv@ewal.net>
|
|
10
10
|
License: MIT
|
|
11
11
|
License-File: LICENSE
|
|
@@ -17,13 +17,14 @@ Classifier: Programming Language :: Python :: 3
|
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.14
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
20
21
|
Classifier: Topic :: Games/Entertainment :: Role-Playing
|
|
21
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
23
|
Classifier: Typing :: Typed
|
|
23
24
|
Requires-Python: >=3.12
|
|
24
|
-
Requires-Dist: pydantic==2.
|
|
25
|
+
Requires-Dist: pydantic==2.14.1
|
|
25
26
|
Requires-Dist: requests-toolbelt==1.0.0
|
|
26
|
-
Requires-Dist: requests==2.
|
|
27
|
+
Requires-Dist: requests==2.34.2
|
|
27
28
|
Description-Content-Type: text/markdown
|
|
28
29
|
|
|
29
30
|
# python-kanka
|
|
@@ -44,6 +45,8 @@ A modern Python client for the [Kanka API](https://app.kanka.io/api-docs/1.0), t
|
|
|
44
45
|
|
|
45
46
|
## Installation
|
|
46
47
|
|
|
48
|
+
Requires Python 3.12 or newer. CI tests Python 3.12–3.15.
|
|
49
|
+
|
|
47
50
|
```bash
|
|
48
51
|
pip install python-kanka
|
|
49
52
|
```
|
|
@@ -75,7 +78,7 @@ client.characters.delete(gandalf)
|
|
|
75
78
|
|
|
76
79
|
## Documentation
|
|
77
80
|
|
|
78
|
-
See the **[full documentation](
|
|
81
|
+
See the **[full documentation](https://python-kanka.ewal.dev/)** for guides, examples, and complete API reference.
|
|
79
82
|
|
|
80
83
|
## License
|
|
81
84
|
|
|
@@ -85,5 +88,5 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
85
88
|
|
|
86
89
|
- [Kanka.io](https://kanka.io) - The Kanka platform
|
|
87
90
|
- [Kanka API Documentation](https://app.kanka.io/api-docs/1.0) - Official API docs
|
|
88
|
-
- [GitHub Repository](https://github.com/
|
|
89
|
-
- [Issue Tracker](https://github.com/
|
|
91
|
+
- [GitHub Repository](https://github.com/twistymaze/python-kanka) - Source code
|
|
92
|
+
- [Issue Tracker](https://github.com/twistymaze/python-kanka/issues) - Report bugs or request features
|
|
@@ -16,6 +16,8 @@ A modern Python client for the [Kanka API](https://app.kanka.io/api-docs/1.0), t
|
|
|
16
16
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
|
19
|
+
Requires Python 3.12 or newer. CI tests Python 3.12–3.15.
|
|
20
|
+
|
|
19
21
|
```bash
|
|
20
22
|
pip install python-kanka
|
|
21
23
|
```
|
|
@@ -47,7 +49,7 @@ client.characters.delete(gandalf)
|
|
|
47
49
|
|
|
48
50
|
## Documentation
|
|
49
51
|
|
|
50
|
-
See the **[full documentation](
|
|
52
|
+
See the **[full documentation](https://python-kanka.ewal.dev/)** for guides, examples, and complete API reference.
|
|
51
53
|
|
|
52
54
|
## License
|
|
53
55
|
|
|
@@ -57,5 +59,5 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
57
59
|
|
|
58
60
|
- [Kanka.io](https://kanka.io) - The Kanka platform
|
|
59
61
|
- [Kanka API Documentation](https://app.kanka.io/api-docs/1.0) - Official API docs
|
|
60
|
-
- [GitHub Repository](https://github.com/
|
|
61
|
-
- [Issue Tracker](https://github.com/
|
|
62
|
+
- [GitHub Repository](https://github.com/twistymaze/python-kanka) - Source code
|
|
63
|
+
- [Issue Tracker](https://github.com/twistymaze/python-kanka/issues) - Report bugs or request features
|
|
@@ -52,5 +52,5 @@ npcs = client.characters.list(type="NPC", is_private=False)
|
|
|
52
52
|
|
|
53
53
|
- [Kanka.io](https://kanka.io) — The Kanka platform
|
|
54
54
|
- [Kanka API Docs](https://app.kanka.io/api-docs/1.0) — Official API documentation
|
|
55
|
-
- [GitHub Repository](https://github.com/
|
|
55
|
+
- [GitHub Repository](https://github.com/twistymaze/python-kanka) — Source code
|
|
56
56
|
- [PyPI](https://pypi.org/project/python-kanka/) — Package page
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
site_name: python-kanka
|
|
2
2
|
site_url: https://python-kanka.ewal.dev/
|
|
3
3
|
site_description: A modern Python client for the Kanka API
|
|
4
|
-
repo_url: https://github.com/
|
|
5
|
-
repo_name:
|
|
4
|
+
repo_url: https://github.com/twistymaze/python-kanka
|
|
5
|
+
repo_name: twistymaze/python-kanka
|
|
6
6
|
|
|
7
7
|
theme:
|
|
8
8
|
name: material
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-kanka"
|
|
7
|
-
version = "2.6.
|
|
7
|
+
version = "2.6.4"
|
|
8
8
|
description = "Python client for the Kanka API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -23,40 +23,41 @@ classifiers = [
|
|
|
23
23
|
"Programming Language :: Python :: 3.12",
|
|
24
24
|
"Programming Language :: Python :: 3.13",
|
|
25
25
|
"Programming Language :: Python :: 3.14",
|
|
26
|
+
"Programming Language :: Python :: 3.15",
|
|
26
27
|
"Typing :: Typed",
|
|
27
28
|
]
|
|
28
29
|
dependencies = [
|
|
29
|
-
"requests==2.
|
|
30
|
+
"requests==2.34.2",
|
|
30
31
|
"requests-toolbelt==1.0.0",
|
|
31
|
-
"pydantic==2.
|
|
32
|
+
"pydantic==2.14.1",
|
|
32
33
|
]
|
|
33
34
|
|
|
34
35
|
[project.urls]
|
|
35
|
-
Homepage = "https://github.com/
|
|
36
|
+
Homepage = "https://github.com/twistymaze/python-kanka"
|
|
36
37
|
Documentation = "https://python-kanka.ewal.dev/"
|
|
37
|
-
Repository = "https://github.com/
|
|
38
|
-
Issues = "https://github.com/
|
|
38
|
+
Repository = "https://github.com/twistymaze/python-kanka"
|
|
39
|
+
Issues = "https://github.com/twistymaze/python-kanka/issues"
|
|
39
40
|
|
|
40
41
|
[dependency-groups]
|
|
41
42
|
docs = [
|
|
42
|
-
"mkdocs
|
|
43
|
-
"mkdocs-material
|
|
43
|
+
"mkdocs==1.6.1",
|
|
44
|
+
"mkdocs-material==9.7.7",
|
|
44
45
|
]
|
|
45
46
|
dev = [
|
|
46
|
-
"pytest==9.
|
|
47
|
-
"pytest-asyncio==1.
|
|
48
|
-
"pytest-cov==7.
|
|
49
|
-
"pytest-mock==3.
|
|
50
|
-
"mypy==
|
|
51
|
-
"black==26.1
|
|
52
|
-
"isort==
|
|
53
|
-
"ruff==0.
|
|
47
|
+
"pytest==9.1.1",
|
|
48
|
+
"pytest-asyncio==1.4.0",
|
|
49
|
+
"pytest-cov==7.1.0",
|
|
50
|
+
"pytest-mock==3.17.0",
|
|
51
|
+
"mypy==2.4.0",
|
|
52
|
+
"black==26.10.1",
|
|
53
|
+
"isort==9.0.2",
|
|
54
|
+
"ruff==0.17.2",
|
|
54
55
|
"types-requests",
|
|
55
56
|
"bump2version==1.0.1",
|
|
56
|
-
"build==1.
|
|
57
|
-
"twine==
|
|
58
|
-
"pre-commit==4.
|
|
59
|
-
"python-dotenv==1.2.
|
|
57
|
+
"build==1.6.1",
|
|
58
|
+
"twine==7.0.0",
|
|
59
|
+
"pre-commit==4.7.0",
|
|
60
|
+
"python-dotenv==1.2.4",
|
|
60
61
|
]
|
|
61
62
|
|
|
62
63
|
[tool.hatch.build.targets.wheel]
|