avibrazil / investorzilla

Use your investments spreadsheet (Excel, Google Sheets) containing assets’ ledger and balance to get powerful insights of your investments health and performance, in multiple currencies, including crypto and market indexes.
GNU General Public License v3.0
3 stars 0 forks source link

i get this error - No module named 'investorzilla' #5

Closed johnfelipe closed 7 months ago

johnfelipe commented 7 months ago
ModuleNotFoundError: No module named 'investorzilla'
Traceback:
File "/usr/local/lib/python3.8/dist-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in _run_script
    exec(code, module.__dict__)
File "/root/investorzilla/investorzilla/streamlit_ui.py", line 11, in <module>
    import investorzilla

this is all my steps in ubuntu 20

apt update
apt upgrade
shutdown -r now
sudo su
cd
apt install python3-pip
pip install streamlit
pip install streamlit --upgrade
pip install Jinja2==3
git clone https://github.com/avibrazil/investorzilla
cd investorzilla/
pip3 install -r requirements.txt --user
pip3 install pandas pyyaml sqlalchemy pandas_datareader
pip3 install streamlit google-api-python-client
https://docs.google.com/spreadsheets/d/1AE0F_mzXTJJuuuQwPnSzBejRrmui01CfUUY1qyvnbkk

cd investorzilla/
streamlit run streamlit_ui.py

pls tell me how solve?

avibrazil commented 7 months ago

Install with pip:

pip install investorzilla

Then, create a folder to put your investorzilla.yaml that you’ll have to create by yourself.

Then simply run “investorzilla” into that folder.

Check and tell me the result.

avibrazil commented 7 months ago

I need to update the readme. Installation process is much easier now.

johnfelipe commented 7 months ago
cd investorzilla/
cp /root/investorzilla/config_examples/investorzilla.yaml /root/investorzilla/investorzilla/investorzilla.yaml
streamlit run streamlit_ui.py

i do that and show me all this log:

2023-12-11 12:32:18,730|INFO|investorzilla.datacache.DataCache|No cache for kind=BCBMarketIndex and id=IPCA
2023-12-11 12:32:18,730|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__BCBMarketIndex
[SQL:
            SELECT *
            FROM DataCache__BCBMarketIndex
            WHERE
                __DataCache_id   = 'IPCA' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__BCBMarketIndex
                WHERE __DataCache_id = 'IPCA'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:18,739|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=SPY
2023-12-11 12:32:18,740|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = 'SPY' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = 'SPY'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:18,741|INFO|investorzilla.datacache.DataCache|No cache for kind=BCBMarketIndex and id=SELIC
2023-12-11 12:32:18,743|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__BCBMarketIndex
[SQL:
            SELECT *
            FROM DataCache__BCBMarketIndex
            WHERE
                __DataCache_id   = 'SELIC' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__BCBMarketIndex
                WHERE __DataCache_id = 'SELIC'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:18,742|INFO|investorzilla.datacache.DataCache|No cache for kind=BCBMarketIndex and id=IGPM
2023-12-11 12:32:18,744|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__BCBMarketIndex
[SQL:
            SELECT *
            FROM DataCache__BCBMarketIndex
            WHERE
                __DataCache_id   = 'IGPM' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__BCBMarketIndex
                WHERE __DataCache_id = 'IGPM'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:18,744|INFO|investorzilla.datacache.DataCache|No cache for kind=BCBMarketIndex and id=INPC
2023-12-11 12:32:18,745|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__BCBMarketIndex
[SQL:
            SELECT *
            FROM DataCache__BCBMarketIndex
            WHERE
                __DataCache_id   = 'INPC' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__BCBMarketIndex
                WHERE __DataCache_id = 'INPC'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:18,746|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^BVSP
2023-12-11 12:32:18,746|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = '^BVSP' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = '^BVSP'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:18,748|INFO|investorzilla.datacache.DataCache|No cache for kind=BCBMarketIndex and id=CDI
2023-12-11 12:32:18,749|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__BCBMarketIndex
[SQL:
            SELECT *
            FROM DataCache__BCBMarketIndex
            WHERE
                __DataCache_id   = 'CDI' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__BCBMarketIndex
                WHERE __DataCache_id = 'CDI'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:18,750|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=IVV
2023-12-11 12:32:18,754|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = 'IVV' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = 'IVV'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:20,661|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBMarketIndex, id=IGPM, time=2023-12-11 12:32:20.660668+00:00
2023-12-11 12:32:20,768|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=VOO
2023-12-11 12:32:20,768|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = 'VOO' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = 'VOO'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:20,852|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBMarketIndex, id=INPC, time=2023-12-11 12:32:20.851804+00:00
2023-12-11 12:32:20,872|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBMarketIndex, id=IPCA, time=2023-12-11 12:32:20.871999+00:00
2023-12-11 12:32:21,021|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^GSPC
2023-12-11 12:32:21,021|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = '^GSPC' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = '^GSPC'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:21,039|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^DJI
2023-12-11 12:32:21,040|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = '^DJI' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = '^DJI'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:29,491|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBMarketIndex, id=CDI, time=2023-12-11 12:32:29.490471+00:00
2023-12-11 12:32:29,933|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBMarketIndex, id=SELIC, time=2023-12-11 12:32:29.932705+00:00
2023-12-11 12:32:31,637|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^IXIC
2023-12-11 12:32:31,643|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = '^IXIC' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = '^IXIC'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:32:32,098|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=QQQM
2023-12-11 12:32:32,098|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
            SELECT *
            FROM DataCache__YahooMarketIndex
            WHERE
                __DataCache_id   = 'QQQM' AND
                __DataCache_time =
            (
                SELECT DISTINCT __DataCache_time
                FROM DataCache__YahooMarketIndex
                WHERE __DataCache_id = 'QQQM'
                ORDER BY __DataCache_time DESC
                LIMIT 1
            )

        ]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 12:36:54,231|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=QQQM, time=2023-12-11 12:36:54.230849+00:00
2023-12-11 12:36:55,293|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=^IXIC, time=2023-12-11 12:36:55.291659+00:00
2023-12-11 12:37:03,896|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBCurrencyConverter, id=USD, time=2023-12-11 12:37:03.895808+00:00
2023-12-11 12:37:10,187|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBCurrencyConverter, id=EUR, time=2023-12-11 12:37:10.186897+00:00
2023-12-11 12:41:06,559|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=QQQ, time=2023-12-11 12:41:06.558714+00:00
2023-12-11 12:41:07.819 Uncaught app exception
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in _run_script
    exec(code, module.__dict__)
  File "/root/investorzilla/investorzilla/streamlit_ui.py", line 511, in <module>
    StreamlitInvestorzillaApp(refresh=False)
  File "/root/investorzilla/investorzilla/streamlit_ui.py", line 76, in __init__
    streamlit.session_state.investor=investorzilla.Investor(
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/investor.py", line 49, in __init__
    self.loadDomains(refresh)
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/investor.py", line 125, in loadDomains
    part['obj']=task.result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 437, in result
    return self.__get_result()
  File "/usr/lib/python3.8/concurrent/futures/_base.py", line 389, in __get_result
    raise self._exception
  File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/portfolios/google_sheets.py", line 95, in __init__
    super().__init__(
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/portfolio.py", line 65, in __init__
    self.balance
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/portfolio.py", line 165, in balance
    return self.getProperty('balance')
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/portfolio.py", line 200, in getProperty
    self.callRefreshData()
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/portfolio.py", line 248, in callRefreshData
    self.refreshData()
  File "/usr/local/lib/python3.8/dist-packages/investorzilla/portfolios/google_sheets.py", line 153, in refreshData
    self.creds[self.sheetStructure['sheet']] = flow.run_local_server(port=0)
  File "/root/.local/lib/python3.8/site-packages/google_auth_oauthlib/flow.py", line 444, in run_local_server
    webbrowser.get(browser).open(auth_url, new=1, autoraise=True)
  File "/usr/lib/python3.8/webbrowser.py", line 65, in get
    raise Error("could not locate runnable browser")
webbrowser.Error: could not locate runnable browser

but still not working

avibrazil commented 7 months ago

You don´t need to run the streamlit command. Just run investorzilla command from the same folder where your investorzilla.yaml file lives.

avibrazil commented 7 months ago

The Google Sheets backend is good but obsolete because it demands you authenticate with Google everytime in a browser UI. This is what is failling.

Just to get you going, copy the example spreadsheet to your Google Drive and export as CSVs the ledger and balance sheets. Then adapt this example to your URLs.

I´m updating the README to explain this.

johnfelipe commented 7 months ago

https://docs.google.com/spreadsheets/d/1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U/edit?usp=sharing

- type: !!python/name:investorzilla.portfolios.google_sheets.GoogleSheetsBalanceAndLedger ''
  params:
    sheetStructure:
        # This Google Sheet is an example that should work out of the box
        sheet: 1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U

is any line more to edit?

avibrazil commented 7 months ago

You´ll have trouble using the Google Sheets driver. Publish each sheet as CSV and then use the URIBalanceOrLedger driver. Wait, I see the YAML example for this is not updated on the repo, let me update it and provide the link.

avibrazil commented 7 months ago

This new example should get you going with fake data on a Google Sheets. Just put it on an empty folder and run investorzilla from inside that folder.

johnfelipe commented 7 months ago

can u send me a video pls, because i cant test your app, look my all process in this video:

https://drive.google.com/file/d/1agnEevOS2_AbMvDpShYyJEi01o2DGYQb/view?usp=sharing

help me asap

avibrazil commented 7 months ago

Here is a video of an installation from scratch and boot with example configuration.

https://www.youtube.com/watch?v=CrR-PoXhPQY

I also published this video on the project README.

You are helping me find documentation details that needed fix. Thank you for that.

johnfelipe commented 7 months ago

witch version of python, i have ubuntu 22 with python 3.10 using env or can run in ubuntu 20 with python 3.8, i do this steps:

git clone https://github.com/avibrazil/investorzilla
cd investorzilla/

python3 -m venv env
source env/bin/activate

pip3 install investorzilla
cd investorzilla/
mkdir myportfolio
cp /root/investorzilla/config_examples/investorzilla.yaml /root/investorzilla/myportfolio/investorzilla.yaml
cd myportfolio

investorzilla

in ubuntu 22 with python 3.10

and still not works this is console log:

https://gist.github.com/johnfelipe/77d402930f01b9898320feff7db655e2

when finish console works show me this in webui:

SNAG-0012

with this:

OperationalError: (sqlite3.OperationalError) database is locked [SQL: INSERT INTO "DataCache__BCBCurrencyConverter" ("__DataCache_id", "__DataCache_time", "cotacaoCompra", "cotacaoVenda", time) VALUES (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?)] [parameters: ('USD', '2023-12-12 14:08:47.870044', 0.9, 1.0, '1994-07-01 17:46:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.9, 1.0, '1994-07-01 18:29:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.93, 0.94, '1994-07-04 10:52:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.95, 0.96, '1994-07-04 11:03:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.93, 0.94, '1994-07-04 14:07:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.935, 0.94, '1994-07-04 16:14:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.935, 0.94, '1994-07-05 10:08:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.93, 0.935, '1994-07-05 10:38:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.925, 0.93, '1994-07-05 11:58:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.91, 0.915, '1994-07-05 16:03:00.0' ... 4895 parameters truncated ... 'USD', '2023-12-12 14:08:47.870044', 0.907, 0.909, '1995-03-24 18:09:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.909, 0.911, '1995-03-27 09:36:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.907, 0.909, '1995-03-27 10:27:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.907, 0.909, '1995-03-27 12:53:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.908, 0.91, '1995-03-27 18:24:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.91, 0.912, '1995-03-28 09:35:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.912, 0.914, '1995-03-28 10:13:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.911, 0.913, '1995-03-28 11:06:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.911, 0.913, '1995-03-28 13:50:00.0', 'USD', '2023-12-12 14:08:47.870044', 0.909, 0.911, '1995-03-28 14:33:00.0')] (Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback:
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in _run_script
    exec(code, module.__dict__)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/streamlit_ui.py", line 511, in <module>
    StreamlitInvestorzillaApp(refresh=False)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/streamlit_ui.py", line 76, in __init__
    streamlit.session_state.investor=investorzilla.Investor(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/investor.py", line 49, in __init__
    self.loadDomains(refresh)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/investor.py", line 125, in loadDomains
    part['obj']=task.result()
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 451, in result
    return self.__get_result()
File "/usr/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
File "/usr/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/currency/brasil_banco_central.py", line 21, in __init__
    super().__init__(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/monetary_time_series.py", line 131, in __init__
    super().__init__(kind, id, cache, refresh)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/monetary_time_series.py", line 28, in __init__
    self.getData()
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/monetary_time_series.py", line 80, in getData
    self.cacheUpdate(self.kind,self.id,self.cache)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/monetary_time_series.py", line 61, in cacheUpdate
    cache.set(kind=kind, id=id, data=self.data)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/investorzilla/datacache.py", line 387, in set
    d[[self.idCol,self.timeCol] + columns].to_sql(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/core/generic.py", line 3008, in to_sql
    return sql.to_sql(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/io/sql.py", line 788, in to_sql
    return pandas_sql.to_sql(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/io/sql.py", line 1958, in to_sql
    total_inserted = sql_engine.insert_records(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/io/sql.py", line 1507, in insert_records
    raise err
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/io/sql.py", line 1498, in insert_records
    return table.insert(chunksize=chunksize, method=method)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/io/sql.py", line 1059, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/pandas/io/sql.py", line 967, in _execute_insert_multi
    result = conn.execute(stmt)
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1416, in execute
    return meth(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 516, in _execute_on_connection
    return connection._execute_clauseelement(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1639, in _execute_clauseelement
    ret = self._execute_context(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
    return self._exec_single_context(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
    self._handle_dbapi_exception(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2343, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
    self.dialect.do_execute(
File "/home/felipe/investorzilla/env/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 922, in do_execute
    cursor.execute(statement, parameters)

and this is complete log in console:

https://gist.github.com/johnfelipe/22bb27a7f88bd2dc22fd54cbe7aca630

may be do it in notroot user?

johnfelipe commented 7 months ago

no in an notroot user not works

felipe@template:~/investorzilla/myportfolio$ pip install investorzilla --user
Requirement already satisfied: investorzilla in /home/felipe/.local/lib/python3.10/site-packages (2.4.1)
Requirement already satisfied: pandas>=2 in /usr/local/lib/python3.10/dist-packages (from investorzilla) (2.1.4)
Requirement already satisfied: pyaml in /home/felipe/.local/lib/python3.10/site-packages (from investorzilla) (23.9.7)
Requirement already satisfied: sqlalchemy in /home/felipe/.local/lib/python3.10/site-packages (from investorzilla) (2.0.23)
Requirement already satisfied: streamlit in /usr/local/lib/python3.10/dist-packages (from investorzilla) (1.29.0)
Requirement already satisfied: google-auth-oauthlib in /home/felipe/.local/lib/python3.10/site-packages (from investorzilla) (1.1.0)
Requirement already satisfied: certifi in /usr/lib/python3/dist-packages (from investorzilla) (2020.6.20)
Requirement already satisfied: pandas-datareader in /home/felipe/.local/lib/python3.10/site-packages (from investorzilla) (0.10.0)
Requirement already satisfied: matplotlib in /home/felipe/.local/lib/python3.10/site-packages (from investorzilla) (3.8.2)
Requirement already satisfied: google-auth-httplib2 in /home/felipe/.local/lib/python3.10/site-packages (from investorzilla) (0.1.1)
Requirement already satisfied: google-api-python-client in /home/felipe/.local/lib/python3.10/site-packages (from investorzilla) (2.110.0)
Requirement already satisfied: pytz>=2020.1 in /usr/lib/python3/dist-packages (from pandas>=2->investorzilla) (2022.1)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=2->investorzilla) (2023.3)
Requirement already satisfied: numpy<2,>=1.22.4 in /usr/local/lib/python3.10/dist-packages (from pandas>=2->investorzilla) (1.26.2)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=2->investorzilla) (2.8.2)
Requirement already satisfied: google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5 in /home/felipe/.local/lib/python3.10/site-packages (from google-api-python-client->investorzilla) (2.15.0)
Requirement already satisfied: httplib2<1.dev0,>=0.15.0 in /usr/lib/python3/dist-packages (from google-api-python-client->investorzilla) (0.20.2)
Requirement already satisfied: uritemplate<5,>=3.0.1 in /home/felipe/.local/lib/python3.10/site-packages (from google-api-python-client->investorzilla) (4.1.1)
Requirement already satisfied: google-auth<3.0.0.dev0,>=1.19.0 in /home/felipe/.local/lib/python3.10/site-packages (from google-api-python-client->investorzilla) (2.25.2)
Requirement already satisfied: requests-oauthlib>=0.7.0 in /home/felipe/.local/lib/python3.10/site-packages (from google-auth-oauthlib->investorzilla) (1.3.1)
Requirement already satisfied: cycler>=0.10 in /home/felipe/.local/lib/python3.10/site-packages (from matplotlib->investorzilla) (0.12.1)
Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.10/dist-packages (from matplotlib->investorzilla) (10.1.0)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib->investorzilla) (23.2)
Requirement already satisfied: kiwisolver>=1.3.1 in /home/felipe/.local/lib/python3.10/site-packages (from matplotlib->investorzilla) (1.4.5)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/lib/python3/dist-packages (from matplotlib->investorzilla) (2.4.7)
Requirement already satisfied: contourpy>=1.0.1 in /home/felipe/.local/lib/python3.10/site-packages (from matplotlib->investorzilla) (1.2.0)
Requirement already satisfied: fonttools>=4.22.0 in /home/felipe/.local/lib/python3.10/site-packages (from matplotlib->investorzilla) (4.46.0)
Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from pandas-datareader->investorzilla) (2.31.0)
Requirement already satisfied: lxml in /home/felipe/.local/lib/python3.10/site-packages (from pandas-datareader->investorzilla) (4.9.3)
Requirement already satisfied: PyYAML in /usr/lib/python3/dist-packages (from pyaml->investorzilla) (5.4.1)
Requirement already satisfied: greenlet!=0.4.17 in /home/felipe/.local/lib/python3.10/site-packages (from sqlalchemy->investorzilla) (3.0.2)
Requirement already satisfied: typing-extensions>=4.2.0 in /usr/local/lib/python3.10/dist-packages (from sqlalchemy->investorzilla) (4.9.0)
Requirement already satisfied: click<9,>=7.0 in /usr/lib/python3/dist-packages (from streamlit->investorzilla) (8.0.3)
Requirement already satisfied: protobuf<5,>=3.20 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (4.25.1)
Requirement already satisfied: tornado<7,>=6.0.3 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (6.4)
Requirement already satisfied: toml<2,>=0.10.1 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (0.10.2)
Requirement already satisfied: blinker<2,>=1.0.0 in /usr/lib/python3/dist-packages (from streamlit->investorzilla) (1.4)
Requirement already satisfied: validators<1,>=0.2 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (0.22.0)
Requirement already satisfied: cachetools<6,>=4.0 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (5.3.2)
Requirement already satisfied: tzlocal<6,>=1.1 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (5.2)
Requirement already satisfied: tenacity<9,>=8.1.0 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (8.2.3)
Requirement already satisfied: gitpython!=3.1.19,<4,>=3.0.7 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (3.1.40)
Requirement already satisfied: watchdog>=2.1.5 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (3.0.0)
Requirement already satisfied: rich<14,>=10.14.0 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (13.7.0)
Requirement already satisfied: pydeck<1,>=0.8.0b4 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (0.8.1b0)
Requirement already satisfied: altair<6,>=4.0 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (5.2.0)
Requirement already satisfied: importlib-metadata<7,>=1.4 in /usr/lib/python3/dist-packages (from streamlit->investorzilla) (4.6.4)
Requirement already satisfied: pyarrow>=6.0 in /usr/local/lib/python3.10/dist-packages (from streamlit->investorzilla) (14.0.1)
Requirement already satisfied: jsonschema>=3.0 in /usr/lib/python3/dist-packages (from altair<6,>=4.0->streamlit->investorzilla) (3.2.0)
Requirement already satisfied: toolz in /usr/local/lib/python3.10/dist-packages (from altair<6,>=4.0->streamlit->investorzilla) (0.12.0)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from altair<6,>=4.0->streamlit->investorzilla) (3.0.0)
Requirement already satisfied: gitdb<5,>=4.0.1 in /usr/local/lib/python3.10/dist-packages (from gitpython!=3.1.19,<4,>=3.0.7->streamlit->investorzilla) (4.0.11)
Requirement already satisfied: googleapis-common-protos<2.0.dev0,>=1.56.2 in /home/felipe/.local/lib/python3.10/site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client->investorzilla) (1.62.0)
Requirement already satisfied: rsa<5,>=3.1.4 in /home/felipe/.local/lib/python3.10/site-packages (from google-auth<3.0.0.dev0,>=1.19.0->google-api-python-client->investorzilla) (4.9)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/lib/python3/dist-packages (from google-auth<3.0.0.dev0,>=1.19.0->google-api-python-client->investorzilla) (0.2.1)
Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.8.2->pandas>=2->investorzilla) (1.16.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pandas-datareader->investorzilla) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests>=2.19.0->pandas-datareader->investorzilla) (3.3)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/lib/python3/dist-packages (from requests>=2.19.0->pandas-datareader->investorzilla) (1.26.5)
Requirement already satisfied: oauthlib>=3.0.0 in /usr/lib/python3/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib->investorzilla) (3.2.0)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14,>=10.14.0->streamlit->investorzilla) (3.0.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich<14,>=10.14.0->streamlit->investorzilla) (2.17.2)
Requirement already satisfied: smmap<6,>=3.0.1 in /usr/local/lib/python3.10/dist-packages (from gitdb<5,>=4.0.1->gitpython!=3.1.19,<4,>=3.0.7->streamlit->investorzilla) (5.0.1)
Requirement already satisfied: MarkupSafe>=2.0.0rc2 in /usr/lib/python3/dist-packages (from jinja2->altair<6,>=4.0->streamlit->investorzilla) (2.0.1)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14,>=10.14.0->streamlit->investorzilla) (0.1.2)
Requirement already satisfied: pyasn1>=0.1.3 in /usr/lib/python3/dist-packages (from rsa<5,>=3.1.4->google-auth<3.0.0.dev0,>=1.19.0->google-api-python-client->investorzilla) (0.4.8)
felipe@template:~/investorzilla/myportfolio$ investorzilla
investorzilla: command not found

and i do it with env and not works to

su felipe
cd
git clone https://github.com/avibrazil/investorzilla
cd investorzilla/

python3 -m venv env
source env/bin/activate

pip3 install investorzilla

mkdir myportfolio

cp /home/felipe/investorzilla/config_examples/investorzilla.yaml /home/felipe/investorzilla/myportfolio/investorzilla.yaml
cd myportfolio

investorzilla

i will do it in ubuntu 20 with python 3.8...

johnfelipe commented 7 months ago

doing in root user in ubuntu 20 with python 3.8 show me this logs:

https://gist.github.com/johnfelipe/05a02e80225cee5f89a4b943a49fd7a5

SNAG-0013

i think need to help me to solve that issues in pip3 install investorzilla --user

and using env in notroot user show this:

(env) felipe@felipe:~/tmp/myportfolio$ ls
env  investorzilla.yaml
(env) felipe@felipe:~/tmp/myportfolio$ investorzilla
Traceback (most recent call last):
  File "/home/felipe/tmp/myportfolio/env/bin/investorzilla", line 5, in <module>
    from investorzilla.__main__ import main
  File "/home/felipe/tmp/myportfolio/env/lib/python3.8/site-packages/investorzilla/__main__.py", line 49, in <module>
    main()
  File "/home/felipe/tmp/myportfolio/env/lib/python3.8/site-packages/investorzilla/__main__.py", line 20, in main
    str(importlib.resources.files(investorzilla) / 'streamlit_ui.py'),
AttributeError: module 'importlib.resources' has no attribute 'files'
avibrazil commented 7 months ago

That’s because Python 3.8 is too old and doesn’t have this feature. I’m fixing dependencies to require Python 3.9 minimum.