From d1766121e5df53874eda6f43646f2cafc9435c73 Mon Sep 17 00:00:00 2001 From: Elliott Yu Date: Wed, 18 Jan 2023 12:53:15 +0000 Subject: [PATCH 1/4] fix: add check for user not found --- docs-sphinx/source/conf.py | 24 ++++++++++++------------ setup.py | 2 +- terra/models/user.py | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs-sphinx/source/conf.py b/docs-sphinx/source/conf.py index fc46f15..087f336 100644 --- a/docs-sphinx/source/conf.py +++ b/docs-sphinx/source/conf.py @@ -8,32 +8,32 @@ import os import sys -sys.path.insert(0, os.path.abspath('../..')) # Source code dir relative to this file + +sys.path.insert(0, os.path.abspath("../..")) # Source code dir relative to this file autodoc_mock_imports = ["terra"] -project = 'Python Wrapper for Terra API' -copyright = '2022, Terra' -author = 'Terra' -release = '1' +project = "Python Wrapper for Terra API" +copyright = "2022, Terra" +author = "Terra" +release = "1" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", ] -autosummary_generate = True +autosummary_generate = True -templates_path = ['_templates'] +templates_path = ["_templates"] exclude_patterns = [] - # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -html_theme = 'alabaster' -html_static_path = ['_static'] +html_theme = "alabaster" +html_static_path = ["_static"] diff --git a/setup.py b/setup.py index f2b2125..ea02e16 100644 --- a/setup.py +++ b/setup.py @@ -78,6 +78,6 @@ def parse_requirements_file(path): "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules", - "License :: OSI Approved :: Apache Software License" + "License :: OSI Approved :: Apache Software License", ], ) diff --git a/terra/models/user.py b/terra/models/user.py index ddb0b1e..0650cc1 100644 --- a/terra/models/user.py +++ b/terra/models/user.py @@ -63,7 +63,7 @@ def fill_in_user_info(self) -> None: if self._client: user_info = self._client.get_user_info(self) - if not user_info.json: + if user_info.json["status"] == "error": raise exceptions.NoUserInfoException self.provider = user_info.json["user"]["provider"] From e0d2371136607bb3ab244f2fae87b3a2a420eaf1 Mon Sep 17 00:00:00 2001 From: elliottyu19 Date: Fri, 23 Aug 2024 14:59:04 +0100 Subject: [PATCH 2/4] add body battery samples --- terra/models/v2/daily.py | 1 + terra/models/v2/samples.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/terra/models/v2/daily.py b/terra/models/v2/daily.py index 888575c..17b000d 100644 --- a/terra/models/v2/daily.py +++ b/terra/models/v2/daily.py @@ -81,6 +81,7 @@ class StressData(base_model.TerraDataModel): avg_stress_level: typing.Optional[float] = dataclasses.field(default=None) max_stress_level: typing.Optional[float] = dataclasses.field(default=None) samples: typing.List[samples_.StressSample] = dataclasses.field(default_factory=list) + body_battery_samples: typing.List[samples_.BodyBatterySample] = dataclasses.field(default_factory=list) @dataclasses.dataclass diff --git a/terra/models/v2/samples.py b/terra/models/v2/samples.py index 2790833..1da0540 100644 --- a/terra/models/v2/samples.py +++ b/terra/models/v2/samples.py @@ -49,6 +49,7 @@ "PulseVelocitySample", "AFibClassificationSample", "DrinkSample", + "BodyBatterySample", ] @@ -322,3 +323,9 @@ class DrinkSample(base_model.TerraDataModel): class MenstruationFlowSample(base_model.TerraDataModel): timestamp: typing.Optional[str] = dataclasses.field(default=None) flow: typing.Optional[int] = dataclasses.field(default=None) + +@dataclasses.dataclass +class BodyBatterySample(base_model.TerraDataModel): + timestamp: typing.Optional[str] = dataclasses.field(default=None) + level: typing.Optional[float] = dataclasses.field(default=None) + From 9e6b2d261086ea53dd106857e825d979274d50fe Mon Sep 17 00:00:00 2001 From: elliottyu19 Date: Fri, 23 Aug 2024 15:02:46 +0100 Subject: [PATCH 3/4] ran black --- terra/models/v2/samples.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terra/models/v2/samples.py b/terra/models/v2/samples.py index 1da0540..02c5500 100644 --- a/terra/models/v2/samples.py +++ b/terra/models/v2/samples.py @@ -324,8 +324,8 @@ class MenstruationFlowSample(base_model.TerraDataModel): timestamp: typing.Optional[str] = dataclasses.field(default=None) flow: typing.Optional[int] = dataclasses.field(default=None) + @dataclasses.dataclass class BodyBatterySample(base_model.TerraDataModel): timestamp: typing.Optional[str] = dataclasses.field(default=None) level: typing.Optional[float] = dataclasses.field(default=None) - From 953e771940d7e7e3a9a73803016bf012fb1c2640 Mon Sep 17 00:00:00 2001 From: elliottyu19 Date: Fri, 23 Aug 2024 15:07:21 +0100 Subject: [PATCH 4/4] fix type check --- terra/models/user.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terra/models/user.py b/terra/models/user.py index 0650cc1..57400ba 100644 --- a/terra/models/user.py +++ b/terra/models/user.py @@ -63,7 +63,7 @@ def fill_in_user_info(self) -> None: if self._client: user_info = self._client.get_user_info(self) - if user_info.json["status"] == "error": + if not user_info.json or user_info.json.get("status") == "error": raise exceptions.NoUserInfoException self.provider = user_info.json["user"]["provider"]