fsoubelet/AoE2NetAPIWrapper

View on GitHub
ensure docs extra has pandas to build converters module #98
Felix Soubelet authored 1d798e4a
complete00:00:14
Your first build completed successfully!

Congratulations

Your first build completed successfully!

See the Results

1
git clone
2
codeclimate validate-config
View output
codeclimate validate-config
No errors or warnings found in .codeclimate.yml.
3
codeclimate prepare
View output
codeclimate prepare
4
builder pull-engines
View output
determining required images
5
structure
View output
12
Parser process id: 12
codeclimate-parser socket not present
waiting 1s...
6
duplication
View output
12
Parser process id: 12
codeclimate-parser socket not present
waiting 1s...
I, [2024-10-29T05:20:42.499703 #1]  INFO -- : Skipping file ./aoe2netwrapper/models/num_online.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 17
    steam: int | None = Field(None, description="Number of players from Steam")
         ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.502373 #1]  INFO -- : Skipping file ./aoe2netwrapper/models/lobbies.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 19
    profile_id: int | None = Field(None, description="The ID attributed to the member by AoE II")
              ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.529521 #1]  INFO -- : Skipping file ./aoe2netwrapper/models/strings.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 20
    id: int | None = Field(None, description="ID for this specific string value")
      ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.530109 #1]  INFO -- : Skipping file ./aoe2netwrapper/models/last_match.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 19
    profile_id: int | None = Field(None, description="The ID attributed to the player by AoE II")
              ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.541950 #1]  INFO -- : Skipping file ./aoe2netwrapper/models/leaderboard.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 19
    profile_id: int | None = Field(None, description="The ID attributed to the player by AoE II")
              ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.556386 #1]  INFO -- : Skipping file ./aoe2netwrapper/models/rating_history.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 17
    rating: int | None = Field(None, description="The player's rating in the ELO system")
          ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.568160 #1]  INFO -- : Skipping file ./aoe2netwrapper/api.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 27
    _MAX_LEADERBOARD_COUNT: int = 10_000
                          ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.576068 #1]  INFO -- : Skipping file ./aoe2netwrapper/converters.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 23
    raise NotImplementedError(msg) from error
                                      ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.588518 #1]  INFO -- : Skipping file ./aoe2netwrapper/nightbot.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 18
    _OK_STATUS_CODE: int = 200
                   ^
SyntaxError: invalid syntax


I, [2024-10-29T05:20:42.594326 #1]  INFO -- : Skipping file ./aoe2netwrapper/exceptions.py due to exception (CC::Engine::Analyzers::ParserError): `python2 /usr/src/app/lib/cc/engine/analyzers/python/parser.py` exited with code 1:
Traceback (most recent call last):
  File "/usr/src/app/lib/cc/engine/analyzers/python/parser.py", line 51, in <module>
    print(json.dumps(to_json(ast.parse(source))))
  File "/usr/local/python2/lib/python2.7/ast.py", line 37, in parse
    return compile(source, filename, mode, PyCF_ONLY_AST)
  File "<unknown>", line 15
    def __init__(self, endpoint: str) -> None:
                               ^
SyntaxError: invalid syntax
7
sonar-python
sonar-python engine documentation
View output
INFO: Java 1.8.0_111-internal Oracle Corporation (64-bit)
INFO: Linux 4.4.0-1128-aws amd64
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/src/app/build/libs/sonarlint-core-2.17.0.899.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/src/app/build/libs/sonarlint-cli-2.1.0.566.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
INFO: Index files
INFO: Invalid character encountered in file '/code/docs/assets/attribute_autocompletion.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: Invalid character encountered in file '/code/docs/assets/parameter_autocompletion.png' at line 1 for encoding UTF-8. Please fix file content or configure the encoding to be used using property 'sonar.sourceEncoding'.
INFO: 26 files indexed
ERROR: Unable to parse file: /code/aoe2netwrapper/models/num_online.py
ERROR: Parse error at line 17 column 9:

    1: """
    2: aoe2netwrapper.models.num_online
    3: --------------------------------
    4: 
    5: This module contains the model objects to encapsulate the responses from the endpoint at
    6: https://aoe2.net/api/stats/players
    7: """
    8: 
    9: from __future__ import annotations
   10: 
   11: from pydantic import BaseModel, Field
   12: 
   13: 
   14: class NumPlayers(BaseModel):
   15:     """A model to encapsulate the metrics from the num_online API."""
   16: 
  -->      steam: int | None = Field(None, description="Number of players from Steam")
   18:     multiplayer: int | None = Field(None, description="Number of people playing multiplayer")
   19:     looking

ERROR: Unable to parse file: /code/aoe2netwrapper/models/lobbies.py
ERROR: Parse error at line 19 column 14:

    1: """
    2: aoe2netwrapper.models.lobbies
    3: -----------------------------
    4: 
    5: This module contains the model objects to encapsulate the responses from the endpoint at
    6: https://aoe2.net/api/lobbies
    7: """
    8: 
    9: from __future__ import annotations
   10: 
   11: from typing import Any
   12: 
   13: from pydantic import BaseModel, Field
   14: 
   15: 
   16: class LobbyMember(BaseModel):
   17:     """An object to encapsulate any entry in the leaderboard ranking."""
   18: 
  -->      profile_id: int | None = Field(None, description="The ID attributed to the member by AoE II")
   20:     steam_id: int | None = Field(None, description="ID of the member on the Steam platform")
   21:     name

ERROR: Unable to parse file: /code/aoe2netwrapper/models/last_match.py
ERROR: Parse error at line 19 column 14:

    9: import annotations
   10: 
   11: from pydantic import BaseModel, Field
   12: 
   13: from aoe2netwrapper.models.lobbies import MatchLobby
   14: 
   15: 
   16: class LastMatchResponse(BaseModel):
   17:     """An object to encapsulate the response from the last_match API."""
   18: 
  -->      profile_id: int | None = Field(None, description="The ID attributed to the player by AoE II")
   20:     steam_id: int | None = Field(None, description="ID of the player on the Steam platform")
   21:     name

ERROR: Unable to parse file: /code/aoe2netwrapper/models/strings.py
ERROR: Parse error at line 20 column 6:

    1: """
    2: aoe2netwrapper.models.strings
    3: -----------------------------
    4: 
    5: This module contains the model objects to encapsulate the responses from the endpoint at
    6: https://aoe2.net/api/strings
    7: 
    8: Any confusing with a specific attribute being an INTEGER in the models can be cleared by checking the
    9: corresponding string the API / system attributes to this ID.
   10: """
   11: 
   12: from __future__ import annotations
   13: 
   14: from pydantic import BaseModel, Field
   15: 
   16: 
   17: class AgeString(BaseModel):
   18:     """An object to encapsulate any entry for the available age strings and their respective IDs."""
   19: 
  -->      id: int | None = Field(None, description="ID for this specific string value")
   21:     string: str | None = Field(None, description="String value for this specific 'age' ID")
   22: 
   23: 
   24: 

ERROR: Unable to parse file: /code/aoe2netwrapper/models/leaderboard.py
ERROR: Parse error at line 19 column 14:

    1: """
    2: aoe2netwrapper.models.leaderboard
    3: ---------------------------------
    4: 
    5: This module contains the model objects to encapsulate the responses from the endpoint at
    6: https://aoe2.net/api/leaderboard
    7: """
    8: 
    9: from __future__ import annotations
   10: 
   11: from typing import Any
   12: 
   13: from pydantic import BaseModel, Field
   14: 
   15: 
   16: class LeaderBoardSpot(BaseModel):
   17:     """An object to encapsulate any entry in the leaderboard ranking."""
   18: 
  -->      profile_id: int | None = Field(None, description="The ID attributed to the player by AoE II")
   20:     rank: int | None = Field(None, description="The player's rank on the ladder")
   21:     rating

ERROR: Unable to parse file: /code/aoe2netwrapper/models/rating_history.py
ERROR: Parse error at line 17 column 10:

    1: """
    2: aoe2netwrapper.models.rating_history
    3: ------------------------------------
    4: 
    5: This module contains the model objects to encapsulate the responses from the endpoint at
    6: https://aoe2.net/api/player/ratinghistory
    7: """
    8: 
    9: from __future__ import annotations
   10: 
   11: from pydantic import BaseModel, Field
   12: 
   13: 
   14: class RatingTimePoint(BaseModel):
   15:     """An object to encapsulate any entry in the list of returned ranking timestamped data points."""
   16: 
  -->      rating: int | None = Field(None, description="The player's rating in the ELO system")
   18:     num_wins: int | None = Field(None, description="Total amount of wins")
   19:     num_losses

ERROR: Unable to parse file: /code/aoe2netwrapper/api.py
ERROR: Parse error at line 27 column 22:

   17: from aoe2netwrapper.exceptions import Aoe2NetError, RemovedApiEndpointError
   18: from aoe2netwrapper.models import (
   19:     LastMatchResponse,
   20:     LeaderBoardResponse,
   21:     MatchLobby,
   22:     NumOnlineResponse,
   23:     RatingTimePoint,
   24:     StringsResponse,
   25: )
   26: 
  -->  _MAX_LEADERBOARD_COUNT: int = 10_000
   28: _MAX_MATCH_HISTORY_COUNT: int = 1_000
   29: _MAX_RATING_HISTORY_COUNT: int = 10_000
   30: _MAX_MATCHES_COUNT: int = 1_000
   31: _OK_STATUS_CODE: int

ERROR: Unable to parse file: /code/aoe2netwrapper/nightbot.py
ERROR: Parse error at line 18 column 15:

    1: """
    2: aoe2netwrapper.nightbot
    3: -----------------------
    4: 
    5: This module implements a high-level client to query the API at https://aoe2.net/#nightbot.
    6: """
    7: 
    8: from __future__ import annotations
    9: 
   10: from typing import Any
   11: 
   12: import requests
   13: 
   14: from loguru import logger
   15: 
   16: from aoe2netwrapper.exceptions import NightBotError
   17: 
  -->  _OK_STATUS_CODE: int = 200
   19: 
   20: 
   21: class AoE2NightbotAPI:
   22:     """
   23:     The 'AoE2NightbotAPI' class is a client that encompasses the https://aoe2.net/#nightbot API endpoints,
   24:     which only return their requested data as plain text.
   25:     """
   26: 
   27:     NIGHTBOT_BASE_URL: str = "https://aoe2.net/api/nightbot"
   28:     RANK_DETAILS_ENDPOINT = NIGHTBOT_BASE_URL + "/rank"
   29:     RECENT_OPPONENT_ENDPOINT = NIGHTBOT_BASE_URL + "/opponent"
   30: 

INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 0.588s
INFO: Final Memory: 6M/295M
INFO: ------------------------------------------------------------------------