succulent


Namesucculent JSON
Version 0.4.1 PyPI version JSON
download
home_pagehttps://github.com/firefly-cpp/succulent
SummaryCollect POST requests easily
upload_time2025-02-05 09:16:07
maintainerNone
docs_urlNone
authorIztok Fister Jr.
requires_python<4.0,>=3.10
licenseMIT
keywords data collection data science esp32 sensor measurements smart agriculture smartwatch
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img alt="logo" width="300" src=".github/images/logo.png">
</p>

<h1 align="center">
succulent
</h1>

<h2 align="center">
  Collect POST requests easily
</h2>

<p align="center">
  <img alt="PyPI Version" src="https://img.shields.io/pypi/v/succulent.svg">
  <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/succulent.svg">
  <img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/succulent.svg">
  <a href="https://aur.archlinux.org/packages/python-succulent">
    <img alt="AUR package" src="https://img.shields.io/aur/version/python-succulent?color=blue&label=Arch%20Linux&logo=arch-linux">
  </a>
  <a href="https://src.fedoraproject.org/rpms/python-succulent">
    <img alt="Fedora package" src="https://img.shields.io/fedora/v/python3-succulent?color=blue&label=Fedora%20Linux&logo=fedora">
  </a>
  <a href="https://pepy.tech/project/succulent">
    <img alt="Downloads" src="https://static.pepy.tech/badge/succulent">
  </a>
  <a href="https://repology.org/project/python:succulent/versions">
    <img alt="Packaging status" src="https://repology.org/badge/tiny-repos/python:succulent.svg">
  </a>
  <a href="https://github.com/firefly-cpp/succulent/blob/master/LICENSE">
    <img alt="GitHub license" src="https://img.shields.io/github/license/firefly-cpp/succulent.svg">
  </a>
  <a href="https://github.com/firefly-cpp/succulent/actions/workflows/test.yml">
    <img alt="Build" src="https://github.com/firefly-cpp/succulent/actions/workflows/test.yml/badge.svg">
  </a>
  <a href="https://succulent.readthedocs.io/en/latest/?badge=latest">
    <img alt="Documentation status" src="https://readthedocs.org/projects/succulent/badge/?version=latest">
  </a>
</p>

<p align="center">
  <img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/firefly-cpp/succulent">
  <img alt="GitHub commit activity" src="https://img.shields.io/github/commit-activity/w/firefly-cpp/succulent.svg">
  <a href="http://isitmaintained.com/project/firefly-cpp/succulent">
    <img alt="Average time to resolve an issue" src="http://isitmaintained.com/badge/resolution/firefly-cpp/succulent.svg">
  </a>
  <a href="http://isitmaintained.com/project/firefly-cpp/succulent">
    <img alt="Percentage of issues still open" src="http://isitmaintained.com/badge/open/firefly-cpp/succulent.svg">
  </a>
  <a href="#-contributors">
    <img alt="All Contributors" src="https://img.shields.io/badge/all_contributors-5-orange.svg">
  </a>
</p>

<p align="center">
  <a href="https://doi.org/10.5281/zenodo.10402365">
    <img alt="DOI" src="https://zenodo.org/badge/DOI/10.5281/zenodo.10402365.svg">
  </a>
</p>

<p align="center">
  <a href="#-detailed-insights">πŸ” Detailed Insights</a> β€’
  <a href="#-installation">πŸ“¦ Installation</a> β€’
  <a href="#-container">🐳 Container</a> β€’
  <a href="#-usage">πŸš€ Usage</a> β€’
  <a href="#-configuration">πŸ”§ Configuration</a> β€’
  <a href="#-cite-us">πŸ“„ Cite us</a> β€’
  <a href="#-license">πŸ”‘ License</a> β€’
  <a href="#-contributors">πŸ«‚ Contributors</a>
</p>

Do you ever find it challenging and tricky to send sensor measurements πŸ“, data πŸ“Š, or GPS positions from embedded devices πŸ“±, microcontrollers, and [smartwatches](https://github.com/firefly-cpp/AST-Monitor) to a central server? πŸ“‘ Setting up the primary data collection scripts can be a time-consuming ⏳ process, involving selecting a protocol, framework, API, and testing them out. Moreover, these scripts are often tailored for specific tasks, making them difficult to adapt to different scenarios.

But fear not! Introducing succulent 🌡, a pure Python framework that simplifies the configuration, management, collection, and preprocessing of data collected via POST requests. This framework draws inspiration from real-world data collection challenges in [smart agriculture](https://github.com/firefly-cpp/smart-agriculture-datasets/tree/main/plant-monitoring-esp32) 🧠🌿, specifically plant monitoring using ESP32 devices. The main goal behind succulent is to streamline the process of configuring various data parameters and provide a range of useful functions for data transformations. By leveraging succulent, you can set up your entire data collection endpoint within minutes, freeing you from the hassle of dealing with server-side scripts. πŸš€πŸ”§

* **Free software:** MIT license
* **Documentation:** [https://succulent.readthedocs.io/en/latest](https://succulent.readthedocs.io/en/latest/)
* **Python versions:** 3.8.x, 3.9.x, 3.10.x, 3.11.x, 3.12.x
* **Tested OS:** Windows, Ubuntu, Fedora, Alpine, Arch, macOS. **However, that does not mean it does not work on others**

## πŸ” Detailed Insights

The current version of succulent comes packed with exciting features, including, but not limited to:

- **Hassle-free generation of request URLs** for seamless data collection 🌐
- **Effortless data retrieval** from POST requests πŸ“₯
- **Versatile data storage options**, such as CSV, JSON, SQLite, XML, and even images πŸ—‚οΈπŸ“ŠπŸ–ΌοΈ
- **Customisable boundaries for collected data**, allowing you to set minimum and maximum thresholds βš™οΈ

With succulent, the process of collecting, managing, and preprocessing data becomes a breeze, empowering you to focus on what truly mattersβ€”gaining valuable insights from your embedded devices, microcontrollers, and smartwatches. ⌚ So why waste precious time? ⏳ Dive into the world of succulent and unlock the true potential of your data! πŸ’ͺπŸ“ˆ

## πŸ“¦ Installation

### pip

To install `succulent` with pip, use:

```sh
pip install succulent
```

### Alpine Linux

To install `succulent` on Alpine Linux, use:

```sh
$ apk add py3-succulent
```

### Arch Linux

To install `succulent` on Arch Linux, use an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers):

```sh
$ yay -Syyu python-succulent
```

### Fedora Linux

To install `succulent` on Fedora, use:

```sh
$ dnf install python3-succulent
```

## 🐳 Container
Create a `docker-compose.yml` file with the following content in the root directory:

```yml
version: '3.8'

services:
  app:
    image: codeberg.org/firefly-cpp/succulent:v6
    ports:
      - "8080:8080"
    volumes:
      - ./run.py:/succulent-app/run.py
      - ./configuration.yml:/succulent-app/configuration.yml
    environment:
      - GUNICORN_WORKERS=2
```

Next create a `configuration.yml` file in the root directory. Here's an example of a configuration file:

```yml
data:
  - name: 'temperature'
  - name: 'humidity'
  - name: 'light'
results:
  - enable: true
  - export: true
timestamp: true
```

More information regarding the configuration file and its settings can be found in the [configuration](#-configuration) section.

Then create a Python file named `run.py` with the following content in the root directory:

```python
from succulent.api import SucculentAPI

api = SucculentAPI(config='configuration.yml', format='csv')

# Flask app instance, called by gunicorn
app = api.app
```

Once you have set up the configuration file and the Python file, build the Docker image with the following command:

```bash
docker compose build
```

Finally, run the Docker container with the following command:

```bash
docker compose up
```

## πŸš€ Usage

### Example

```python
from succulent.api import SucculentAPI
api = SucculentAPI(host='0.0.0.0', port=8080, config='configuration.yml', format='csv')
api.start()
```

## πŸ”§ Configuration
### Data collection
In the root directory, create a `configuration.yml` file and define the following:
```yml
data:
  - name: # Measure name
    min:  # Minimum value (optional)
    max:  # Maximum value (optional)
```

To collect images, create a `configuration.yml` file in the root directory and define the following:
```yml
data:
  - key: # Key in POST request
```

To store data collection timestamps, define the following setting in the `configuration.yml` file in the root directory:
```yml
timestamp: true # false by default
```

To access the URL for data collection, send a GET request (or navigate) to [http://localhost:8080/measure](http://localhost:8080/measure).

To restrict access to the collected data, define the following setting in the `configuration.yml` file in the root directory:
```yml
password: 'password' # Password for data access
```

To store data using a password, append the password parameter to the request URL: `?password=password`.

### Data access
To access data via the Succulent API, define the following setting in the `configuration.yml` file in the root directory:
```yml
results:
  - enable: true # false by default
```

To access the collected data, send a GET request (or navigate) to [http://localhost:8080/data](http://localhost:8080/data). To access password-protected data, append the password parameter to the request URL: `?password=password`.

### Data export
To export the data, enable the export option in the configuration file:
```yml
results:
  - export: true # false by default
```

To export the data, send a GET request (or navigate) to [http://localhost:8080/export](http://localhost:8080/export). To export password-protected data, append the password parameter to the request URL: `?password=password`. The data will be downloaded in the format specified in the configuration file.

## πŸ“„ Cite us
Fister Jr., Iztok, and Tadej Lahovnik. Succulent. 0.4.0, doi:[10.5281/zenodo.10402365](https://doi.org/10.5281/zenodo.10402365).

## πŸ”‘ License

This package is distributed under the MIT License. This license can be found online at <http://www.opensource.org/licenses/MIT>.

## Disclaimer

This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!

## πŸ«‚ Contributors

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
  <tbody>
    <tr>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/lahovniktadej"><img src="https://avatars.githubusercontent.com/u/57890734?v=4?s=100" width="100px;" alt="Tadej Lahovnik"/><br /><sub><b>Tadej Lahovnik</b></sub></a><br /><a href="https://github.com/firefly-cpp/succulent/commits?author=lahovniktadej" title="Code">πŸ’»</a> <a href="https://github.com/firefly-cpp/succulent/issues?q=author%3Alahovniktadej" title="Bug reports">πŸ›</a> <a href="#ideas-lahovniktadej" title="Ideas, Planning, & Feedback">πŸ€”</a> <a href="https://github.com/firefly-cpp/succulent/commits?author=lahovniktadej" title="Documentation">πŸ“–</a> <a href="#tutorial-lahovniktadej" title="Tutorials">βœ…</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/AyanDas348"><img src="https://avatars.githubusercontent.com/u/53610626?v=4?s=100" width="100px;" alt="Ayan Das"/><br /><sub><b>Ayan Das</b></sub></a><br /><a href="https://github.com/firefly-cpp/succulent/commits?author=AyanDas348" title="Code">πŸ’»</a> <a href="https://github.com/firefly-cpp/succulent/commits?author=AyanDas348" title="Tests">⚠️</a></td>
      <td align="center" valign="top" width="14.28%"><a href="http://www.iztok-jr-fister.eu/"><img src="https://avatars.githubusercontent.com/u/1633361?v=4?s=100" width="100px;" alt="Iztok Fister Jr."/><br /><sub><b>Iztok Fister Jr.</b></sub></a><br /><a href="https://github.com/firefly-cpp/succulent/commits?author=firefly-cpp" title="Code">πŸ’»</a> <a href="#ideas-firefly-cpp" title="Ideas, Planning, & Feedback">πŸ€”</a> <a href="#mentoring-firefly-cpp" title="Mentoring">πŸ§‘β€πŸ«</a></td>
      <td align="center" valign="top" width="14.28%"><a href="http://carlosal1015.github.io"><img src="https://avatars.githubusercontent.com/u/21283014?v=4?s=100" width="100px;" alt="Oromion"/><br /><sub><b>Oromion</b></sub></a><br /><a href="https://github.com/firefly-cpp/succulent/issues?q=author%3Acarlosal1015" title="Bug reports">πŸ›</a> <a href="#platform-carlosal1015" title="Packaging/porting to new platform">πŸ“¦</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/rhododendrom"><img src="https://avatars.githubusercontent.com/u/3198785?v=4?s=100" width="100px;" alt="rhododendrom"/><br /><sub><b>rhododendrom</b></sub></a><br /><a href="#design-rhododendrom" title="Design">🎨</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/zala-lahovnik"><img src="https://avatars.githubusercontent.com/u/105444201?v=4?s=100" width="100px;" alt="Zala Lahovnik"/><br /><sub><b>Zala Lahovnik</b></sub></a><br /><a href="https://github.com/firefly-cpp/succulent/commits?author=zala-lahovnik" title="Documentation">πŸ“–</a></td>
    </tr>
  </tbody>
</table>

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/firefly-cpp/succulent",
    "name": "succulent",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "data collection, data science, ESP32, sensor measurements, smart agriculture, smartwatch",
    "author": "Iztok Fister Jr.",
    "author_email": "iztok@iztok-jr-fister.eu",
    "download_url": "https://files.pythonhosted.org/packages/f7/f1/69b492d373a77cf226f957e1c77c4e0aee72c143a641dba6d2ffefa63dba/succulent-0.4.1.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img alt=\"logo\" width=\"300\" src=\".github/images/logo.png\">\n</p>\n\n<h1 align=\"center\">\nsucculent\n</h1>\n\n<h2 align=\"center\">\n  Collect POST requests easily\n</h2>\n\n<p align=\"center\">\n  <img alt=\"PyPI Version\" src=\"https://img.shields.io/pypi/v/succulent.svg\">\n  <img alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/succulent.svg\">\n  <img alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/succulent.svg\">\n  <a href=\"https://aur.archlinux.org/packages/python-succulent\">\n    <img alt=\"AUR package\" src=\"https://img.shields.io/aur/version/python-succulent?color=blue&label=Arch%20Linux&logo=arch-linux\">\n  </a>\n  <a href=\"https://src.fedoraproject.org/rpms/python-succulent\">\n    <img alt=\"Fedora package\" src=\"https://img.shields.io/fedora/v/python3-succulent?color=blue&label=Fedora%20Linux&logo=fedora\">\n  </a>\n  <a href=\"https://pepy.tech/project/succulent\">\n    <img alt=\"Downloads\" src=\"https://static.pepy.tech/badge/succulent\">\n  </a>\n  <a href=\"https://repology.org/project/python:succulent/versions\">\n    <img alt=\"Packaging status\" src=\"https://repology.org/badge/tiny-repos/python:succulent.svg\">\n  </a>\n  <a href=\"https://github.com/firefly-cpp/succulent/blob/master/LICENSE\">\n    <img alt=\"GitHub license\" src=\"https://img.shields.io/github/license/firefly-cpp/succulent.svg\">\n  </a>\n  <a href=\"https://github.com/firefly-cpp/succulent/actions/workflows/test.yml\">\n    <img alt=\"Build\" src=\"https://github.com/firefly-cpp/succulent/actions/workflows/test.yml/badge.svg\">\n  </a>\n  <a href=\"https://succulent.readthedocs.io/en/latest/?badge=latest\">\n    <img alt=\"Documentation status\" src=\"https://readthedocs.org/projects/succulent/badge/?version=latest\">\n  </a>\n</p>\n\n<p align=\"center\">\n  <img alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/firefly-cpp/succulent\">\n  <img alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/w/firefly-cpp/succulent.svg\">\n  <a href=\"http://isitmaintained.com/project/firefly-cpp/succulent\">\n    <img alt=\"Average time to resolve an issue\" src=\"http://isitmaintained.com/badge/resolution/firefly-cpp/succulent.svg\">\n  </a>\n  <a href=\"http://isitmaintained.com/project/firefly-cpp/succulent\">\n    <img alt=\"Percentage of issues still open\" src=\"http://isitmaintained.com/badge/open/firefly-cpp/succulent.svg\">\n  </a>\n  <a href=\"#-contributors\">\n    <img alt=\"All Contributors\" src=\"https://img.shields.io/badge/all_contributors-5-orange.svg\">\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://doi.org/10.5281/zenodo.10402365\">\n    <img alt=\"DOI\" src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.10402365.svg\">\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#-detailed-insights\">\ud83d\udd0d Detailed Insights</a> \u2022\n  <a href=\"#-installation\">\ud83d\udce6 Installation</a> \u2022\n  <a href=\"#-container\">\ud83d\udc33 Container</a> \u2022\n  <a href=\"#-usage\">\ud83d\ude80 Usage</a> \u2022\n  <a href=\"#-configuration\">\ud83d\udd27 Configuration</a> \u2022\n  <a href=\"#-cite-us\">\ud83d\udcc4 Cite us</a> \u2022\n  <a href=\"#-license\">\ud83d\udd11 License</a> \u2022\n  <a href=\"#-contributors\">\ud83e\udec2 Contributors</a>\n</p>\n\nDo you ever find it challenging and tricky to send sensor measurements \ud83d\udccf, data \ud83d\udcca, or GPS positions from embedded devices \ud83d\udcf1, microcontrollers, and [smartwatches](https://github.com/firefly-cpp/AST-Monitor) to a central server? \ud83d\udce1 Setting up the primary data collection scripts can be a time-consuming \u23f3 process, involving selecting a protocol, framework, API, and testing them out. Moreover, these scripts are often tailored for specific tasks, making them difficult to adapt to different scenarios.\n\nBut fear not! Introducing succulent \ud83c\udf35, a pure Python framework that simplifies the configuration, management, collection, and preprocessing of data collected via POST requests. This framework draws inspiration from real-world data collection challenges in [smart agriculture](https://github.com/firefly-cpp/smart-agriculture-datasets/tree/main/plant-monitoring-esp32) \ud83e\udde0\ud83c\udf3f, specifically plant monitoring using ESP32 devices. The main goal behind succulent is to streamline the process of configuring various data parameters and provide a range of useful functions for data transformations. By leveraging succulent, you can set up your entire data collection endpoint within minutes, freeing you from the hassle of dealing with server-side scripts. \ud83d\ude80\ud83d\udd27\n\n* **Free software:** MIT license\n* **Documentation:** [https://succulent.readthedocs.io/en/latest](https://succulent.readthedocs.io/en/latest/)\n* **Python versions:** 3.8.x, 3.9.x, 3.10.x, 3.11.x, 3.12.x\n* **Tested OS:** Windows, Ubuntu, Fedora, Alpine, Arch, macOS. **However, that does not mean it does not work on others**\n\n## \ud83d\udd0d Detailed Insights\n\nThe current version of succulent comes packed with exciting features, including, but not limited to:\n\n- **Hassle-free generation of request URLs** for seamless data collection \ud83c\udf10\n- **Effortless data retrieval** from POST requests \ud83d\udce5\n- **Versatile data storage options**, such as CSV, JSON, SQLite, XML, and even images \ud83d\uddc2\ufe0f\ud83d\udcca\ud83d\uddbc\ufe0f\n- **Customisable boundaries for collected data**, allowing you to set minimum and maximum thresholds \u2699\ufe0f\n\nWith succulent, the process of collecting, managing, and preprocessing data becomes a breeze, empowering you to focus on what truly matters\u2014gaining valuable insights from your embedded devices, microcontrollers, and smartwatches. \u231a So why waste precious time? \u23f3 Dive into the world of succulent and unlock the true potential of your data! \ud83d\udcaa\ud83d\udcc8\n\n## \ud83d\udce6 Installation\n\n### pip\n\nTo install `succulent` with pip, use:\n\n```sh\npip install succulent\n```\n\n### Alpine Linux\n\nTo install `succulent` on Alpine Linux, use:\n\n```sh\n$ apk add py3-succulent\n```\n\n### Arch Linux\n\nTo install `succulent` on Arch Linux, use an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers):\n\n```sh\n$ yay -Syyu python-succulent\n```\n\n### Fedora Linux\n\nTo install `succulent` on Fedora, use:\n\n```sh\n$ dnf install python3-succulent\n```\n\n## \ud83d\udc33 Container\nCreate a `docker-compose.yml` file with the following content in the root directory:\n\n```yml\nversion: '3.8'\n\nservices:\n  app:\n    image: codeberg.org/firefly-cpp/succulent:v6\n    ports:\n      - \"8080:8080\"\n    volumes:\n      - ./run.py:/succulent-app/run.py\n      - ./configuration.yml:/succulent-app/configuration.yml\n    environment:\n      - GUNICORN_WORKERS=2\n```\n\nNext create a `configuration.yml` file in the root directory. Here's an example of a configuration file:\n\n```yml\ndata:\n  - name: 'temperature'\n  - name: 'humidity'\n  - name: 'light'\nresults:\n  - enable: true\n  - export: true\ntimestamp: true\n```\n\nMore information regarding the configuration file and its settings can be found in the [configuration](#-configuration) section.\n\nThen create a Python file named `run.py` with the following content in the root directory:\n\n```python\nfrom succulent.api import SucculentAPI\n\napi = SucculentAPI(config='configuration.yml', format='csv')\n\n# Flask app instance, called by gunicorn\napp = api.app\n```\n\nOnce you have set up the configuration file and the Python file, build the Docker image with the following command:\n\n```bash\ndocker compose build\n```\n\nFinally, run the Docker container with the following command:\n\n```bash\ndocker compose up\n```\n\n## \ud83d\ude80 Usage\n\n### Example\n\n```python\nfrom succulent.api import SucculentAPI\napi = SucculentAPI(host='0.0.0.0', port=8080, config='configuration.yml', format='csv')\napi.start()\n```\n\n## \ud83d\udd27 Configuration\n### Data collection\nIn the root directory, create a `configuration.yml` file and define the following:\n```yml\ndata:\n  - name: # Measure name\n    min:  # Minimum value (optional)\n    max:  # Maximum value (optional)\n```\n\nTo collect images, create a `configuration.yml` file in the root directory and define the following:\n```yml\ndata:\n  - key: # Key in POST request\n```\n\nTo store data collection timestamps, define the following setting in the `configuration.yml` file in the root directory:\n```yml\ntimestamp: true # false by default\n```\n\nTo access the URL for data collection, send a GET request (or navigate) to [http://localhost:8080/measure](http://localhost:8080/measure).\n\nTo restrict access to the collected data, define the following setting in the `configuration.yml` file in the root directory:\n```yml\npassword: 'password' # Password for data access\n```\n\nTo store data using a password, append the password parameter to the request URL: `?password=password`.\n\n### Data access\nTo access data via the Succulent API, define the following setting in the `configuration.yml` file in the root directory:\n```yml\nresults:\n  - enable: true # false by default\n```\n\nTo access the collected data, send a GET request (or navigate) to [http://localhost:8080/data](http://localhost:8080/data). To access password-protected data, append the password parameter to the request URL: `?password=password`.\n\n### Data export\nTo export the data, enable the export option in the configuration file:\n```yml\nresults:\n  - export: true # false by default\n```\n\nTo export the data, send a GET request (or navigate) to [http://localhost:8080/export](http://localhost:8080/export). To export password-protected data, append the password parameter to the request URL: `?password=password`. The data will be downloaded in the format specified in the configuration file.\n\n## \ud83d\udcc4 Cite us\nFister Jr., Iztok, and Tadej Lahovnik. Succulent. 0.4.0, doi:[10.5281/zenodo.10402365](https://doi.org/10.5281/zenodo.10402365).\n\n## \ud83d\udd11 License\n\nThis package is distributed under the MIT License. This license can be found online at <http://www.opensource.org/licenses/MIT>.\n\n## Disclaimer\n\nThis framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!\n\n## \ud83e\udec2 Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/lahovniktadej\"><img src=\"https://avatars.githubusercontent.com/u/57890734?v=4?s=100\" width=\"100px;\" alt=\"Tadej Lahovnik\"/><br /><sub><b>Tadej Lahovnik</b></sub></a><br /><a href=\"https://github.com/firefly-cpp/succulent/commits?author=lahovniktadej\" title=\"Code\">\ud83d\udcbb</a> <a href=\"https://github.com/firefly-cpp/succulent/issues?q=author%3Alahovniktadej\" title=\"Bug reports\">\ud83d\udc1b</a> <a href=\"#ideas-lahovniktadej\" title=\"Ideas, Planning, & Feedback\">\ud83e\udd14</a> <a href=\"https://github.com/firefly-cpp/succulent/commits?author=lahovniktadej\" title=\"Documentation\">\ud83d\udcd6</a> <a href=\"#tutorial-lahovniktadej\" title=\"Tutorials\">\u2705</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/AyanDas348\"><img src=\"https://avatars.githubusercontent.com/u/53610626?v=4?s=100\" width=\"100px;\" alt=\"Ayan Das\"/><br /><sub><b>Ayan Das</b></sub></a><br /><a href=\"https://github.com/firefly-cpp/succulent/commits?author=AyanDas348\" title=\"Code\">\ud83d\udcbb</a> <a href=\"https://github.com/firefly-cpp/succulent/commits?author=AyanDas348\" title=\"Tests\">\u26a0\ufe0f</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://www.iztok-jr-fister.eu/\"><img src=\"https://avatars.githubusercontent.com/u/1633361?v=4?s=100\" width=\"100px;\" alt=\"Iztok Fister Jr.\"/><br /><sub><b>Iztok Fister Jr.</b></sub></a><br /><a href=\"https://github.com/firefly-cpp/succulent/commits?author=firefly-cpp\" title=\"Code\">\ud83d\udcbb</a> <a href=\"#ideas-firefly-cpp\" title=\"Ideas, Planning, & Feedback\">\ud83e\udd14</a> <a href=\"#mentoring-firefly-cpp\" title=\"Mentoring\">\ud83e\uddd1\u200d\ud83c\udfeb</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://carlosal1015.github.io\"><img src=\"https://avatars.githubusercontent.com/u/21283014?v=4?s=100\" width=\"100px;\" alt=\"Oromion\"/><br /><sub><b>Oromion</b></sub></a><br /><a href=\"https://github.com/firefly-cpp/succulent/issues?q=author%3Acarlosal1015\" title=\"Bug reports\">\ud83d\udc1b</a> <a href=\"#platform-carlosal1015\" title=\"Packaging/porting to new platform\">\ud83d\udce6</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/rhododendrom\"><img src=\"https://avatars.githubusercontent.com/u/3198785?v=4?s=100\" width=\"100px;\" alt=\"rhododendrom\"/><br /><sub><b>rhododendrom</b></sub></a><br /><a href=\"#design-rhododendrom\" title=\"Design\">\ud83c\udfa8</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/zala-lahovnik\"><img src=\"https://avatars.githubusercontent.com/u/105444201?v=4?s=100\" width=\"100px;\" alt=\"Zala Lahovnik\"/><br /><sub><b>Zala Lahovnik</b></sub></a><br /><a href=\"https://github.com/firefly-cpp/succulent/commits?author=zala-lahovnik\" title=\"Documentation\">\ud83d\udcd6</a></td>\n    </tr>\n  </tbody>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Collect POST requests easily",
    "version": "0.4.1",
    "project_urls": {
        "Documentation": "https://succulent.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/firefly-cpp/succulent",
        "Repository": "https://github.com/firefly-cpp/succulent"
    },
    "split_keywords": [
        "data collection",
        " data science",
        " esp32",
        " sensor measurements",
        " smart agriculture",
        " smartwatch"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0017596148f91b77469ad20f6d25c2b10f0f5303ba97a125dd1e9bd93e4d2616",
                "md5": "3ef9edf3141160b400c08af1e1a9ea94",
                "sha256": "9b7e25095eaf40d694ea557162e1d43f425a98529a38844c3d1d42e04dd47549"
            },
            "downloads": -1,
            "filename": "succulent-0.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3ef9edf3141160b400c08af1e1a9ea94",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 118177,
            "upload_time": "2025-02-05T09:16:05",
            "upload_time_iso_8601": "2025-02-05T09:16:05.040270Z",
            "url": "https://files.pythonhosted.org/packages/00/17/596148f91b77469ad20f6d25c2b10f0f5303ba97a125dd1e9bd93e4d2616/succulent-0.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f7f169b492d373a77cf226f957e1c77c4e0aee72c143a641dba6d2ffefa63dba",
                "md5": "d236cb812d84a649f18247b0f0c868f2",
                "sha256": "c7c89b672a43837f5968ae6c4839b9d39fed0b394105fabf421e1244de53c2b6"
            },
            "downloads": -1,
            "filename": "succulent-0.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d236cb812d84a649f18247b0f0c868f2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 121510,
            "upload_time": "2025-02-05T09:16:07",
            "upload_time_iso_8601": "2025-02-05T09:16:07.037954Z",
            "url": "https://files.pythonhosted.org/packages/f7/f1/69b492d373a77cf226f957e1c77c4e0aee72c143a641dba6d2ffefa63dba/succulent-0.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-05 09:16:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "firefly-cpp",
    "github_project": "succulent",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "succulent"
}
        
Elapsed time: 0.46483s