fitbit-cli 1.0.0__tar.gz → 1.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,27 +1,28 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fitbit-cli
3
- Version: 1.0.0
3
+ Version: 1.2.0
4
4
  Summary: Access your Fitbit data at your terminal.
5
5
  Home-page: https://github.com/veerendra2/fitbit-cli
6
- Download-URL: https://github.com/veerendra2/fitbit-cli/archive/1.0.0.tar.gz
6
+ Download-URL: https://github.com/veerendra2/fitbit-cli/archive/1.2.0.tar.gz
7
7
  Author: veerendra2
8
8
  Author-email: vk.tyk23@simplelogin.com
9
9
  License: MIT
10
10
  Project-URL: Documentation, https://github.com/veerendra2/fitbit-cli
11
- Keywords: fitbit,cli,python
11
+ Keywords: fitbit,fitbit-api,cli,python
12
12
  Classifier: Development Status :: 5 - Production/Stable
13
13
  Classifier: Intended Audience :: End Users/Desktop
14
14
  Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Natural Language :: English
16
+ Classifier: Operating System :: MacOS
16
17
  Classifier: Operating System :: POSIX :: Linux
17
- Classifier: Programming Language :: Python
18
- Classifier: Programming Language :: Python :: 3
19
18
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.9
21
19
  Classifier: Programming Language :: Python :: 3.10
22
20
  Classifier: Programming Language :: Python :: 3.11
23
21
  Classifier: Programming Language :: Python :: 3.12
24
22
  Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.9
24
+ Classifier: Programming Language :: Python :: 3
25
+ Classifier: Programming Language :: Python
25
26
  Classifier: Topic :: Utilities
26
27
  Requires-Python: >=3.9
27
28
  Description-Content-Type: text/markdown
@@ -31,18 +32,20 @@ Requires-Dist: rich==13.9.4
31
32
 
32
33
  # Fitbit CLI
33
34
 
34
- [![Release](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml/badge.svg?branch=main&event=release)](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml) [![PyPI - Status](https://img.shields.io/pypi/status/fitbit-cli)
35
+ [![Release](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml/badge.svg)](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml) [![PyPI - Status](https://img.shields.io/pypi/status/fitbit-cli)
35
36
  ](https://pypi.org/project/fitbit-cli/) [![PyPI - Version](https://img.shields.io/pypi/v/fitbit-cli)
36
37
  ](https://pypi.org/project/fitbit-cli/)
37
38
 
38
- > ⚠️ This is not an official Fitbit CLI
39
+ > This is not an official Fitbit CLI
39
40
 
40
41
  Access your Fitbit data directly from your terminal 💻. View 💤 sleep logs, ❤️ heart rate, 🏋️‍♂️ activity levels, 🩸 SpO2, and more, all presented in a simple, easy-to-read table format!
41
42
 
42
43
  <p align="center">
43
- <img alt="Fitbit logo", width="250" src="./assets/Fitbit_Logo_White_RGB.jpg">
44
+ <img alt="Fitbit logo", width="250" src="https://raw.githubusercontent.com/veerendra2/fitbit-cli/refs/heads/main/assets/Fitbit_Logo_White_RGB.jpg">
44
45
  </p>
45
46
 
47
+ [![asciicast](https://asciinema.org/a/696114.svg)](https://asciinema.org/a/696114)
48
+
46
49
  ## Supported Web APIs
47
50
 
48
51
  > Only `GET` APIs are supported!
@@ -54,13 +57,19 @@ Access your Fitbit data directly from your terminal 💻. View 💤 sleep logs,
54
57
  | [SpO2](https://dev.fitbit.com/build/reference/web-api/spo2/) | ✅ |
55
58
  | [Heart Rate Time Series](https://dev.fitbit.com/build/reference/web-api/heartrate-timeseries/) | ✅ |
56
59
  | [Active Zone Minutes (AZM) Time Series](https://dev.fitbit.com/build/reference/web-api/active-zone-minutes-timeseries/) | ✅ |
57
- | [Activity](https://dev.fitbit.com/build/reference/web-api/activity/) | 👷 |
60
+ | [Activity](https://dev.fitbit.com/build/reference/web-api/activity/) | |
61
+
62
+ ## Usage Guide
58
63
 
59
- ## Install
64
+ 1. Install the Fitbit CLI
60
65
 
61
66
  ```bash
62
67
  python -m pip install fitbit-cli
68
+ ```
69
+
70
+ 2. Help
63
71
 
72
+ ```bash
64
73
  fitbit-cli -h
65
74
  usage: fitbit-cli [-h] [-i] [-s [DATE[,DATE]]] [-o [DATE[,DATE]]] [-e [DATE[,DATE]]] [-a [DATE[,DATE]]] [-u] [-v]
66
75
 
@@ -87,15 +96,38 @@ APIs:
87
96
  Show user profile data
88
97
  ```
89
98
 
90
- ## Register Fitbit App
99
+ 3. Register Fitbit App
91
100
 
92
- 1. Go to [https://dev.fitbit.com/apps](https://dev.fitbit.com/apps)
93
- 2. Click on "REGISTER AN APP" tab
94
- 3. Follow below example and register an app
101
+ 1. Go to [https://dev.fitbit.com/apps](https://dev.fitbit.com/apps)
102
+ 2. Click on "REGISTER AN APP" tab
103
+ 3. Follow below example and register an app
95
104
 
96
- <p align="left">
97
- <img alt="Fitbit logo", width="700" src="./assets/fitbit-app-registration.png">
98
- </p>
105
+ <p align="left">
106
+ <img alt="Fitbit logo", width="700" src="https://raw.githubusercontent.com/veerendra2/fitbit-cli/refs/heads/main/assets/fitbit-app-registration.png">
107
+ </p>
108
+
109
+ 4. Run the following command to set up interactive authentication and store the Fitbit token locally
110
+
111
+ ```bash
112
+ fitbit-cli --init-auth
113
+ ```
114
+
115
+ For a visual guide, see the Asciinema recording below
116
+ [![asciicast](https://asciinema.org/a/696115.svg)](https://asciinema.org/a/696115)
117
+
118
+ 5. Start using it 😎
119
+
120
+ ```bash
121
+ $ fitbit-cli -s
122
+ Sleep Data Summary 😴
123
+ ┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
124
+ ┃ Date 📆 ┃ Deep Sleep 🛏 ┃ Light Sleep 💤 ┃ REM Sleep 🌙 ┃ Wake Time ⏰ ┃ Efficiency 💯 ┃
125
+ ┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
126
+ │ 2024-12-25 │ 139 min │ 190 min │ 155 min │ 54 min │ 55% │
127
+ └────────────┴──────────────┴────────────────┴──────────────┴──────────────┴───────────────┘
128
+ ```
129
+
130
+ _**NOTE: The token is valid for only 8 hours, `fitbit-cli` automatically refreshes the token when it expires.**_
99
131
 
100
132
  ## Local Development
101
133
 
@@ -1,17 +1,19 @@
1
1
  # Fitbit CLI
2
2
 
3
- [![Release](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml/badge.svg?branch=main&event=release)](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml) [![PyPI - Status](https://img.shields.io/pypi/status/fitbit-cli)
3
+ [![Release](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml/badge.svg)](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml) [![PyPI - Status](https://img.shields.io/pypi/status/fitbit-cli)
4
4
  ](https://pypi.org/project/fitbit-cli/) [![PyPI - Version](https://img.shields.io/pypi/v/fitbit-cli)
5
5
  ](https://pypi.org/project/fitbit-cli/)
6
6
 
7
- > ⚠️ This is not an official Fitbit CLI
7
+ > This is not an official Fitbit CLI
8
8
 
9
9
  Access your Fitbit data directly from your terminal 💻. View 💤 sleep logs, ❤️ heart rate, 🏋️‍♂️ activity levels, 🩸 SpO2, and more, all presented in a simple, easy-to-read table format!
10
10
 
11
11
  <p align="center">
12
- <img alt="Fitbit logo", width="250" src="./assets/Fitbit_Logo_White_RGB.jpg">
12
+ <img alt="Fitbit logo", width="250" src="https://raw.githubusercontent.com/veerendra2/fitbit-cli/refs/heads/main/assets/Fitbit_Logo_White_RGB.jpg">
13
13
  </p>
14
14
 
15
+ [![asciicast](https://asciinema.org/a/696114.svg)](https://asciinema.org/a/696114)
16
+
15
17
  ## Supported Web APIs
16
18
 
17
19
  > Only `GET` APIs are supported!
@@ -23,13 +25,19 @@ Access your Fitbit data directly from your terminal 💻. View 💤 sleep logs,
23
25
  | [SpO2](https://dev.fitbit.com/build/reference/web-api/spo2/) | ✅ |
24
26
  | [Heart Rate Time Series](https://dev.fitbit.com/build/reference/web-api/heartrate-timeseries/) | ✅ |
25
27
  | [Active Zone Minutes (AZM) Time Series](https://dev.fitbit.com/build/reference/web-api/active-zone-minutes-timeseries/) | ✅ |
26
- | [Activity](https://dev.fitbit.com/build/reference/web-api/activity/) | 👷 |
28
+ | [Activity](https://dev.fitbit.com/build/reference/web-api/activity/) | |
29
+
30
+ ## Usage Guide
27
31
 
28
- ## Install
32
+ 1. Install the Fitbit CLI
29
33
 
30
34
  ```bash
31
35
  python -m pip install fitbit-cli
36
+ ```
37
+
38
+ 2. Help
32
39
 
40
+ ```bash
33
41
  fitbit-cli -h
34
42
  usage: fitbit-cli [-h] [-i] [-s [DATE[,DATE]]] [-o [DATE[,DATE]]] [-e [DATE[,DATE]]] [-a [DATE[,DATE]]] [-u] [-v]
35
43
 
@@ -56,15 +64,38 @@ APIs:
56
64
  Show user profile data
57
65
  ```
58
66
 
59
- ## Register Fitbit App
67
+ 3. Register Fitbit App
60
68
 
61
- 1. Go to [https://dev.fitbit.com/apps](https://dev.fitbit.com/apps)
62
- 2. Click on "REGISTER AN APP" tab
63
- 3. Follow below example and register an app
69
+ 1. Go to [https://dev.fitbit.com/apps](https://dev.fitbit.com/apps)
70
+ 2. Click on "REGISTER AN APP" tab
71
+ 3. Follow below example and register an app
64
72
 
65
- <p align="left">
66
- <img alt="Fitbit logo", width="700" src="./assets/fitbit-app-registration.png">
67
- </p>
73
+ <p align="left">
74
+ <img alt="Fitbit logo", width="700" src="https://raw.githubusercontent.com/veerendra2/fitbit-cli/refs/heads/main/assets/fitbit-app-registration.png">
75
+ </p>
76
+
77
+ 4. Run the following command to set up interactive authentication and store the Fitbit token locally
78
+
79
+ ```bash
80
+ fitbit-cli --init-auth
81
+ ```
82
+
83
+ For a visual guide, see the Asciinema recording below
84
+ [![asciicast](https://asciinema.org/a/696115.svg)](https://asciinema.org/a/696115)
85
+
86
+ 5. Start using it 😎
87
+
88
+ ```bash
89
+ $ fitbit-cli -s
90
+ Sleep Data Summary 😴
91
+ ┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
92
+ ┃ Date 📆 ┃ Deep Sleep 🛏 ┃ Light Sleep 💤 ┃ REM Sleep 🌙 ┃ Wake Time ⏰ ┃ Efficiency 💯 ┃
93
+ ┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
94
+ │ 2024-12-25 │ 139 min │ 190 min │ 155 min │ 54 min │ 55% │
95
+ └────────────┴──────────────┴────────────────┴──────────────┴──────────────┴───────────────┘
96
+ ```
97
+
98
+ _**NOTE: The token is valid for only 8 hours, `fitbit-cli` automatically refreshes the token when it expires.**_
68
99
 
69
100
  ## Local Development
70
101
 
@@ -3,4 +3,4 @@
3
3
  fitbit_cli Module
4
4
  """
5
5
 
6
- __version__ = "1.0.0"
6
+ __version__ = "1.2.0"
@@ -80,6 +80,15 @@ def parse_arguments():
80
80
  metavar="DATE[,DATE]",
81
81
  help="Show Active Zone Minutes (AZM) Time Series data",
82
82
  )
83
+ group.add_argument(
84
+ "-b",
85
+ "--breathing-rate",
86
+ type=parse_date_range,
87
+ nargs="?",
88
+ const=(datetime.today().date(), None),
89
+ metavar="DATE[,DATE]",
90
+ help="Show Breathing Rate Summary data",
91
+ )
83
92
  group.add_argument(
84
93
  "-u",
85
94
  "--show-user-profile",
@@ -95,4 +104,9 @@ def parse_arguments():
95
104
  help="Show fitbit-cli version",
96
105
  )
97
106
 
98
- return parser.parse_args()
107
+ args = parser.parse_args()
108
+
109
+ if not any(vars(args).values()):
110
+ parser.error("No arguments provided. At least one argument is required.")
111
+
112
+ return args
@@ -103,7 +103,7 @@ def fitbit_init_setup():
103
103
  if browser_status:
104
104
  CONSOLE.print(
105
105
  ":satellite: Waiting for authorization... "
106
- + "(Check your browser or press 'Ctrl+C', authrize the app by opening the"
106
+ + "(Check your browser or press 'Ctrl+C', authorize the app by opening the"
107
107
  + " above URL in your browser and past the redirect URL manually.)\n"
108
108
  )
109
109
  authorization_code = start_server()
@@ -166,7 +166,7 @@ def fitbit_init_setup():
166
166
 
167
167
 
168
168
  def read_fitbit_token():
169
- """Read the Fitbit token from the file and return as a JSON object."""
169
+ """Read Fitbit token from the file and return as a JSON object."""
170
170
 
171
171
  try:
172
172
  with open(FITBIT_TOKEN_PATH, "r", encoding="utf-8") as f:
@@ -184,7 +184,7 @@ def read_fitbit_token():
184
184
 
185
185
 
186
186
  def write_fitbit_token(token_content):
187
- """Write the Fitbit token to the file."""
187
+ """Write Fitbit token to the file."""
188
188
 
189
189
  Path(FITBIT_TOKEN_PATH).parent.mkdir(parents=True, exist_ok=True)
190
190
  with open(FITBIT_TOKEN_PATH, "w", encoding="utf-8") as f:
@@ -192,7 +192,7 @@ def write_fitbit_token(token_content):
192
192
 
193
193
 
194
194
  def update_fitbit_token(access_token, refresh_token):
195
- """Update the Fitbit token in the file."""
195
+ """Update Fitbit token in the file."""
196
196
 
197
197
  token_content = read_fitbit_token()
198
198
  token_content["access_token"] = access_token
@@ -145,3 +145,20 @@ def display_azm_time_series(azm_data):
145
145
  )
146
146
 
147
147
  CONSOLE.print(table)
148
+
149
+
150
+ def display_breathing_rate(breathing_rate_data):
151
+ """Breathing Rate data formatter"""
152
+
153
+ table = Table(title="Breathing Rate Summary 🫁", show_header=True)
154
+
155
+ table.add_column("Date :calendar:")
156
+ table.add_column("Breaths Per Minute :dash:")
157
+
158
+ for br in breathing_rate_data.get("br", []):
159
+ table.add_row(
160
+ br.get("dateTime", "N/A"),
161
+ str(br.get("value", {}).get("breathingRate", "N/A")),
162
+ )
163
+
164
+ CONSOLE.print(table)
@@ -14,7 +14,7 @@ def main():
14
14
 
15
15
  args = parse_arguments()
16
16
 
17
- if args.init:
17
+ if args.init_auth:
18
18
  setup.fitbit_init_setup()
19
19
 
20
20
  credentials = setup.read_fitbit_token()
@@ -37,3 +37,7 @@ def main():
37
37
  fmt.display_heart_data(fitbit.get_heart_rate_time_series(*args.heart))
38
38
  if args.active_zone:
39
39
  fmt.display_azm_time_series(fitbit.get_azm_time_series(*args.active_zone))
40
+ if args.breathing_rate:
41
+ fmt.display_breathing_rate(
42
+ fitbit.get_breathing_rate_summary(*args.breathing_rate)
43
+ )
@@ -1,27 +1,28 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fitbit-cli
3
- Version: 1.0.0
3
+ Version: 1.2.0
4
4
  Summary: Access your Fitbit data at your terminal.
5
5
  Home-page: https://github.com/veerendra2/fitbit-cli
6
- Download-URL: https://github.com/veerendra2/fitbit-cli/archive/1.0.0.tar.gz
6
+ Download-URL: https://github.com/veerendra2/fitbit-cli/archive/1.2.0.tar.gz
7
7
  Author: veerendra2
8
8
  Author-email: vk.tyk23@simplelogin.com
9
9
  License: MIT
10
10
  Project-URL: Documentation, https://github.com/veerendra2/fitbit-cli
11
- Keywords: fitbit,cli,python
11
+ Keywords: fitbit,fitbit-api,cli,python
12
12
  Classifier: Development Status :: 5 - Production/Stable
13
13
  Classifier: Intended Audience :: End Users/Desktop
14
14
  Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Natural Language :: English
16
+ Classifier: Operating System :: MacOS
16
17
  Classifier: Operating System :: POSIX :: Linux
17
- Classifier: Programming Language :: Python
18
- Classifier: Programming Language :: Python :: 3
19
18
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.9
21
19
  Classifier: Programming Language :: Python :: 3.10
22
20
  Classifier: Programming Language :: Python :: 3.11
23
21
  Classifier: Programming Language :: Python :: 3.12
24
22
  Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.9
24
+ Classifier: Programming Language :: Python :: 3
25
+ Classifier: Programming Language :: Python
25
26
  Classifier: Topic :: Utilities
26
27
  Requires-Python: >=3.9
27
28
  Description-Content-Type: text/markdown
@@ -31,18 +32,20 @@ Requires-Dist: rich==13.9.4
31
32
 
32
33
  # Fitbit CLI
33
34
 
34
- [![Release](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml/badge.svg?branch=main&event=release)](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml) [![PyPI - Status](https://img.shields.io/pypi/status/fitbit-cli)
35
+ [![Release](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml/badge.svg)](https://github.com/veerendra2/fitbit-cli/actions/workflows/release.yml) [![PyPI - Status](https://img.shields.io/pypi/status/fitbit-cli)
35
36
  ](https://pypi.org/project/fitbit-cli/) [![PyPI - Version](https://img.shields.io/pypi/v/fitbit-cli)
36
37
  ](https://pypi.org/project/fitbit-cli/)
37
38
 
38
- > ⚠️ This is not an official Fitbit CLI
39
+ > This is not an official Fitbit CLI
39
40
 
40
41
  Access your Fitbit data directly from your terminal 💻. View 💤 sleep logs, ❤️ heart rate, 🏋️‍♂️ activity levels, 🩸 SpO2, and more, all presented in a simple, easy-to-read table format!
41
42
 
42
43
  <p align="center">
43
- <img alt="Fitbit logo", width="250" src="./assets/Fitbit_Logo_White_RGB.jpg">
44
+ <img alt="Fitbit logo", width="250" src="https://raw.githubusercontent.com/veerendra2/fitbit-cli/refs/heads/main/assets/Fitbit_Logo_White_RGB.jpg">
44
45
  </p>
45
46
 
47
+ [![asciicast](https://asciinema.org/a/696114.svg)](https://asciinema.org/a/696114)
48
+
46
49
  ## Supported Web APIs
47
50
 
48
51
  > Only `GET` APIs are supported!
@@ -54,13 +57,19 @@ Access your Fitbit data directly from your terminal 💻. View 💤 sleep logs,
54
57
  | [SpO2](https://dev.fitbit.com/build/reference/web-api/spo2/) | ✅ |
55
58
  | [Heart Rate Time Series](https://dev.fitbit.com/build/reference/web-api/heartrate-timeseries/) | ✅ |
56
59
  | [Active Zone Minutes (AZM) Time Series](https://dev.fitbit.com/build/reference/web-api/active-zone-minutes-timeseries/) | ✅ |
57
- | [Activity](https://dev.fitbit.com/build/reference/web-api/activity/) | 👷 |
60
+ | [Activity](https://dev.fitbit.com/build/reference/web-api/activity/) | |
61
+
62
+ ## Usage Guide
58
63
 
59
- ## Install
64
+ 1. Install the Fitbit CLI
60
65
 
61
66
  ```bash
62
67
  python -m pip install fitbit-cli
68
+ ```
69
+
70
+ 2. Help
63
71
 
72
+ ```bash
64
73
  fitbit-cli -h
65
74
  usage: fitbit-cli [-h] [-i] [-s [DATE[,DATE]]] [-o [DATE[,DATE]]] [-e [DATE[,DATE]]] [-a [DATE[,DATE]]] [-u] [-v]
66
75
 
@@ -87,15 +96,38 @@ APIs:
87
96
  Show user profile data
88
97
  ```
89
98
 
90
- ## Register Fitbit App
99
+ 3. Register Fitbit App
91
100
 
92
- 1. Go to [https://dev.fitbit.com/apps](https://dev.fitbit.com/apps)
93
- 2. Click on "REGISTER AN APP" tab
94
- 3. Follow below example and register an app
101
+ 1. Go to [https://dev.fitbit.com/apps](https://dev.fitbit.com/apps)
102
+ 2. Click on "REGISTER AN APP" tab
103
+ 3. Follow below example and register an app
95
104
 
96
- <p align="left">
97
- <img alt="Fitbit logo", width="700" src="./assets/fitbit-app-registration.png">
98
- </p>
105
+ <p align="left">
106
+ <img alt="Fitbit logo", width="700" src="https://raw.githubusercontent.com/veerendra2/fitbit-cli/refs/heads/main/assets/fitbit-app-registration.png">
107
+ </p>
108
+
109
+ 4. Run the following command to set up interactive authentication and store the Fitbit token locally
110
+
111
+ ```bash
112
+ fitbit-cli --init-auth
113
+ ```
114
+
115
+ For a visual guide, see the Asciinema recording below
116
+ [![asciicast](https://asciinema.org/a/696115.svg)](https://asciinema.org/a/696115)
117
+
118
+ 5. Start using it 😎
119
+
120
+ ```bash
121
+ $ fitbit-cli -s
122
+ Sleep Data Summary 😴
123
+ ┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
124
+ ┃ Date 📆 ┃ Deep Sleep 🛏 ┃ Light Sleep 💤 ┃ REM Sleep 🌙 ┃ Wake Time ⏰ ┃ Efficiency 💯 ┃
125
+ ┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
126
+ │ 2024-12-25 │ 139 min │ 190 min │ 155 min │ 54 min │ 55% │
127
+ └────────────┴──────────────┴────────────────┴──────────────┴──────────────┴───────────────┘
128
+ ```
129
+
130
+ _**NOTE: The token is valid for only 8 hours, `fitbit-cli` automatically refreshes the token when it expires.**_
99
131
 
100
132
  ## Local Development
101
133
 
@@ -29,22 +29,23 @@ setup(
29
29
  project_urls={
30
30
  "Documentation": "https://github.com/veerendra2/fitbit-cli",
31
31
  },
32
- keywords=["fitbit", "cli", "python"],
32
+ keywords=["fitbit", "fitbit-api", "cli", "python"],
33
33
  license="MIT",
34
34
  classifiers=[
35
35
  "Development Status :: 5 - Production/Stable",
36
36
  "Intended Audience :: End Users/Desktop",
37
37
  "License :: OSI Approved :: Apache Software License",
38
38
  "Natural Language :: English",
39
+ "Operating System :: MacOS",
39
40
  "Operating System :: POSIX :: Linux",
40
- "Programming Language :: Python",
41
- "Programming Language :: Python :: 3",
42
41
  "Programming Language :: Python :: 3 :: Only",
43
- "Programming Language :: Python :: 3.9",
44
42
  "Programming Language :: Python :: 3.10",
45
43
  "Programming Language :: Python :: 3.11",
46
44
  "Programming Language :: Python :: 3.12",
47
45
  "Programming Language :: Python :: 3.13",
46
+ "Programming Language :: Python :: 3.9",
47
+ "Programming Language :: Python :: 3",
48
+ "Programming Language :: Python",
48
49
  "Topic :: Utilities",
49
50
  ],
50
51
  install_requires=[
File without changes
File without changes
File without changes
File without changes