From 923327c32152d6b3c77548fc82efe4f4cdaf1ddd Mon Sep 17 00:00:00 2001 From: teh_coderer Date: Tue, 4 Jul 2023 17:08:16 -0600 Subject: [PATCH] hotfix / Save session on oauth login (#5195) * save session on oauth login * avoid `asyncio.run` if in a running loop * tests * fix economy rtps --- openbb_terminal/core/models/profile_model.py | 2 +- openbb_terminal/core/plots/backend.py | 10 +-- .../core/session/session_controller.py | 7 +- .../reports/templates/economy.ipynb | 50 +++++++----- .../test_display_curve[ES].txt | 9 +-- .../test_nasdaq_model/test_load_options.yaml | 81 +++++++++++++++++++ .../test_OptionsChains_8.json | 2 +- 7 files changed, 126 insertions(+), 35 deletions(-) diff --git a/openbb_terminal/core/models/profile_model.py b/openbb_terminal/core/models/profile_model.py index f6118d03655..7be862eb3a7 100644 --- a/openbb_terminal/core/models/profile_model.py +++ b/openbb_terminal/core/models/profile_model.py @@ -35,7 +35,7 @@ class ProfileModel(BaseModel): self.uuid = session.get("uuid", "") self.email = email self.username = session.get("username", None) or email.split("@").pop(0) - self.primary_usage = session.get("primary_usage", "") + self.primary_usage = session.get("primary_usage", None) or "personal" self.remember = remember def get_uuid(self) -> str: diff --git a/openbb_terminal/core/plots/backend.py b/openbb_terminal/core/plots/backend.py index 9f62181f24a..aa75ab93440 100644 --- a/openbb_terminal/core/plots/backend.py +++ b/openbb_terminal/core/plots/backend.py @@ -490,14 +490,14 @@ async def download_plotly_js(): print(f"Error downloading plotly.js: {err}") -# To avoid having plotly.js in the repo, we download it if it's not present -if not PLOTLYJS_PATH.exists() and not JUPYTER_NOTEBOOK: - asyncio.run(download_plotly_js()) - - def plots_backend() -> Backend: """Get the backend.""" global BACKEND # pylint: disable=W0603 # noqa if BACKEND is None: BACKEND = Backend() return BACKEND + + +# To avoid having plotly.js in the repo, we download it if it's not present +if not PLOTLYJS_PATH.exists() and not JUPYTER_NOTEBOOK: + plots_backend().loop.run_until_complete(download_plotly_js()) diff --git a/openbb_terminal/core/session/session_controller.py b/openbb_terminal/core/session/session_controller.py index 212f521a8d7..0a2d8e939aa 100644 --- a/openbb_terminal/core/session/session_controller.py +++ b/openbb_terminal/core/session/session_controller.py @@ -98,7 +98,12 @@ def pywry_login(welcome: bool = True): ): response[new_key] = response.pop(r_key, None) - if remember := response.get("remember", False): + response["primary_usage"] = response.get("primary_usage", None) or "personal" + + if remember := ( + response.get("remember", False) or response.get("is_oauth", False) + ): + response["remember"] = remember Local.save_session(response) return login_and_launch(response, remember) diff --git a/openbb_terminal/reports/templates/economy.ipynb b/openbb_terminal/reports/templates/economy.ipynb index 035bfdf0433..df9aac6a6d9 100644 --- a/openbb_terminal/reports/templates/economy.ipynb +++ b/openbb_terminal/reports/templates/economy.ipynb @@ -178,29 +178,35 @@ "metadata": {}, "outputs": [], "source": [ - "rtps_data = openbb.economy.rtps()\n", - "subplots = OpenBBFigure.create_subplots(1, 2, horizontal_spacing=0.15)\n", - "openbb.economy.rtps_chart(external_axes=True).to_subplot(subplots, 1, 1)\n", + "try:\n", + " rtps_data = openbb.economy.rtps()\n", + " subplots = OpenBBFigure.create_subplots(1, 2, horizontal_spacing=0.15)\n", + " openbb.economy.rtps_chart(external_axes=True).to_subplot(subplots, 1, 1)\n", "\n", - "chg = futures[\"%Chg\"]\n", - "colors = [theme.up_color if x > 0 else theme.down_color for x in list(chg.values)]\n", - "subplots.add_bar(\n", - " y=chg.index,\n", - " x=chg.values,\n", - " orientation=\"h\",\n", - " marker_color=colors,\n", - " showlegend=False,\n", - " row=1,\n", - " col=2,\n", - ")\n", - "subplots.update_xaxes(title_text=\"Performance (%)\", row=1, col=1)\n", - "subplots.update_xaxes(title_text=\"Change %\", row=1, col=2)\n", - "subplots.update_layout(\n", - " margin=dict(l=0, r=0, t=0, b=0),\n", - " yaxis=dict(side=\"left\", nticks=15),\n", - " yaxis2=dict(nticks=15),\n", - ")\n", - "chart_0 = subplots.to_html()" + " chg = futures[\"%Chg\"]\n", + " colors = [theme.up_color if x > 0 else theme.down_color for x in list(chg.values)]\n", + " subplots.add_bar(\n", + " y=chg.index,\n", + " x=chg.values,\n", + " orientation=\"h\",\n", + " marker_color=colors,\n", + " showlegend=False,\n", + " row=1,\n", + " col=2,\n", + " )\n", + " subplots.update_xaxes(title_text=\"Performance (%)\", row=1, col=1)\n", + " subplots.update_xaxes(title_text=\"Change %\", row=1, col=2)\n", + " subplots.update_layout(\n", + " margin=dict(l=0, r=0, t=0, b=0),\n", + " yaxis=dict(side=\"left\", nticks=15),\n", + " yaxis2=dict(nticks=15),\n", + " )\n", + " chart_0 = subplots.to_html()\n", + "except Exception as e:\n", + " print(e)\n", + " chart_0 = \"\"\n", + " rtps_data = pd.DataFrame()\n", + " \n" ] }, { diff --git a/tests/openbb_terminal/futures/txt/test_yfinance_view/test_display_curve[ES].txt b/tests/openbb_terminal/futures/txt/test_yfinance_view/test_display_curve[ES].txt index 29367d6e6ee..1bcdef90d6c 100644 --- a/tests/openbb_terminal/futures/txt/test_yfinance_view/test_display_curve[ES].txt +++ b/tests/openbb_terminal/futures/txt/test_yfinance_view/test_display_curve[ES].txt @@ -1,7 +1,6 @@ Last Price -2023-06-01 4137.75 -2023-09-01 4173.50 -2023-12-01 4207.50 -2024-03-01 4242.00 -2024-06-01 4273.00 +2023-09-01 4173.5 +2023-12-01 4207.5 +2024-03-01 4242.0 +2024-06-01 4273.0 diff --git a/tests/openbb_terminal/stocks/options/cassettes/test_nasdaq_model/test_load_options.yaml b/tests/openbb_terminal/stocks/options/cassettes/test_nasdaq_model/test_load_options.yaml index 3e9c8d3d343..4835d3d3191 100644 --- a/tests/openbb_terminal/stocks/options/cassettes/test_nasdaq_model/test_load_options.yaml +++ b/tests/openbb_terminal/stocks/options/cassettes/test_nasdaq_model/test_load_options.yaml @@ -3619,4 +3619,85 @@ interactions: status: code: 200 message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.nasdaq.com/api/quote/OXY/option-chain/greeks?assetclass=stocks&date=2023-07-07 + response: + body: + string: !!binary | + H4sIAAAAAAAAALWYXU8rNxCG/0q01yx4xuMv7lChnHNaigQItap6sYQ9ELEkUbKhPUL89443hPV4 + E7UXBCGEnVnPzLOvx+O8FvdVWxXHr8W8eqhvJm1TF8fF5e9/jC7n7WQ2XY7OF3X9tCwOira6ix++ + FtXy8ntxPF01zUHxWFf39WIZp8endROXKk7Pfr054QfG59Xzc5w4P7m46CauHmc8vPpyGQc3j3Vn + fvPlbG1+Wz/E8e3ZeTf8essD/nNQXLeLyVOM6/rm6usvZzwzz33Nc1/z1Nc89zWXvuYbX28HxWL2 + N6fzZ5+POgwheNvnow5V/NnkE4cWVJ9RGWeMxY+U+geiHx5BN1q+p2XoMA43OcXHwSrsk4oTxuAm + qW59BdDn1T2CpD8SixbYPbH2SKBihKtFw3kePVeLp7otq3E7eZm0P46W7Wz8tDya/fPjaNa99XL8 + WE2mR+Oqacr5qi3Xs51FWZaolVNuzDEY4j8MTcDySnkBCxGdgNV9nobuwQpYOmb/DksTgktgmSGs + oEDA4gcgg6UzWOC9hBV6WFqHGPCnwzJbYP23sjTmygrqfyvLDmBpUkHAIojKSGFhDstaqSxy9gMW + gwPaAyy7BRaF+B4TWI7ISGUFCQs1kYBljfuAxbq0NoHlBrAskITlId+GhBIWggEBy1nTw9LW7AOW + G8LyZEnAggDWp7BMDDSFRUrWLE6+VxYECyGB5XNYYMHYFFZ0KJUFnfQSj9r6kMICQ9DD4jKwD1h+ + CMt4dpbC0mi0TmFpryUs2735HhZSoiyuSDatWSGHReBQFHiNLjgBC322DY3ucKYe+20IPqh91Kww + hIXWeZfCQqcRUljgXKas4LyApZxOYAH5HpZVOSyH3qgUFjoVt3UCi4KXsIhIFHhUPoEVKPr/bFix + ZOWwgCuOOA1BY6AUlnLZNtQdjmQbQlqzeB8myrKQw/ImdAWnd0gKJCy2yLbhWozJxlf9achthIU9 + wIIhLGVAG1HgLUll8fGVFXhA2Tp0Z9UGluUil8DCHFbQEKWcFHiWshawbFxBFHhEWeA9Jqehp6iz + T4eFW2Bp9ixgEaA4DVn0WZ9FJFsH0j6B5bwSsMwAFpKAZdHK09DarClFR1bC0mmfZcwemlKLZggL + XTxpElhad41XDwvyppS8bB1I9crSrERMYOmhspwS21AZNLIptU5lsLwTBV65WEc3sJw2+1CW3qIs + blNkn4VroSSwbAbLmCA7+K65eA/d6rR1sIPrDrcW8bRNYOmuM0thdadj6jGAEbBMsg1pXQY+HdaW + 6w6jMFJZ3AhlysoKPKCXsND2fRaHrlJlDa47XN6tbErRkITlIG9KucRnHXyvLHLozB5gra87f/GV + +vukabsvCfhW3VR3dXT0bTUdaXUwQlYb38BfqmYVb/hxWCpb6jXn3roZuR3Gjn8Hxnzk7bIGGlhz + Rd9ljTC09rutvbA+WT2MdgXiS0UDY9gViC8Bhta7AmFrGch1PR/xftluHUowwvpy3LLldmtQJcp3 + 89vsZQQ7Xg5ACfLlnNbjnZEA5pF8q6Yjrh3RmqQ1lYrXDsL65/puxHtvuzWvbSXB+WL32pSvHfX6 + LpOhtR3IJMa9ZmKktenizgU73fAeWtuOd9xGz/VyWT3Um6/elm3Vrrpv3hY/ze55GmOluIv/X0jL + +/qlbmbzeiHm397+Bar8G+L9EwAA + headers: + Cache-Control: + - max-age=0, no-cache, no-store + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '1275' + Content-Type: + - application/json; charset=utf-8 + Date: + - Tue, 04 Jul 2023 20:08:49 GMT + Expires: + - Tue, 04 Jul 2023 20:08:49 GMT + Pragma: + - no-cache + Server: + - Kestrel + Set-Cookie: + - ak_bmsc=CA48A533C03E0AB2A41A8D97062CF8CC~000000000000000000000000000000~YAAQhZTYF28GQBaJAQAAwp2FIhRdz367h0Ji8WTTdZSoEFsqSCvXO790g4NFi2qD5zcoNgxmcBbWBjrXS9SEuLNFDn95C/GDserdhsQErPwoxFAK9lKFj87cMQd9CUhIJ899pQcCiL+nr+ZdebD5ITC47/qdJPVb3gHbI/Zjdc3LlbY+pUjiIIUlQSeV/VXROpFyvFYCeCZuq8KMbUG3yWADY9FAAuqtKkWJxYe0yfn3Lwg1GpXEVXeXAbTVoFagHewEYAw4gRAQ8YNvozFClD7PcYJx/9BuovcauM99kqeaJgssAXIZDnyGBtKriFTPCjeLVKAxEbz+Inv64Wn7jlx/A+zfeWEljW21k6KdIPNlobhe6rqiMJnpxVc=; + Domain=.nasdaq.com; Path=/; Expires=Tue, 04 Jul 2023 22:08:48 GMT; Max-Age=7199; + HttpOnly + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + X-EdgeConnect-MidMile-RTT: + - '1' + - '54' + X-EdgeConnect-Origin-MEX-Latency: + - '558' + - '558' + gid: + - '203' + lang: + - en + rid: + - 4f45a04f-62f4-4363-b113-406929761c89 + srctype: + - default + status: + code: 200 + message: OK version: 1 diff --git a/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_8.json b/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_8.json index fdf60ae6e89..4f9d4a25da6 100644 --- a/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_8.json +++ b/tests/openbb_terminal/stocks/options/json/test_options_chains_model/test_OptionsChains_8.json @@ -1 +1 @@ -["Long Straddle", "Long Strangle", "Long Strangle", "Long Strangle", "Bull Call Spread", "Bear Put Spread", "Long Straddle", "Long Strangle", "Long Strangle", "Long Strangle", "Bull Call Spread", "Bear Put Spread", "Long Straddle", "Long Strangle", "Long Strangle", "Long Strangle", "Bull Call Spread", "Bear Put Spread", "Long Straddle", "Long Strangle", "Long Strangle", "Long Strangle", "Bull Call Spread", "Bear Put Spread"] \ No newline at end of file +["Long Straddle", "Long Strangle", "Long Strangle", "Long Strangle", "Bull Call Spread", "Bear Put Spread", "Long Straddle", "Long Strangle", "Long Strangle", "Long Strangle", "Bull Call Spread", "Bear Put Spread", "Long Straddle", "Long Strangle", "Long Strangle", "Long Strangle", "Bull Call Spread", "Bear Put Spread"] \ No newline at end of file