From 77f7cdaec3bf8e63db8b88ed1dd921d8e8ee1291 Mon Sep 17 00:00:00 2001 From: 201st-Luka Date: Tue, 12 Sep 2023 00:33:07 +0200 Subject: [PATCH] docs: improving documentation generation --- .github/workflows/docs.yml | 24 +++++++++ docs/doc_autogen.py => doc_gen.py | 19 ++++--- docs/API Reference/.pages | 5 -- docs/API Reference/API/Bulk requests/abc.md | 1 - .../API/Bulk requests/bulk_player.md | 1 - .../API/Models/login/login_models.md | 1 - docs/API Reference/API/Models/misc/api.md | 1 - docs/API Reference/API/Models/misc/posts.md | 1 - .../API/Models/misc/responses.md | 1 - .../API/Models/misc/war_status.md | 1 - docs/API Reference/Client/client.md | 1 - docs/API Reference/Client/request_consumer.md | 1 - docs/API Reference/Client/request_queue.md | 1 - docs/API Reference/Utils/exectimer.md | 1 - docs/API Reference/Utils/functions.md | 1 - docs/API Reference/Utils/request_methods.md | 1 - docs/API Reference/api/bulk_requests/abc.md | 1 + .../api/bulk_requests/b_player.md | 1 + docs/API Reference/api/models/abc.md | 1 + docs/API Reference/api/models/base_models.md | 1 + docs/API Reference/api/models/clan.md | 1 + .../models/clan_builder_base_ranking_list.md | 1 + .../api/models/clan_capital_raid_seasons.md | 1 + .../api/models/clan_capital_ranking_list.md | 1 + docs/API Reference/api/models/clan_list.md | 1 + docs/API Reference/api/models/clan_member.md | 1 + .../api/models/clan_member_list.md | 1 + .../api/models/clan_ranking_list.md | 1 + docs/API Reference/api/models/clan_war.md | 1 + .../api/models/clan_war_league_group.md | 1 + docs/API Reference/api/models/clan_war_log.md | 1 + docs/API Reference/api/models/enums.md | 1 + .../api/models/gold_pass_season.md | 1 + docs/API Reference/api/models/labels.md | 1 + docs/API Reference/api/models/language.md | 1 + docs/API Reference/api/models/leagues.md | 1 + docs/API Reference/api/models/location.md | 1 + .../api/models/login/login_models.md | 1 + docs/API Reference/api/models/misc/api.md | 1 + docs/API Reference/api/models/misc/posts.md | 1 + .../api/models/misc/responses.md | 1 + .../api/models/misc/war_status.md | 1 + docs/API Reference/api/models/player.md | 1 + .../player_builder_base_ranking_list.md | 1 + docs/API Reference/api/models/player_house.md | 1 + .../api/models/player_ranking_clan.md | 1 + .../api/models/player_ranking_list.md | 1 + docs/API Reference/api/models/season.md | 1 + docs/API Reference/api/models/war_clan.md | 1 + docs/API Reference/api/requests/abc.md | 1 + .../api/requests/builder_base_league.md | 1 + .../api/requests/builder_base_leagues.md | 1 + .../api/requests/capital_league.md | 1 + .../api/requests/capital_league_seasons.md | 1 + .../api/requests/capital_rankings.md | 1 + docs/API Reference/api/requests/clan.md | 1 + .../requests/clan_builder_base_rankings.md | 1 + .../api/requests/clan_capital_raid_seasons.md | 1 + .../api/requests/clan_current_war.md | 1 + .../requests/clan_currentwar_leaguegroup.md | 1 + .../API Reference/api/requests/clan_labels.md | 1 + .../api/requests/clan_members.md | 1 + .../api/requests/clan_rankings.md | 1 + .../API Reference/api/requests/clan_search.md | 1 + .../api/requests/clan_war_log.md | 1 + .../api/requests/clan_warleagues_wars.md | 1 + docs/API Reference/api/requests/gold_pass.md | 1 + docs/API Reference/api/requests/league.md | 1 + .../api/requests/league_season.md | 1 + .../api/requests/league_seasons.md | 1 + docs/API Reference/api/requests/leagues.md | 1 + docs/API Reference/api/requests/location.md | 1 + docs/API Reference/api/requests/locations.md | 1 + docs/API Reference/api/requests/player.md | 1 + .../requests/player_builder_base_rankings.md | 1 + .../api/requests/player_labels.md | 1 + .../api/requests/player_rankings.md | 1 + docs/API Reference/api/requests/war_league.md | 1 + .../API Reference/api/requests/war_leagues.md | 1 + docs/API Reference/client/client.md | 1 + docs/API Reference/client/request_consumer.md | 1 + docs/API Reference/client/request_queue.md | 1 + docs/API Reference/exceptions.md | 2 +- docs/API Reference/utils/exectimer.md | 1 + docs/API Reference/utils/functions.md | 1 + docs/API Reference/{Utils => utils}/login.md | 0 docs/API Reference/utils/request_methods.md | 1 + mkdocs.yml | 4 ++ pyclasher/client/client.py | 50 ++++++++++++------- requirements-docs.txt | 3 +- 90 files changed, 141 insertions(+), 48 deletions(-) create mode 100644 .github/workflows/docs.yml rename docs/doc_autogen.py => doc_gen.py (77%) delete mode 100644 docs/API Reference/.pages delete mode 100644 docs/API Reference/API/Bulk requests/abc.md delete mode 100644 docs/API Reference/API/Bulk requests/bulk_player.md delete mode 100644 docs/API Reference/API/Models/login/login_models.md delete mode 100644 docs/API Reference/API/Models/misc/api.md delete mode 100644 docs/API Reference/API/Models/misc/posts.md delete mode 100644 docs/API Reference/API/Models/misc/responses.md delete mode 100644 docs/API Reference/API/Models/misc/war_status.md delete mode 100644 docs/API Reference/Client/client.md delete mode 100644 docs/API Reference/Client/request_consumer.md delete mode 100644 docs/API Reference/Client/request_queue.md delete mode 100644 docs/API Reference/Utils/exectimer.md delete mode 100644 docs/API Reference/Utils/functions.md delete mode 100644 docs/API Reference/Utils/request_methods.md create mode 100644 docs/API Reference/api/bulk_requests/abc.md create mode 100644 docs/API Reference/api/bulk_requests/b_player.md create mode 100644 docs/API Reference/api/models/abc.md create mode 100644 docs/API Reference/api/models/base_models.md create mode 100644 docs/API Reference/api/models/clan.md create mode 100644 docs/API Reference/api/models/clan_builder_base_ranking_list.md create mode 100644 docs/API Reference/api/models/clan_capital_raid_seasons.md create mode 100644 docs/API Reference/api/models/clan_capital_ranking_list.md create mode 100644 docs/API Reference/api/models/clan_list.md create mode 100644 docs/API Reference/api/models/clan_member.md create mode 100644 docs/API Reference/api/models/clan_member_list.md create mode 100644 docs/API Reference/api/models/clan_ranking_list.md create mode 100644 docs/API Reference/api/models/clan_war.md create mode 100644 docs/API Reference/api/models/clan_war_league_group.md create mode 100644 docs/API Reference/api/models/clan_war_log.md create mode 100644 docs/API Reference/api/models/enums.md create mode 100644 docs/API Reference/api/models/gold_pass_season.md create mode 100644 docs/API Reference/api/models/labels.md create mode 100644 docs/API Reference/api/models/language.md create mode 100644 docs/API Reference/api/models/leagues.md create mode 100644 docs/API Reference/api/models/location.md create mode 100644 docs/API Reference/api/models/login/login_models.md create mode 100644 docs/API Reference/api/models/misc/api.md create mode 100644 docs/API Reference/api/models/misc/posts.md create mode 100644 docs/API Reference/api/models/misc/responses.md create mode 100644 docs/API Reference/api/models/misc/war_status.md create mode 100644 docs/API Reference/api/models/player.md create mode 100644 docs/API Reference/api/models/player_builder_base_ranking_list.md create mode 100644 docs/API Reference/api/models/player_house.md create mode 100644 docs/API Reference/api/models/player_ranking_clan.md create mode 100644 docs/API Reference/api/models/player_ranking_list.md create mode 100644 docs/API Reference/api/models/season.md create mode 100644 docs/API Reference/api/models/war_clan.md create mode 100644 docs/API Reference/api/requests/abc.md create mode 100644 docs/API Reference/api/requests/builder_base_league.md create mode 100644 docs/API Reference/api/requests/builder_base_leagues.md create mode 100644 docs/API Reference/api/requests/capital_league.md create mode 100644 docs/API Reference/api/requests/capital_league_seasons.md create mode 100644 docs/API Reference/api/requests/capital_rankings.md create mode 100644 docs/API Reference/api/requests/clan.md create mode 100644 docs/API Reference/api/requests/clan_builder_base_rankings.md create mode 100644 docs/API Reference/api/requests/clan_capital_raid_seasons.md create mode 100644 docs/API Reference/api/requests/clan_current_war.md create mode 100644 docs/API Reference/api/requests/clan_currentwar_leaguegroup.md create mode 100644 docs/API Reference/api/requests/clan_labels.md create mode 100644 docs/API Reference/api/requests/clan_members.md create mode 100644 docs/API Reference/api/requests/clan_rankings.md create mode 100644 docs/API Reference/api/requests/clan_search.md create mode 100644 docs/API Reference/api/requests/clan_war_log.md create mode 100644 docs/API Reference/api/requests/clan_warleagues_wars.md create mode 100644 docs/API Reference/api/requests/gold_pass.md create mode 100644 docs/API Reference/api/requests/league.md create mode 100644 docs/API Reference/api/requests/league_season.md create mode 100644 docs/API Reference/api/requests/league_seasons.md create mode 100644 docs/API Reference/api/requests/leagues.md create mode 100644 docs/API Reference/api/requests/location.md create mode 100644 docs/API Reference/api/requests/locations.md create mode 100644 docs/API Reference/api/requests/player.md create mode 100644 docs/API Reference/api/requests/player_builder_base_rankings.md create mode 100644 docs/API Reference/api/requests/player_labels.md create mode 100644 docs/API Reference/api/requests/player_rankings.md create mode 100644 docs/API Reference/api/requests/war_league.md create mode 100644 docs/API Reference/api/requests/war_leagues.md create mode 100644 docs/API Reference/client/client.md create mode 100644 docs/API Reference/client/request_consumer.md create mode 100644 docs/API Reference/client/request_queue.md create mode 100644 docs/API Reference/utils/exectimer.md create mode 100644 docs/API Reference/utils/functions.md rename docs/API Reference/{Utils => utils}/login.md (100%) create mode 100644 docs/API Reference/utils/request_methods.md diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..8ec19e4 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,24 @@ +name: doc generation +on: + push: + branches: + - master +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v3 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install -r requirements-docs.txt + - run: mkdocs gh-deploy --force diff --git a/docs/doc_autogen.py b/doc_gen.py similarity index 77% rename from docs/doc_autogen.py rename to doc_gen.py index 32d0fdc..a3999b8 100644 --- a/docs/doc_autogen.py +++ b/doc_gen.py @@ -16,7 +16,6 @@ def create_markdown_structure(package_path, output_path): output_path (str): The path where the directory structure and markdown files will be generated. """ for dirpath, dirnames, filenames in os.walk(package_path): - # Create corresponding directory structure in the output path relative_dir = os.path.relpath(dirpath, package_path) output_dir = os.path.join(output_path, relative_dir) os.makedirs(output_dir, exist_ok=True) @@ -24,17 +23,19 @@ def create_markdown_structure(package_path, output_path): for filename in filenames: if filename.endswith('.py') and filename != "__init__.py": module_name = os.path.splitext(filename)[0] - import_path = "pyclasher." + '/'.join( - os.path.split( - os.path.join(relative_dir, module_name)) - ).replace('.', '').replace('/', '.') - print(import_path) + import_path = ( + "pyclasher." + + os.path.join(relative_dir if relative_dir != '.' + else '', + module_name) + ).replace('/', '.') markdown_content = f"::: {import_path}\n" - # Create a markdown file with the import path as content markdown_file_path = os.path.join(output_dir, f"{module_name}.md") + with open(markdown_file_path, 'w') as markdown_file: + print(f"Creating docs for {import_path}") markdown_file.write(markdown_content) @@ -43,7 +44,7 @@ def create_markdown_structure(package_path, output_path): doc_dir = os.path.join(project_dir, "docs") - api_ref_dir = os.path.join(doc_dir, "API Reference") + api_ref_dir = os.path.join(doc_dir, "docs/API Reference") pyclasher_dir = os.path.join(project_dir, "pyclasher") shutil.rmtree(api_ref_dir) @@ -51,5 +52,3 @@ def create_markdown_structure(package_path, output_path): os.mkdir(api_ref_dir) create_markdown_structure(pyclasher_dir, api_ref_dir) - - diff --git a/docs/API Reference/.pages b/docs/API Reference/.pages deleted file mode 100644 index 68d0a21..0000000 --- a/docs/API Reference/.pages +++ /dev/null @@ -1,5 +0,0 @@ -nav: - - Client - - exceptions.md - - Api - - Utils diff --git a/docs/API Reference/API/Bulk requests/abc.md b/docs/API Reference/API/Bulk requests/abc.md deleted file mode 100644 index f1adb06..0000000 --- a/docs/API Reference/API/Bulk requests/abc.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.api.bulk_requests.abc \ No newline at end of file diff --git a/docs/API Reference/API/Bulk requests/bulk_player.md b/docs/API Reference/API/Bulk requests/bulk_player.md deleted file mode 100644 index 672c218..0000000 --- a/docs/API Reference/API/Bulk requests/bulk_player.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.api.bulk_requests.b_player \ No newline at end of file diff --git a/docs/API Reference/API/Models/login/login_models.md b/docs/API Reference/API/Models/login/login_models.md deleted file mode 100644 index 1cf2159..0000000 --- a/docs/API Reference/API/Models/login/login_models.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.api.models.login.login_models \ No newline at end of file diff --git a/docs/API Reference/API/Models/misc/api.md b/docs/API Reference/API/Models/misc/api.md deleted file mode 100644 index 8916191..0000000 --- a/docs/API Reference/API/Models/misc/api.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.api.models.misc.api \ No newline at end of file diff --git a/docs/API Reference/API/Models/misc/posts.md b/docs/API Reference/API/Models/misc/posts.md deleted file mode 100644 index a5769c0..0000000 --- a/docs/API Reference/API/Models/misc/posts.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.api.models.misc.posts \ No newline at end of file diff --git a/docs/API Reference/API/Models/misc/responses.md b/docs/API Reference/API/Models/misc/responses.md deleted file mode 100644 index 7950cc0..0000000 --- a/docs/API Reference/API/Models/misc/responses.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.api.models.misc.responses \ No newline at end of file diff --git a/docs/API Reference/API/Models/misc/war_status.md b/docs/API Reference/API/Models/misc/war_status.md deleted file mode 100644 index bc62af7..0000000 --- a/docs/API Reference/API/Models/misc/war_status.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.api.models.misc.war_status \ No newline at end of file diff --git a/docs/API Reference/Client/client.md b/docs/API Reference/Client/client.md deleted file mode 100644 index e74a916..0000000 --- a/docs/API Reference/Client/client.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.client.client \ No newline at end of file diff --git a/docs/API Reference/Client/request_consumer.md b/docs/API Reference/Client/request_consumer.md deleted file mode 100644 index 59c8334..0000000 --- a/docs/API Reference/Client/request_consumer.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.client.request_consumer \ No newline at end of file diff --git a/docs/API Reference/Client/request_queue.md b/docs/API Reference/Client/request_queue.md deleted file mode 100644 index ff5b473..0000000 --- a/docs/API Reference/Client/request_queue.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.client.request_queue \ No newline at end of file diff --git a/docs/API Reference/Utils/exectimer.md b/docs/API Reference/Utils/exectimer.md deleted file mode 100644 index 0fcf324..0000000 --- a/docs/API Reference/Utils/exectimer.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.utils.exectimer \ No newline at end of file diff --git a/docs/API Reference/Utils/functions.md b/docs/API Reference/Utils/functions.md deleted file mode 100644 index 750fa3f..0000000 --- a/docs/API Reference/Utils/functions.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.utils.functions \ No newline at end of file diff --git a/docs/API Reference/Utils/request_methods.md b/docs/API Reference/Utils/request_methods.md deleted file mode 100644 index 0631878..0000000 --- a/docs/API Reference/Utils/request_methods.md +++ /dev/null @@ -1 +0,0 @@ -::: pyclasher.utils.request_methods \ No newline at end of file diff --git a/docs/API Reference/api/bulk_requests/abc.md b/docs/API Reference/api/bulk_requests/abc.md new file mode 100644 index 0000000..ae4edf1 --- /dev/null +++ b/docs/API Reference/api/bulk_requests/abc.md @@ -0,0 +1 @@ +::: pyclasher.api.bulk_requests.abc diff --git a/docs/API Reference/api/bulk_requests/b_player.md b/docs/API Reference/api/bulk_requests/b_player.md new file mode 100644 index 0000000..c15e3c2 --- /dev/null +++ b/docs/API Reference/api/bulk_requests/b_player.md @@ -0,0 +1 @@ +::: pyclasher.api.bulk_requests.b_player diff --git a/docs/API Reference/api/models/abc.md b/docs/API Reference/api/models/abc.md new file mode 100644 index 0000000..0098378 --- /dev/null +++ b/docs/API Reference/api/models/abc.md @@ -0,0 +1 @@ +::: pyclasher.api.models.abc diff --git a/docs/API Reference/api/models/base_models.md b/docs/API Reference/api/models/base_models.md new file mode 100644 index 0000000..6e2453e --- /dev/null +++ b/docs/API Reference/api/models/base_models.md @@ -0,0 +1 @@ +::: pyclasher.api.models.base_models diff --git a/docs/API Reference/api/models/clan.md b/docs/API Reference/api/models/clan.md new file mode 100644 index 0000000..3f78cc4 --- /dev/null +++ b/docs/API Reference/api/models/clan.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan diff --git a/docs/API Reference/api/models/clan_builder_base_ranking_list.md b/docs/API Reference/api/models/clan_builder_base_ranking_list.md new file mode 100644 index 0000000..ad5a01c --- /dev/null +++ b/docs/API Reference/api/models/clan_builder_base_ranking_list.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_builder_base_ranking_list diff --git a/docs/API Reference/api/models/clan_capital_raid_seasons.md b/docs/API Reference/api/models/clan_capital_raid_seasons.md new file mode 100644 index 0000000..f2ea2c8 --- /dev/null +++ b/docs/API Reference/api/models/clan_capital_raid_seasons.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_capital_raid_seasons diff --git a/docs/API Reference/api/models/clan_capital_ranking_list.md b/docs/API Reference/api/models/clan_capital_ranking_list.md new file mode 100644 index 0000000..40b39a6 --- /dev/null +++ b/docs/API Reference/api/models/clan_capital_ranking_list.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_capital_ranking_list diff --git a/docs/API Reference/api/models/clan_list.md b/docs/API Reference/api/models/clan_list.md new file mode 100644 index 0000000..a82802e --- /dev/null +++ b/docs/API Reference/api/models/clan_list.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_list diff --git a/docs/API Reference/api/models/clan_member.md b/docs/API Reference/api/models/clan_member.md new file mode 100644 index 0000000..0bd35b8 --- /dev/null +++ b/docs/API Reference/api/models/clan_member.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_member diff --git a/docs/API Reference/api/models/clan_member_list.md b/docs/API Reference/api/models/clan_member_list.md new file mode 100644 index 0000000..3c13b91 --- /dev/null +++ b/docs/API Reference/api/models/clan_member_list.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_member_list diff --git a/docs/API Reference/api/models/clan_ranking_list.md b/docs/API Reference/api/models/clan_ranking_list.md new file mode 100644 index 0000000..a65dd23 --- /dev/null +++ b/docs/API Reference/api/models/clan_ranking_list.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_ranking_list diff --git a/docs/API Reference/api/models/clan_war.md b/docs/API Reference/api/models/clan_war.md new file mode 100644 index 0000000..674e246 --- /dev/null +++ b/docs/API Reference/api/models/clan_war.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_war diff --git a/docs/API Reference/api/models/clan_war_league_group.md b/docs/API Reference/api/models/clan_war_league_group.md new file mode 100644 index 0000000..8c367fc --- /dev/null +++ b/docs/API Reference/api/models/clan_war_league_group.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_war_league_group diff --git a/docs/API Reference/api/models/clan_war_log.md b/docs/API Reference/api/models/clan_war_log.md new file mode 100644 index 0000000..f71bfa6 --- /dev/null +++ b/docs/API Reference/api/models/clan_war_log.md @@ -0,0 +1 @@ +::: pyclasher.api.models.clan_war_log diff --git a/docs/API Reference/api/models/enums.md b/docs/API Reference/api/models/enums.md new file mode 100644 index 0000000..e716d50 --- /dev/null +++ b/docs/API Reference/api/models/enums.md @@ -0,0 +1 @@ +::: pyclasher.api.models.enums diff --git a/docs/API Reference/api/models/gold_pass_season.md b/docs/API Reference/api/models/gold_pass_season.md new file mode 100644 index 0000000..3fed304 --- /dev/null +++ b/docs/API Reference/api/models/gold_pass_season.md @@ -0,0 +1 @@ +::: pyclasher.api.models.gold_pass_season diff --git a/docs/API Reference/api/models/labels.md b/docs/API Reference/api/models/labels.md new file mode 100644 index 0000000..394fbd0 --- /dev/null +++ b/docs/API Reference/api/models/labels.md @@ -0,0 +1 @@ +::: pyclasher.api.models.labels diff --git a/docs/API Reference/api/models/language.md b/docs/API Reference/api/models/language.md new file mode 100644 index 0000000..ca54662 --- /dev/null +++ b/docs/API Reference/api/models/language.md @@ -0,0 +1 @@ +::: pyclasher.api.models.language diff --git a/docs/API Reference/api/models/leagues.md b/docs/API Reference/api/models/leagues.md new file mode 100644 index 0000000..63fab04 --- /dev/null +++ b/docs/API Reference/api/models/leagues.md @@ -0,0 +1 @@ +::: pyclasher.api.models.leagues diff --git a/docs/API Reference/api/models/location.md b/docs/API Reference/api/models/location.md new file mode 100644 index 0000000..28c2854 --- /dev/null +++ b/docs/API Reference/api/models/location.md @@ -0,0 +1 @@ +::: pyclasher.api.models.location diff --git a/docs/API Reference/api/models/login/login_models.md b/docs/API Reference/api/models/login/login_models.md new file mode 100644 index 0000000..bd24ccc --- /dev/null +++ b/docs/API Reference/api/models/login/login_models.md @@ -0,0 +1 @@ +::: pyclasher.api.models.login.login_models diff --git a/docs/API Reference/api/models/misc/api.md b/docs/API Reference/api/models/misc/api.md new file mode 100644 index 0000000..0989ad9 --- /dev/null +++ b/docs/API Reference/api/models/misc/api.md @@ -0,0 +1 @@ +::: pyclasher.api.models.misc.api diff --git a/docs/API Reference/api/models/misc/posts.md b/docs/API Reference/api/models/misc/posts.md new file mode 100644 index 0000000..8eba707 --- /dev/null +++ b/docs/API Reference/api/models/misc/posts.md @@ -0,0 +1 @@ +::: pyclasher.api.models.misc.posts diff --git a/docs/API Reference/api/models/misc/responses.md b/docs/API Reference/api/models/misc/responses.md new file mode 100644 index 0000000..678f196 --- /dev/null +++ b/docs/API Reference/api/models/misc/responses.md @@ -0,0 +1 @@ +::: pyclasher.api.models.misc.responses diff --git a/docs/API Reference/api/models/misc/war_status.md b/docs/API Reference/api/models/misc/war_status.md new file mode 100644 index 0000000..969afeb --- /dev/null +++ b/docs/API Reference/api/models/misc/war_status.md @@ -0,0 +1 @@ +::: pyclasher.api.models.misc.war_status diff --git a/docs/API Reference/api/models/player.md b/docs/API Reference/api/models/player.md new file mode 100644 index 0000000..0a9b3da --- /dev/null +++ b/docs/API Reference/api/models/player.md @@ -0,0 +1 @@ +::: pyclasher.api.models.player diff --git a/docs/API Reference/api/models/player_builder_base_ranking_list.md b/docs/API Reference/api/models/player_builder_base_ranking_list.md new file mode 100644 index 0000000..88a0749 --- /dev/null +++ b/docs/API Reference/api/models/player_builder_base_ranking_list.md @@ -0,0 +1 @@ +::: pyclasher.api.models.player_builder_base_ranking_list diff --git a/docs/API Reference/api/models/player_house.md b/docs/API Reference/api/models/player_house.md new file mode 100644 index 0000000..e177beb --- /dev/null +++ b/docs/API Reference/api/models/player_house.md @@ -0,0 +1 @@ +::: pyclasher.api.models.player_house diff --git a/docs/API Reference/api/models/player_ranking_clan.md b/docs/API Reference/api/models/player_ranking_clan.md new file mode 100644 index 0000000..fa160a3 --- /dev/null +++ b/docs/API Reference/api/models/player_ranking_clan.md @@ -0,0 +1 @@ +::: pyclasher.api.models.player_ranking_clan diff --git a/docs/API Reference/api/models/player_ranking_list.md b/docs/API Reference/api/models/player_ranking_list.md new file mode 100644 index 0000000..d339ef9 --- /dev/null +++ b/docs/API Reference/api/models/player_ranking_list.md @@ -0,0 +1 @@ +::: pyclasher.api.models.player_ranking_list diff --git a/docs/API Reference/api/models/season.md b/docs/API Reference/api/models/season.md new file mode 100644 index 0000000..0ddf811 --- /dev/null +++ b/docs/API Reference/api/models/season.md @@ -0,0 +1 @@ +::: pyclasher.api.models.season diff --git a/docs/API Reference/api/models/war_clan.md b/docs/API Reference/api/models/war_clan.md new file mode 100644 index 0000000..70f8e9c --- /dev/null +++ b/docs/API Reference/api/models/war_clan.md @@ -0,0 +1 @@ +::: pyclasher.api.models.war_clan diff --git a/docs/API Reference/api/requests/abc.md b/docs/API Reference/api/requests/abc.md new file mode 100644 index 0000000..414a1f2 --- /dev/null +++ b/docs/API Reference/api/requests/abc.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.abc diff --git a/docs/API Reference/api/requests/builder_base_league.md b/docs/API Reference/api/requests/builder_base_league.md new file mode 100644 index 0000000..cbbcca2 --- /dev/null +++ b/docs/API Reference/api/requests/builder_base_league.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.builder_base_league diff --git a/docs/API Reference/api/requests/builder_base_leagues.md b/docs/API Reference/api/requests/builder_base_leagues.md new file mode 100644 index 0000000..ab92cd7 --- /dev/null +++ b/docs/API Reference/api/requests/builder_base_leagues.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.builder_base_leagues diff --git a/docs/API Reference/api/requests/capital_league.md b/docs/API Reference/api/requests/capital_league.md new file mode 100644 index 0000000..1e05e4b --- /dev/null +++ b/docs/API Reference/api/requests/capital_league.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.capital_league diff --git a/docs/API Reference/api/requests/capital_league_seasons.md b/docs/API Reference/api/requests/capital_league_seasons.md new file mode 100644 index 0000000..6fdded6 --- /dev/null +++ b/docs/API Reference/api/requests/capital_league_seasons.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.capital_league_seasons diff --git a/docs/API Reference/api/requests/capital_rankings.md b/docs/API Reference/api/requests/capital_rankings.md new file mode 100644 index 0000000..09c1a30 --- /dev/null +++ b/docs/API Reference/api/requests/capital_rankings.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.capital_rankings diff --git a/docs/API Reference/api/requests/clan.md b/docs/API Reference/api/requests/clan.md new file mode 100644 index 0000000..0aa5b4f --- /dev/null +++ b/docs/API Reference/api/requests/clan.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan diff --git a/docs/API Reference/api/requests/clan_builder_base_rankings.md b/docs/API Reference/api/requests/clan_builder_base_rankings.md new file mode 100644 index 0000000..ebbc161 --- /dev/null +++ b/docs/API Reference/api/requests/clan_builder_base_rankings.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_builder_base_rankings diff --git a/docs/API Reference/api/requests/clan_capital_raid_seasons.md b/docs/API Reference/api/requests/clan_capital_raid_seasons.md new file mode 100644 index 0000000..cf303e4 --- /dev/null +++ b/docs/API Reference/api/requests/clan_capital_raid_seasons.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_capital_raid_seasons diff --git a/docs/API Reference/api/requests/clan_current_war.md b/docs/API Reference/api/requests/clan_current_war.md new file mode 100644 index 0000000..a8eacf9 --- /dev/null +++ b/docs/API Reference/api/requests/clan_current_war.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_current_war diff --git a/docs/API Reference/api/requests/clan_currentwar_leaguegroup.md b/docs/API Reference/api/requests/clan_currentwar_leaguegroup.md new file mode 100644 index 0000000..c031cc6 --- /dev/null +++ b/docs/API Reference/api/requests/clan_currentwar_leaguegroup.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_currentwar_leaguegroup diff --git a/docs/API Reference/api/requests/clan_labels.md b/docs/API Reference/api/requests/clan_labels.md new file mode 100644 index 0000000..9f7f668 --- /dev/null +++ b/docs/API Reference/api/requests/clan_labels.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_labels diff --git a/docs/API Reference/api/requests/clan_members.md b/docs/API Reference/api/requests/clan_members.md new file mode 100644 index 0000000..9fa27a7 --- /dev/null +++ b/docs/API Reference/api/requests/clan_members.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_members diff --git a/docs/API Reference/api/requests/clan_rankings.md b/docs/API Reference/api/requests/clan_rankings.md new file mode 100644 index 0000000..c4eed36 --- /dev/null +++ b/docs/API Reference/api/requests/clan_rankings.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_rankings diff --git a/docs/API Reference/api/requests/clan_search.md b/docs/API Reference/api/requests/clan_search.md new file mode 100644 index 0000000..744cede --- /dev/null +++ b/docs/API Reference/api/requests/clan_search.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_search diff --git a/docs/API Reference/api/requests/clan_war_log.md b/docs/API Reference/api/requests/clan_war_log.md new file mode 100644 index 0000000..0838aa7 --- /dev/null +++ b/docs/API Reference/api/requests/clan_war_log.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_war_log diff --git a/docs/API Reference/api/requests/clan_warleagues_wars.md b/docs/API Reference/api/requests/clan_warleagues_wars.md new file mode 100644 index 0000000..70694ee --- /dev/null +++ b/docs/API Reference/api/requests/clan_warleagues_wars.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.clan_warleagues_wars diff --git a/docs/API Reference/api/requests/gold_pass.md b/docs/API Reference/api/requests/gold_pass.md new file mode 100644 index 0000000..ce1a6a2 --- /dev/null +++ b/docs/API Reference/api/requests/gold_pass.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.gold_pass diff --git a/docs/API Reference/api/requests/league.md b/docs/API Reference/api/requests/league.md new file mode 100644 index 0000000..394f309 --- /dev/null +++ b/docs/API Reference/api/requests/league.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.league diff --git a/docs/API Reference/api/requests/league_season.md b/docs/API Reference/api/requests/league_season.md new file mode 100644 index 0000000..1951ad7 --- /dev/null +++ b/docs/API Reference/api/requests/league_season.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.league_season diff --git a/docs/API Reference/api/requests/league_seasons.md b/docs/API Reference/api/requests/league_seasons.md new file mode 100644 index 0000000..8397a2b --- /dev/null +++ b/docs/API Reference/api/requests/league_seasons.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.league_seasons diff --git a/docs/API Reference/api/requests/leagues.md b/docs/API Reference/api/requests/leagues.md new file mode 100644 index 0000000..65fba5c --- /dev/null +++ b/docs/API Reference/api/requests/leagues.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.leagues diff --git a/docs/API Reference/api/requests/location.md b/docs/API Reference/api/requests/location.md new file mode 100644 index 0000000..8f4c96f --- /dev/null +++ b/docs/API Reference/api/requests/location.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.location diff --git a/docs/API Reference/api/requests/locations.md b/docs/API Reference/api/requests/locations.md new file mode 100644 index 0000000..1cb0d0d --- /dev/null +++ b/docs/API Reference/api/requests/locations.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.locations diff --git a/docs/API Reference/api/requests/player.md b/docs/API Reference/api/requests/player.md new file mode 100644 index 0000000..575e1fa --- /dev/null +++ b/docs/API Reference/api/requests/player.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.player diff --git a/docs/API Reference/api/requests/player_builder_base_rankings.md b/docs/API Reference/api/requests/player_builder_base_rankings.md new file mode 100644 index 0000000..188a810 --- /dev/null +++ b/docs/API Reference/api/requests/player_builder_base_rankings.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.player_builder_base_rankings diff --git a/docs/API Reference/api/requests/player_labels.md b/docs/API Reference/api/requests/player_labels.md new file mode 100644 index 0000000..ecfd468 --- /dev/null +++ b/docs/API Reference/api/requests/player_labels.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.player_labels diff --git a/docs/API Reference/api/requests/player_rankings.md b/docs/API Reference/api/requests/player_rankings.md new file mode 100644 index 0000000..6a06df0 --- /dev/null +++ b/docs/API Reference/api/requests/player_rankings.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.player_rankings diff --git a/docs/API Reference/api/requests/war_league.md b/docs/API Reference/api/requests/war_league.md new file mode 100644 index 0000000..6f7ed04 --- /dev/null +++ b/docs/API Reference/api/requests/war_league.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.war_league diff --git a/docs/API Reference/api/requests/war_leagues.md b/docs/API Reference/api/requests/war_leagues.md new file mode 100644 index 0000000..75ad06b --- /dev/null +++ b/docs/API Reference/api/requests/war_leagues.md @@ -0,0 +1 @@ +::: pyclasher.api.requests.war_leagues diff --git a/docs/API Reference/client/client.md b/docs/API Reference/client/client.md new file mode 100644 index 0000000..fa3d3bb --- /dev/null +++ b/docs/API Reference/client/client.md @@ -0,0 +1 @@ +::: pyclasher.client.client diff --git a/docs/API Reference/client/request_consumer.md b/docs/API Reference/client/request_consumer.md new file mode 100644 index 0000000..0534b04 --- /dev/null +++ b/docs/API Reference/client/request_consumer.md @@ -0,0 +1 @@ +::: pyclasher.client.request_consumer diff --git a/docs/API Reference/client/request_queue.md b/docs/API Reference/client/request_queue.md new file mode 100644 index 0000000..fccacc8 --- /dev/null +++ b/docs/API Reference/client/request_queue.md @@ -0,0 +1 @@ +::: pyclasher.client.request_queue diff --git a/docs/API Reference/exceptions.md b/docs/API Reference/exceptions.md index 112ae55..da88edd 100644 --- a/docs/API Reference/exceptions.md +++ b/docs/API Reference/exceptions.md @@ -1 +1 @@ -::: pyclasher.exceptions \ No newline at end of file +::: pyclasher.exceptions diff --git a/docs/API Reference/utils/exectimer.md b/docs/API Reference/utils/exectimer.md new file mode 100644 index 0000000..1bb2129 --- /dev/null +++ b/docs/API Reference/utils/exectimer.md @@ -0,0 +1 @@ +::: pyclasher.utils.exectimer diff --git a/docs/API Reference/utils/functions.md b/docs/API Reference/utils/functions.md new file mode 100644 index 0000000..3dbb3b7 --- /dev/null +++ b/docs/API Reference/utils/functions.md @@ -0,0 +1 @@ +::: pyclasher.utils.functions diff --git a/docs/API Reference/Utils/login.md b/docs/API Reference/utils/login.md similarity index 100% rename from docs/API Reference/Utils/login.md rename to docs/API Reference/utils/login.md diff --git a/docs/API Reference/utils/request_methods.md b/docs/API Reference/utils/request_methods.md new file mode 100644 index 0000000..f894ba1 --- /dev/null +++ b/docs/API Reference/utils/request_methods.md @@ -0,0 +1 @@ +::: pyclasher.utils.request_methods diff --git a/mkdocs.yml b/mkdocs.yml index 8d305aa..eabc871 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -54,6 +54,7 @@ plugins: python: options: show_source: true + - awesome-pages extra: version: @@ -65,3 +66,6 @@ extra: - icon: fontawesome/brands/github link: https://github.com/201st-Luka/PyClasher name: PyClasher on GitHub + +watch: + - pyclasher \ No newline at end of file diff --git a/pyclasher/client/client.py b/pyclasher/client/client.py index cdd7e79..7832f06 100644 --- a/pyclasher/client/client.py +++ b/pyclasher/client/client.py @@ -24,7 +24,7 @@ class Client: """ - this is the class for the ClashOfClans API client + ClashOfClans API client Attributes: __instances: the instances of the client @@ -52,24 +52,38 @@ class Client: logger = MISSING """Logger that logs the requests""" - def __new__(cls, *args, **kwargs): + def __new__(cls, *, tokens=None, **kwargs): + """ + Class method to create a new instance of the Client + + Args: + tokens (str | list[str] | None): the Bearer tokens for the authentication of the ClashOfClans API + **kwargs: other key word arguments + + Notes: + This function checks if all initialised clients do not share a + token. If so the ecxeption ``ClientAlreadyInitialised`` is raised. + + Raises: + InvalidType + ClientAlreadyInitialised + """ if cls.__instances is None: cls.__instances = [super().__new__(cls)] return cls.__instances[0] - if 'tokens' in kwargs: - if isinstance(kwargs['tokens'], str): - tokens = [kwargs['tokens']] - elif isinstance(kwargs['tokens'], Iterable): - tokens = list(kwargs['tokens']) - else: - raise InvalidType(kwargs['tokens'], - (str, Iterable[str])) - for token in tokens: - for client in Client.__instances: - if client.__tokens is not None: - if token in client.__tokens: - raise ClientAlreadyInitialised - continue + if isinstance(tokens, str): + tokens = [tokens] + elif isinstance(tokens, Iterable): + tokens = list(tokens) + else: + raise InvalidType(tokens, + (str, Iterable[str])) + for token in tokens: + for client in Client.__instances: + if client.__tokens is not None: + if token in client.__tokens: + raise ClientAlreadyInitialised + continue cls.__instances.append(super().__new__(cls)) return cls.__instances[-1] @@ -87,7 +101,7 @@ def __init__( Args: tokens (str | list[str] | None): the Bearer tokens for the authentication of the ClashOfClans API - requests_per_second (int=5): This integer limits the number of requests done per second (per token). + requests_per_second (int): This integer limits the number of requests done per second (per token). This value is important to bypass the rate limit of the ClashOfClans API. More tokens allow more requests per second because each token can do as many requests per second as specified. @@ -151,7 +165,7 @@ async def from_login(cls, email, password, requests_per_second=5, logger.info("initialising client via login") - self = cls([login.temporary_api_token for login in logins], + self = cls(tokens=[login.temporary_api_token for login in logins], requests_per_second=requests_per_second, request_timeout=request_timeout, swagger_url=logins[0].swagger_url) diff --git a/requirements-docs.txt b/requirements-docs.txt index 9fe48f2..23d4344 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -1,4 +1,5 @@ mkdocs mkdocs-material mkdocs-git-committers-plugin -mkdocstrings[python] \ No newline at end of file +mkdocstrings[python] +mkdocs-awesome-pages-plugin \ No newline at end of file