riotskillissue 0.1.2__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.
Files changed (95) hide show
  1. riotskillissue-0.1.2/.github/workflows/publish.yml +42 -0
  2. riotskillissue-0.1.2/.github/workflows/test.yml +30 -0
  3. riotskillissue-0.1.2/.github/workflows/update_sdk.yml +58 -0
  4. riotskillissue-0.1.2/.gitignore +12 -0
  5. riotskillissue-0.1.2/CHANGELOG.md +16 -0
  6. riotskillissue-0.1.2/LICENSE +676 -0
  7. riotskillissue-0.1.2/PKG-INFO +168 -0
  8. riotskillissue-0.1.2/README.md +131 -0
  9. riotskillissue-0.1.2/docs/CONTRIBUTING.md +34 -0
  10. riotskillissue-0.1.2/pyproject.toml +65 -0
  11. riotskillissue-0.1.2/src/riotskillissue/__init__.py +5 -0
  12. riotskillissue-0.1.2/src/riotskillissue/api/__init__.py +0 -0
  13. riotskillissue-0.1.2/src/riotskillissue/api/client_mixin.py +131 -0
  14. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/account.py +188 -0
  15. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/champion-mastery.py +143 -0
  16. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/champion.py +40 -0
  17. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/champion_mastery.py +154 -0
  18. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/clash.py +176 -0
  19. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/league-exp.py +54 -0
  20. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/league.py +226 -0
  21. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/league_exp.py +56 -0
  22. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lol-challenges.py +197 -0
  23. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lol-rso-match.py +124 -0
  24. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lol-status.py +38 -0
  25. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lol_challenges.py +214 -0
  26. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lol_rso_match.py +132 -0
  27. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lol_status.py +40 -0
  28. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor-deck.py +65 -0
  29. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor-inventory.py +38 -0
  30. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor-match.py +73 -0
  31. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor-ranked.py +38 -0
  32. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor-status.py +38 -0
  33. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor_deck.py +70 -0
  34. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor_inventory.py +40 -0
  35. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor_match.py +78 -0
  36. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor_ranked.py +40 -0
  37. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/lor_status.py +40 -0
  38. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/match.py +170 -0
  39. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/riftbound-content.py +42 -0
  40. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/riftbound_content.py +44 -0
  41. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/spectator-tft.py +42 -0
  42. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/spectator.py +44 -0
  43. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/spectator_tft.py +44 -0
  44. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/summoner.py +74 -0
  45. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft-league.py +240 -0
  46. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft-match.py +89 -0
  47. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft-status.py +38 -0
  48. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft-summoner.py +69 -0
  49. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft_league.py +260 -0
  50. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft_match.py +94 -0
  51. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft_status.py +40 -0
  52. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tft_summoner.py +74 -0
  53. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tournament-stub.py +162 -0
  54. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tournament.py +243 -0
  55. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/tournament_stub.py +176 -0
  56. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val-console-match.py +108 -0
  57. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val-console-ranked.py +54 -0
  58. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val-content.py +42 -0
  59. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val-match.py +104 -0
  60. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val-ranked.py +50 -0
  61. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val-status.py +38 -0
  62. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val_console_match.py +116 -0
  63. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val_console_ranked.py +56 -0
  64. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val_content.py +44 -0
  65. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val_match.py +112 -0
  66. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val_ranked.py +52 -0
  67. riotskillissue-0.1.2/src/riotskillissue/api/endpoints/val_status.py +40 -0
  68. riotskillissue-0.1.2/src/riotskillissue/api/models.py +4301 -0
  69. riotskillissue-0.1.2/src/riotskillissue/auth.py +76 -0
  70. riotskillissue-0.1.2/src/riotskillissue/cli.py +84 -0
  71. riotskillissue-0.1.2/src/riotskillissue/core/cache.py +60 -0
  72. riotskillissue-0.1.2/src/riotskillissue/core/client.py +47 -0
  73. riotskillissue-0.1.2/src/riotskillissue/core/config.py +19 -0
  74. riotskillissue-0.1.2/src/riotskillissue/core/http.py +144 -0
  75. riotskillissue-0.1.2/src/riotskillissue/core/pagination.py +63 -0
  76. riotskillissue-0.1.2/src/riotskillissue/core/ratelimit.py +185 -0
  77. riotskillissue-0.1.2/src/riotskillissue/core/types.py +57 -0
  78. riotskillissue-0.1.2/src/riotskillissue/core/utils.py +25 -0
  79. riotskillissue-0.1.2/src/riotskillissue/static.py +71 -0
  80. riotskillissue-0.1.2/src/riotskillissue/testing.py +46 -0
  81. riotskillissue-0.1.2/tests/conftest.py +11 -0
  82. riotskillissue-0.1.2/tests/manual_test.py +30 -0
  83. riotskillissue-0.1.2/tests/test_advanced.py +157 -0
  84. riotskillissue-0.1.2/tests/test_bindings.py +54 -0
  85. riotskillissue-0.1.2/tests/test_cache.py +37 -0
  86. riotskillissue-0.1.2/tests/test_core.py +103 -0
  87. riotskillissue-0.1.2/tests/test_resiliency.py +64 -0
  88. riotskillissue-0.1.2/tools/bump_version.py +36 -0
  89. riotskillissue-0.1.2/tools/diff_engine.py +149 -0
  90. riotskillissue-0.1.2/tools/generator/core.py +127 -0
  91. riotskillissue-0.1.2/tools/generator/parser.py +170 -0
  92. riotskillissue-0.1.2/tools/manager.py +76 -0
  93. riotskillissue-0.1.2/tools/templates/client_mixin.py.j2 +11 -0
  94. riotskillissue-0.1.2/tools/templates/endpoints.py.j2 +48 -0
  95. riotskillissue-0.1.2/tools/templates/models.py.j2 +22 -0
@@ -0,0 +1,42 @@
1
+ name: Publish
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+ push:
7
+ tags:
8
+ - "v*"
9
+
10
+ jobs:
11
+ pypi-publish:
12
+ name: Upload release to PyPI
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/riotskillissue
17
+ permissions:
18
+ contents: write
19
+ id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
20
+
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - name: Create GitHub Release
25
+ uses: softprops/action-gh-release@v2
26
+ with:
27
+ generate_release_notes: true
28
+ make_latest: true
29
+
30
+ - name: Set up Python
31
+ uses: actions/setup-python@v5
32
+ with:
33
+ python-version: "3.13"
34
+
35
+ - name: Install build tools
36
+ run: pip install hatch
37
+
38
+ - name: Build
39
+ run: hatch build
40
+
41
+ - name: Publish package distributions to PyPI
42
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,30 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: "${{ matrix.python-version }}"
23
+
24
+ - name: Install dependencies
25
+ run: |
26
+ pip install -e ".[dev]"
27
+
28
+ - name: Run Tests
29
+ run: |
30
+ pytest tests/
@@ -0,0 +1,58 @@
1
+ name: Update SDK
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 0 * * *' # Daily
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ update-sdk:
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: write
13
+ pull-requests: write
14
+
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v5
20
+ with:
21
+ python-version: "3.13"
22
+
23
+ - name: Install dependencies
24
+ run: |
25
+ pip install -e .
26
+ pip install deepdiff rich # Extra dev tools for manager
27
+
28
+ - name: Fetch Spec & Generate Code
29
+ run: |
30
+ python tools/manager.py
31
+ python tools/generator/core.py
32
+
33
+ - name: Check for changes
34
+ id: git-diff
35
+ run: |
36
+ git diff --exit-code || echo "changes=true" >> $GITHUB_OUTPUT
37
+
38
+ - name: Bump Version
39
+ if: steps.git-diff.outputs.changes == 'true'
40
+ run: python tools/bump_version.py
41
+
42
+ - name: Commit and Push Changes
43
+ if: steps.git-diff.outputs.changes == 'true'
44
+ run: |
45
+ git config --global user.name 'github-actions[bot]'
46
+ git config --global user.email 'github-actions[bot]@users.noreply.github.com'
47
+
48
+ # Read version from file to tag
49
+ VERSION=$(grep -oP 'version = "\K[^"]+' pyproject.toml)
50
+
51
+ git add src/riotskillissue/api/models.py src/riotskillissue/api/endpoints pyproject.toml
52
+ git add -A # Catch incidental changes
53
+ git commit -m "feat: auto-update riot api spec to v$VERSION"
54
+ git push origin main
55
+
56
+ echo "Tagging v$VERSION"
57
+ git tag "v$VERSION"
58
+ git push origin "v$VERSION"
@@ -0,0 +1,12 @@
1
+ __pycache__/
2
+ *.pyc
3
+ .env
4
+ .venv/
5
+ dist/
6
+ build/
7
+ .pytest_cache/
8
+ .mypy_cache/
9
+ .ruff_cache/
10
+ coverage.xml
11
+ .coverage
12
+ /spec/
@@ -0,0 +1,16 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2025-12-29
9
+ ### Added
10
+ - Initial release of `riotskillissue`.
11
+ - **Core**: Resilient `RiotClient` with `HttpClient`, `RedisCache`, and `RedisRateLimiter`.
12
+ - **API**: Full coverage for League of Legends, TFT, LoR, and VALORANT (generated from Spec).
13
+ - **CLI**: `riotskillissue-cli` for quick lookups and debugging.
14
+ - **Auth**: Riot Sign-On (RSO) OAuth2 helper.
15
+ - **Pagination**: Async iterator `paginate()` for paginated endpoints.
16
+ - **Static**: `DataDragonClient` for fetching versions and assets.