From 06286a0d23aee295659f166b389c17781db64c8e Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome Date: Thu, 5 Mar 2020 16:30:15 +0100 Subject: [PATCH 01/48] removed hash-bang from all files & minor README.md updates - hash-bang (#!) from all investpy files since it was causing conda conflicts - removed FAQs section from README.md - minor modifications in README.md so to be more clear and concise --- README.md | 106 +++++++------------------ investpy/__init__.py | 2 - investpy/bonds.py | 2 - investpy/certificates.py | 2 - investpy/commodities.py | 2 - investpy/crypto.py | 2 - investpy/currency_crosses.py | 2 - investpy/data/__init__.py | 2 - investpy/data/bonds_data.py | 2 - investpy/data/certificates_data.py | 2 - investpy/data/commodities_data.py | 2 - investpy/data/crypto_data.py | 2 - investpy/data/currency_crosses_data.py | 2 - investpy/data/etfs_data.py | 2 - investpy/data/funds_data.py | 2 - investpy/data/indices_data.py | 2 - investpy/data/stocks_data.py | 2 - investpy/errors/__init__.py | 4 +- investpy/etfs.py | 2 - investpy/funds.py | 2 - investpy/indices.py | 2 - investpy/news.py | 2 - investpy/resources/__init__.py | 4 +- investpy/search.py | 2 - investpy/stocks.py | 2 - investpy/technical.py | 2 - investpy/utils/__init__.py | 2 - investpy/utils/auxiliar.py | 2 - investpy/utils/data.py | 2 - investpy/utils/search_obj.py | 2 - investpy/utils/user_agent.py | 2 - setup.py | 1 - tests/__init__.py | 2 - tests/test_investpy.py | 2 - tests/test_investpy_errors.py | 2 - 35 files changed, 32 insertions(+), 145 deletions(-) diff --git a/README.md b/README.md index 7ba64526..fab6e249 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@

-

Financial Historical Data Extraction with Python

+

Financial Data Extraction with Python

-investpy is a Python package to retrieve historical data from [Investing](https://www.investing.com/). +investpy is a Python package to retrieve data from [Investing](https://www.investing.com/). It provides historical data retrieval from up to **39952 stocks, 82221 funds, 11403 etfs, 2029 currency crosses, 7797 indices, 688 bonds, 66 commodities, 250 certificates and 2812 cryptocurrencies**. Basically, investpy allows you to download historical data from almost all the financial products indexed in Investing.com. All the data that can be @@ -33,7 +33,7 @@ are some of the features that currently lead investpy to be one of the most cons In order to get this package working you will need to install [**investpy**](https://pypi.org/project/investpy/) using pip on the terminal by typing: -``$ pip install investpy==0.9.14`` +``$ pip install investpy`` Every package used is listed in [requirements.txt](https://github.com/alvarob96/investpy/blob/master/requirements.txt) file, which can also be installed via pip: @@ -54,24 +54,6 @@ means that every other function is additional. ```python import investpy -df = investpy.get_stock_recent_data(stock='BBVA', - country='spain') -print(df.head()) -``` -```{r, engine='python', count_lines} - Open High Low Close Volume Currency -Date -2019-08-13 4.263 4.395 4.230 4.353 27250000 EUR -2019-08-14 4.322 4.325 4.215 4.244 36890000 EUR -2019-08-15 4.281 4.298 4.187 4.234 21340000 EUR -2019-08-16 4.234 4.375 4.208 4.365 46080000 EUR -2019-08-19 4.396 4.425 4.269 4.269 18950000 EUR - -``` - -```python -import investpy - df = investpy.get_stock_historical_data(stock='BBVA', country='spain', from_date='01/01/2010', @@ -91,39 +73,40 @@ Date ### Search Data As financial data is really complex and sometimes both the product name/symbol and the country are unknown for the user, in -terms of what does investpy expect, every financial product listed in investpy (which currently includes stocks, -funds, etfs, indices, currency crosses, bonds and commodities) has its own search function. Search functions allow the -user to search among all the available stocks for example, whenever just one field is known (even though it is not the -exact match). So on, a basic example on stock search by the ISIN code is presented below: +terms of what does investpy expect. So on, the Investing.com search engine is completely integrated with investpy so that +any available financial product can be easily retrieved just using the following piece of code: -````python +```python import investpy -search_results = investpy.search_stocks(by='isin', value='ES0113211835') - -print(search_results.head()) -```` -```{r, engine='python', count_lines} - country name full_name isin currency symbol -0 mexico BBVA Banco Bilbao Vizcaya Argentaria SA ES0113211835 MXN BBVA -1 mexico BBVA Banco Bilbao Vizcaya Argentaria S.A. ES0113211835 MXN BBVA -2 belgium BBVA Banco Bilbao Vizcaya Argentaria SA ES0113211835 EUR BBVA -3 spain BBVA Banco Bilbao Vizcaya Argentaria S.A. ES0113211835 EUR BBVA -4 united kingdom BBVA Banco Bilbao Vizcaya Argentaria Sa ES0113211835 EUR BVAB +search_results = investpy.search(text='Apple', + filters=['stocks'], + n_results=10) ``` -Note that additionally the Investing search engine is completely integrated with investpy so that any available quote as -indexed in Investing can be easily retrieved just using the following piece of code: +Retrieved search results will be a `list` of `investpy.utils.search_obj.SearchObj` class instances. In order to get to +know which are the available functions and attributes of the returned search results, please visit: +[investpy Search Engine](https://investpy.readthedocs.io/search_api.html). So, those objects can be used to retrieve +retrieved product's historical data, its information, etc., as presented in this piece of code: ```python -import investpy - -search_results = investpy.search(text='gold') + for search_result in search_results[:1]: + print(search_result) + search_result.retrieve_historical_data(from_date='01/01/2019', to_date='01/01/2020') + print(search_result.data.head()) ``` +```{r, engine='python', count_lines} +{"id_": 6408, "name": "Apple Inc", "symbol": "AAPL", "country": "united states", "tag": "apple-computer-inc", "pair_type": "equities", "exchange": "NASDAQ"} -Retrieved search results will be a `list` of `investpy.utils.search_obj.SearchObj` class instances. In order to get to -know which are the available functions and attributes of the returned search results, please visit: -[investpy search docs](https://investpy.readthedocs.io/search_api.html). + Open High Low Close Volume +Date +2019-01-02 154.89 158.85 154.23 157.92 37039736 +2019-01-03 143.98 145.72 142.00 142.19 91312192 +2019-01-04 144.53 148.55 143.80 148.26 58607072 +2019-01-07 148.70 148.83 145.90 147.93 54777764 +2019-01-08 149.56 151.82 148.52 150.75 41025312 + +``` ### Crypto Currencies Data Retrieval @@ -152,15 +135,6 @@ Date Yes, retrieving historical data from any available crypto currency is really that easy! -### Additional Data - -As Investing.com provides more data besides the historical one, some of that additional data can be fetched via investpy. -Currently, as the package is under-development, some additional functions have been created in order to retrieve more data -as indexed in Investing.com. - -### and much more! - -All the functions definitions and usage can be found in the [Documentation](https://investpy.readthedocs.io/)! ## Utilities @@ -186,29 +160,9 @@ Additionally, you can triage issues on [investpy CodeTriage](https://www.codetri provide issues so the package can grow and improve as the issues solves bugs, problems or needs, and maybe provide new ideas to improve package functionality and efficiency. -## Frequent Asked Questions - FAQs - -#### Where can I find the reference of a function and its usage? - -Currently the `docs/` are still missing a lot of information, but they can be clear enough so that users can get to know which functions can be used and how. If you feel that any functionallity or feature is not clear enough, please let me know in the issues tab, so that I can explain it properly for newcomers, so that answers are more general and help more users than just the one asking it. Docs can be found at: [Documentation](https://investpy.readthedocs.io/) - -#### What do I do if the financial product I am looking for is not indexed in investpy? - -As it is known, investpy gathers and retrieves data from Investing.com which is a website that contains a lot of financial information. Since investpy relies on Investing data, some of it may not be available in Investing, which will mean that it will not be available in investpy either. Anyways, it can be an investpy problem while retrieving data, so on, there is a search function (`investpy.search(text, n_results, filters)`) that can be used for searching financial products that are available in Investing but they can not be retrieved using investpy main functions. - -#### I am having problems while installing the package. - -If you followed the [Installation Guide](https://github.com/alvarob96/investpy/blob/master/README.md#Installation), you should be able to use investpy without having any problem, anyways, if you are stuck on it, open an issue at investpy issues tab so to let the developers know which is your problem in order to solve it as soon as possible. If you were not able to complete the installation, please check that you are running Python 3.5 at least and that you are installing the latest version available, if you are still having problems, open an issue. - -#### How do I contribute to investpy? - -Currently I am not admitting any Pull Request since investpy is under development, and so to keep a clean structure, I will be developing new functionalities until code is clean enough to let newcome contributors help. Anyways, the most effective tool you have in order to contribute to investpy are **issues** where you can give me new ideas or some functionallity you would like to see implemented in investpy. You can also use issues in order to report bugs or problems so to help investpy's development and consistency. - -#### How do I reference investpy? - -Since investpy is an open source Python package, whenever you use it, would be nice from you to mention or comment where does the data comes from. This way, investpy can be spread among more users which will consequently improve package usage since more users can contribute to it due to the increasing reach to newcome developers. A sample reference is presented below: +## Reference -`investpy - a Python package for Financial Historical Data Extraction developed by Álvaro Bartolomé del Canto @ alvarob96 at GitHub` +`investpy - a Python package for Financial Data Extraction developed by Álvaro Bartolomé del Canto @ alvarob96 at GitHub` ## Disclaimer diff --git a/investpy/__init__.py b/investpy/__init__.py index ec67480d..949dbae2 100644 --- a/investpy/__init__.py +++ b/investpy/__init__.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/bonds.py b/investpy/bonds.py index b106cad9..2b0aca51 100644 --- a/investpy/bonds.py +++ b/investpy/bonds.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/certificates.py b/investpy/certificates.py index 54949510..fcdc4d04 100644 --- a/investpy/certificates.py +++ b/investpy/certificates.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/commodities.py b/investpy/commodities.py index caa98ddc..e92c0c53 100644 --- a/investpy/commodities.py +++ b/investpy/commodities.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/crypto.py b/investpy/crypto.py index 3878b3eb..09728289 100644 --- a/investpy/crypto.py +++ b/investpy/crypto.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/currency_crosses.py b/investpy/currency_crosses.py index 2b356d34..1faa080a 100644 --- a/investpy/currency_crosses.py +++ b/investpy/currency_crosses.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/__init__.py b/investpy/data/__init__.py index 48784aa8..cd7b2241 100644 --- a/investpy/data/__init__.py +++ b/investpy/data/__init__.py @@ -1,4 +1,2 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/bonds_data.py b/investpy/data/bonds_data.py index 3dafa55e..213faa29 100644 --- a/investpy/data/bonds_data.py +++ b/investpy/data/bonds_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/certificates_data.py b/investpy/data/certificates_data.py index 3ba7558d..5f26a60b 100644 --- a/investpy/data/certificates_data.py +++ b/investpy/data/certificates_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/commodities_data.py b/investpy/data/commodities_data.py index b44a4572..cd7ac4d7 100644 --- a/investpy/data/commodities_data.py +++ b/investpy/data/commodities_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/crypto_data.py b/investpy/data/crypto_data.py index 38bdf33b..0bc48030 100644 --- a/investpy/data/crypto_data.py +++ b/investpy/data/crypto_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/currency_crosses_data.py b/investpy/data/currency_crosses_data.py index a9d93114..b2726d0d 100644 --- a/investpy/data/currency_crosses_data.py +++ b/investpy/data/currency_crosses_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/etfs_data.py b/investpy/data/etfs_data.py index f813c22e..201b5f85 100644 --- a/investpy/data/etfs_data.py +++ b/investpy/data/etfs_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/funds_data.py b/investpy/data/funds_data.py index db000c61..8a218c0d 100644 --- a/investpy/data/funds_data.py +++ b/investpy/data/funds_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/indices_data.py b/investpy/data/indices_data.py index d50d7dd8..6cefcf71 100644 --- a/investpy/data/indices_data.py +++ b/investpy/data/indices_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/data/stocks_data.py b/investpy/data/stocks_data.py index 7ceb0fa8..73296eb6 100644 --- a/investpy/data/stocks_data.py +++ b/investpy/data/stocks_data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/errors/__init__.py b/investpy/errors/__init__.py index 48784aa8..af2596d3 100644 --- a/investpy/errors/__init__.py +++ b/investpy/errors/__init__.py @@ -1,4 +1,2 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub -# See LICENSE for details. +# See LICENSE for details. \ No newline at end of file diff --git a/investpy/etfs.py b/investpy/etfs.py index de80dd37..93576335 100644 --- a/investpy/etfs.py +++ b/investpy/etfs.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/funds.py b/investpy/funds.py index d28975d0..a3b535e7 100644 --- a/investpy/funds.py +++ b/investpy/funds.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/indices.py b/investpy/indices.py index c9fc3434..6cd05e63 100644 --- a/investpy/indices.py +++ b/investpy/indices.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/news.py b/investpy/news.py index 6b402a9f..5a371c94 100644 --- a/investpy/news.py +++ b/investpy/news.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/resources/__init__.py b/investpy/resources/__init__.py index b4a69f67..af2596d3 100644 --- a/investpy/resources/__init__.py +++ b/investpy/resources/__init__.py @@ -1,4 +1,2 @@ -#!/usr/bin/env python - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub -# See LICENSE for details. +# See LICENSE for details. \ No newline at end of file diff --git a/investpy/search.py b/investpy/search.py index 59eebf44..800c0d7c 100644 --- a/investpy/search.py +++ b/investpy/search.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/stocks.py b/investpy/stocks.py index 8caffe2a..0c18a967 100644 --- a/investpy/stocks.py +++ b/investpy/stocks.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/technical.py b/investpy/technical.py index e8c6a5e9..eb309315 100644 --- a/investpy/technical.py +++ b/investpy/technical.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/utils/__init__.py b/investpy/utils/__init__.py index 48784aa8..cd7b2241 100644 --- a/investpy/utils/__init__.py +++ b/investpy/utils/__init__.py @@ -1,4 +1,2 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/utils/auxiliar.py b/investpy/utils/auxiliar.py index 239900c6..ece76285 100644 --- a/investpy/utils/auxiliar.py +++ b/investpy/utils/auxiliar.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/utils/data.py b/investpy/utils/data.py index 65a075f5..1a5fc59a 100644 --- a/investpy/utils/data.py +++ b/investpy/utils/data.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/utils/search_obj.py b/investpy/utils/search_obj.py index e24df55f..4f19583b 100644 --- a/investpy/utils/search_obj.py +++ b/investpy/utils/search_obj.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/investpy/utils/user_agent.py b/investpy/utils/user_agent.py index 091bdc8f..3aebda84 100644 --- a/investpy/utils/user_agent.py +++ b/investpy/utils/user_agent.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/setup.py b/setup.py index b58f401e..154833d0 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,4 @@ #!/usr/bin/env python - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/tests/__init__.py b/tests/__init__.py index 48784aa8..cd7b2241 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,4 +1,2 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/tests/test_investpy.py b/tests/test_investpy.py index 192f3f12..640fe254 100644 --- a/tests/test_investpy.py +++ b/tests/test_investpy.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. diff --git a/tests/test_investpy_errors.py b/tests/test_investpy_errors.py index 01c636d6..c397e052 100644 --- a/tests/test_investpy_errors.py +++ b/tests/test_investpy_errors.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub # See LICENSE for details. From 9ded5bc409cb4478806ab3c1e824b64e4ab500da Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome Date: Thu, 5 Mar 2020 16:58:56 +0100 Subject: [PATCH 02/48] updated docs & included sphinx requirements - docs/ have been updated with latest version - included docs/requirements.txt since those are different from the package ones --- docs/_build/doctrees/api.doctree | Bin 2801 -> 2854 bytes docs/_build/doctrees/disclaimer.doctree | Bin 3862 -> 3900 bytes docs/_build/doctrees/environment.pickle | Bin 61066 -> 62264 bytes docs/_build/doctrees/etfs_api.doctree | Bin 124135 -> 124728 bytes docs/_build/doctrees/funds_api.doctree | Bin 117060 -> 116973 bytes docs/_build/doctrees/index.doctree | Bin 5311 -> 5342 bytes docs/_build/doctrees/information.doctree | Bin 8624 -> 8645 bytes docs/_build/doctrees/installation.doctree | Bin 13332 -> 13357 bytes docs/_build/doctrees/introduction.doctree | Bin 14899 -> 14889 bytes docs/_build/doctrees/main_api.doctree | Bin 2872 -> 2926 bytes docs/_build/html/_static/basic.css | 6 +++- docs/_build/html/_static/doctools.js | 7 +++-- .../html/_static/documentation_options.js | 1 + docs/_build/html/_static/language_data.js | 2 +- docs/_build/html/_static/searchtools.js | 28 +++++++++++------- docs/_build/html/api.html | 8 ++--- docs/_build/html/disclaimer.html | 8 ++--- docs/_build/html/etfs_api.html | 25 ++++++++-------- docs/_build/html/funds_api.html | 12 ++++---- docs/_build/html/genindex.html | 8 ++--- docs/_build/html/index.html | 8 ++--- docs/_build/html/information.html | 8 ++--- docs/_build/html/installation.html | 8 ++--- docs/_build/html/introduction.html | 8 ++--- docs/_build/html/main_api.html | 8 ++--- docs/_build/html/py-modindex.html | 8 ++--- docs/_build/html/search.html | 10 +++---- docs/requirements.txt | 3 ++ 28 files changed, 91 insertions(+), 75 deletions(-) create mode 100644 docs/requirements.txt diff --git a/docs/_build/doctrees/api.doctree b/docs/_build/doctrees/api.doctree index 30ab8ac8b8551e4d0d5fc6c8ddfcf3d05db453e5..e48d8dba0764adfc2d620baee7b58cc9fc4228ec 100644 GIT binary patch delta 169 zcmew;x=f6FKN0x(7_W%6P!KLFS5LN)*Z delta 115 zcmZ1`_ED6zfo1A5u8pjwjEZLZ8Tq-X`iVJZiADKIiA5zP`Yx%(*(Lb}`tF$}9;Hc} z6B&OpZq8&rz{EIZvliQIW|_Qh%>V!Z diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 6f5c4c6e6a67b0a59886971da82f66e852165cf9..9565602a6dbfdb4d402649a1fc3bbbfe2e3b2534 100644 GIT binary patch literal 62264 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 z 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 D1Z|C^ literal 61066 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 diff --git a/docs/_build/doctrees/etfs_api.doctree b/docs/_build/doctrees/etfs_api.doctree index 8c18428717f475e092bdb522e83b5d544c3cf2ee..de699a833d484005a4de08c87ae0485955d076f5 100644 GIT binary patch literal 124728 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 HGn4-xa;?fm literal 124135 zcmeIb3!Gd>btf#zdX6Po@*8Z-mBFJ?7|o0%TasnVfNe<@ie+O9EMm;4r~8h&TRq)F zKO_y2g9+JuX1_}|z-0F$`G5`C%^MPkLmtEn%Z5#OECvE35VDX!*zEFSLpG3*uq^vO zryjTJ-s*d+A0yeu`hll!z3bFDr%s(Z=hP!Be`eXT<;&<_w6WAEcG{I%YogvLg{{SC zEhWr__4eXh7Pq}_@!`d>XkD{#rq$>)i{WCl3?+)?O0Cok>x&O9mX}3qT4AwWY1DQ3 z@~ZOc@|uSh$B?L;hqHp5w?mGY%jfjX~M+F`R$GxDMhR@>Y(O0GN>o~1b@v;V~+Pm%^5 zt)4GnTJ6R1wVjzlG*W1{o0XYP8(<+YTvREwFy&}Xu~ulckccTpD|uwmiur{_RA1PR z$t{M_s(N9L3jmy*`S@d|P&|d1P}NSfrd>EmS&QXomq*K2q091C^i$r3nY{r2pThrl z;{P|I&()}fg#qvhUeks7$|9D9(&h@4`eJz^T7$3l!aSDfA{s+-f2Deu37YgLOF?t;Gk=2fwMocA0-_FbKsNd@&ujI%YVhB?t}wHKq6wMso)JhB|~+>|v>>U1Lt zU0hyXzNmbtd{_DKkrkbp^5xO0O1%`GHI`Z6Sa*o6!9q4Ga+OxMfJB&Ybfp?4<6ST& z;IM5mx?KF)ZsjkQS08OJ7HCxW#-oawX;@6u8pT3wvR0XyoL^{{8}(fidnQ}J&F%A8 z^1{im6~l)>GXby@oG`@t$)GVCSp80538qnOy4dK*SpX2r0f?6hl2jz-H~sQM(e_k} zW7~qUN<9$Mwz~&7o|`)!7i5l>43 zdh59!aR#Co#hS{iqK)=Q1-WlYB^zXpm3&y>ml$sb*{wS}SKHUZ5(0JB&NstW*gPFB z5R$OC4WmY`)HNmb>Q`DXFIi; zV83ssiFD9iQ?eaB5rK8ZM!jurh>H4XgIh;)W;=D>9D`;^ z+z5MKP^i^{b~y|Rrwf%@VWt)an#zNALl+E)O$4*e#@u*NXmJgKV^|uAi(|Lqj7A;p zGJ_0DL8BfV=FJtHWun-an+T4fxA{(UzR?Pa)wHdFVUXyRnjWE1#f_gSSBmAJTsUnG zl?PQQ78_04mZ_%IS5PXn3*$knK{;Uo{h`efR8rF_)PnhDqZqbYG?GF9=(Q`wPOZ?C zJugg1OnnB1gTOGR>BoWB@Aso=B7@&6AG$#NjHQG3(MYj{EQ>~FD`BlP?c^OSS#rKX zbg|GWt0tM^n)^a*IrWxeh59=N)@lIjb9n;FXHe)<5Kh1)jx00BI@2gEqy|*}eYIsD zFECdKK?|);txfbpvjgJS+YsVn&Jfd}p!gI?2WKknGLaSPXf9&%4kAP59TSJ^%pr<` z77K0unyrBAG{XYZFz661#iGVUv2{8S#IHw2oPofJ{^}(R82nvu5`$rk(4Yj@Is=B) z>J*90iOVja#@u`jTR~}@`%eJiOa&~l)@YmpJWhrC;_2@X9^6{!Ku9XoDuu1%f%p(V zXTsXaN@tEzXPSlARBHG&F);yonU5YC>d_fue{qld8Z*^>CkU`7mKO4IAP`0D0W4~C zOXUEuzG0GT`AUU5(Z$BN1p;5A^B`Sg*W(k>7814bq5A+;jF$g7iPB@`?eUQX09g#p z(+2SYI+FZDvYJ^)A4$r$nJ1CzDj>Oe7@^j?A4bY|mfur8aI}1|{J*K!D?nBs0a?+Y zzX8(P61{4P7fAzZ$$LsJt|84NPJ5CMYe@We$rNLpe%yTj^gfQ> zvxo;PT>T*$p%^G*dgZ*WjWPW5*r{t#hQr^gcRIlB#p0?ja@6$Ua`&KKA6%|_koq$i z-8vHkHYF*=Sg3TK1D<{?1$~wkOIa3ekQ%h<8K^K$nKW_R5H@0P@Ijl=9GbSW>Kp)Q z(slR4yF5o$Pf-oAt*nn{o(HPY^4D?*xcpVL_NmTHc1us7(8odFpH#cG5>r2`5~7QR zTpFa#QAH~pFx}(0L7n2n%sW3MC&am>19cz8@0-Zgo-H}M}7}A z-kvj88W#|bS9J(DxB9+9g;dxQ-PEU^64Tn3JjO(r_C-nKX$KGD;BmCkJ_t-J z9cVTi&0zcXph-h1VfPE`j*|$VRp>xbZ?uD1swgxBW3g~7F&fH6#mjJHXw*-d%xrV2 zYc+RAjtz!?$_GRB9|;7b)o*sfIHOmQi~s+g}UER$ydLN##xeX&4NmMxFxyqZUp?}cAl^549d+({6V!2`$WF&RsD{a9t1m!;Vj#m7mY%c1?yNgY z$8?q0lpG=EetF=+6}^^S@*T6yr`B&UyfX*N)Jl}$Nv+wPeiYjX>qh)I%3~;QD>J({ zAFY;`NY#y4h-eKCYytzJAr;C?x)g-go>Qw2aG`ob+{e6uFmRqxg>G#myX*U!Vwcie zLq*wcG%L7MnI>IE_GQHl_7y;vHo9EqoIP)sIf*$f3T^qT6o$2RJEyzv=Vqlk?@i1~&ySmwYE9RQF7$f*D?R_Kx`1D899{D@%VF;OT0OVC z>m~&e+^HB4ss0!>z!z)p&|^Ec6eu7uKwZ-5`x|o~y$BsE0Pt^nvTwmyvxHM6l)s7Q z1ZjqgSKo|3dTMKg9J-)-(cgAYKR*#ic2}bp0q}aXv#^AlJk;JL`(%*JZj}P9{ z28;Ste~DDP*N+X}>*f@bQ9V0y?A|{=c<-B%{7iM8&anIbZ~gS$eK%D!jN3~m4aYUB zv*=l0W6CdilUe?aHQq zpTM5R`6D8qb~~iaRAG$7*CW9Rz1wlw6C}cj-H*PpAF6Z2mgv?&U}DJ8gSCV8Ty>FJ zPqA0na`!3*zd~%A`$mE>k5)ILi7XCm$k5aqs~#KYc}WeBo%gOCP>xTM(N$frO#nT< za@mx`N3|;H44d7II+n*z8*;s)rjIsc2kP~r4XG|i1-_H1j!~CFAyO?9tAP=cgdgM0 zI!%PeiW-U8u$EU^Ou0$;uB222Q}JQL@rVN&esDbGsOba8m!n>vaJ)MQjvFk-Wxz6# z;ee;jAucwUo`T*w%?FK!jYKqB%K?dtXRM^PH(C_mxg%U}@?kZ^k(f6dEt;ul_mMsZ zxkhn%jXaS~att-zoV9h4+>nV1U>adk!3vB=Y6d@++;KCsy(9N3vnZ{7Gn4c{`Rwp- z^XJUE-nY?M^yrAGCzWu}9L?Y=9(IL%KOA3uDIo!-Oq4SXo5eXp;1}73w)g-e%lUQa)sP_tKTuzN;yZ159Gk2dKowrX~dK=?)_W=ilG(3 zSd3N-SD6)SxTO?{F)bwFQUq-z?8PT6omo`JE zOBD^N<=fnV>Y`ZG_4f9S2O5}B|82+_mL?N?=K@?jZ z!}24F=Q(Qn5XDZ^>ys$9QI|GRti`HpNTrBE=Qy?PI`@Z6qR7Djy{b_!wd5#!L;R5( z2=|Ei1+7GhQJ;@{WCPZ2;>xBu2S*B==8#Y-P0r0tF5sU~TS{8sLm&)MPeQBAMx{6c zDuY>d-DB?+hN4Cih>@a!$s|(DnQw|jrn!QXL}b=5NMyk=EI$(IIBNQk$WNeNpCt05 z)TK=#BS1b4sT7Im94CqB+_ef*;%x_a4WujpvMkCTO!T(J-Bl;z4SP#uZ_eTqO}rCh zH=D@3wNckgG(u5HihN{k4^uuHosCf^b8^QHL0A)mlsUFUBXOG1wwa1{->1ixr%)zR zmS#p>CiH?{=up#D)KfJFDDt=GR}#i$TRHTyJ)e-u*B*Hk3?eGEzL}KP@TxsrX@E5# znL+(U&Qwzj>hoN|$)IG`Fc{R|JBH=Qp#IiT(}zL*AJprUL4BLLv>6nPeX1H#DF&r; zoD53m#>_~sna!Z6q{&_SU{KetvYYT?P;tNgGpM)?m$tEg1~oOr35|~jJrH5MNWImQ zsA4W;K8yNX4x0BUNX^Jwn_z6F(Wv3hcAmUy3pGAx<6K=LSE@PqQ3?}&7OT|JyU}US zciKX4KbBNYlA?yxY1`Zf4cVAJr@#7Sex}PgJnUu_mnUvH7(!5j0 z@0FCQ1}8r3kMZK@$)_6BrOl_{?^@Ns8j0846ab7=vvi89>2{o4 zP3MmHf=Yr}2WU4{5~+ek^=;)wrrs z+WaO(S^eqQ|Ih&kKL~!%QPT&4PoQ3(l=YvfOPjJ%5L^KksF_DZUj~d7^zs@1y*ab% zk@3HVZzEYUjp>}ZzS;r;IOTIp2GXyV!dbNmh>GmeX&jj4HlWr1ymkUzI<*t%9Oq7;bN3H~Vg@k{*pQsLxmVbdbe}g{w*ty$qh7K#K}S@w zWa|~<=6x4^<&Jt4-N)(E{YCgNK*pbF;@%;SvFjcY7A6rK#(l_tlH2p(Gp-a;I zOG6yI1>ovE)UqIm|kvm$-6mSAH|dcc08C_piQR$pXGpUMUjHT1`Kw{ZU+XY4KmqzAPi5z z(-+&!-SB5F*Q6u=n60;6t9npK7ANQx<1OaxSgfAT8$ZhxoLh{{8pam$m}6LeTg-1d zYWi$3A3(i6x0v@)m-ZHODd<2$%4>_!rBhps&T(!rI`_a(5YOP7Luyb$!rUEfzOv>7 zW4mT7tN7Cxh)h63e+5XJ4S8)d1fe8n1O8s&Brl`eE(LPuv-X6bQ9Ys6;@fCirJ${U z(4*@?%iLv3U3aCpylYolcS5ofJ>oSo!5Fem!k9U+d}^t<^!Iupm(`-H4QJiJe;Kg;E^ToiSv45i6dp)_o!{X)P$XS!^zax1M< zrnyRNvifaUbx;5W<%~l65=HS))}jpyfIawY@Ad531N=6Owc1D=_ zA&w8m#I1)l7^up|VJACRXr4l2rNTmMf@UcuhkPCsu0%O-$C)tbAeN5Wgw=prNq^xx z>E`U*x!@iQCpZ_}h4J9e4`V>*f;(t9^taO_@An1#JaD#HCY#)m?ey>5IsUWV`XfJ7 zB9{}z@ZXWM_(%PTzs4UlPHD&#f9;n2&v4-)N6Pt=)QaWJVWuI$Hk|w4QT%QPxy65Z?cu-F>D;S6QVT)AHs@*IDah zli1(>Ad1UiqCar+wn_dQ2@>hfuH7UbSSXc;iKErK^NEIa5p?7qjxNFqjU@FER+1+hnspKzP%h?tMBPajnt0Q{+NE;P9&1Kqnx*$A+~$~`pDcWXqo$86d?V`hd75|u zb!nd_CV_8TkSql&#IK|ig~2<;w^2$7BF33*pwq-r2ORt$_!37=9|*nz_4zKJ^Z?t<5?Rr**XYuemquxX$Yzox9(NIn@U^ zH87$98uqS6^V%poj))2ADA4gW16+u28KF4nR-@EF z{BFWBcxEBSzro<*M+8FUmza%b>&=c8ve}6m%#3mC*X7D%il42^DLM$oZA9BP#;xMs zx?!Boy)(wR0U)bk5)G$4;2@2#Hym7%1K%ET@FjON>UHrJl!MD1I&chnvR8NT>J$6` z6#@#)S+H|z3eJLf5e64t2rlo%;VwyZr;sm|u3^picZbKMCC7VFPSHW|?*Q7i@$Xjd ztsDO7+&wY=^#)Q6hN$l*fMqm}-mvWE94PjPWd{z^Lr@L`V`u8Ra5shHL_je^v3ctE z5wMr)jnxamM&h0nZkb6Mo{Uzn@tCDVt1~%82SKZIXxm1s7WdW-t#qz|6TJaagTX|r z-kJbf(KvcTtN9!#rqC)=+Eb<#Z_MA8`EW$15dXtbX4hrJ_N=O4BKl-Q{-(?D#zJQX zQ80~o9MReXXAAV0hK?Q*C+MZ9{wD(GX!SoPpqedid_Yu64duvQ9?J&2SB9tX+NnU{ z$G-=q@ol%=1}Q_n>DMK2BE_xTzjbEjG;Au0MWWGCH3&P+2Eu*8R^X;7gr$^z^82^q z)vZb$3EI7U|JJD;llb4xsU1{M`cfLHH*ejhuhiAuzA%Ldgee3P$reJILTEz>Z3aP= z=wgCfK{q?L@7TG0YEKaC#A|L-jz7D1ihd5f>^}UsyHILYN_OSFT#%pwctyGNAGDFIEZO5T zh|m?HQ$HYxpji-ail55i(MkpVL^sa!qC6h^7`U7(2x51RTYVW+8+<;kzMPaCag^ig zamx8R#!`I+ekDU28@>SjzQQ=E7-J=tQ?f%FZ_zvzytAd>g*58B!x{_w$8tt+;VIWx z(1~WjIsM&Er)Qjs(%KJfPlLHJ3~sD0kzHCsUD_`7jzVEtC5RfyiC z-4Z$TY{J;oGZZK$a14d&CDcG7Ch#>GtH&IA%nr1h6L0H!bdhx(s)$#H^1Y6W+db%@ zMapbc?(VUApV`FJ;5{XR+sghDsrDM&)=#h9`HDhU3jFF?sJLeJJHX~R@T>Up2>f~} z4H(LK3jF%dnjj2R$O!zp6(U-Z^dHz|U9GA7NRl-_ zFqycB?)`$Rd(1{6PvdF<8oHszY>aZ|tW_0C<@+dCz$TiG*(kGy;l=e%$FTgaeBbV< z>2u}#F4XJk%J(=bh##h&m$Q@b6rv8Oh` zBWNThkBE0jcl6cK>c1dRWRsA(j{9*gntdJDSIkD5enjz2M@=81_&)0ONfiG;UD`xJF&j0cQbeJ1oJ65>eWEWa42a2~ms)a^y&?Xe z=0Mm`cKRTGS)S~ip@zCd1n>+#RH`8UK2+@k2OOHZIGff}R5H#LoKzySVk#LZ;Lt(G z$ovT9c1KMgLU}3b^+_mqQI|HMP~=7pEH58mT{=ZpI>$*?I`_80kSabeMuWB_=Wdc; ze8H_=StcZwKBsXU=#`YJE`r2|<^X(*J?mIqKfGu=YWm>C>-)!x*QD`+-Xf(HBiKL? z&M?JOrG{;a_cjL{{2=&NM@=6H{xa(INm=ipE^W$6LC_g+C<(oMxo2C>>{9GMvq^Q= z_1gSRh3~rPK$542#WSbXQ(SHcZp2^8pDv%2zKC*}C#Bd==lC>?0*~Q98^1i0vf-63 zkwPb6DKjb|sS04L(5%3Ot(15zWdeuf5v^pflnJ*aqhx4LA?QE~0dW+(#5Sw#3bo3W zyeK9PBO|swbc_h2wKo~*N$H2-b zKsTh@k<)|fXTI4ehAo6|?i7n*SPDz*YevHcZcp&8u4 zZm-wx3$EX}V`A^F8?GPco3iU~+8LZV72HRD$eg(gcWt}z&g!n6Qxj9WRjC)Z$mjZw zTA|gVQU_k$sk9e#Cag3IC&S?7joL&owrg%1irjSb?wj`R*|TF}O7?Sm*e)O)2|HxU zot4v-5?%xfUO|weW_L{Ni3g^#Tfx||V|P=VH%?6Ll66T2JPM^5)w=)QJMRnbAH5eB zm{V#te6i%u3oT!tmYV%`(C_6iUDzUovoHZz zEZ=4ssH{hieeR$a(O~Tzl!EpW{8;`VV=!o?D+u;L49es#%-oiOB^yh7LAuYzA9-$J z%oU<&5Ax|~-?(wTqo$8^wWELB7|X$pjW*#L%a+V>KyeAk4E|IX|eP&Y<1&!rR=Q*J2O{vsvOsST` z?(r3{IeA8ienyC9Ba&yZ;h7^99jR;$<02TD$<1?(r>dt!JO?Q#Q1r)`{p4}2(dsvH z&IH6%$yJmTF~iXiS&rP&ipNT`0rERJn+Xk&oJJobz-8U38$#2zlwt_i86u=Yin+f-(6=3M z@PpvrIcoYqaM^~wA^49T5Zs(bOHCt@Bhy#`1>1Z^@Zp@fD@H(cHXKHvoWvy$P@j5g zeB<&0fHub-fXROhB!NLX2N`($E2k< z+>hlHHF2-{DirPk_g;_UHtxNKd+UaKI(H<-y;uZ`%v9h4l{Rs~)+&vhfV99%p`#bC zRVhZBaT;2DXQIXK@*QD~)F~y0fyq5LZ}s(RXB&X;g82t&fZDaI@xwmc@t#eJ> z)iXvGVm3-hj7|;%lY6$nXy+ow)5$6YJWjTokH;Tk;ARiH2Rwd}87#pT z8(PI?VV*)%tIOBf0vJ86Ys>f(G&}V=GS!8YHe>>7rlQN(!51V}+ld-tjM`Ui%$1^) zpm2Fk(LqrAS!mlv?M>WUH`La-Q!%slgrc5*)O%gv5%p}6Nj@HJ$bnmrLcpsMp$}|S zqPsF&oXJoOWZr$49dikRV5*=(6$N7@gf1fKKn7vB>)5e-DH4P7^vcAtRFnmYXsL7! zYsR&s9)OT+^hi$8L2&I}v~A<`w>p0B#pYANZ&#D<#HmGewhP1 zkP1JIX#}<}^yNTm)OS0Oo<~1RYb@;3nBlhiGUc{v)S|co-P~63qF%EUHurDU&*33< zfO>>z|5kp|Wvk+N=Tz9ZXrt|Ss}4TNWKF@$+}@X8J1R zyMe-Ea{YDTaa^wtOe`YXOXTz~(FmI|tLa{c`c{1$t=K`Gr`f1|(e=JzW|7_ZhK z{0f516l&tp8EwgG1dStI#)*X4>j=G#^FTNg+%JzV${)CehvMiYLz@%3@xs|Rgw-iR zX~GPZI>Wi9f|uihZWe*KaG`wp5-2}j%jdswwq6Zjr3WuXvU5B^IxT+wFa8F%SLdWH z6rLYvM)T1WHsK}9v96Ae$%uJ|wq_{JVGXwf0ZsYLRvoQka4TeHE~W7|5=?8fx;qDl z4Gj_X#)b~}4Sxv@;4DS!4p^Pf`?jMFAp6}Gy~I(|=eFn-sMphd+cs1Xj-vNcm-4>t z-NYmgvv0Fr{dGhvOjpLD8Hw4j9w^3g%K;5PI5r$LecAlC><-F$XWCpmx_Z>nx@ z;X_q}27U;Bu2GcbjmJc@-KQ4aKpw@G#T=ecP1U1?wb{RFAO{QGYLE@Yh>Q$(?YD>#Wl zW(|WVjyQ(pM-+z~HGPQU<*3)^9(*@-X%hwc_iIR{h(hN$i9+Z4cRrT5^=V zA^t=TgnLAMyim%K+m^t;-(?&(u&@9BlQaDk#k`&?I4MSE#S}A;um9T|Bl9Dgw>oP2 z5X~>6UY|ts4(ie-8uInm!1D6-*QHY=rgNMmrgI1N(2vP((3a%fO;S9chsP%z7~qFH zA9K|7!JRMkk2{}A;|_VV)2d3rIU^o`Dy6Pl3@8tDZ2Xo34t@~)rlY101iz1ZeNx{) zP?t9Kr6A~x2atqbzMS+(&g^>JE?&c0++eKLZsNLRUPR>EMwiO!BX&^7ZL)l{neIPD zMfo^R>>tmXzcH<)qe!AfQa+SIrMMgC-`k|3&VC+e6}PI+oAOI@1-@w++uWmw^?a`2 z+%RNTykYcz?zqh{EI)kR=cws}uZK~uPken5b!p=(ITC6}dF>XubZWQIInLce=k6Z} z#SHDsfDOr+n|sAj)HO9g*=)4?ogfjdG=L)Lh)Pn4LDArGW*#>mMx(FXQLiFhxi&z& z2p_!CV$qPxqxvCAK0S5;FyC((%w-TqZgi$ff|1>ovysbxVB$;Ge-znb-A8pjht&U;dmpYjWRZnaPk)Oi5$qJ&Lkh@3eGJ?W({MD`Kn`Bep}3!9W{Nnn7>86KDU^!QJ3}>vk_>j zA?3Bj=+dbzM&~%U7@d1yD2QiJ+mITRkT7=#o3E@n!Pu@D%PRgf1|k#C(508E9is;p zP7q3RHsJ3SPVzFk?NT6jK5I`18r2h8ExwJWRSMb~9paR_?n*HTT)Wb`6Oxta5wDR6 z#*lRq#=LKcV|ImzNDeoj!T(VX)u$MIW|PXU?{oQzTDI$>yAB__z7KJ^A%qUAV*zsZ zGroj5MGKX62@^Yn9{)Qy<{!gh$Fw5oG!c|W8Z{IGmr|_2Auxs6x(s7OMiF#sQX5-o zL|P&6c}d${#1X_u6G>JU%6m*$SWsz-hGhlEX&{``IBYpimdAq{9=SmrsGwMDw89Y) z<}1L%SloFltl^C|SYS}&c!Fn6M5?0DP!lvuVGN9X9u$lxis&pj!;#qaF02M5ql?uV zjZ;Cbaw^<+C!Ws<&Ycs_?wk|P?wsRSch1RYcks8j-16m>QDSN{-AM6L#Fs^|4cnSub#S~xNF^?bay|gE*5cL@E`{?qqlKH zIesPw{{bMweL<--IX5@CfPW&Qm&&Du+ZUX*6KNe&iCETD8ZU7=RYEwG5uPn_7&c_+ z!9E;!JuxxC$qzY#d3`IJ1Tsu{l$}p($D>g9Nly?gB#vQEye@n8#&(cb61&9f6T5_= zE?e>dVL$C)kbd%G~#;N~MB%C{`)iP##Dr`P&XS z_(AYJj+#CY{9ykO{GA*KzWb@QK^b)RR2#ViBQr%U4)7&SSP1D~ii~@fxM1PjOCva^RW->8|^Wu zwOenF%;>^SN9!vt%RRX$^)L;D_rGU%pQ+JRRw>7{yt&e|t@W`hqB0oh57eA( zQok0+YwEGOvuQV}Uu&UK9tMt9&oKpb?}da$3QR@E{Nd;ytRPgsrpQnf)p)T!H#0!8M_aa#e zR2ilXs+1ByjI-K6r-+9gaPWiRf}^Gn1Rq7cJ|Xy8>M{$0`4oG1&Zrf|5f?`Y`u~-PU>MqjUF5Km9(z zseus<*bq>M#$@h|`Lyz(9EgHelo|8~xM;Q+^ueytbArZ970TdAJPi@raiThPeyP*A zg_XCdG5^CYX)5-JXE2?WmlKg^Zr=*Kmgf{Tv8(!*fJP7Dp;n`98@s;8;OvH7I`@`1 z3Iw$1t=_;G_FAeN{FzZrQ9lC-?=%noNGIlP^y!OXY$x8$G^k(7)(vNxybAQ-nlg>g4>Z{09X z=iV7(+yIc(Fo}lK9&nIG*c%S+$boN<-0dZqv2YF@IEEXoSL2-7f*QVO}b}jYPgwx`s95U(;jK68{=GMF+vZHrlp1-YM>_8~*9sJu&|E22u@% zsP86#Wi*c7u&kT|#U8Qjz+qxh?s$vfbGTduQ>)-Ql_D-;^E?eRCEh_Hr0D>RUI;c4 z_oT%%BT2)P(dt(`W+~C?7judZf>ytVwr#X}C->G3t#qz|6SPD415$&*M62GK09w&F zdPA#sagV)mP?dHP%t*v>yDYSK)z5!QP z@qsW~z~^1Kf9KR6hABlLEf=)ig0@;`V+io14+3gYk1iM^_!soVyr;?9XZH_M)P zitih55`XvJnA^Z^9)X$y?UUw|cIA)YX0EWC3etmaaw<3Sh;~ivcELbm*fYy5SLx}# z+?s#zPWHcZ7^~77KhceC+?vN29|N~>#m?!@CPkDtI#jx&yj^((a$Hf~46FTqBfULe zGPzcEc(*GxQ>25a;*8+dtB!*c zS51yXu=djkfYuZV>jwN52xUO6dnBym z6A&c2#e*u;YHS`EOYVdaKo6yvu!E?=rLEQs3#A1W&k7O;MQsuRzb8iQZrDWuJv7dU zmkc|tu!&!dK$v;aE}OXImFWQl;P*!M3EN zMqYqfW{a#nW!tv|aF%GmQdG@XO^|2HPr8byWMSYMmehe|OZ1>UA!WgeM{Ea&n{idW zq}>2xPHBvBnS1vWvb|0Cn4`*+UR~5VU)z7=>4P7dtwc|wNjVTDW?V@QNzCZ?%7@PH z=EQ-$$`YA@Q%e@q=x6fLoA0sTOk+7D+3*oU^F&Z1!+hrf#pfIj$924^OxrRkIaM*^ z5`x)H1**IRn=}UbS97MRl^aS){EJ)xyKFj+k<5y3*awtxmBB2+VeB01_qul^>)=HZMdYU6+Uj#@PEu4g6fdRCo?9 zQ?=T({M}lZn`zYGk5j?o;7_3iC#LCQ4S(@fjGcn8p2bts%2j1VIr~^%K_XH41}Wzt z{mt3Nm+@27WXGY{C&=&;iamy8qM6stpNKq-&YtCy*;u^O9pB9d4q65U!ESCcz2ka( z+ITu*y9DKyXyY+PV+B9stdPtB1G<_R5NzZf##&2m5_f}xN&4;8TO2ig_Ub9r>vON( zN?qD}HHB9r`0)v47kEIu4J~^s2vx7OX1rU@~wVwQEo|Xg^ zi#AWs`8m)hPvkmOm2xWK{^h_F;vK;M*uUo8Ub}A0ikE2L?Y3(qw%^#h;Rdg98x-qV z0dP7Y;iP!%;51tCr%~#h8Po$y1Ze{#OV))0h_O{&wB#Gr>m1U{%q)Ow#CcFp$4P-2W8Vi`tb3opkM^LvhkFdR6zWrez(GNTv^d`%9 zn!gO>HO0}~3orFtyWEy8u~04#Q%9?tbLf)@iM(RyoIV@{g5?1tE#a&*8z3L^7$7MU z{+IygsZG2pr8nRQv4z3P*!g6vUvaII=(y$0EuR^&@ zwCvppV@mm$ zJHQv4k%;@dIYkFS+{e+jjku3- zZ`}}A=h_GwueP0zRi+xlMcgkYTFk}=X(y2!1}3;!Ag;N-@jM)vj>+Vs?0XoT*+aBY zHnT}(+dY=wDhuT#T=>g8nO(DOx3UiKlg`LE(q&H7y&qv5NzB)692s1V9G7vVu)Hbv zYZ$pr8Qx8oD#doTb>ubrhL8D#RkL3c$-P!9WAfy`pX?;b#Jtv-tGDEr3jJ{q_Fuy? zqTCIznl#!SU6p+y8By-kwW9iYGos`LS`@a7u_fgO3x3L+GLfo@ndi1^6RK|0z z-boE4Y$~^TubjAx8qnhM0SqDQjFB+3yq}Aw`i!wl0S;E4MxqV3aPU4856DVcFOh2Z z+Ulp*?tDg}F`1OQmNc$e-Hx7PlTz{JVN!aC28<&fnUqfAw;(SAX);VoA9*sFln!E1 zIz9rEfef=zvL=wICaqN|g$!BQOqH!!VL1x3i(03|uDsF!LEhX-BPin8CvL&1ti;)k zPMc1)(%?%6SY@4V{A8>OAjy?U@vjm%qNF;vJZ+3r-=uMHSVpQpOBkN5;83Rq>YQ&_ z{-ckP>XRDdj5FHPU@~A%NyIRen=%#+Q;66auF*bxD=Ag&7vjU_*za|qho9o|-Hw_* zip$4QuP4Rj8&N@+89qi`3dQ9GkY(8LR@2DN-Z`0pl>O9RLM-?*$6ESf!Dk#beX!sw zsMjYJd?Chy>L>79zICiuM#X{Eh#sjFF9`C+lA!XE%6(?+W?Q8jgB?>qbLVWzBm`S%+-6> z^ZtlqSbk*kaz{-cG6_+yPe$`f>Qdg5 zNk+2mQ(ApXB;m)TK?X^aQE~mKV9|(kXJ)IZkrb zxsP0MMAS)Cn$Oxy{fl~!NOx6yYbCo)ISirf0gZe1` zAypOZf-Bv13-CCppk$MtA1efO%o5rOk`1L=BEbygFciJ5QQvyKm>K-9oXMw{!T;n6 zPG%spQp{kc(Ws@F0i~+Jt>h1TWNV+D7O?!7!AeI>A7*eF>h;MCMyN}h8ITp929_5y z(4|w%K<7A_fzCZNB=j;)jzeowLc=7@VJQ{%Io8_`Q+7LQ`e4d|{xRj&G^Si^z=joK z>Hw(;!aP#aYG*^Sza!AV?6L1DwWI)%W6t)cKiYP)}BZ;|Z?U z9^*ApzHq`TgrIUFcGnv2vYnuHJE0bi1p|5wE9rU{v&3W$kn*<)Dcw$a18J>4t3&X~~k%${5*7 z{zfZb$ypiV>(WX{gKn)x&lnBkG{?{~_X2)HNGf`0h2Db^5%yx0Vz;nk{jxBVWD}e$ zcHY|CZ|ep``)>nt{+^t(G94P0NH}s0VY_Xy;zzNo9W{L@_6pSNlVaCXmo~+2mat)p zO?wx`=$FoOK-C)!soNM0ZO@}GKJ7O^Y&TEuNous=qyG+|ow-}u)MDbivKTrAK@LKn z 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 hN5Du5c`iEC{4<5{{belu*v`c literal 117060 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 Nmnq(ilP8Gy0RYO=%)I~r diff --git a/docs/_build/doctrees/information.doctree b/docs/_build/doctrees/information.doctree index 6ab0407079658c06efb61c9e1ecb7079b87d5ea2..a53609dc3903962e75eb0cf1a44aab467aea2720 100644 GIT binary patch delta 678 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 IK(*8NFK%x(3jhEB diff --git a/docs/_build/doctrees/introduction.doctree b/docs/_build/doctrees/introduction.doctree index de594467e0166e5004b4170d20c872ecff3b71cc..3a4e41a2c9dd5e5afa5665d347b4ce6c2038fc20 100644 GIT binary patch delta 907 zcmZ9LOH30%7{@zpmsb%f<&~vS4N@p9twstoMofGhlvs?$#8(0oOQvJ(;&vB3pcM@X zF*OLYp20^Ni3iXI6@ZCZ(Jl^pdN~`x#f^M(pmafI-GAOC!HNq7Umg^#&}!h7&)zB=i_YCnUQt#ZqHNZK(|* z2X%`oDy8G1H%+^LUOl0ih0p3?T-AqcgBtgs?y-g9|MMvCG|kvX)Sz zik^1#$?-V*A7XMMsi$*~Z00F@X=K0EV(GLcNA%M=z25o<&C|iQcJ|`rOt3%Fi-mGmw|@7wKeFAs@L{&1 z!iPO9&J}tp!o)&|#eE7UsPy1N4;4g#gakcgL{B{hMZe#jSp@a+<##yee7@)R`<+LM zu2>3|sn8S4J_sC&kaSXv2#K7KNymkZqC}30*~?0LEYc?_$JDq!3fDI`7I`U^6SKm-rihOq1{@tw(oZ_R0ynG1iGahl^H9cu zduQDrERx-TSdF?IuDW}%&lz?s8c1?u04Q%3C!A%N#fU5JF1n;tRuK{jL6Op__Jj}@ z6B?o`4DWE>72{TD{TpiJM{mO}Si_!%6XDmSiR>lK10KerY_LR@nhHHPnXPMs|i+z}}~N z8QGx^HyWT3PYgCkV}UaV^hJClDI z59$3)TTB!-;_2dA4Ek;Vni+0kDcFt&H}O~wSga)i#H_~U!}@%HCa0)r%Xaw`Wyz3d$_b?28*!_Sn(e8A21EERa>r5HC$i%uuVHqLHByJ0(L4i1mTk5QvQ@FJx3^ z)SY~k(ciI$BQviowYa39a!P52X@+PITXBAAQF7{(9!LF*{M=Oi#GJCkqI`Xq)Z*-t z`~v-g)S}}2yu_UNf};Ga)Z~)l$!<()YN{CmxNVCCo6MJ?I(ZV4wipfTmhgwN&h;K=X*2G3?8mPM?L8k4tjs%pdik&=iSxUo}uSTl=r z^HZjDfI{>F(BG_FH+8r&Q{t2JOY=%ni>CB&C+Fwn07EY`Kd*R754$r|eDajqDXmk2 Krc8dtNWvRs_1(j1K-d-T9mLXo6l$fDjJ4GWyGj>XbHV_*C zu@MlPOrF80%&0ec52L?PhFoceS%zp2TXBAAQF7{(9&7!K{M=Oi#GJCkqWq-9qLLDQ zm(=3ylKcXF_skNH(xk~gOloRs83MSCkDUTClP^PU@(dgSPmJyJlmcgCD zn8BRk-V={$vtCYqa$?TpFy;U@h%uAbFe^nt{etAn0CJW=ec< P2{6E>cr#8`;PwLmP#lxZ diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css index ea6972d5..01192852 100644 --- a/docs/_build/html/_static/basic.css +++ b/docs/_build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -672,6 +672,10 @@ div.code-block-caption + div > div.highlight > pre { margin-top: 0; } +div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; +} + div.code-block-caption span.caption-number { padding: 0.1em 0.3em; font-style: italic; diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js index b33f87fc..daccd209 100644 --- a/docs/_build/html/_static/doctools.js +++ b/docs/_build/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -283,10 +283,11 @@ var Documentation = { }, initOnKeyListeners: function() { - $(document).keyup(function(event) { + $(document).keydown(function(event) { var activeElementType = document.activeElement.tagName; // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { switch (event.keyCode) { case 37: // left var prevHref = $('link[rel="prev"]').prop('href'); diff --git a/docs/_build/html/_static/documentation_options.js b/docs/_build/html/_static/documentation_options.js index 56875171..5a9ca728 100644 --- a/docs/_build/html/_static/documentation_options.js +++ b/docs/_build/html/_static/documentation_options.js @@ -3,6 +3,7 @@ var DOCUMENTATION_OPTIONS = { VERSION: '0.9.14', LANGUAGE: 'None', COLLAPSE_INDEX: false, + BUILDER: 'html', FILE_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt', diff --git a/docs/_build/html/_static/language_data.js b/docs/_build/html/_static/language_data.js index 5266fb19..d2b4ee91 100644 --- a/docs/_build/html/_static/language_data.js +++ b/docs/_build/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js index 6031f991..d11b33a7 100644 --- a/docs/_build/html/_static/searchtools.js +++ b/docs/_build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -63,6 +63,11 @@ var Search = { htmlElement.innerHTML = htmlString; $(htmlElement).find('.headerlink').remove(); docContent = $(htmlElement).find('[role=main]')[0]; + if(docContent === undefined) { + console.warn("Content block not found. Sphinx search tries to obtain it " + + "via '[role=main]'. Could you check your theme or template."); + return ""; + } return docContent.textContent || docContent.innerText; }, @@ -245,7 +250,8 @@ var Search = { if (results.length) { var item = results.pop(); var listItem = $('

  • '); - if (DOCUMENTATION_OPTIONS.FILE_SUFFIX === '') { + var requestUrl = ""; + if (DOCUMENTATION_OPTIONS.BUILDER === 'dirhtml') { // dirhtml builder var dirname = item[0] + '/'; if (dirname.match(/\/index\/$/)) { @@ -253,15 +259,15 @@ var Search = { } else if (dirname == 'index/') { dirname = ''; } - listItem.append($('
    ').attr('href', - DOCUMENTATION_OPTIONS.URL_ROOT + dirname + - highlightstring + item[2]).html(item[1])); + requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + dirname; + } else { // normal html builders - listItem.append($('').attr('href', - item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX + - highlightstring + item[2]).html(item[1])); + requestUrl = DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX; } + listItem.append($('').attr('href', + requestUrl + + highlightstring + item[2]).html(item[1])); if (item[3]) { listItem.append($(' (' + item[3] + ')')); Search.output.append(listItem); @@ -269,7 +275,7 @@ var Search = { displayNextItem(); }); } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { - $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX, + $.ajax({url: requestUrl, dataType: "text", complete: function(jqxhr, textstatus) { var data = jqxhr.responseText; @@ -424,7 +430,7 @@ var Search = { for (j = 0; j < _files.length; j++) { file = _files[j]; if (!(file in scoreMap)) - scoreMap[file] = {} + scoreMap[file] = {}; scoreMap[file][word] = o.score; } }); @@ -432,7 +438,7 @@ var Search = { // create the mapping for (j = 0; j < files.length; j++) { file = files[j]; - if (file in fileMap) + if (file in fileMap && fileMap[file].indexOf(word) === -1) fileMap[file].push(word); else fileMap[file] = [word]; diff --git a/docs/_build/html/api.html b/docs/_build/html/api.html index 68f8e263..6ef774e5 100644 --- a/docs/_build/html/api.html +++ b/docs/_build/html/api.html @@ -21,10 +21,10 @@ - - - - + + + + diff --git a/docs/_build/html/disclaimer.html b/docs/_build/html/disclaimer.html index 85155486..5babae0c 100644 --- a/docs/_build/html/disclaimer.html +++ b/docs/_build/html/disclaimer.html @@ -21,10 +21,10 @@ - - - - + + + + diff --git a/docs/_build/html/etfs_api.html b/docs/_build/html/etfs_api.html index 1ce6849d..a1239ccb 100644 --- a/docs/_build/html/etfs_api.html +++ b/docs/_build/html/etfs_api.html @@ -21,10 +21,10 @@ - - - - + + + + @@ -208,7 +208,7 @@
    -investpy.etfs.get_etf_historical_data(etf, country, from_date, to_date, as_json=False, order='ascending', interval='Daily')
    +investpy.etfs.get_etf_historical_data(etf, country, from_date, to_date, stock_exchange=None, as_json=False, order='ascending', interval='Daily')

    This function retrieves historical data from the introduced etf from Investing via Web Scraping on the introduced date range. The resulting data can it either be stored in a pandas.DataFrame or in a json object with ascending or descending order.

    @@ -268,7 +268,7 @@

    Examples

    -
    >>> investpy.get_etf_historical_data(etf='bbva accion dj eurostoxx 50', country='spain', from_date='01/01/2010', to_date='01/01/2019')
    +
    >>> investpy.get_etf_historical_data(etf='bbva accion dj eurostoxx 50', country='spain', from_date='01/01/2010', to_date='01/01/2019')
                      Open   High    Low  Close Currency Exchange
         Date
         2011-12-07  23.70  23.70  23.70  23.62      EUR   Madrid
    @@ -338,7 +338,7 @@
     
     
    -investpy.etfs.get_etf_recent_data(etf, country, as_json=False, order='ascending', interval='Daily')
    +investpy.etfs.get_etf_recent_data(etf, country, stock_exchange=None, as_json=False, order='ascending', interval='Daily')

    This function retrieves recent historical data from the introduced etf from Investing via Web Scraping. The resulting data can it either be stored in a pandas.DataFrame or in a json file, with ascending or descending order.

    @@ -396,7 +396,7 @@

    Examples

    -
    >>> investpy.get_etf_recent_data(etf='bbva accion dj eurostoxx 50', country='spain')
    +
    >>> investpy.get_etf_recent_data(etf='bbva accion dj eurostoxx 50', country='spain')
                       Open    High     Low   Close Currency Exchange
         Date
         2019-08-13  33.115  33.780  32.985  33.585      EUR   Madrid
    @@ -424,9 +424,9 @@
     Investing.com is returned, but if it is specified, just the etfs from that country are returned.

    In the case that the file reading of etfs.csv or the retrieval process from Investing.com was successfully completed, the resulting pandas.DataFrame will look like:

    -
    country | name | full_name | symbol | isin | asset_class | currency | stock_exchange
    ---------|------|-----------|--------|------|-------------|----------|----------------
    -xxxxxxx | xxxx | xxxxxxxxx | xxxxxx | xxxx | xxxxxxxxxxx | xxxxxxxx | xxxxxxxxxxxxxx
    +
    country | name | full_name | symbol | isin | asset_class | currency | stock_exchange | def_stock_exchange
    +--------|------|-----------|--------|------|-------------|----------|----------------|--------------------
    +xxxxxxx | xxxx | xxxxxxxxx | xxxxxx | xxxx | xxxxxxxxxxx | xxxxxxxx | xxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxxx
     

    @@ -472,7 +472,8 @@ "isin": isin, "asset_class": asset_class, "currency": currency, - "stock_exchange": stock_exchange + "stock_exchange": stock_exchange, + "def_stock_exchange": def_stock_exchange }
    diff --git a/docs/_build/html/funds_api.html b/docs/_build/html/funds_api.html index a53f3895..c6e07e0d 100644 --- a/docs/_build/html/funds_api.html +++ b/docs/_build/html/funds_api.html @@ -21,10 +21,10 @@ - - - - + + + + @@ -263,7 +263,7 @@

    Examples

    -
    >>> investpy.get_fund_historical_data(fund='bbva multiactivo conservador pp', country='spain', from_date='01/01/2010', to_date='01/01/2019')
    +
    >>> investpy.get_fund_historical_data(fund='bbva multiactivo conservador pp', country='spain', from_date='01/01/2010', to_date='01/01/2019')
                      Open   High    Low  Close Currency
         Date
         2018-02-15  1.105  1.105  1.105  1.105      EUR
    @@ -381,7 +381,7 @@
     
     
     

    Examples

    -
    >>> investpy.get_fund_recent_data(fund='bbva multiactivo conservador pp', country='spain')
    +
    >>> investpy.get_fund_recent_data(fund='bbva multiactivo conservador pp', country='spain')
                      Open   High    Low  Close Currency
         Date
         2019-08-13  1.110  1.110  1.110  1.110      EUR
    diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html
    index 50bd2242..2a60aff1 100644
    --- a/docs/_build/html/genindex.html
    +++ b/docs/_build/html/genindex.html
    @@ -22,10 +22,10 @@
       
         
           
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html
    index c913c01c..dcf5cadb 100644
    --- a/docs/_build/html/index.html
    +++ b/docs/_build/html/index.html
    @@ -21,10 +21,10 @@
       
         
           
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/_build/html/information.html b/docs/_build/html/information.html
    index bdf21288..9d7059b7 100644
    --- a/docs/_build/html/information.html
    +++ b/docs/_build/html/information.html
    @@ -21,10 +21,10 @@
       
         
           
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/_build/html/installation.html b/docs/_build/html/installation.html
    index cee6ed37..79d52fb6 100644
    --- a/docs/_build/html/installation.html
    +++ b/docs/_build/html/installation.html
    @@ -21,10 +21,10 @@
       
         
           
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/_build/html/introduction.html b/docs/_build/html/introduction.html
    index 9ddb87c2..3855fd7f 100644
    --- a/docs/_build/html/introduction.html
    +++ b/docs/_build/html/introduction.html
    @@ -21,10 +21,10 @@
       
         
           
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/_build/html/main_api.html b/docs/_build/html/main_api.html
    index b72fa1dc..d58a9990 100644
    --- a/docs/_build/html/main_api.html
    +++ b/docs/_build/html/main_api.html
    @@ -21,10 +21,10 @@
       
         
           
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/_build/html/py-modindex.html b/docs/_build/html/py-modindex.html
    index e4152b60..52896494 100644
    --- a/docs/_build/html/py-modindex.html
    +++ b/docs/_build/html/py-modindex.html
    @@ -21,10 +21,10 @@
       
         
           
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html
    index fd79c6d8..07c3405e 100644
    --- a/docs/_build/html/search.html
    +++ b/docs/_build/html/search.html
    @@ -21,11 +21,11 @@
       
         
           
    -        
    -        
    -        
    -        
    -        
    +        
    +        
    +        
    +        
    +        
         
         
     
    diff --git a/docs/requirements.txt b/docs/requirements.txt
    new file mode 100644
    index 00000000..04099db1
    --- /dev/null
    +++ b/docs/requirements.txt
    @@ -0,0 +1,3 @@
    +sphinx==2.4.4
    +sphinx_rtd_theme==0.4.3
    +recommonmark==0.6.0
    
    From a8661fa45105e130c11871b848993d094cc0bcef Mon Sep 17 00:00:00 2001
    From: Alvaro Bartolome 
    Date: Fri, 13 Mar 2020 19:59:20 +0100
    Subject: [PATCH 03/48] updated github username details
    
    ---
     README.md                              | 12 ++++++------
     docs/faq.md                            |  4 ++--
     docs/index.rst                         |  2 +-
     docs/information.rst                   |  2 +-
     docs/installation.rst                  |  4 ++--
     docs/usage.rst                         |  2 +-
     investpy/__init__.py                   |  4 ++--
     investpy/bonds.py                      |  2 +-
     investpy/certificates.py               |  2 +-
     investpy/commodities.py                |  2 +-
     investpy/crypto.py                     |  2 +-
     investpy/currency_crosses.py           |  2 +-
     investpy/data/__init__.py              |  2 +-
     investpy/data/bonds_data.py            |  2 +-
     investpy/data/certificates_data.py     |  2 +-
     investpy/data/commodities_data.py      |  2 +-
     investpy/data/crypto_data.py           |  2 +-
     investpy/data/currency_crosses_data.py |  2 +-
     investpy/data/etfs_data.py             |  2 +-
     investpy/data/funds_data.py            |  2 +-
     investpy/data/indices_data.py          |  2 +-
     investpy/data/stocks_data.py           |  2 +-
     investpy/errors/__init__.py            |  2 +-
     investpy/etfs.py                       |  2 +-
     investpy/funds.py                      |  2 +-
     investpy/indices.py                    |  2 +-
     investpy/news.py                       |  2 +-
     investpy/resources/__init__.py         |  2 +-
     investpy/search.py                     |  2 +-
     investpy/stocks.py                     |  2 +-
     investpy/technical.py                  |  2 +-
     investpy/utils/__init__.py             |  2 +-
     investpy/utils/auxiliar.py             |  2 +-
     investpy/utils/data.py                 |  2 +-
     investpy/utils/search_obj.py           |  2 +-
     investpy/utils/user_agent.py           |  2 +-
     setup.py                               | 10 +++++-----
     tests/__init__.py                      |  2 +-
     tests/test_investpy.py                 |  2 +-
     tests/test_investpy_errors.py          |  2 +-
     40 files changed, 52 insertions(+), 52 deletions(-)
    
    diff --git a/README.md b/README.md
    index fab6e249..fc691a63 100644
    --- a/README.md
    +++ b/README.md
    @@ -1,5 +1,5 @@
     

    - +

    Financial Data Extraction with Python

    @@ -35,7 +35,7 @@ pip on the terminal by typing: ``$ pip install investpy`` -Every package used is listed in [requirements.txt](https://github.com/alvarob96/investpy/blob/master/requirements.txt) +Every package used is listed in [requirements.txt](https://github.com/alvarobartt/investpy/blob/master/requirements.txt) file, which can also be installed via pip: ``$ pip install -r requirements.txt`` @@ -143,15 +143,15 @@ of some support modules, which implement an additional functionallity based on i can contribute to this section by creating any package, module or utility which uses this package. So on, the ones already created are going to be presented, since they are intended to be used combined with investpy: -- [investpy_portfolio](https://github.com/alvarob96/investpy_portfolio/): is a Python package to generate stock portfolios. -- [trendet](https://github.com/alvarob96/trendet/): is a Python package for trend detection on stock time series data. +- [investpy_portfolio](https://github.com/alvarobartt/investpy_portfolio/): is a Python package to generate stock portfolios. +- [trendet](https://github.com/alvarobartt/trendet/): is a Python package for trend detection on stock time series data. ## Contribute - [![Open Source Helpers](https://www.codetriage.com/alvarob96/investpy/badges/users.svg)](https://www.codetriage.com/alvarob96/investpy) As this is an open source project it is open to contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas. -Also there is an open tab of [issues](https://github.com/alvarob96/investpy/issues) where anyone can contribute opening +Also there is an open tab of [issues](https://github.com/alvarobartt/investpy/issues) where anyone can contribute opening new issues if needed or navigate through them in order to solve them or contribute to its solving. Remember that issues are not threads to describe multiple issues, this does not mean that issues can't be discussed, but if new issues are reported, a new issue should be open so to keep a structured project management. @@ -162,7 +162,7 @@ ideas to improve package functionality and efficiency. ## Reference -`investpy - a Python package for Financial Data Extraction developed by Álvaro Bartolomé del Canto @ alvarob96 at GitHub` +`investpy - a Python package for Financial Data Extraction developed by Álvaro Bartolomé del Canto @ alvarobartt at GitHub` ## Disclaimer diff --git a/docs/faq.md b/docs/faq.md index 25f5b65c..33277ffd 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -12,7 +12,7 @@ As it is known, investpy gathers and retrieves data from Investing.com which is ## I am having problems while installing the package. -If you followed the [Installation Guide](https://github.com/alvarob96/investpy/blob/master/README.md#Installation), you should be able to use investpy without having any problem, anyways, if you are stuck on it, open an issue at investpy issues tab so to let the developers know which is your problem in order to solve it as soon as possible. If you were not able to complete the installation, please check that you are running Python 3.5 at least and that you are installing the latest version available, if you are still having problems, open an issue. +If you followed the [Installation Guide](https://github.com/alvarobartt/investpy/blob/master/README.md#Installation), you should be able to use investpy without having any problem, anyways, if you are stuck on it, open an issue at investpy issues tab so to let the developers know which is your problem in order to solve it as soon as possible. If you were not able to complete the installation, please check that you are running Python 3.5 at least and that you are installing the latest version available, if you are still having problems, open an issue. ## How do I contribute to investpy? @@ -22,4 +22,4 @@ Currently I am not admitting any Pull Request since investpy is under developmen Since investpy is an open source Python package, whenever you use it, would be nice from you to mention or comment where does the data comes from. This way, investpy can be spread among more users which will consequently improve package usage since more users can contribute to it due to the increasing reach to newcome developers. A sample reference is presented below: -`investpy - a Python package for Financial Historical Data Extraction developed by Álvaro Bartolomé del Canto @ alvarob96 at GitHub` +`investpy - a Python package for Financial Historical Data Extraction developed by Álvaro Bartolomé del Canto @ alvarobartt at GitHub` diff --git a/docs/index.rst b/docs/index.rst index 91dbc008..76818530 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,7 +6,7 @@ Welcome to investpy's documentation! ==================================== -.. image:: https://raw.githubusercontent.com/alvarob96/investpy/master/docs/investpy_logo.png +.. image:: https://raw.githubusercontent.com/alvarobartt/investpy/master/docs/investpy_logo.png :align: center .. toctree:: diff --git a/docs/information.rst b/docs/information.rst index 5f86eea5..9afe71dd 100644 --- a/docs/information.rst +++ b/docs/information.rst @@ -2,7 +2,7 @@ Additional Information ====================== As this is an open source project it is open to contributions, bug reports, bug fixes, documentation improvements, -enhancements and ideas. On Github you can find an open tab of `issues `_ +enhancements and ideas. On Github you can find an open tab of `issues `_ where you can contribute by opening new issues if needed or contribute to its solving. Additionally, you can triage issues on `investpy Code Triage `_ where diff --git a/docs/installation.rst b/docs/installation.rst index cb464ae0..5fce09cd 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -25,7 +25,7 @@ Cloud, respectively. So, to install the latest release of `investpy `_ installed an * from GitHub via PyPi:: - $ python -m pip install --upgrade https://github.com/alvarob96/investpy/archive/master.zip + $ python -m pip install --upgrade https://github.com/alvarobartt/investpy/archive/master.zip All the dependencies are already listed on the setup file of the package, but to sum them up, when installing `investpy `_, it will install the following dependencies: diff --git a/docs/usage.rst b/docs/usage.rst index 3fb83e2b..5662ab5b 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -1,7 +1,7 @@ Usage ===== -Along this document, the main `investpy `_ functions are going to be presented. So on, this is a tutorial +Along this document, the main `investpy `_ functions are going to be presented. So on, this is a tutorial on how to use **investpy** to retrieve data from the financial products available, such as: stocks, funds, ETFs, indices and currency crosses, retrieved from Investing.com. diff --git a/investpy/__init__.py b/investpy/__init__.py index 949dbae2..15768ab4 100644 --- a/investpy/__init__.py +++ b/investpy/__init__.py @@ -1,7 +1,7 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. -__author__ = 'Alvaro Bartolome @ alvarob96 in GitHub' +__author__ = 'Alvaro Bartolome @ alvarobartt in GitHub' __version__ = '0.9.14' from investpy.stocks import get_stocks, get_stocks_list, get_stocks_dict, get_stock_countries, get_stock_recent_data, \ diff --git a/investpy/bonds.py b/investpy/bonds.py index 2b0aca51..e1eb3fb2 100644 --- a/investpy/bonds.py +++ b/investpy/bonds.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/certificates.py b/investpy/certificates.py index fcdc4d04..a6f5fb06 100644 --- a/investpy/certificates.py +++ b/investpy/certificates.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/commodities.py b/investpy/commodities.py index e92c0c53..acfb0ec8 100644 --- a/investpy/commodities.py +++ b/investpy/commodities.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/crypto.py b/investpy/crypto.py index 09728289..7b7f39e8 100644 --- a/investpy/crypto.py +++ b/investpy/crypto.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/currency_crosses.py b/investpy/currency_crosses.py index 1faa080a..d58637e3 100644 --- a/investpy/currency_crosses.py +++ b/investpy/currency_crosses.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/data/__init__.py b/investpy/data/__init__.py index cd7b2241..2a7879b4 100644 --- a/investpy/data/__init__.py +++ b/investpy/data/__init__.py @@ -1,2 +1,2 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. diff --git a/investpy/data/bonds_data.py b/investpy/data/bonds_data.py index 213faa29..eb5dbee1 100644 --- a/investpy/data/bonds_data.py +++ b/investpy/data/bonds_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import unidecode diff --git a/investpy/data/certificates_data.py b/investpy/data/certificates_data.py index 5f26a60b..c77dcd8b 100644 --- a/investpy/data/certificates_data.py +++ b/investpy/data/certificates_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import json diff --git a/investpy/data/commodities_data.py b/investpy/data/commodities_data.py index cd7ac4d7..9659e919 100644 --- a/investpy/data/commodities_data.py +++ b/investpy/data/commodities_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import unidecode diff --git a/investpy/data/crypto_data.py b/investpy/data/crypto_data.py index 0bc48030..5b7b825f 100644 --- a/investpy/data/crypto_data.py +++ b/investpy/data/crypto_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import unidecode diff --git a/investpy/data/currency_crosses_data.py b/investpy/data/currency_crosses_data.py index b2726d0d..cd157d83 100644 --- a/investpy/data/currency_crosses_data.py +++ b/investpy/data/currency_crosses_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import json diff --git a/investpy/data/etfs_data.py b/investpy/data/etfs_data.py index 201b5f85..9d9f8eb7 100644 --- a/investpy/data/etfs_data.py +++ b/investpy/data/etfs_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import json diff --git a/investpy/data/funds_data.py b/investpy/data/funds_data.py index 8a218c0d..126d841d 100644 --- a/investpy/data/funds_data.py +++ b/investpy/data/funds_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import json diff --git a/investpy/data/indices_data.py b/investpy/data/indices_data.py index 6cefcf71..2c756809 100644 --- a/investpy/data/indices_data.py +++ b/investpy/data/indices_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import json diff --git a/investpy/data/stocks_data.py b/investpy/data/stocks_data.py index 73296eb6..e9230e69 100644 --- a/investpy/data/stocks_data.py +++ b/investpy/data/stocks_data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import unidecode diff --git a/investpy/errors/__init__.py b/investpy/errors/__init__.py index af2596d3..4ab65f21 100644 --- a/investpy/errors/__init__.py +++ b/investpy/errors/__init__.py @@ -1,2 +1,2 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. \ No newline at end of file diff --git a/investpy/etfs.py b/investpy/etfs.py index 93576335..781b05c8 100644 --- a/investpy/etfs.py +++ b/investpy/etfs.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/funds.py b/investpy/funds.py index a3b535e7..61009f61 100644 --- a/investpy/funds.py +++ b/investpy/funds.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/indices.py b/investpy/indices.py index 6cd05e63..38111ccc 100644 --- a/investpy/indices.py +++ b/investpy/indices.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/news.py b/investpy/news.py index 5a371c94..33ee1b65 100644 --- a/investpy/news.py +++ b/investpy/news.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime diff --git a/investpy/resources/__init__.py b/investpy/resources/__init__.py index af2596d3..4ab65f21 100644 --- a/investpy/resources/__init__.py +++ b/investpy/resources/__init__.py @@ -1,2 +1,2 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. \ No newline at end of file diff --git a/investpy/search.py b/investpy/search.py index 800c0d7c..b9264c65 100644 --- a/investpy/search.py +++ b/investpy/search.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import requests diff --git a/investpy/stocks.py b/investpy/stocks.py index 0c18a967..cc80e8af 100644 --- a/investpy/stocks.py +++ b/investpy/stocks.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from datetime import datetime, date diff --git a/investpy/technical.py b/investpy/technical.py index eb309315..21d115f8 100644 --- a/investpy/technical.py +++ b/investpy/technical.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import pandas as pd diff --git a/investpy/utils/__init__.py b/investpy/utils/__init__.py index cd7b2241..2a7879b4 100644 --- a/investpy/utils/__init__.py +++ b/investpy/utils/__init__.py @@ -1,2 +1,2 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. diff --git a/investpy/utils/auxiliar.py b/investpy/utils/auxiliar.py index ece76285..1473b49e 100644 --- a/investpy/utils/auxiliar.py +++ b/investpy/utils/auxiliar.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import pandas as pd diff --git a/investpy/utils/data.py b/investpy/utils/data.py index 1a5fc59a..0649ddc0 100644 --- a/investpy/utils/data.py +++ b/investpy/utils/data.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. diff --git a/investpy/utils/search_obj.py b/investpy/utils/search_obj.py index 4f19583b..9dcfdbba 100644 --- a/investpy/utils/search_obj.py +++ b/investpy/utils/search_obj.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import requests diff --git a/investpy/utils/user_agent.py b/investpy/utils/user_agent.py index 3aebda84..3207a816 100644 --- a/investpy/utils/user_agent.py +++ b/investpy/utils/user_agent.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import random diff --git a/setup.py b/setup.py index 154833d0..c1d435e9 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. from setuptools import setup, find_packages @@ -16,10 +16,10 @@ def readme(): version='0.9.14', packages=find_packages(), url='https://investpy.readthedocs.io/', - download_url='https://github.com/alvarob96/investpy/archive/0.9.14.tar.gz', + download_url='https://github.com/alvarobartt/investpy/archive/0.9.14.tar.gz', license='MIT License', author='Alvaro Bartolome', - author_email='alvarob96@usal.es', + author_email='alvarobartt@usal.es', description='investpy — a Python package for financial historical data extraction from Investing', long_description=readme(), long_description_content_type='text/markdown', @@ -53,8 +53,8 @@ def readme(): ]), python_requires='>=3', project_urls={ - 'Bug Reports': 'https://github.com/alvarob96/investpy/issues', - 'Source': 'https://github.com/alvarob96/investpy', + 'Bug Reports': 'https://github.com/alvarobartt/investpy/issues', + 'Source': 'https://github.com/alvarobartt/investpy', 'Documentation': 'https://investpy.readthedocs.io/' }, ) diff --git a/tests/__init__.py b/tests/__init__.py index cd7b2241..2a7879b4 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,2 +1,2 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. diff --git a/tests/test_investpy.py b/tests/test_investpy.py index 640fe254..6ba3178a 100644 --- a/tests/test_investpy.py +++ b/tests/test_investpy.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import pytest diff --git a/tests/test_investpy_errors.py b/tests/test_investpy_errors.py index c397e052..069a7e71 100644 --- a/tests/test_investpy_errors.py +++ b/tests/test_investpy_errors.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Alvaro Bartolome @ alvarob96 in GitHub +# Copyright 2018-2020 Alvaro Bartolome @ alvarobartt in GitHub # See LICENSE for details. import investpy From bddd11bd4aa37fb9e5dc1957099dff88348c2e32 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome Date: Sat, 14 Mar 2020 19:39:33 +0100 Subject: [PATCH 04/48] included requirements parse in setup, docs generated and release version updated --- MANIFEST.in | 1 + README.md | 12 +++++------ docs/_build/doctrees/api.doctree | Bin 2854 -> 2845 bytes docs/_build/doctrees/disclaimer.doctree | Bin 3900 -> 3891 bytes docs/_build/doctrees/environment.pickle | Bin 62264 -> 62182 bytes docs/_build/doctrees/etfs_api.doctree | Bin 124728 -> 124700 bytes docs/_build/doctrees/funds_api.doctree | Bin 116973 -> 116945 bytes docs/_build/doctrees/index.doctree | Bin 5342 -> 5337 bytes docs/_build/doctrees/information.doctree | Bin 8645 -> 8652 bytes docs/_build/doctrees/installation.doctree | Bin 13357 -> 13360 bytes docs/_build/doctrees/introduction.doctree | Bin 14889 -> 14880 bytes docs/_build/doctrees/main_api.doctree | Bin 2926 -> 2916 bytes docs/_build/html/_sources/index.rst.txt | 2 +- docs/_build/html/_sources/information.rst.txt | 4 ++-- .../_build/html/_sources/installation.rst.txt | 4 ++-- .../html/_static/documentation_options.js | 2 +- docs/_build/html/api.html | 4 ++-- docs/_build/html/disclaimer.html | 4 ++-- docs/_build/html/etfs_api.html | 4 ++-- docs/_build/html/funds_api.html | 4 ++-- docs/_build/html/genindex.html | 4 ++-- docs/_build/html/index.html | 6 +++--- docs/_build/html/information.html | 8 +++---- docs/_build/html/installation.html | 8 +++---- docs/_build/html/introduction.html | 4 ++-- docs/_build/html/main_api.html | 4 ++-- docs/_build/html/py-modindex.html | 4 ++-- docs/_build/html/search.html | 4 ++-- docs/conf.py | 4 ++-- docs/information.rst | 2 +- investpy/__init__.py | 2 +- setup.py | 20 +++++++++--------- 32 files changed, 56 insertions(+), 55 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index f95c2357..fcab069d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,5 @@ include README.md +include requirements.txt include investpy/resources/* include investpy/resources/bonds/* include investpy/resources/certificates/* diff --git a/README.md b/README.md index fc691a63..ea0a8045 100644 --- a/README.md +++ b/README.md @@ -19,10 +19,10 @@ are some of the features that currently lead investpy to be one of the most cons [![Python Version](https://img.shields.io/pypi/pyversions/investpy.svg)](https://pypi.org/project/investpy/) [![PyPi Version](https://img.shields.io/pypi/v/investpy.svg)](https://pypi.org/project/investpy/) [![Package Status](https://img.shields.io/pypi/status/investpy.svg)](https://pypi.org/project/investpy/) -[![Build Status](https://dev.azure.com/alvarob96/alvarob96/_apis/build/status/alvarob96.investpy?branchName=master)](https://dev.azure.com/alvarob96/alvarob96/_build?definitionId=1&_a=summary) -[![Build Status](https://img.shields.io/travis/alvarob96/investpy/master.svg?label=Travis%20CI&logo=travis&logoColor=white)](https://travis-ci.org/alvarob96/investpy) +[![Build Status](https://dev.azure.com/alvarobartt/alvarobartt/_apis/build/status/alvarobartt.investpy?branchName=master)](https://dev.azure.com/alvarobartt/alvarobartt/_build?definitionId=1&_a=summary) +[![Build Status](https://img.shields.io/travis/alvarobartt/investpy/master.svg?label=Travis%20CI&logo=travis&logoColor=white)](https://travis-ci.org/alvarobartt/investpy) [![Documentation Status](https://readthedocs.org/projects/investpy/badge/?version=latest)](https://investpy.readthedocs.io/) -[![codecov](https://codecov.io/gh/alvarob96/investpy/branch/master/graph/badge.svg)](https://codecov.io/gh/alvarob96/investpy) +[![codecov](https://codecov.io/gh/alvarobartt/investpy/branch/master/graph/badge.svg)](https://codecov.io/gh/alvarobartt/investpy) **Join gitter chat to ease developer-user communication and also contribute with other investpy users.** @@ -143,10 +143,10 @@ of some support modules, which implement an additional functionallity based on i can contribute to this section by creating any package, module or utility which uses this package. So on, the ones already created are going to be presented, since they are intended to be used combined with investpy: -- [investpy_portfolio](https://github.com/alvarobartt/investpy_portfolio/): is a Python package to generate stock portfolios. +- [pyrtfolio](https://github.com/alvarobartt/pyrtfolio/): is a Python package to generate stock portfolios. - [trendet](https://github.com/alvarobartt/trendet/): is a Python package for trend detection on stock time series data. -## Contribute - [![Open Source Helpers](https://www.codetriage.com/alvarob96/investpy/badges/users.svg)](https://www.codetriage.com/alvarob96/investpy) +## Contribute - [![Open Source Helpers](https://www.codetriage.com/alvarobartt/investpy/badges/users.svg)](https://www.codetriage.com/alvarobartt/investpy) As this is an open source project it is open to contributions, bug reports, bug fixes, documentation improvements, enhancements and ideas. @@ -156,7 +156,7 @@ new issues if needed or navigate through them in order to solve them or contribu are not threads to describe multiple issues, this does not mean that issues can't be discussed, but if new issues are reported, a new issue should be open so to keep a structured project management. -Additionally, you can triage issues on [investpy CodeTriage](https://www.codetriage.com/alvarob96/investpy) so you can +Additionally, you can triage issues on [investpy CodeTriage](https://www.codetriage.com/alvarobartt/investpy) so you can provide issues so the package can grow and improve as the issues solves bugs, problems or needs, and maybe provide new ideas to improve package functionality and efficiency. diff --git a/docs/_build/doctrees/api.doctree b/docs/_build/doctrees/api.doctree index e48d8dba0764adfc2d620baee7b58cc9fc4228ec..9cbc6b901865a6c1b0852ff54b84fd9ad758acc0 100644 GIT binary patch delta 41 wcmZ1`Hdlj&O FIRTqs5l{dC diff --git a/docs/_build/doctrees/disclaimer.doctree b/docs/_build/doctrees/disclaimer.doctree index be01322e68fcef8390523b5df273587023638b45..0344dd99af55e92d062a80755f86a1c41a40d97c 100644 GIT binary patch delta 41 wcmdlZw^@#*fn}=3MixUxF-!f7{M=Oi#GJCkqI`Xq)Z*-t`~v;WA&f700Tq`G=l}o! delta 50 zcmdliw?~epfn}=UMixUxc_;mh{M=Oi#GJCkqI`Xq)Z*-t`~v-g)S}}2yu_UN&EAYJ Fcmb-T5xoEa diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 9565602a6dbfdb4d402649a1fc3bbbfe2e3b2534..56502c02fdfa331998e61aba148fe6928997a707 100644 GIT binary patch delta 5096 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 h_c5N+W~_$U;(^=*)3U2=NI-C_raPzT` zQ}`I0w?;F13o|yr)W&bu7Gb==3K7^2)NH1Ukc`-V)t#|~1zF&@594+zh?hWCMQs0* t&R7NYBUoTMP=I^;|9r+)ZN@sNC;X<*pT)?xoox=|O*VAF#Knv~ssJKrh?oEX delta 429 zcmcaOk^SvNc9sT~seT(-Oqk@I^fU5vQ}q*b$`Xt6^<7envrF;|^b1mpiu3albK)oa zF@0lfoh&$Cg)x4zVpaI&1I%j~kp(6nVCLEUl{J$cO^|Q%3*I|?jNM3D9b~l_kp(6@ z$ck|!9Vk3Wo3S2lwcqx;vl*YWA&X20itulD JTg=$43IGOGm-_$! diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index 8e91e873c860434209cd84029ccf3560d8a7791a..606ea18406a3a76e14ce70baa76fe12594cc4249 100644 GIT binary patch delta 76 zcmcboc~g_6fo1BsjVw!;#7y-w@^e%56LZQEi}LkdQj4=o@(c7gA7>I_WGtS1huMTB ev8beE@_H8a$(Af$j3JYsGi!o{Hm_&V7XSb#uo|xb delta 81 zcmcbqc~6t2fo1CDjVw!;B%mv#*9Xj7qG}cR8M0qVPxS1 znlV|PLw&L-yCp=pfL)c5(R1=N4hVnpMUHNuA!|95Aciz@DgX^x&7lHOeS-6^H~>9q BH!=VK delta 166 zcmX@(eAJnxfo1BhjVvCF@-F%r`MIh3i8*D7Mfv(Jsm0kP`33p~sYS*4d5Jmklam4b+^#sRZJ*aVjtyDA+)`o6mFp6$b#y C#V^wU diff --git a/docs/_build/doctrees/installation.doctree b/docs/_build/doctrees/installation.doctree index 9cda590aa56f1d85aaa96b2e55c063eca4de293c..3f64bad916fb6f63605d1841a8e2cee64fb50879 100644 GIT binary patch delta 167 zcmZ3Ru_1${fn}=dMizcXF&q7i{M=Oi#GJCkqI`Xq)Z*-t`~v;WMvR4gjCqqC1w<$B z}1OS&|I(Ps8 delta 168 zcmdmxu{MLHfn}=FMizcXc~||6{M=Oi#GJCkqI`Xq)Z*-t`~v-g)S}}2yu_UN&6gK^EWaDEN(? gu@tCXY_gxE15Eom$+e78K>efn}=bMivuBF&q7i{M=Oi#GJCkqI`Xq)Z*-t`~v;W;f$9o04N>~c>n+a delta 50 zcmZ2bva*Dwfn}=PMivuBc~||6{M=Oi#GJCkqI`Xq)Z*-t`~v-g)S}}2yu_UN&3=rR FEC9i45>5aB diff --git a/docs/_build/doctrees/main_api.doctree b/docs/_build/doctrees/main_api.doctree index 6e29f60da5d91668d9516954f9e6b4c89e60fb62..03d5f0d45053189ee4b06bd84796c03769be6050 100644 GIT binary patch delta 51 zcmaDS_C$=Ofn{psMixaTF$?{S{M=Oi#GJCkqI`Xq)Z*-t`~v;SE=(^O^Cs&tt85Nt HmgWEe#AXnr delta 62 zcmaDN_D+nYfn{p)MixaTc}M+>{M=Oi#GJCkqI`Xq)Z*-t`~v-g)S}}2yu_UN$<|CS S8S^KrGOIAgZ}w!C<^TY!fE368 diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt index 91dbc008..76818530 100644 --- a/docs/_build/html/_sources/index.rst.txt +++ b/docs/_build/html/_sources/index.rst.txt @@ -6,7 +6,7 @@ Welcome to investpy's documentation! ==================================== -.. image:: https://raw.githubusercontent.com/alvarob96/investpy/master/docs/investpy_logo.png +.. image:: https://raw.githubusercontent.com/alvarobartt/investpy/master/docs/investpy_logo.png :align: center .. toctree:: diff --git a/docs/_build/html/_sources/information.rst.txt b/docs/_build/html/_sources/information.rst.txt index 5f86eea5..b32c27a8 100644 --- a/docs/_build/html/_sources/information.rst.txt +++ b/docs/_build/html/_sources/information.rst.txt @@ -2,10 +2,10 @@ Additional Information ====================== As this is an open source project it is open to contributions, bug reports, bug fixes, documentation improvements, -enhancements and ideas. On Github you can find an open tab of `issues `_ +enhancements and ideas. On Github you can find an open tab of `issues `_ where you can contribute by opening new issues if needed or contribute to its solving. -Additionally, you can triage issues on `investpy Code Triage `_ where +Additionally, you can triage issues on `investpy Code Triage `_ where you can both open and solve issues so the package can grow and improve faster as the issues solve relevant bugs, problems or needs of the package. diff --git a/docs/_build/html/_sources/installation.rst.txt b/docs/_build/html/_sources/installation.rst.txt index cb464ae0..5fce09cd 100644 --- a/docs/_build/html/_sources/installation.rst.txt +++ b/docs/_build/html/_sources/installation.rst.txt @@ -25,7 +25,7 @@ Cloud, respectively. So, to install the latest release of `investpy `_ installed an * from GitHub via PyPi:: - $ python -m pip install --upgrade https://github.com/alvarob96/investpy/archive/master.zip + $ python -m pip install --upgrade https://github.com/alvarobartt/investpy/archive/master.zip All the dependencies are already listed on the setup file of the package, but to sum them up, when installing `investpy `_, it will install the following dependencies: diff --git a/docs/_build/html/_static/documentation_options.js b/docs/_build/html/_static/documentation_options.js index 5a9ca728..5f972348 100644 --- a/docs/_build/html/_static/documentation_options.js +++ b/docs/_build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.9.14', + VERSION: '1.0', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/_build/html/api.html b/docs/_build/html/api.html index 6ef774e5..3aafc283 100644 --- a/docs/_build/html/api.html +++ b/docs/_build/html/api.html @@ -8,7 +8,7 @@ - API Reference — investpy 0.9.14 documentation + API Reference — investpy 1.0 documentation @@ -60,7 +60,7 @@
    - 0.9.14 + 1.0
    diff --git a/docs/_build/html/disclaimer.html b/docs/_build/html/disclaimer.html index 5babae0c..e2007503 100644 --- a/docs/_build/html/disclaimer.html +++ b/docs/_build/html/disclaimer.html @@ -8,7 +8,7 @@ - Disclaimer — investpy 0.9.14 documentation + Disclaimer — investpy 1.0 documentation @@ -59,7 +59,7 @@
    - 0.9.14 + 1.0
    diff --git a/docs/_build/html/etfs_api.html b/docs/_build/html/etfs_api.html index a1239ccb..5b734dce 100644 --- a/docs/_build/html/etfs_api.html +++ b/docs/_build/html/etfs_api.html @@ -8,7 +8,7 @@ - investpy.etfs — investpy 0.9.14 documentation + investpy.etfs — investpy 1.0 documentation @@ -60,7 +60,7 @@
    - 0.9.14 + 1.0
    diff --git a/docs/_build/html/funds_api.html b/docs/_build/html/funds_api.html index c6e07e0d..6b5d9139 100644 --- a/docs/_build/html/funds_api.html +++ b/docs/_build/html/funds_api.html @@ -8,7 +8,7 @@ - investpy.funds — investpy 0.9.14 documentation + investpy.funds — investpy 1.0 documentation @@ -60,7 +60,7 @@
    - 0.9.14 + 1.0
    diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html index 2a60aff1..9fc52fec 100644 --- a/docs/_build/html/genindex.html +++ b/docs/_build/html/genindex.html @@ -9,7 +9,7 @@ - Index — investpy 0.9.14 documentation + Index — investpy 1.0 documentation @@ -59,7 +59,7 @@
    - 0.9.14 + 1.0
    diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index dcf5cadb..ae8505a5 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -8,7 +8,7 @@ - Welcome to investpy’s documentation! — investpy 0.9.14 documentation + Welcome to investpy’s documentation! — investpy 1.0 documentation @@ -59,7 +59,7 @@
    - 0.9.14 + 1.0
    @@ -161,7 +161,7 @@

    Welcome to investpy’s documentation!

    -https://raw.githubusercontent.com/alvarob96/investpy/master/docs/investpy_logo.png +https://raw.githubusercontent.com/alvarobartt/investpy/master/docs/investpy_logo.png

    Contents: