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",
    timestamp_utc=datetime.now(),
    data={"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.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: matildapeak_scoly_api-1.0.0.tar.gz
  • Upload date:
  • Size: 4.0 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.0.tar.gz
Algorithm Hash digest
SHA256 6d8c05b706e0f1b4124741f6a75acc1718bc486383be9a1eed12d2470831a84c
MD5 a102b6e30a841ece3bb9ddaf7c5a8544
BLAKE2b-256 df707bdcf1cf7ccd8ae13d4ae19aec9ee7574b87daa2045c765cbe751c54b697

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matildapeak_scoly_api-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 411a761591554d3c0a7d06cacf2a93779e6cca270159302f5568301a34c27b7e
MD5 32946a6f2ee4f088f1d9365e0cf5248a
BLAKE2b-256 c04487508cfa99ec2c143960f46165b80bb6b67340423682c7ddd8223d77e39d

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