summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pydexcom.spec418
-rw-r--r--sources1
3 files changed, 420 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..a775f25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pydexcom-0.2.3.tar.gz
diff --git a/python-pydexcom.spec b/python-pydexcom.spec
new file mode 100644
index 0000000..9b98d45
--- /dev/null
+++ b/python-pydexcom.spec
@@ -0,0 +1,418 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pydexcom
+Version: 0.2.3
+Release: 1
+Summary: Python API to interact with Dexcom Share API
+License: MIT
+URL: https://github.com/gagebenne/pydexcom
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/3d/83/eef794b472bbb4a63a500f95fd5bf7ae40e46b9db313cf5c038ab245e4ae/pydexcom-0.2.3.tar.gz
+BuildArch: noarch
+
+Requires: python3-requests
+
+%description
+[![Donate](https://img.shields.io/badge/Donate-PayPal-green?style=flat-square)](https://www.paypal.me/gagebenne)
+[![PyPI](https://img.shields.io/pypi/v/pydexcom?style=flat-square)](https://www.pypi.org/project/pydexcom)
+[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/gagebenne/pydexcom/Python%20package?style=flat-square)](https://github.com/gagebenne/pydexcom/actions)
+
+# pydexcom
+
+A simple Python API to interact with Dexcom Share service. Used to get **real time** Dexcom GCM sensor data.
+
+### Setup
+
+1. Download the [Dexcom G6 / G5 / G4](https://www.dexcom.com/apps) mobile app and [enable the Share service](https://provider.dexcom.com/education-research/cgm-education-use/videos/setting-dexcom-share-and-follow).
+
+ *Note: the service requires setup of at least one follower to enable the share service, but `pydexcom` will use your credentials, not the follower's.*
+
+2. Install the `pydexcom` package.
+ ```python
+ pip3 install pydexcom
+ ```
+
+### Usage
+
+```python
+>>> from pydexcom import Dexcom
+>>> dexcom = Dexcom("username", "password") # add ous=True if outside of US
+>>> bg = dexcom.get_current_glucose_reading()
+>>> bg.value
+85
+
+>>> bg.mmol_l
+4.7
+
+>>> bg.trend
+4
+
+>>> bg.trend_description
+'steady'
+
+>>> bg.trend_arrow
+'→'
+
+>>> bg.time
+datetime.datetime(2020, 5, 6, 18, 18, 42)
+```
+
+### FAQ
+
+<details>
+<summary>What do I need to get started?</a></summary>
+<br/>
+If you are currently on the Dexcom GCM system, all you need is the appropriate mobile app with the Dexcom Share service enabled.
+</details>
+<details>
+<summary>Where is this package being used?</a></summary>
+<br/>
+For now this package is mainly being used in the <a href="https://github.com/home-assistant/core/pull/33852">Dexcom home assistant integration</a>, but is generic enough to be used in lots of applications.
+In fact, reddit user paulcole710 used it to track glucose levels <a href="https://www.tomshardware.com/news/raspberry-project-diy-dexcom-glucose-tracker">using a Raspberry Pi and e-ink display</a>.
+</details>
+
+<details>
+<summary>Why not use the <a href="https://developer.dexcom.com/">official Dexcom Developer API?</a></summary>
+<br/>
+The official Dexcom API is a great tool to view trends, statistics, and day-by-day data, but is not suitable for real time fetching of glucose readings.
+</details>
+<details>
+<summary>How can I let you know of suggestions or issues?</summary>
+<br/>
+By all means submit a pull request if you have a feature you'd like to see in the next release, alternatively you may leave a issue if you have a suggestion or bug you'd like to alert me of.
+</details>
+<details>
+<summary>Are there any features in development?</summary>
+<br/>
+Sure, I'm thinking of implementing a session status checker, or maybe an asynchronus version. That being said, simplicity - getting real time blood glucose information - is most important to this package.
+</details>
+
+### Development
+
+##### Dexcom class
+
+| Method | Input | Output | Description |
+| --------------------------- | ------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------ |
+| \_\_init\_\_ | `username:str`,<br/>`password:str`,<br/>`ous:bool=True` | `Dexcom` | Dexcom constructor, stores authentication information |
+| create_session | | | Creates Dexcom Share API session by getting session id |
+| verify_serial_number | `serial_number:str` | `bool` | Verifies if a transmitter serial number is assigned to you |
+| get_glucose_readings | `minutes:int=1440`,<br/>`max_count:int=288` | `[GlucoseReading]`/<br />`None` | Gets max_count glucose readings within the past minutes, None if no glucose reading in the past 24 hours |
+| get_latest_glucose_reading | | `GlucoseReading`/<br />`None` | Gets latest available glucose reading, None if no glucose reading in the past 24 hours |
+| get_current_glucose_reading | | `GlucoseReading`/`None` | Gets current available glucose reading, None if no glucose reading in the past 6 minutes |
+
+##### GlucoseReading class
+
+| Attribute | Definition | Example |
+| ----------------- | ------------------------------------------------------------ | ------------------------------------------- |
+| value | Blood glucose value in mg/dL. | `85` |
+| mg_dl | Blood glucose value in mg/dL. | `85` |
+| mmol_l | Blood glucose value in mmol/L. | `4.7` |
+| trend | Blood glucose trend information as number 0 - 9 (see constants). | `4` |
+| trend_description | Blood glucose trend information description (see constants). | `'steady'` |
+| trend_arrow | Blood glucose trend information as unicode arrow (see constants). | `'→'` |
+| time | Blood glucose recorded time as `datetime`. | `datetime.datetime(2020, 5, 6, 18, 18, 42)` |
+
+##### Constants
+
+| Trend | Trend description | Trend arrow |
+| ----- | ----------------------------- | ----------- |
+| 0 | `''` | `''` |
+| 1 | `'rising quickly'` | `'↑↑'` |
+| 2 | `'rising'` | `'↑'` |
+| 3 | `'rising slightly'` | `'↗'` |
+| 4 | `'steady'` | `'→'` |
+| 5 | `'falling slightly'` | `'↘'` |
+| 6 | `'falling'` | `'↓'` |
+| 7 | `'falling quickly'` | `'↓↓'` |
+| 8 | `'unable to determine trend'` | `'?'` |
+| 9 | `'trend unavailable'` | `'-'` |
+
+
+
+
+%package -n python3-pydexcom
+Summary: Python API to interact with Dexcom Share API
+Provides: python-pydexcom
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pydexcom
+[![Donate](https://img.shields.io/badge/Donate-PayPal-green?style=flat-square)](https://www.paypal.me/gagebenne)
+[![PyPI](https://img.shields.io/pypi/v/pydexcom?style=flat-square)](https://www.pypi.org/project/pydexcom)
+[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/gagebenne/pydexcom/Python%20package?style=flat-square)](https://github.com/gagebenne/pydexcom/actions)
+
+# pydexcom
+
+A simple Python API to interact with Dexcom Share service. Used to get **real time** Dexcom GCM sensor data.
+
+### Setup
+
+1. Download the [Dexcom G6 / G5 / G4](https://www.dexcom.com/apps) mobile app and [enable the Share service](https://provider.dexcom.com/education-research/cgm-education-use/videos/setting-dexcom-share-and-follow).
+
+ *Note: the service requires setup of at least one follower to enable the share service, but `pydexcom` will use your credentials, not the follower's.*
+
+2. Install the `pydexcom` package.
+ ```python
+ pip3 install pydexcom
+ ```
+
+### Usage
+
+```python
+>>> from pydexcom import Dexcom
+>>> dexcom = Dexcom("username", "password") # add ous=True if outside of US
+>>> bg = dexcom.get_current_glucose_reading()
+>>> bg.value
+85
+
+>>> bg.mmol_l
+4.7
+
+>>> bg.trend
+4
+
+>>> bg.trend_description
+'steady'
+
+>>> bg.trend_arrow
+'→'
+
+>>> bg.time
+datetime.datetime(2020, 5, 6, 18, 18, 42)
+```
+
+### FAQ
+
+<details>
+<summary>What do I need to get started?</a></summary>
+<br/>
+If you are currently on the Dexcom GCM system, all you need is the appropriate mobile app with the Dexcom Share service enabled.
+</details>
+<details>
+<summary>Where is this package being used?</a></summary>
+<br/>
+For now this package is mainly being used in the <a href="https://github.com/home-assistant/core/pull/33852">Dexcom home assistant integration</a>, but is generic enough to be used in lots of applications.
+In fact, reddit user paulcole710 used it to track glucose levels <a href="https://www.tomshardware.com/news/raspberry-project-diy-dexcom-glucose-tracker">using a Raspberry Pi and e-ink display</a>.
+</details>
+
+<details>
+<summary>Why not use the <a href="https://developer.dexcom.com/">official Dexcom Developer API?</a></summary>
+<br/>
+The official Dexcom API is a great tool to view trends, statistics, and day-by-day data, but is not suitable for real time fetching of glucose readings.
+</details>
+<details>
+<summary>How can I let you know of suggestions or issues?</summary>
+<br/>
+By all means submit a pull request if you have a feature you'd like to see in the next release, alternatively you may leave a issue if you have a suggestion or bug you'd like to alert me of.
+</details>
+<details>
+<summary>Are there any features in development?</summary>
+<br/>
+Sure, I'm thinking of implementing a session status checker, or maybe an asynchronus version. That being said, simplicity - getting real time blood glucose information - is most important to this package.
+</details>
+
+### Development
+
+##### Dexcom class
+
+| Method | Input | Output | Description |
+| --------------------------- | ------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------ |
+| \_\_init\_\_ | `username:str`,<br/>`password:str`,<br/>`ous:bool=True` | `Dexcom` | Dexcom constructor, stores authentication information |
+| create_session | | | Creates Dexcom Share API session by getting session id |
+| verify_serial_number | `serial_number:str` | `bool` | Verifies if a transmitter serial number is assigned to you |
+| get_glucose_readings | `minutes:int=1440`,<br/>`max_count:int=288` | `[GlucoseReading]`/<br />`None` | Gets max_count glucose readings within the past minutes, None if no glucose reading in the past 24 hours |
+| get_latest_glucose_reading | | `GlucoseReading`/<br />`None` | Gets latest available glucose reading, None if no glucose reading in the past 24 hours |
+| get_current_glucose_reading | | `GlucoseReading`/`None` | Gets current available glucose reading, None if no glucose reading in the past 6 minutes |
+
+##### GlucoseReading class
+
+| Attribute | Definition | Example |
+| ----------------- | ------------------------------------------------------------ | ------------------------------------------- |
+| value | Blood glucose value in mg/dL. | `85` |
+| mg_dl | Blood glucose value in mg/dL. | `85` |
+| mmol_l | Blood glucose value in mmol/L. | `4.7` |
+| trend | Blood glucose trend information as number 0 - 9 (see constants). | `4` |
+| trend_description | Blood glucose trend information description (see constants). | `'steady'` |
+| trend_arrow | Blood glucose trend information as unicode arrow (see constants). | `'→'` |
+| time | Blood glucose recorded time as `datetime`. | `datetime.datetime(2020, 5, 6, 18, 18, 42)` |
+
+##### Constants
+
+| Trend | Trend description | Trend arrow |
+| ----- | ----------------------------- | ----------- |
+| 0 | `''` | `''` |
+| 1 | `'rising quickly'` | `'↑↑'` |
+| 2 | `'rising'` | `'↑'` |
+| 3 | `'rising slightly'` | `'↗'` |
+| 4 | `'steady'` | `'→'` |
+| 5 | `'falling slightly'` | `'↘'` |
+| 6 | `'falling'` | `'↓'` |
+| 7 | `'falling quickly'` | `'↓↓'` |
+| 8 | `'unable to determine trend'` | `'?'` |
+| 9 | `'trend unavailable'` | `'-'` |
+
+
+
+
+%package help
+Summary: Development documents and examples for pydexcom
+Provides: python3-pydexcom-doc
+%description help
+[![Donate](https://img.shields.io/badge/Donate-PayPal-green?style=flat-square)](https://www.paypal.me/gagebenne)
+[![PyPI](https://img.shields.io/pypi/v/pydexcom?style=flat-square)](https://www.pypi.org/project/pydexcom)
+[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/gagebenne/pydexcom/Python%20package?style=flat-square)](https://github.com/gagebenne/pydexcom/actions)
+
+# pydexcom
+
+A simple Python API to interact with Dexcom Share service. Used to get **real time** Dexcom GCM sensor data.
+
+### Setup
+
+1. Download the [Dexcom G6 / G5 / G4](https://www.dexcom.com/apps) mobile app and [enable the Share service](https://provider.dexcom.com/education-research/cgm-education-use/videos/setting-dexcom-share-and-follow).
+
+ *Note: the service requires setup of at least one follower to enable the share service, but `pydexcom` will use your credentials, not the follower's.*
+
+2. Install the `pydexcom` package.
+ ```python
+ pip3 install pydexcom
+ ```
+
+### Usage
+
+```python
+>>> from pydexcom import Dexcom
+>>> dexcom = Dexcom("username", "password") # add ous=True if outside of US
+>>> bg = dexcom.get_current_glucose_reading()
+>>> bg.value
+85
+
+>>> bg.mmol_l
+4.7
+
+>>> bg.trend
+4
+
+>>> bg.trend_description
+'steady'
+
+>>> bg.trend_arrow
+'→'
+
+>>> bg.time
+datetime.datetime(2020, 5, 6, 18, 18, 42)
+```
+
+### FAQ
+
+<details>
+<summary>What do I need to get started?</a></summary>
+<br/>
+If you are currently on the Dexcom GCM system, all you need is the appropriate mobile app with the Dexcom Share service enabled.
+</details>
+<details>
+<summary>Where is this package being used?</a></summary>
+<br/>
+For now this package is mainly being used in the <a href="https://github.com/home-assistant/core/pull/33852">Dexcom home assistant integration</a>, but is generic enough to be used in lots of applications.
+In fact, reddit user paulcole710 used it to track glucose levels <a href="https://www.tomshardware.com/news/raspberry-project-diy-dexcom-glucose-tracker">using a Raspberry Pi and e-ink display</a>.
+</details>
+
+<details>
+<summary>Why not use the <a href="https://developer.dexcom.com/">official Dexcom Developer API?</a></summary>
+<br/>
+The official Dexcom API is a great tool to view trends, statistics, and day-by-day data, but is not suitable for real time fetching of glucose readings.
+</details>
+<details>
+<summary>How can I let you know of suggestions or issues?</summary>
+<br/>
+By all means submit a pull request if you have a feature you'd like to see in the next release, alternatively you may leave a issue if you have a suggestion or bug you'd like to alert me of.
+</details>
+<details>
+<summary>Are there any features in development?</summary>
+<br/>
+Sure, I'm thinking of implementing a session status checker, or maybe an asynchronus version. That being said, simplicity - getting real time blood glucose information - is most important to this package.
+</details>
+
+### Development
+
+##### Dexcom class
+
+| Method | Input | Output | Description |
+| --------------------------- | ------------------------------------------------------- | ------------------------------- | ------------------------------------------------------------ |
+| \_\_init\_\_ | `username:str`,<br/>`password:str`,<br/>`ous:bool=True` | `Dexcom` | Dexcom constructor, stores authentication information |
+| create_session | | | Creates Dexcom Share API session by getting session id |
+| verify_serial_number | `serial_number:str` | `bool` | Verifies if a transmitter serial number is assigned to you |
+| get_glucose_readings | `minutes:int=1440`,<br/>`max_count:int=288` | `[GlucoseReading]`/<br />`None` | Gets max_count glucose readings within the past minutes, None if no glucose reading in the past 24 hours |
+| get_latest_glucose_reading | | `GlucoseReading`/<br />`None` | Gets latest available glucose reading, None if no glucose reading in the past 24 hours |
+| get_current_glucose_reading | | `GlucoseReading`/`None` | Gets current available glucose reading, None if no glucose reading in the past 6 minutes |
+
+##### GlucoseReading class
+
+| Attribute | Definition | Example |
+| ----------------- | ------------------------------------------------------------ | ------------------------------------------- |
+| value | Blood glucose value in mg/dL. | `85` |
+| mg_dl | Blood glucose value in mg/dL. | `85` |
+| mmol_l | Blood glucose value in mmol/L. | `4.7` |
+| trend | Blood glucose trend information as number 0 - 9 (see constants). | `4` |
+| trend_description | Blood glucose trend information description (see constants). | `'steady'` |
+| trend_arrow | Blood glucose trend information as unicode arrow (see constants). | `'→'` |
+| time | Blood glucose recorded time as `datetime`. | `datetime.datetime(2020, 5, 6, 18, 18, 42)` |
+
+##### Constants
+
+| Trend | Trend description | Trend arrow |
+| ----- | ----------------------------- | ----------- |
+| 0 | `''` | `''` |
+| 1 | `'rising quickly'` | `'↑↑'` |
+| 2 | `'rising'` | `'↑'` |
+| 3 | `'rising slightly'` | `'↗'` |
+| 4 | `'steady'` | `'→'` |
+| 5 | `'falling slightly'` | `'↘'` |
+| 6 | `'falling'` | `'↓'` |
+| 7 | `'falling quickly'` | `'↓↓'` |
+| 8 | `'unable to determine trend'` | `'?'` |
+| 9 | `'trend unavailable'` | `'-'` |
+
+
+
+
+%prep
+%autosetup -n pydexcom-0.2.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pydexcom -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..0d9b6c9
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a847caf873f434f34c652e6ff3b74ea2 pydexcom-0.2.3.tar.gz