diff --git a/modulos/__pycache__/coingecko_api.cpython-312.pyc b/modulos/__pycache__/coingecko_api.cpython-312.pyc index 9d81935..febabca 100644 Binary files a/modulos/__pycache__/coingecko_api.cpython-312.pyc and b/modulos/__pycache__/coingecko_api.cpython-312.pyc differ diff --git a/modulos/coingecko_api.py b/modulos/coingecko_api.py index 36a13be..ddf0b71 100644 --- a/modulos/coingecko_api.py +++ b/modulos/coingecko_api.py @@ -2,6 +2,7 @@ # . documentação API: https://docs.coingecko.com/v3.0.1/reference/introduction import requests +from typing import Any CHAVE_API = 'CG-K5RS5VXsdFDip2UvY3z8VjQP' headers = { @@ -12,7 +13,10 @@ headers = { url_raiz_API = 'https://api.coingecko.com/api/v3/' # chamada API geral -def API(api_endpoint: str = '', api_parameters_dict: dict[str, str] = {}) -> tuple[str, int, dict]: +def API( + api_endpoint: str = '', + api_parameters_dict: dict[str, str] = {} +) -> tuple[str, int, dict[Any, Any]]: '''função genérica para fazer uma chamada a API CoinGecko''' # validar parametros # api_endpoint @@ -59,7 +63,7 @@ def coin_price_by_ids( include_24hr_change: bool = False, include_last_updated_at: bool = False, precision: int | str = '' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/simple-price consultar preço de um ou mais moedas usando o seu ID de Moeda @@ -71,7 +75,7 @@ def coin_price_by_ids( vs_currencies (obrigatorio)''' # dicionario de parametros - api_parameters= { + api_parameters: dict[str, str] = { 'ids': '', 'vs_currencies': '', 'include_24hr_vol': '', @@ -152,7 +156,7 @@ def coin_price_by_token_addresses( include_24hr_change: bool = False, include_last_updated_at: bool = False, precision: int | str = '' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/simple-token-price consultar preco de tokens usando os endereços de contrato dos tokens @@ -164,7 +168,7 @@ def coin_price_by_token_addresses( vs_currencies (obrigatorio) - moedas de referencia, separadas por virgula se forem mais que 1''' # dicionario de parametros - api_parameters= { + api_parameters: dict[str, str]= { 'id_platform': '', 'contract_addresses': '', 'vs_currencies': '', @@ -245,7 +249,7 @@ def coin_price_by_token_addresses( # print(f'erro {codigo}: {dados}') -def supported_currencies_list() -> tuple[str, int, dict]: +def supported_currencies_list() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/simple-supported-currencies este endpoint permite consultar quais as moedas de referencia suportadas pela CoinGecko''' @@ -262,14 +266,14 @@ def supported_currencies_list() -> tuple[str, int, dict]: # print(f'erro {codigo}: {dados}') -def coins_list(include_platform: bool = False) -> tuple[str, int, dict]: +def coins_list(include_platform: bool = False) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-list obter todas as moedas suportadas em CoinGecko com IDs, nome, simbolo e (no caso de contractos) endereco na plataforma das moedas ''' # dicionario de parametros - api_parameters= { + api_parameters: dict[str, str]= { 'include_platform': '', } # validacao parametros @@ -322,7 +326,7 @@ def coins_list_with_market_data( price_change_percentage: str = '', locale: str = '', precision: int | str = '' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: ''' https://docs.coingecko.com/v3.0.1/reference/coins-markets @@ -330,7 +334,7 @@ def coins_list_with_market_data( ''' # dicionario de parametros para passar para a API, todos os valores tem de ser do tipo 'str' - api_parameters = { + api_parameters: dict[str, str] = { 'vs_currency': '', 'ids': '', 'category': '', @@ -433,7 +437,7 @@ def coin_data_by_id( community_data: bool = True, developer_data: bool = True, sparkline: bool = False, -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-id este endpoint permite fazer uma consulta a todos os dados de uma moeda @@ -441,7 +445,7 @@ def coin_data_by_id( CoinGecko com base numa id de moeda ''' # dicionario de parametros - api_parameters = { + api_parameters: dict[str, str] = { 'id': '', 'localization': '', 'tickers': '', @@ -507,7 +511,7 @@ def coin_tickers_by_id( page: int = -1, order: str = '', depth: bool = False -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-id-tickers este endpoint permite fazer uma consulta de tickers tanto em @@ -575,7 +579,7 @@ def coin_historical_data_by_id( id_criptomoeda: str = '', date: str = '', localization: bool = True -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-id-history este endpoint permite fazer consulta de dados historicos (preco, cap mercado, volume 24h, @@ -626,14 +630,14 @@ def coin_historical_chart_data_by_id( days: str = '', interval: str = '', precision: int | str = 'full' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-id-market-chart este endpoint permite fazer consulta para obter dados historicos graficos que incluem tempo unix, preco, capitalizacao mercado e volume 24h a partir de um id de moeda ''' # dicionario parametros - api_parameters = { + api_parameters: dict[str, str] = { 'id': '', 'vs_currency': '', 'days': '', @@ -698,14 +702,14 @@ def coin_historical_chart_data_within_time_range_by_id( from_unix: int = -1, to_unix: int = -1, precision: str | int = 'full' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-id-market-chart-range este endpoint permite obter dados historicos graficos compreendidos num periodo de tempo unix com preco, capitalizacao de mercado e volume 24hrs a partir de um id de moeda ''' # dicionario parametros - api_parameters = { + api_parameters: dict[str, str] = { 'id': '', 'vs_currency': '', 'from': '', @@ -769,14 +773,14 @@ def coin_ohlc_chart_by_id( vs_currency: str = '', days: str = '', precision: str | int = 'full' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-id-ohlc este endpoint permite fazer consulta ao gráfico OHLC (Open, High, Low, Close) de uma moeda usando o seu id ''' # dicionario parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', 'vs_currency': '', 'days': '', @@ -834,7 +838,7 @@ def coin_ohlc_chart_by_id( def coin_data_by_token_address( id_platform: str = '', contract_address: str = '' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-contract-address este endpoint permite consultar todos os dados de uma moeda (nome, preço, mercado... @@ -842,7 +846,7 @@ def coin_data_by_token_address( e do endereço do contrato do token ''' # dicionario parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', 'contract_address': '', } @@ -880,7 +884,7 @@ def coin_historical_chart_data_by_token_address( days: str = '', interval: str = '', precision: str | int = 'full' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/contract-address-market-chart este endpoint permite consultar dados historicos graficos incluindo tempo UNIX, @@ -888,7 +892,7 @@ def coin_historical_chart_data_by_token_address( endereco de contracto do token ''' # dicionario parameters - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', 'contract_address': '', 'vs_currency': '', @@ -962,7 +966,7 @@ def coin_historical_chart_data_within_time_range_by_token_address( from_unix: int = -1, to_unix: int = -1, precision: str | int = 'full' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/contract-address-market-chart-range est endpoint permite obter dados historicos graficos compreendidos num determinado @@ -970,7 +974,7 @@ def coin_historical_chart_data_within_time_range_by_token_address( partir da plataforma do activo e o seu endereco de contrato ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', 'contract_address': '', 'vs_currency': '', @@ -1040,14 +1044,14 @@ def coin_historical_chart_data_within_time_range_by_token_address( # print(f'erro {codigo}: {dados}') -def assets_platforms_list(filter: str = '') -> tuple[str, int, dict]: +def assets_platforms_list(filter: str = '') -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/asset-platforms-list este endpoint permite fazer obter a lista de todas as plataformas de activos na CoinGecko ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'filter': '', } # validacao de parametros @@ -1067,13 +1071,13 @@ def assets_platforms_list(filter: str = '') -> tuple[str, int, dict]: # else: # print(f'erro {codigo}: {dados}') -def coins_categories_list() -> tuple[str, int, dict]: +def coins_categories_list() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-categories-list este endpoint permite obter todas as categorias de moedas da CoinGecko ''' # dicionario de parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validação de parametros return API(f'coins/categories/list', api_parameters) @@ -1088,14 +1092,14 @@ def coins_categories_list() -> tuple[str, int, dict]: # print(f'erro {codigo}: {dados}') -def coins_categories_list_with_market_data(order: str = '') -> tuple[str, int, dict]: +def coins_categories_list_with_market_data(order: str = '') -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/coins-categories este endpoint permite obter a lista de categorias de moedas da CoinGecko, com dados de mercado (capitalização de mercado, volume, etc) ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'order': '' } # validacao de parametros @@ -1118,14 +1122,14 @@ def coins_categories_list_with_market_data(order: str = '') -> tuple[str, int, d def exchanges_list_with_data( per_page: int = -1, page: int = -1, -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/exchanges este endpoit permite obter todos os dados (id, nome, pais, etc) das correctoras suportadas que têm volumes de transacoes activas na CoinGecko ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'per_page': '', 'page': '', } @@ -1153,14 +1157,14 @@ def exchanges_list_with_data( # else: # print(f'erro {codigo}: {dados}') -def exchanges_list() -> tuple[str, int, dict]: +def exchanges_list() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/exchanges-list este endpoint permite obter uma lista com o id e nome de todas as correctoras ''' # dicionario de parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validacao de parametros return API(f'exchanges/list', api_parameters) @@ -1176,14 +1180,14 @@ def exchanges_list() -> tuple[str, int, dict]: # print(f'erro {codigo}: {dados}') -def exchange_data_by_id(id_exchange: str = '') -> tuple[str, int, dict]: +def exchange_data_by_id(id_exchange: str = '') -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/exchanges-id este endpoint permite obter dados sobre uma correctora (nome, data de estabelecimento, pais, etc), volume em BTC da correctora e top 100 tickers a partir do id da correctora ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', } # validacao de parametros @@ -1213,14 +1217,14 @@ def exchange_tickers_by_id( page: int = -1, depth: bool = False, order: str = '' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/exchanges-id-tickers este endpoint permite obter os tickers de uma correctora a partir da id da correctora ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', 'coin_ids': '', 'include_exchange_logo': '', @@ -1275,14 +1279,14 @@ def exchange_tickers_by_id( def exchange_volume_chart_by_id( id_exchange: str = '', days: str = '' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/exchanges-id-volume-chart este endpoint permite obter dados de volume historico grafico com tempo UNIX e volume de negociação em BTC a partir do id da correctora ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', 'days': '', } @@ -1312,14 +1316,14 @@ def exchange_volume_chart_by_id( # else: # print(f'erro {codigo}: {dados}') -def derivatives_tickers_list() -> tuple[str, int, dict]: +def derivatives_tickers_list() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/derivatives-tickers este endpoint permite obter uma lista com dados dos tickers das correctoras de derivativos da CoinGecko ''' # dicionario de parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validacao de parametros return API(f'derivatives', api_parameters) @@ -1338,14 +1342,14 @@ def derivatives_exchange_list_with_data( order: str = '', per_page: int = -1, page: int = -1 -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/derivatives-exchanges este endpoint permite obter todas as correctoras de derivativos com os seus dados (id, nome, contractos em aberto, etc) disponiveis na CoinGecko ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'order': '', 'per_page': '', 'page': '', @@ -1381,14 +1385,14 @@ def derivatives_exchange_list_with_data( def derivatives_exchange_data_by_id( id_exchange: str = '', include_tickers: str = '', -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/derivatives-exchanges-id este endpoint permite obter os dados relativos a uma correctora de derivados (id, nome, contractos em aberto, etc) a partir do id da correctora) ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', 'include_tickers': '', } @@ -1416,14 +1420,14 @@ def derivatives_exchange_data_by_id( # else: # print(f'erro {codigo}: {dados}') -def derivatives_exchanges_list() -> tuple[str, int, dict]: +def derivatives_exchanges_list() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/derivatives-exchanges-list este endpoint permite obter uma lista dos derivados de correctoras com id e nome da CoinGecko ''' # dicionario de parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validacao de parametros return API(f'derivatives/exchanges/list', api_parameters) @@ -1442,14 +1446,14 @@ def nfts_list( order: str = '', per_page: int = -1, page: int = -1 -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/nfts-list este endpoint permite obter todos os NFTs suportados com id, endereço de contracto, nome, id da platforma do activo e o simbolo da CoinGecko ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'order': '', 'per_page': '', 'page': '', @@ -1482,14 +1486,14 @@ def nfts_list( # else: # print(f'erro {codigo}: {dados}') -def nfts_collection_data_by_id(id_nft: str = '') -> tuple[str, int, dict]: +def nfts_collection_data_by_id(id_nft: str = '') -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/nfts-id este endpoint permite obter todos os dados do NTF (nome, preco minimo, volume 24hrs, etc) a partir do id da coleccao NFT ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'id': '', } # validacao de parametros @@ -1515,14 +1519,14 @@ def nfts_collection_data_by_id(id_nft: str = '') -> tuple[str, int, dict]: def nfts_collection_data_by_contract_address( asset_platform_id: str = '', contract_address: str = '' -) -> tuple[str, int, dict]: +) -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/nfts-contract-address este endpoint permite obter toda a informação do NFT (nome, preco minimo, volume 24hrs, etc) a partir do endereco de contracto da colecao NFT e respectiva plataforma de activo ''' # dicionario parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'asset_platform_id': '', 'contract_address': '', } @@ -1552,13 +1556,13 @@ def nfts_collection_data_by_contract_address( # else: # print(f'erro {codigo}: {dados}') -def btc_to_currency_exchange_rates() -> tuple[str, int, dict]: +def btc_to_currency_exchange_rates() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/exchange-rates este endpoint permite consultar a taxa de conversão BTC com outras moedas ''' # dicionario parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validacao de parametros return API(f'exchange_rates', api_parameters) @@ -1573,13 +1577,13 @@ def btc_to_currency_exchange_rates() -> tuple[str, int, dict]: # else: # print(f'erro {codigo}: {dados}') -def search_queries(query: str = '') -> tuple[str, int, dict]: +def search_queries(query: str = '') -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/search-data este endpoint permite realizar um pesquisa por moedas, categorias e mercados listados em CoinGecko ''' # dicionario parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'query': '', } # validacao de parametros @@ -1601,14 +1605,14 @@ def search_queries(query: str = '') -> tuple[str, int, dict]: # else: # print(f'erro {codigo}: {dados}') -def trending_search_list() -> tuple[str, int, dict]: +def trending_search_list() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/trending-search este endpoint permite consultar as moedas, nfts e categorias com mais procura na CoinGecko nas ultimas 24hrs ''' # dicionario de parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validacao de parametros return API(f'search/trending', api_parameters) @@ -1623,7 +1627,7 @@ def trending_search_list() -> tuple[str, int, dict]: # else: # print(f'erro {codigo}: {dados}') -def crypto_global_market_data() -> tuple[str, int, dict]: +def crypto_global_market_data() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/crypto-global este endpoint permite consultar dados globais de criptomoedas incluindo @@ -1631,7 +1635,7 @@ def crypto_global_market_data() -> tuple[str, int, dict]: criptomoedas, etc ''' # dicionario de parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validacao de parametros return API(f'global', api_parameters) @@ -1646,14 +1650,14 @@ def crypto_global_market_data() -> tuple[str, int, dict]: # else: # print(f'erro {codigo}: {dados}') -def global_defi_market_data() -> tuple[str, int, dict]: +def global_defi_market_data() -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/global-defi este endpoint permite consultar os dados do top100 global das financas descentralizadas de criptomoedas, incluindo capitalizacao de mercado DeFi e volume de negociacao ''' # dicionario de parametros - api_parameters: dict = {} + api_parameters: dict[str, str] = {} # validacao de parametros return API(f'global/decentralized_finance_defi', api_parameters) @@ -1667,13 +1671,13 @@ def global_defi_market_data() -> tuple[str, int, dict]: # else: # print(f'erro {codigo}: {dados}') -def public_companies_holdings(coin_id: str = '') -> tuple[str, int, dict]: +def public_companies_holdings(coin_id: str = '') -> tuple[str, int, dict[Any, Any]]: '''https://docs.coingecko.com/v3.0.1/reference/companies-public-treasury este endpoint permite consultar a participação/posse de BTC ou ETH de empresas ''' # dicionario de parametros - api_parameters: dict = { + api_parameters: dict[str, str] = { 'coin_id': '', } # validacao de parametros