diff --git a/.gitignore b/.gitignore index e8d8674..91fc493 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ # Created by venv; see https://docs.python.org/3/library/venv.html /modulos/__pycache__/* +/modulos/constantes.py diff --git a/Novo Documento.rnote b/Novo Documento.rnote new file mode 100644 index 0000000..32b4034 Binary files /dev/null and b/Novo Documento.rnote differ diff --git a/crypto_portfolio.py b/crypto_portfolio.py index ae6e015..3ac4324 100644 --- a/crypto_portfolio.py +++ b/crypto_portfolio.py @@ -45,7 +45,8 @@ portfolio_headers = ["data", "moeda", "quantidade", "movimento"] # introduzir quantidade de criptomoeda detida qtd_criptomoeda = float( - input(f"Introduza valor de {criptomoeda} detida: ").replace(",", ".")) + input(f"Introduza valor de {criptomoeda} detida: ").replace(",", ".") +) # se não houver ficheiro 'dados/{criptomoeda}.csv' criar ficheiro caminho_ficheiro_historico_csv = f"./dados/{criptomoeda}.csv" @@ -131,9 +132,8 @@ for item in dados: cripto_vs_euro = float(dados[len(dados) - 1][cabecalho[6]]) # valor em eur da quantidade de criptomoeda detida print( - f"Valor de {qtd_criptomoeda} {criptomoeda} em EUR: { - (qtd_criptomoeda * cripto_vs_euro):.2f - }€" + f"Valor de {qtd_criptomoeda} {criptomoeda} em EUR: \ + {(qtd_criptomoeda * cripto_vs_euro):.2f}€" ) diff --git a/dados/bitcoin.csv b/dados/bitcoin.csv index 74f6db0..4f8cf03 100644 --- a/dados/bitcoin.csv +++ b/dados/bitcoin.csv @@ -335,3 +335,198 @@ data_unix,criptomoeda,vs_currency,Open,High,Low,Close 1742601600000,bitcoin,eur,77611.586,77901.264,77238.365,77238.365 1742688000000,bitcoin,eur,77396.047,77426.005,76977.572,77054.902 1742774400000,bitcoin,eur,78619.966,79283.333,78544.127,79173.134 +1742860800000,bitcoin,eur,81707.977,81915.294,80667.847,80835.786 +1742947200000,bitcoin,eur,81701.411,81929.125,80870.513,81135.607 +1743033600000,bitcoin,eur,80671.229,81240.534,80631.253,80937.686 +1743120000000,bitcoin,eur,80613.919,81248.06,80539.532,80762.248 +1743206400000,bitcoin,eur,77393.293,77677.501,77197.233,77568.363 +1743292800000,bitcoin,eur,75860.751,76036.787,75632.413,76023.334 +1743379200000,bitcoin,eur,75873.082,76445.391,75460.237,76084.449 +1743465600000,bitcoin,eur,76160.691,76513.29,76065.594,76278.009 +1743552000000,bitcoin,eur,78720.408,79182.276,78633.009,78934.694 +1743638400000,bitcoin,eur,80050.958,80698.329,75676.818,75695.38 +1743724800000,bitcoin,eur,74391.8,75401.248,74127.05,75301.415 +1743811200000,bitcoin,eur,76754.919,77029.145,76249.468,76509.59 +1743897600000,bitcoin,eur,75588.624,76275.895,75588.624,76275.895 +1743984000000,bitcoin,eur,72666.141,73028.545,70168.871,71140.696 +1744070400000,bitcoin,eur,71493.419,73436.817,71493.419,72531.241 +1744156800000,bitcoin,eur,70072.41,70361.137,69491.454,69491.454 +1744243200000,bitcoin,eur,75213.574,76175.572,74971.066,75456.184 +1744329600000,bitcoin,eur,71208.283,71381.602,70705.922,70705.922 +1744416000000,bitcoin,eur,73912.055,74049.782,73294.207,73506.175 +1744502400000,bitcoin,eur,74752.726,75391.622,74752.726,75105.764 +1744588800000,bitcoin,eur,73882.506,74486.732,73394.93,73716.11 +1744675200000,bitcoin,eur,74770.647,74823.577,74437.379,74558.645 +1744761600000,bitcoin,eur,74430.337,74577.473,74064.188,74064.188 +1744848000000,bitcoin,eur,74029.71,74237.671,73774.73,73774.73 +1744934400000,bitcoin,eur,74610.835,74840.482,74569.425,74681.531 +1745020800000,bitcoin,eur,74328.748,74402.517,74195.903,74244.37 +1745107200000,bitcoin,eur,74814.107,75023.237,74803.975,74853.662 +1745193600000,bitcoin,eur,74463.292,74722.419,74109.645,74302.903 +1745280000000,bitcoin,eur,75870.39,75967.757,75524.811,75967.757 +1745366400000,bitcoin,eur,80097.807,82512.507,79780.325,82373.976 +1745452800000,bitcoin,eur,82572.37,82969.372,82357.24,82601.289 +1745539200000,bitcoin,eur,82226.996,82579.824,81870.968,82541.333 +1745625600000,bitcoin,eur,83906.947,83906.947,82992.552,83097.065 +1745712000000,bitcoin,eur,82761.118,83219.25,82655.727,83069.097 +1745798400000,bitcoin,eur,83084.571,83169.002,82614.709,82671.168 +1745884800000,bitcoin,eur,82925.313,83403.676,82622.118,83297.368 +1745971200000,bitcoin,eur,83771.858,83782.785,82426.757,82775.558 +1746057600000,bitcoin,eur,83093.697,83600.712,83093.697,83211.489 +1746144000000,bitcoin,eur,85422.412,85744.055,85262.802,85360.41 +1746230400000,bitcoin,eur,85801.427,85980.458,85524.587,85692.964 +1746316800000,bitcoin,eur,85273.647,85298.952,84867.758,84867.758 +1746403200000,bitcoin,eur,84563.463,84739.955,83236.498,83301.348 +1746489600000,bitcoin,eur,83410.781,84069.269,83106.968,83747.754 +1746576000000,bitcoin,eur,83520.35,85389.764,83126.891,85389.764 +1746662400000,bitcoin,eur,85068.004,86163.895,85068.004,85813.627 +1746748800000,bitcoin,eur,90105.773,92131.934,90105.773,91820.346 +1746835200000,bitcoin,eur,91688.149,91840.878,91398.247,91518.254 +1746921600000,bitcoin,eur,91781.3,93118.293,91728.39,93001.157 +1747008000000,bitcoin,eur,92850.698,93301.575,92379.728,92608.064 +1747094400000,bitcoin,eur,91789.921,92915.572,91789.921,92720.521 +1747180800000,bitcoin,eur,93640.333,93640.333,93010.375,93135.413 +1747267200000,bitcoin,eur,92627.179,92727.326,92508.163,92628.749 +1747353600000,bitcoin,eur,92174.951,92728.096,92119.329,92661.577 +1747440000000,bitcoin,eur,93154.792,93200.295,92688.203,92774.92 +1747526400000,bitcoin,eur,92437.949,92610.353,92294.263,92467.029 +1747612800000,bitcoin,eur,93317.452,94801.887,92882.825,94801.887 +1747699200000,bitcoin,eur,93784.655,94101.221,93600.63,94038.277 +1747785600000,bitcoin,eur,94666.198,94840.212,94177.3,94607.695 +1747872000000,bitcoin,eur,95763.848,96891.653,95393.838,96787.034 +1747958400000,bitcoin,eur,98631.105,98871.817,98282.54,98871.817 +1748044800000,bitcoin,eur,95633.288,95633.288,94299.526,94299.526 +1748131200000,bitcoin,eur,95817.306,95930.769,94840.165,94840.165 +1748217600000,bitcoin,eur,94743.869,95810.068,94551.304,95724.258 +1748304000000,bitcoin,eur,95786.332,96182.901,95784.777,96017.008 +1748390400000,bitcoin,eur,96981.79,96995.626,95965.053,96193.035 +1748476800000,bitcoin,eur,94975.642,96315.024,94841.31,95930.692 +1748563200000,bitcoin,eur,93072.126,93579.461,92934.148,92934.148 +1748649600000,bitcoin,eur,92164.529,92397.339,91608.031,91658.583 +1748736000000,bitcoin,eur,92319.475,92438.184,92248.055,92254.819 +1748822400000,bitcoin,eur,92652.383,93152.649,92560.949,93091.614 +1748908800000,bitcoin,eur,91206.502,92458.451,91206.502,92458.451 +1748995200000,bitcoin,eur,93482.275,93482.275,92624.399,92624.399 +1749081600000,bitcoin,eur,92046.088,92046.088,91677.268,91782.995 +1749168000000,bitcoin,eur,89385.167,89385.167,88047.304,88768.236 +1749254400000,bitcoin,eur,91486.767,91738.82,91486.767,91583.534 +1749340800000,bitcoin,eur,92750.408,92883.107,92699.016,92699.016 +1749427200000,bitcoin,eur,93248.824,93336.75,92615.632,92659.653 +1749513600000,bitcoin,eur,95012.944,96551.869,95012.944,96512.949 +1749600000000,bitcoin,eur,95875.922,96361.527,95727.899,96361.527 +1749686400000,bitcoin,eur,94688.271,95008.376,94154.907,94451.702 +1749772800000,bitcoin,eur,92268.5,92331.489,91370.788,91371.688 +1749859200000,bitcoin,eur,91071.288,91830.79,91057.931,91818.279 +1749945600000,bitcoin,eur,90706.539,91357.157,90403.562,91331.108 +1750032000000,bitcoin,eur,91159.442,91424.707,90589.651,91393.092 +1750118400000,bitcoin,eur,93955.301,94091.434,92573.813,92573.813 +1750204800000,bitcoin,eur,91351.006,91351.006,90856.316,91181.147 +1750291200000,bitcoin,eur,90615.999,91535.562,90495.262,91265.2 +1750377600000,bitcoin,eur,90684.281,91091.604,90648.407,90951.049 +1750464000000,bitcoin,eur,89788.252,90022.035,89399.347,89626.58 +1750550400000,bitcoin,eur,88803.202,89251.465,87872.653,88101.536 +1750636800000,bitcoin,eur,85825.73,87814.346,85813.316,87680.63 +1750723200000,bitcoin,eur,89062.584,91313.969,89048.286,90967.48 +1750809600000,bitcoin,eur,90913.263,91383.494,90903.745,91260.232 +1750896000000,bitcoin,eur,92398.258,92536.187,91826.102,91826.102 +1750982400000,bitcoin,eur,91905.209,92204.912,91469.582,91494.439 +1751068800000,bitcoin,eur,91359.917,91480.743,91323.616,91359.731 +1751155200000,bitcoin,eur,91524.413,91625.259,91467.87,91575.309 +1751241600000,bitcoin,eur,91642.733,92416.354,91615.588,92416.354 +1751328000000,bitcoin,eur,91358.84,91358.84,90879.467,90905.501 +1751414400000,bitcoin,eur,89374.749,89819.177,89370.191,89468.807 +1751500800000,bitcoin,eur,92868.41,92868.41,92216.869,92222.84 +1751587200000,bitcoin,eur,93450.112,93546.34,93108.883,93134.145 +1751673600000,bitcoin,eur,91276.262,91911.914,91261.218,91725.853 +1751760000000,bitcoin,eur,91815.496,91890.211,91708.02,91875.765 +1751846400000,bitcoin,eur,92132.177,92938.087,92132.177,92716.276 +1751932800000,bitcoin,eur,92247.936,92378.268,92053.639,92275.243 +1752019200000,bitcoin,eur,92786.205,92964.758,92681.605,92941.322 +1752105600000,bitcoin,eur,95350.373,95350.373,94485.223,94912.397 +1752192000000,bitcoin,eur,96912.61,99527.085,96912.61,99004.56 +1752278400000,bitcoin,eur,101006.666,101006.666,100407.879,100582.012 +1752364800000,bitcoin,eur,100589.328,100589.328,100242.988,100451.918 +1752451200000,bitcoin,eur,102128.942,102304.377,101457.149,101971.061 +1752537600000,bitcoin,eur,102741.955,103139.281,102616.747,102728.136 +1752624000000,bitcoin,eur,100378.869,101598.916,100344.538,101378.824 +1752710400000,bitcoin,eur,102480.21,103109.499,101894.75,102050.865 +1752796800000,bitcoin,eur,102660.903,104065.992,102379.037,102832.784 +1752883200000,bitcoin,eur,101086.576,101464.595,100637.218,101464.595 +1752969600000,bitcoin,eur,101530.893,101554.289,101046.04,101389.504 +1753056000000,bitcoin,eur,101737.038,101737.038,100615.746,100808.824 +1753142400000,bitcoin,eur,99954.818,100600.04,99904.515,100452.328 +1753228800000,bitcoin,eur,101519.829,102318.147,101519.829,102195.021 +1753315200000,bitcoin,eur,100611.328,100806.602,99904.655,100740.743 +1753401600000,bitcoin,eur,101222.305,101222.305,100674.295,100674.295 +1753488000000,bitcoin,eur,99408.901,100064.488,99379.646,100064.488 +1753574400000,bitcoin,eur,100684.579,100684.579,100420.964,100420.964 +1753660800000,bitcoin,eur,101120.362,101875.939,101052.3,101566.622 +1753747200000,bitcoin,eur,101752.033,102051.265,101483.525,101773.6 +1753833600000,bitcoin,eur,101555.734,102108.849,101454.517,102015.474 +1753920000000,bitcoin,eur,102408.913,103094.659,102408.913,103094.659 +1754006400000,bitcoin,eur,102359.861,102359.861,101266.774,101266.774 +1754092800000,bitcoin,eur,97923.178,98300.212,97317.413,97670.509 +1754179200000,bitcoin,eur,96743.229,97458.521,96743.229,97113.833 +1754265600000,bitcoin,eur,98616.186,98767.255,98498.244,98544.696 +1754352000000,bitcoin,eur,99183.992,99583.646,99072.321,99402.682 +1754438400000,bitcoin,eur,98253.427,98612.369,97999.133,98535.111 +1754524800000,bitcoin,eur,98836.705,98885.635,98590.065,98617.069 +1754611200000,bitcoin,eur,100771.047,100771.047,100399.019,100593.37 +1754697600000,bitcoin,eur,100021.136,100414.498,100015.305,100188.632 +1754784000000,bitcoin,eur,100041.605,100303.79,99999.002,100012.955 +1754870400000,bitcoin,eur,101893.367,102395.155,101455.796,102388.27 +1754956800000,bitcoin,eur,102444.072,102493.377,101905.316,102252.364 +1755043200000,bitcoin,eur,102495.139,102972.515,102478.106,102941.21 +1755129600000,bitcoin,eur,104908.617,105497.365,104712.43,105497.365 +1755216000000,bitcoin,eur,101303.995,101775.341,100937.399,101636.759 +1755302400000,bitcoin,eur,99992.178,100646.647,99992.178,100249.017 +1755388800000,bitcoin,eur,100586.002,100619.817,100260.121,100386.929 +1755475200000,bitcoin,eur,100405.845,100785.93,100405.845,100408.147 +1755561600000,bitcoin,eur,99732.321,100271.211,99564.345,99638.837 +1755648000000,bitcoin,eur,97217.132,97477.238,96863.629,96863.629 +1755734400000,bitcoin,eur,97963.296,98350.257,97820.248,98066.489 +1755820800000,bitcoin,eur,96705.091,97009.327,96601.276,96791.609 +1755907200000,bitcoin,eur,99514.898,99835.481,99448.237,99649.684 +1755993600000,bitcoin,eur,98190.93,98413.256,98091.695,98413.256 +1756080000000,bitcoin,eur,96009.873,97034.389,95703.283,96831.874 +1756166400000,bitcoin,eur,95532.745,95553.478,94196.665,94870.802 +1756252800000,bitcoin,eur,95334.207,96448.002,95334.207,96085.191 +1756339200000,bitcoin,eur,96318.266,96584.294,95446.404,95491.243 +1756425600000,bitcoin,eur,95808.265,96335.836,95790.685,96327.425 +1756512000000,bitcoin,eur,92484.804,92872.566,92133.007,92833.216 +1756598400000,bitcoin,eur,93111.545,93111.545,92818.896,93079.499 +1756684800000,bitcoin,eur,93148.105,93412.211,92500.598,92603.822 +1756771200000,bitcoin,eur,93222.499,93222.499,91843.48,93160.309 +1756857600000,bitcoin,eur,95135.343,95782.476,95135.343,95564.515 +1756944000000,bitcoin,eur,96297.303,96297.303,95804.914,95810.614 +1757030400000,bitcoin,eur,94327.291,95820.413,94327.291,94986.433 +1757116800000,bitcoin,eur,95186.826,95252.301,94314.65,94407.788 +1757203200000,bitcoin,eur,93931.419,94114.723,93931.419,94063.212 +1757289600000,bitcoin,eur,94983.415,95275.359,94793.726,94891.385 +1757376000000,bitcoin,eur,95316.328,95576.784,95147.108,95188.984 +1757462400000,bitcoin,eur,95090.576,95333.127,94915.572,95333.127 +1757548800000,bitcoin,eur,97142.657,97443.822,97142.657,97391.231 +1757635200000,bitcoin,eur,97507.356,98432.145,97370.688,98432.145 +1757721600000,bitcoin,eur,99250.303,99291.874,98719.177,98980.058 +1757808000000,bitcoin,eur,98719.607,98882.198,98719.607,98832.916 +1757894400000,bitcoin,eur,98587.245,98977.064,98287.017,98393.914 +1757980800000,bitcoin,eur,98009.486,98231.208,97967.233,98091.242 +1758067200000,bitcoin,eur,98490.983,98583.097,98329.983,98354.719 +1758153600000,bitcoin,eur,97864.713,98944.433,97724.952,98474.799 +1758240000000,bitcoin,eur,99685.246,99866.292,99063.255,99360.935 +1758326400000,bitcoin,eur,98025.415,98476.816,98025.415,98467.622 +1758412800000,bitcoin,eur,98522.177,98701.941,98457.677,98498.088 +1758499200000,bitcoin,eur,98337.401,98455.686,98153.317,98240.455 +1758585600000,bitcoin,eur,95066.712,95742.473,95005.033,95491.217 +1758672000000,bitcoin,eur,94485.64,94974.978,94451.383,94822.955 +1758758400000,bitcoin,eur,96723.392,96812.952,96423.854,96484.305 +1758844800000,bitcoin,eur,93882.125,94011.85,93426.437,93429.362 +1758931200000,bitcoin,eur,93337.364,93733.33,93266.148,93733.33 +1759017600000,bitcoin,eur,93540.993,93759.984,93485.271,93706.066 +1759104000000,bitcoin,eur,94291.1,95880.211,94271.574,95794.878 +1759190400000,bitcoin,eur,97392.72,97577.594,97286.815,97441.235 +1759276800000,bitcoin,eur,97475.433,97747.174,96915.69,97152.747 +1759363200000,bitcoin,eur,100084.468,100978.392,99999.922,100978.392 +1759449600000,bitcoin,eur,103086.85,103149.217,102531.152,102871.303 +1759536000000,bitcoin,eur,104459.804,104548.375,103999.659,104109.085 +1759622400000,bitcoin,eur,103944.413,104280.014,103879.85,104264.887 diff --git a/docs/Novo Documento - 1.rnote b/docs/Novo Documento - 1.rnote new file mode 100644 index 0000000..9468015 Binary files /dev/null and b/docs/Novo Documento - 1.rnote differ diff --git a/docs/Novo Documento - 2.rnote b/docs/Novo Documento - 2.rnote new file mode 100644 index 0000000..b424b21 Binary files /dev/null and b/docs/Novo Documento - 2.rnote differ diff --git a/docs/Novo Documento.rnote b/docs/Novo Documento.rnote new file mode 100644 index 0000000..9d37654 Binary files /dev/null and b/docs/Novo Documento.rnote differ diff --git a/docs/hedwig.rnote b/docs/hedwig.rnote new file mode 100644 index 0000000..f00e49a Binary files /dev/null and b/docs/hedwig.rnote differ diff --git a/docs/sketch_gui.rnote b/docs/sketch_gui.rnote new file mode 100644 index 0000000..c4cd04e Binary files /dev/null and b/docs/sketch_gui.rnote differ diff --git a/modulos/coingecko_api.py b/modulos/coingecko_api.py index b164548..47c5892 100644 --- a/modulos/coingecko_api.py +++ b/modulos/coingecko_api.py @@ -36,6 +36,8 @@ def API( ampersand = "&" url_pedido = url_raiz_API + api_endpoint + api_params_string resposta = requests.get(url_pedido, headers=headers) + # log to url do pedido + # print(f"URL: {url_pedido}") return url_pedido, resposta.status_code, resposta.json() @@ -209,12 +211,14 @@ def coin_price_by_token_addresses( if not isinstance(include_24hr_change, bool): include_24hr_change = False if include_24hr_change != False: - api_parameters["include_24hr_change"] = str(include_24hr_change).lower() + api_parameters["include_24hr_change"] = str( + include_24hr_change).lower() # include_last_updated_at if not isinstance(include_last_updated_at, bool): include_last_updated_at = False if include_last_updated_at != False: - api_parameters["include_last_updated_at"] = str(include_last_updated_at).lower() + api_parameters["include_last_updated_at"] = str( + include_last_updated_at).lower() # precision if not isinstance(precision, (int, str)): raise TypeError("'precision' tem de ser do tipo 'int' ou 'str'") @@ -542,7 +546,8 @@ def coin_tickers_by_id( if not isinstance(include_exchange_logo, bool): raise TypeError("'include_exchange_logo' tem de ser do tipo 'str'") if include_exchange_logo: - api_parameters["include_exchange_logo"] = str(include_exchange_logo).lower() + api_parameters["include_exchange_logo"] = str( + include_exchange_logo).lower() # page if not isinstance(page, int | None): raise TypeError("'page' tem de ser do tipo 'int'") @@ -861,7 +866,8 @@ def coin_data_by_token_address( api_parameters["contract_address"] = contract_address return API( - f"coins/{api_parameters['id']}/contract/{api_parameters['contract_address']}", + f"coins/{api_parameters['id'] + }/contract/{api_parameters['contract_address']}", {}, ) @@ -1723,4 +1729,3 @@ def public_companies_holdings(coin_id: str = "") -> tuple[str, int, dict[Any, An # print(f'{item}: {dados[item]}') # else: # print(f'erro {codigo}: {dados}') - diff --git a/modulos/gui.py b/modulos/gui.py new file mode 100644 index 0000000..21b8399 --- /dev/null +++ b/modulos/gui.py @@ -0,0 +1,23 @@ +# gui para a aplicação +import tkinter + +app = tkinter.Tk() + +app.title("Crypto Portfolio") + +# container para carteiras +frame_carteiras = tkinter.Frame( + app, +) + +label_carteiras = tkinter.Label(app, text="carteiras") +label_detalhes_carteira = tkinter.Label(app, text="detalhes") +label_grafico_preco = tkinter.Label(app, text="grafico preco") +label_movimentos_carteira = tkinter.Label(app, text="movimentos") + +label_carteiras.grid(row=0, column=0, sticky=tkinter.W, pady=5) +label_detalhes_carteira.grid(row=1, column=0, sticky=tkinter.W, pady=5) +label_grafico_preco.grid(row=0, column=1, sticky=tkinter.W, pady=5) +label_movimentos_carteira.grid(row=1, column=1, sticky=tkinter.W, pady=5) + +app.mainloop()