Skip to main content

The Scoly API Package

Project description

Scoly API

Latest Release

pipeline status coverage report

pre-commit Conventional Commits Code style: black Packaged with Poetry

A Python 3 API package for the Scoly framework.

Usage

Create a ScolyAPI instance for each Location you're dealing with: -

from scoly_api.client import Scoly
from datetime import datetime
client = Scoly(
    scoly_url="127.0.0.1:8000",
    location="Red Dwarf",
    location_api_access_code="033589a1-c17d-45e0-bbaa-a5122300c9f3",
)

And then add sensor events, which will be transmitted to Scoly when the cache is full: -

client.add_sensor_data(
    sensor="Rimmer",
    data={"timestamp": "2023-05-30T00:00:00Z",
          "battery": 67,
          "presence": False,
          "celsius": 23.4,
          "lux": 45.6}
)

By default the cache will be flushed when it contains 50 events or if the cache contents are older than 6 minutes. You can set your own values when you initialise the ScolyAPI instance with some extra parameters. To set a cache size of 10 and maximum age of 2 minutes initialise the ScolyAPI instance like this: -

client = Scoly(
    [...],
    sensor_event_cache_size = 10,
    sensor_event_cache_period = 120,
)

If either value is zero sensor data will be transmitted on each call to add_sensor_data().

There is no background task. After 6 minutes events will not be transmitted, instead they will b e transmitted on the next call to add_sensor_data(). Alternatively, you can also flush cached data immediately by calling flush(): -

client.flush()

Building

The project is managed by Poetry, so you can build and install the project forcing version 1.0.0 with: -

rm -rf dist
poetry version 1.0.0
poetry build

And then install locally with pip: -

pip install dist/*.whl

When you're done you can uninstall the API package with pip: -

pip uninstall -y matildapeak_scoly_api

Contributing

The project uses: -

  • Poetry for dependency management and packaging
  • Pre-commit to enforce linting of files prior to committing them to the upstream repository
  • Conventional Commits commit message format
  • Black as a code formatter

You MUST comply with these choices in order to contribute to the project.

To get started review the pre-commit utility and the conventional commit style and then set-up your local clone by following the Installation and Quick Start sections: -

poetry shell
poetry install --with dev
pre-commit install -t commit-msg -t pre-commit

Now the project's rules will run on every commit, and you can check the current health of your clone with: -

pre-commit run --all-files

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matildapeak_scoly_api-1.0.1.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

matildapeak_scoly_api-1.0.1-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file matildapeak_scoly_api-1.0.1.tar.gz.

File metadata

  • Download URL: matildapeak_scoly_api-1.0.1.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Linux/5.4.109+

File hashes

Hashes for matildapeak_scoly_api-1.0.1.tar.gz
Algorithm Hash digest
SHA256 003622a26b3f4fd559b740c0952abcf0b380f8803a6e68b933b866fc8f366f72
MD5 e2b0560f927433841875c81b55a92014
BLAKE2b-256 9d98abd535b469b3cb571a6d8e759c11102088073b4298f2588cd2aa7085e60d

See more details on using hashes here.

File details

Details for the file matildapeak_scoly_api-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for matildapeak_scoly_api-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f7ca846e3bc073a04f9001b4603cdd9698d4e398d01db7d524aafe1e2d5d4e0
MD5 36acb8bfc3ba41efcbf487207b9133a8
BLAKE2b-256 08ed9d0178a1c3ffd58ac63a6d51ef99ca653a87d5678f68005918172436f5c0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page