diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fceaff60738f..52d673da809f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,8 +49,9 @@ jobs: architecture: x64 - name: Install Poetry - uses: snok/install-poetry@v1.1.1 + uses: snok/install-poetry@v1.1.4 with: + version: 1.1.6 virtualenvs-create: true virtualenvs-in-project: true @@ -102,8 +103,9 @@ jobs: architecture: x64 - name: Install Poetry - uses: snok/install-poetry@v1.1.1 + uses: snok/install-poetry@v1.1.4 with: + version: 1.1.6 virtualenvs-create: true virtualenvs-in-project: true diff --git a/ROADMAP.md b/ROADMAP.md index ee6fca45d7e4..5242e32bfb3d 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -20,6 +20,7 @@ * [Credit Analysis](#Credit-Analysis) * [Cryptocurrencies](#Cryptocurrencies) * [Screener](#Screener) +* [Forex](#Forex) ## Additional @@ -63,6 +64,7 @@ ## Fundamental Analysis * [x] Rearrange FA menu to have AV and FMP as submenus (@didier) - [PR #166](https://github.com/DidierRLopes/GamestonkTerminal/pull/166) +* [x] Add Fundamental Analysis score (@didier) - [PR #383](https://github.com/DidierRLopes/GamestonkTerminal/pull/383) **NEXT** * [ ] Add Treasury Yield Curve data (@aia) - [PR #281](https://github.com/DidierRLopes/GamestonkTerminal/pull/281) @@ -190,6 +192,7 @@ ___ ## Cryptocurrencies * [x] Add Coingecko (@jmaslek) - [PR #283](#https://github.com/DidierRLopes/GamestonkTerminal/pull/283) +* [x] view top coins from coinmarketcap (@jmaslek) - [PR #378](https://github.com/DidierRLopes/GamestonkTerminal/pull/378) **NEXT** * [ ] Add [Coinpaprika](https://coinpaprika.com/api/) @@ -209,6 +212,13 @@ ___ --- +## Forex +* [x] Add entire forex menu through Oanda (@alokan) - [PR #360](https://github.com/DidierRLopes/GamestonkTerminal/pull/360) + +**NEXT** + +--- + ## Backend **NEXT** diff --git a/gamestonk_terminal/README.md b/gamestonk_terminal/README.md index 83f8c8b9402a..211b0a008e74 100644 --- a/gamestonk_terminal/README.md +++ b/gamestonk_terminal/README.md @@ -17,6 +17,7 @@ * [FRED](#FRED-) * [Options](#Options-) * [Screener](#Screener-) +* [Forex](#Forex-) ## Main @@ -145,6 +146,7 @@ Command|Description ----- | --------- `screener` |screen info about the company ([Finviz](https://finviz.com/)) `mgmt` |management team of the company ([Business Insider](https://markets.businessinsider.com/)) +`score` |investing score from Warren Buffett, Joseph Piotroski and Benjamin Graham ([FMP](https://financialmodelingprep.com/)) [Market Watch API](https://markets.businessinsider.com/) | `income` |income statement of the company `balance` |balance sheet of the company @@ -272,6 +274,7 @@ Command|Description ------ | ------------ `load`| load cryptocurrency data `view`| load and view cryptocurrency data +`top` | view top coins from coinmarketcap   ## Comparison Analysis [»](comparison_analysis/README.md) @@ -364,5 +367,26 @@ performance |performance (e.g. Perf Week, Perf YTD, Volatility M) technical |technical (e.g. Beta, SMA50, 52W Low, RSI, Change) signals |view filter signals (e.g. -s top_gainers) +  + + +## Forex [»](forex/README.md) +Command|Description +------ | -------- +summary |display a summary of your account +calendar |get information about past or upcoming events which may impact the price +list |list your order history +pending |get information about pending orders +cancel |cancel a pending order by ID +positions |get information about your positions +trades |see a list of open trades +closetrade |close a trade by ID +load |specify an instrument to use +candles |get a candlestick chart for the forex instrument +price |show the current price for the forex instrument +order |place a limit order +orderbook |display the orderbook if Oanda provides one for the forex instrument +positionbook |display the positionbook if Oanda provides one for the forex instrument +   diff --git a/gamestonk_terminal/cryptocurrency/README.md b/gamestonk_terminal/cryptocurrency/README.md index 78a1167ffbfe..4a1b7b48feab 100644 --- a/gamestonk_terminal/cryptocurrency/README.md +++ b/gamestonk_terminal/cryptocurrency/README.md @@ -1,57 +1,52 @@ -# Cryptocurrency +# CRYPTOCURRENCY -This page gives an overview of the ability to load cryptocurrency data. - -Current crypto data is [Powered by CoinGecko API](#https://www.coingecko.com/en). -This is an awesome service that currently requires no API Key! - -Current functionality is aimed to be similar to loading a stock ticker. +This menu aims to explore crypto world, and the usage of the following commands along with an example will be exploited below. * [load](#load) + * load a given coin vs a given currency [CoinGecko] * [view](#view) + * plot the loaded crypto data * [top](#top) + * view top coins from coinmarketcap [coinmarketcap.com] + ## load -Load a given coin vs a given currency: ```` usage: load [-c --coin] [-d --days] [--vs] ```` + +Load a given coin vs a given currency. Currently only retrieves price, not volume or MarketCap. The current crypto data is [Powered by CoinGecko API](#https://www.coingecko.com/en), which is an awesome service that currently requires no API Key! + * -c/--coin The coin you wish to load. This can either be the symbol or the name. `load -c btc` and `load -c bitcoin` will load. The -c flag is optional, the above is equivalent to `load btc`. - * -d/--days The number of days to look. Defaults to 30 days. As per the API: Minutely data will be used for duration within 1 day, Hourly data will be used for duration between 1 day and 90 days, Daily data will be used for duration above 90 days. - * --vs The currency to look against. Defaults to "usd". -Currently only retrieves price, not volume or MarketCap. - -Example doge/eur for the past day: -```` -load -c doge -d 1 --vs eur -```` ## view -Plot the loaded crypto data. + ```` usage: view ```` -After loading the above 1 day dogecoin/eur. Running view plots the data: -![doge](https://user-images.githubusercontent.com/18151143/112690617-7832f500-8e52-11eb-84c4-253ab222a918.png) +Plot the loaded crypto data. + +![crypto_view](https://user-images.githubusercontent.com/25267873/115787452-20889a80-a3ba-11eb-9216-f7fd1ffc98cf.png) ## top -This command displays the top n cryptocurrencies from coinmarketcap.com. The list appears to be sorted by Mar ```` top [-n] [-s --sort SORTBY] [--descend] ```` + +This command displays the top n cryptocurrencies from coinmarketcap.com. + * -n: Number of coins to look at (after sort). Defaults to 10. * -s/--sort : Column to sort by. One of {Symbol,CMC_Rank,LastPrice,DayPctChange,MarketCap}. Defaults to sorting by the CMC rank. * --descend : Flag to change the sorting order. Sorts in ascending order (since default order is the Rank which starts at 1). -Example usage to get the CMC top 100, then show the top 4 highest Percent Day Change +crypto -![im](https://user-images.githubusercontent.com/18151143/115587223-6bf85700-a29b-11eb-9d96-cb4239b7c2d0.png) diff --git a/gamestonk_terminal/fundamental_analysis/README.md b/gamestonk_terminal/fundamental_analysis/README.md index 5c2c114b0cef..914675970e52 100644 --- a/gamestonk_terminal/fundamental_analysis/README.md +++ b/gamestonk_terminal/fundamental_analysis/README.md @@ -6,7 +6,9 @@ This menu aims to extract all fundamentals of a pre-loaded company, and the usag * screen info about the company [Finviz] * [mgmt](#mgmt) * management team of the company [Business Insider] - +* [score](#score) + * investing score from Warren Buffett, Joseph Piotroski and Benjamin Graham [FMP] + [MARKET WATCH](#MARKET_WATCH) * [income](#income) @@ -323,3 +325,12 @@ Prints the growth of several financial statement items and ratios over time. Thi * n : Number of latest years/quarters. Default 1. * q : Quarter fundamental data flag. Default False. + + +### score + +```text +usage: score +``` + +Value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts [Source: Financial Modeling Prep] diff --git a/gamestonk_terminal/fundamental_analysis/fa_controller.py b/gamestonk_terminal/fundamental_analysis/fa_controller.py index 2cad209fd829..5de204ab6753 100644 --- a/gamestonk_terminal/fundamental_analysis/fa_controller.py +++ b/gamestonk_terminal/fundamental_analysis/fa_controller.py @@ -9,6 +9,7 @@ from gamestonk_terminal.fundamental_analysis import business_insider_view as biw from gamestonk_terminal.fundamental_analysis import ( financial_modeling_prep_controller as fmpc, + financial_modeling_prep_view as fmpv, ) from gamestonk_terminal.fundamental_analysis import finviz_view from gamestonk_terminal.fundamental_analysis import market_watch_view @@ -26,6 +27,7 @@ class FundamentalAnalysisController: "help", "q", "quit", + "score", "screener", "income", "balance", @@ -83,6 +85,9 @@ def print_help(self): print("") print(" screener screen info about the company [Finviz]") print(" mgmt management team of the company [Business Insider]") + print( + " score investing score from Warren Buffett, Joseph Piotroski and Benjamin Graham [FMP]" + ) print("") print("Market Watch API") print(" income income statement of the company") @@ -137,6 +142,10 @@ def call_screener(self, other_args: List[str]): """ Process screener command """ finviz_view.screener(other_args, self.ticker) + def call_score(self, other_args: List[str]): + """ Process score command """ + fmpv.valinvest_score(other_args, self.ticker) + def call_income(self, other_args: List[str]): """ Process income command """ market_watch_view.income(other_args, self.ticker) diff --git a/gamestonk_terminal/fundamental_analysis/financial_modeling_prep_view.py b/gamestonk_terminal/fundamental_analysis/financial_modeling_prep_view.py index 68e22a862818..f5bda9f8a17e 100644 --- a/gamestonk_terminal/fundamental_analysis/financial_modeling_prep_view.py +++ b/gamestonk_terminal/fundamental_analysis/financial_modeling_prep_view.py @@ -5,6 +5,7 @@ from typing import List from datetime import datetime import pandas as pd +import valinvest import FundamentalAnalysis as fa # Financial Modeling Prep from gamestonk_terminal import config_terminal as cfg from gamestonk_terminal.dataframe_helpers import clean_df_index @@ -15,6 +16,40 @@ ) +def valinvest_score(other_args: List[str], ticker: str): + """Value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts [Source: FMP] + + Parameters + ---------- + other_args : List[str] + argparse other args + ticker : str + Fundamental analysis ticker symbol + """ + + parser = argparse.ArgumentParser( + add_help=False, + prog="score", + description=""" + Value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts [Source: FMP] + """, + ) + + try: + ns_parser = parse_known_args_and_warn(parser, other_args) + if not ns_parser: + return + + valstock = valinvest.Fundamental(ticker, cfg.API_KEY_FINANCIALMODELINGPREP) + score = 100 * (valstock.fscore() / 9) + print(f"Score: {score:.2f}".rstrip("0").rstrip(".") + " %") + print("") + + except Exception as e: + print(e, "\n") + return + + def profile(other_args: List[str], ticker: str): """Financial Modeling Prep ticker profile diff --git a/gamestonk_terminal/options/README.md b/gamestonk_terminal/options/README.md index 300574e5de93..7413f9a88aa8 100644 --- a/gamestonk_terminal/options/README.md +++ b/gamestonk_terminal/options/README.md @@ -100,9 +100,10 @@ In order to run, the selenium webdriver must be installed. Currently, this runs on either Chrome or Firefox. The path to the driver should be defined in [config_terminal.py](#config_terminal.py). Note this may take more time than other commands to process. + ```` usage: info [-d DRIVER] ```` * -d/--driver : One of {chrome, firefox}. This indicates which driver you have installed. -![im](https://user-images.githubusercontent.com/18151143/115454584-efa83a00-a1ee-11eb-9d0f-2558ffa31579.png) \ No newline at end of file +opinfo diff --git a/gamestonk_terminal/options/op_scrape_view.py b/gamestonk_terminal/options/op_scrape_view.py index 40bb5e1e0f91..dbf5459181fd 100644 --- a/gamestonk_terminal/options/op_scrape_view.py +++ b/gamestonk_terminal/options/op_scrape_view.py @@ -5,8 +5,9 @@ from typing import List from selenium import webdriver from bs4 import BeautifulSoup -from selenium.webdriver.chrome.options import Options as cOpts -from selenium.webdriver.firefox.options import Options as fOpts + +# from selenium.webdriver.chrome.options import Options as cOpts +# from selenium.webdriver.firefox.options import Options as fOpts import pandas as pd from tabulate import tabulate from gamestonk_terminal.config_terminal import ( @@ -63,14 +64,18 @@ def print_options_data(stock: str, other_args: List[str]): try: if browser == "chrome": - options = cOpts() - options.headless = True - driver = webdriver.Chrome(options=options, executable_path=path_to_driver) + # commenting this because it breaks when in usage + # the downside is that the browser will pop up to get the data + # options = cOpts() + # options.headless = True + driver = webdriver.Chrome(executable_path=path_to_driver) elif browser == "firefox": - options = fOpts() - options.headless = True - driver = webdriver.Firefox(options=options, executable_path=path_to_driver) + # commenting this because it breaks when in usage + # the downside is that the browser will pop up to get the data + # options = fOpts() + # options.headless = True + driver = webdriver.Firefox(executable_path=path_to_driver) page = f"https://www.barchart.com/stocks/quotes/{stock}/overview" driver.get(page) diff --git a/poetry.lock b/poetry.lock index a5b4f1f7f8e8..d232c41a1fd1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2837,6 +2837,14 @@ python-versions = "*" [package.dependencies] six = "*" +[[package]] +name = "valinvest" +version = "0.0.2" +description = "A value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts" +category = "main" +optional = false +python-versions = ">=3.6" + [[package]] name = "wcwidth" version = "0.2.5" @@ -2962,7 +2970,7 @@ prediction = ["fbprophet", "tensorflow", "pmdarima", "transformers", "flair", "t [metadata] lock-version = "1.1" python-versions = "^3.6.8" -content-hash = "2b31cd4c709b83d1a6f1d516036c84dc611cc487ae5d499905658454fa8dba40" +content-hash = "2088d5cb7d1789cabe8d0f0f211ec599f56e630b4997527b9838d3ecf517f04c" [metadata.files] absl-py = [ @@ -3295,51 +3303,30 @@ entrypoints = [ ] ephem = [ {file = "ephem-3.7.7.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:0a6d6ed003383f702695094399728052981c567d423b25aa7163b3fd40de3d5a"}, - {file = "ephem-3.7.7.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3cbc4f643329c4f64de63584e636625fa9f11b50209386ed99cbf508abe19488"}, {file = "ephem-3.7.7.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:e73b9997d7b844fabff988d7f66c3bad4e76ec8975ec9c60ec988037bb5c04b1"}, {file = "ephem-3.7.7.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7619297a1103f6b3dac0c609bfa7c31e17678fb1a02653347ec030487e412031"}, - {file = "ephem-3.7.7.1-cp27-cp27m-win32.whl", hash = "sha256:7756218a8b72ca50ee4f290b80828073412e7d7023389df5ead5d14839175bda"}, - {file = "ephem-3.7.7.1-cp27-cp27m-win_amd64.whl", hash = "sha256:b8f9fb5b4184523b98f6629c6c927aeeba80d61df21f07af2844cdae45e1a294"}, {file = "ephem-3.7.7.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:37fd1abbebb821381d2865064a6fa9484ffdcd2161cf92193da8d42da79aa7db"}, {file = "ephem-3.7.7.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:ff4e1584cc232d8bc4aea405346eeb8a24b0fbe84c6331d4edb5d4456d19f1c3"}, {file = "ephem-3.7.7.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:c6081a9791e9de6511cddbeb9529bd5550fdb6f9e2a8dc9c2ec85911d67c6d11"}, - {file = "ephem-3.7.7.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d1d1ac8dc9be47dc6c7ec62800ca6557d03e8be3716c2a10ea0c8f1198c0a701"}, {file = "ephem-3.7.7.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:7f781d73e49caf7989c503a948471f1c8c1f738a450d557413999fb732f4dba3"}, {file = "ephem-3.7.7.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:f0959882bf73c8fe1cb801f42b0989e0ecb9d84b99eb8b8f70d61d16767a1e8a"}, - {file = "ephem-3.7.7.1-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:06029db6b26f1764ed009360de8530f6cd759411232b3001df1b69ba6afa871d"}, - {file = "ephem-3.7.7.1-cp35-cp35m-manylinux2014_s390x.whl", hash = "sha256:562baaeb3a46cf2248f97d2ad80092d747024e5dea62ebe50386a04b8e506c10"}, {file = "ephem-3.7.7.1-cp35-cp35m-win32.whl", hash = "sha256:2bcd953cced045e4232bcb71d60f6ba237f7944c880e83e74cc959449b192dee"}, {file = "ephem-3.7.7.1-cp35-cp35m-win_amd64.whl", hash = "sha256:fd0b922387df1ad8721f2fafd5dca51ce7105238f968e1532a177b781b8cae0e"}, {file = "ephem-3.7.7.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:e10c2c8afbb9e927d46d9bf3562441da2173ff196790a75ad0e5c5ee920d5922"}, - {file = "ephem-3.7.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:592264e512b5658402e93903343eb26502c6f327df8a71847f3dcaea73908f32"}, {file = "ephem-3.7.7.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:8d586d970c42d62b1fc757a1c7c10679416a43e9e4a77391a05907159ce346f8"}, {file = "ephem-3.7.7.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:1a8ea6a045ff669011f8ecdeffadfc5eaa519fb56ab8dd40508910e9db5ec7b0"}, - {file = "ephem-3.7.7.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c25993d6554820ff11fdd8f2ddb75bf99e70db01327f09700bf8811201e9daef"}, - {file = "ephem-3.7.7.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:9180d953ff4cbe89fc9ccc78aea73f290c0166b8ddb01e9c837b4639a7492ec8"}, {file = "ephem-3.7.7.1-cp36-cp36m-win32.whl", hash = "sha256:72fdb72c813fc9780726aa732eb2193bbe1663549265ca5a746899215ecfbffd"}, {file = "ephem-3.7.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f5af029f8814aa8617e73b2ddcad2bd1c682ca13c31ee3b6f5825dd5cb43e777"}, {file = "ephem-3.7.7.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:e61c68f1c7d304a130bb6b88c1fca6600bbc1a1df6ca9a109b6eba4c6cbd3376"}, - {file = "ephem-3.7.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fdf5f3ed8bd46ce2bf1145b26aec65a2c08ea7c97cf42b6b439af6e7bc6dc94d"}, {file = "ephem-3.7.7.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:31e2a17ca6f8d6bd44832574fea5461938ba034e52bf551e15e1a4c8f8c6c4fb"}, {file = "ephem-3.7.7.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:1ff5abefa230d5ab40846f1cb27d4f5583d46044fecf10e17bfb559bdc766a47"}, - {file = "ephem-3.7.7.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:5ef34e3cfea0683998e867d7b8de642081e8821fafbd5e1d2dcab503c119c4a2"}, - {file = "ephem-3.7.7.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:e2aca9edb59ee2bb3c8c36f17177966bc762da04af994450c8ad61a20fb6acdd"}, {file = "ephem-3.7.7.1-cp37-cp37m-win32.whl", hash = "sha256:71ea3935c658ee184575fd4cc2aa3e7fd6d6bac4a1ccff9ee5549cee67ff0385"}, {file = "ephem-3.7.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:34fd228105b89fefd20608420861a75a184db1edeaf0056cf2f85d2a2f768aee"}, {file = "ephem-3.7.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:189fcaeacb44dc5a1684ad489542f126d99d4a85e87d2fe73864c902f0bc2c71"}, {file = "ephem-3.7.7.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:a5ddf46ced515e4b81dfd22e6408fd06a329c31c6abb10af48d392641c490b0e"}, {file = "ephem-3.7.7.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:3530bee3eb7458d86d4c399f51f5b73ad7ea0441f0b2fb03de41d623789935af"}, - {file = "ephem-3.7.7.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:77193de077e5fff453756144dee978e5fd6978c5c03ce3f67a09bb237e78f9d4"}, - {file = "ephem-3.7.7.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:095ad42e8df6a5c91e0aeb5a68d76c0800b0283f72fc5f76e6df370ae1fb5537"}, {file = "ephem-3.7.7.1-cp38-cp38-win32.whl", hash = "sha256:33ad1a71b204aff123250b04e0ff2d5c3b8e9c6c814bf2c675d7752ce5896c02"}, {file = "ephem-3.7.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:4bc5140cc7218a53ee6d949110f6ed413b8e3165294100515cd0fb29aa8e3637"}, - {file = "ephem-3.7.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7aa88d2a6d216c2044be2a3b3cb184e9c8a5022f12464220694017ea9d75209d"}, - {file = "ephem-3.7.7.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:1a9822bde93205c67fd3399b26868204b67d9e4442af21a764307e51ea6dc672"}, - {file = "ephem-3.7.7.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:15dd3dbb3864fb853388e39ac3c915c72873507f54ee6b3ede0033b03465d8ba"}, - {file = "ephem-3.7.7.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5763919cdf38cd0488172711da504c3be003b7c104ccd2516cc496ff05f146ae"}, - {file = "ephem-3.7.7.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:cdea23a7caa1178b322e6e76484d40bd021672446ff51b512f35581e0f1b32b7"}, - {file = "ephem-3.7.7.1-cp39-cp39-win32.whl", hash = "sha256:c3cbc973b334892972445cec3deb99aafd0c57cb4e50679d5f12fc8c51b4e65f"}, - {file = "ephem-3.7.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:1af920c382980fe3566a31f36bd712973e1ca6049cbe07b4624214d5e1f144bc"}, {file = "ephem-3.7.7.1.tar.gz", hash = "sha256:36b51a8dc7cfdeb456dd6b8ab811accab8341b2d562ee3c6f4c86f6d3dbb984e"}, ] fbprophet = [ @@ -4940,6 +4927,10 @@ urllib3 = [ user-agent = [ {file = "user_agent-0.1.9.tar.gz", hash = "sha256:8f1ad46cc4aef9f99515ea1c74bb8cacc43e23074c335b2ba2db7735ebe9c0d5"}, ] +valinvest = [ + {file = "valinvest-0.0.2-py3-none-any.whl", hash = "sha256:37fadaf30c69e0487fed8d9cc93bb792ca8cf36fed0839e0e755a84738166ab9"}, + {file = "valinvest-0.0.2.tar.gz", hash = "sha256:9614aaf8019e015c20ea48867ede8a6ea10e1c6410e787314066d7b2e5aeb7dc"}, +] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, diff --git a/pyproject.toml b/pyproject.toml index 45e9f2452614..d0f9c731ebc3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,6 +60,7 @@ pyportfolioopt = "^1.4.1" selenium = "^3.141.0" python-coinmarketcap = "^0.2" oandapyV20 = "^0.6.3" +valinvest = "^0.0.2" [tool.poetry.dev-dependencies] pytest = "^6.2.2" diff --git a/requirements.txt b/requirements.txt index 15e7172d3684..654cd4398b44 100644 --- a/requirements.txt +++ b/requirements.txt @@ -158,6 +158,7 @@ typing-extensions==3.7.4.3; python_version < "3.8" and python_version >= "3.6" update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0" urllib3==1.26.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.6" user-agent==0.1.9 +valinvest==0.0.2; python_version >= "3.6" wcwidth==0.2.5; python_version >= "3.6" and python_full_version >= "3.6.1" webencodings==0.5.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" websocket-client==0.58.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0"