Skip to content

Commit

Permalink
Merge pull request #73 from Julius2342/githubci
Browse files Browse the repository at this point in the history
Added ci workflow
  • Loading branch information
Julius2342 committed Aug 6, 2021
2 parents e6a033d + bbe0baf commit ff1d13e
Show file tree
Hide file tree
Showing 45 changed files with 202 additions and 130 deletions.
99 changes: 99 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: CI

on:
push:
branches:
- '**' # run on all branches
pull_request:
branches:
- '**' # run on all branches

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip packages
uses: actions/cache@v2
env:
cache-name: cache-pypi-modules
with:
# pip cache files are stored in `~/.cache/pip` on Linux
path: ~/.cache/pip
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('requirements/production.txt', 'requirements/testing.txt') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
- name: Cache pre-commit packages
uses: actions/cache@v2
env:
cache-name: cache-pre-commit
with:
# pre-commit cache files are usually stored in `~/.cache/pre-commit` on Linux
path: ~/.cache/pre-commit
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
- name: Install dependencies
run: |
pip install -r requirements/testing.txt
- name: CI
run: |
tox
- name: Upload coverage artifact
uses: actions/upload-artifact@v2.2.2
with:
name: coverage-${{ matrix.python-version }}
path: .coverage

coverage:
name: Process test coverage
runs-on: ubuntu-latest
needs: ["build"]
strategy:
matrix:
python-version: [3.8]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip packages
uses: actions/cache@v2
env:
cache-name: cache-pypi-modules
with:
# pip cache files are stored in `~/.cache/pip` on Linux
path: ~/.cache/pip
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('requirements/production.txt', 'requirements/testing.txt') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
- name: Cache pre-commit packages
uses: actions/cache@v2
env:
cache-name: cache-pre-commit
with:
# pre-commit cache files are usually stored in `~/.cache/pre-commit` on Linux
path: ~/.cache/pre-commit
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
- name: Install dependencies
run: |
pip install -r requirements/testing.txt
- name: Download all coverage artifacts
uses: actions/download-artifact@v2
- name: Create coverage report
run: |
coverage combine coverage*/.coverage*
coverage report --fail-under=94
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1.3.2
32 changes: 0 additions & 32 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion examples/monitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import asyncio
import logging

from pyvlx import PyVLX, PYVLXLOG
from pyvlx import PYVLXLOG, PyVLX


async def main(loop):
Expand Down
2 changes: 1 addition & 1 deletion pyvlx/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Module for accessing KLF 200 gateway with python."""

from .exception import PyVLXException
from .klf200gateway import Klf200Gateway
from .lightening_device import Light, LighteningDevice
from .log import PYVLXLOG
from .nodes import Nodes
Expand All @@ -15,4 +16,3 @@
from .pyvlx import PyVLX
from .scene import Scene
from .scenes import Scenes
from .klf200gateway import Klf200Gateway
37 changes: 19 additions & 18 deletions pyvlx/api/__init__.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
"""Module for all KLF 200 API frames."""
# flake8: noqa

from .house_status_monitor import (house_status_monitor_enable, house_status_monitor_disable)
from .command_send import (CommandSend)
from .get_local_time import (FrameGetLocalTimeRequest, FrameGetLocalTimeConfirmation)
from .get_state import (GetState)
from .get_network_setup import (GetNetworkSetup)
from .get_protocol_version import (GetProtocolVersion)
from .get_version import (GetVersion)
from .get_local_time import (GetLocalTime)
from .leave_learn_state import (LeaveLearnState)
from .factory_default import (FactoryDefault)
from .password_enter import (PasswordEnter)
from .set_utc import (SetUTC)
from .reboot import (Reboot)
from .activate_scene import (ActivateScene)
from .set_node_name import (SetNodeName)
from .get_all_nodes_information import (GetAllNodesInformation)
from .get_node_information import (GetNodeInformation)
from .get_scene_list import (GetSceneList)
from .activate_scene import ActivateScene
from .command_send import CommandSend
from .factory_default import FactoryDefault
from .get_all_nodes_information import GetAllNodesInformation
from .get_local_time import (
FrameGetLocalTimeConfirmation, FrameGetLocalTimeRequest, GetLocalTime)
from .get_network_setup import GetNetworkSetup
from .get_node_information import GetNodeInformation
from .get_protocol_version import GetProtocolVersion
from .get_scene_list import GetSceneList
from .get_state import GetState
from .get_version import GetVersion
from .house_status_monitor import (
house_status_monitor_disable, house_status_monitor_enable)
from .leave_learn_state import LeaveLearnState
from .password_enter import PasswordEnter
from .reboot import Reboot
from .set_node_name import SetNodeName
from .set_utc import SetUTC
4 changes: 3 additions & 1 deletion pyvlx/api/factory_default.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
"""Module for handling the FactoryDefault to API."""
from pyvlx.log import PYVLXLOG

from .api_event import ApiEvent
from .frames import FrameGatewayFactoryDefaultConfirmation, FrameGatewayFactoryDefaultRequest
from .frames import (
FrameGatewayFactoryDefaultConfirmation, FrameGatewayFactoryDefaultRequest)


class FactoryDefault(ApiEvent):
Expand Down
26 changes: 13 additions & 13 deletions pyvlx/api/frame_creation.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
"""Helper module for creating a frame out of raw data."""
from pyvlx.log import PYVLXLOG
from pyvlx.const import Command
from pyvlx.log import PYVLXLOG

from .frames import (
FrameActivateSceneConfirmation, FrameActivateSceneRequest,
FrameActivationLogUpdatedNotification,
FrameCommandRemainingTimeNotification, FrameCommandRunStatusNotification,
FrameCommandSendConfirmation, FrameCommandSendRequest,
FrameDiscoverNodesConfirmation, FrameDiscoverNodesNotification,
FrameDiscoverNodesRequest, FrameErrorNotification,
FrameGatewayFactoryDefaultConfirmation, FrameGatewayFactoryDefaultRequest,
FrameGatewayRebootConfirmation, FrameGatewayRebootRequest,
FrameGetAllNodesInformationConfirmation,
FrameGetAllNodesInformationFinishedNotification,
FrameGetAllNodesInformationNotification,
FrameGetAllNodesInformationRequest, FrameGetNodeInformationConfirmation,
FrameGetAllNodesInformationRequest, FrameGetLocalTimeConfirmation,
FrameGetLocalTimeRequest, FrameGetNetworkSetupConfirmation,
FrameGetNetworkSetupRequest, FrameGetNodeInformationConfirmation,
FrameGetNodeInformationNotification, FrameGetNodeInformationRequest,
FrameGetProtocolVersionConfirmation, FrameGetProtocolVersionRequest,
FrameGetSceneListConfirmation, FrameGetSceneListNotification,
Expand All @@ -21,18 +25,14 @@
FrameHouseStatusMonitorDisableConfirmation,
FrameHouseStatusMonitorDisableRequest,
FrameHouseStatusMonitorEnableConfirmation,
FrameHouseStatusMonitorEnableRequest,
FrameNodeInformationChangedNotification,
FrameNodeStatePositionChangedNotification,
FrameHouseStatusMonitorEnableRequest, FrameLeaveLearnStateConfirmation,
FrameLeaveLearnStateRequest, FrameNodeInformationChangedNotification,
FrameNodeStatePositionChangedNotification, FramePasswordChangeConfirmation,
FramePasswordChangeNotification, FramePasswordChangeRequest,
FramePasswordEnterConfirmation, FramePasswordEnterRequest,
FramePasswordChangeRequest, FramePasswordChangeConfirmation, FramePasswordChangeNotification,
FrameSessionFinishedNotification,
FrameSetNodeNameConfirmation, FrameSetNodeNameRequest,
FrameGetNetworkSetupConfirmation, FrameGetNetworkSetupRequest,
FrameSetUTCConfirmation, FrameSetUTCRequest, extract_from_frame,
FrameLeaveLearnStateConfirmation, FrameLeaveLearnStateRequest,
FrameGetLocalTimeConfirmation, FrameGetLocalTimeRequest,
FrameGatewayFactoryDefaultConfirmation, FrameGatewayFactoryDefaultRequest)
FrameSessionFinishedNotification, FrameSetNodeNameConfirmation,
FrameSetNodeNameRequest, FrameSetUTCConfirmation, FrameSetUTCRequest,
extract_from_frame)


def frame_from_raw(raw):
Expand Down
29 changes: 15 additions & 14 deletions pyvlx/api/frames/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
"""Module for all KLF 200 API frames."""

from .alias_array import AliasArray
# flake8: noqa
from .frame import FrameBase
from .alias_array import AliasArray
from .frame_activate_scene import (
ActivateSceneConfirmationStatus, FrameActivateSceneConfirmation,
FrameActivateSceneRequest)
Expand All @@ -15,11 +15,18 @@
FrameDiscoverNodesConfirmation, FrameDiscoverNodesNotification,
FrameDiscoverNodesRequest)
from .frame_error_notification import ErrorType, FrameErrorNotification
from .frame_facory_default import (
FrameGatewayFactoryDefaultConfirmation, FrameGatewayFactoryDefaultRequest)
from .frame_get_all_nodes_information import (
FrameGetAllNodesInformationConfirmation,
FrameGetAllNodesInformationFinishedNotification,
FrameGetAllNodesInformationNotification,
FrameGetAllNodesInformationRequest)
from .frame_get_local_time import (
FrameGetLocalTimeConfirmation, FrameGetLocalTimeRequest)
from .frame_get_network_setup import (
DHCPParameter, FrameGetNetworkSetupConfirmation,
FrameGetNetworkSetupRequest)
from .frame_get_node_information import (
FrameGetNodeInformationConfirmation, FrameGetNodeInformationNotification,
FrameGetNodeInformationRequest)
Expand All @@ -31,8 +38,6 @@
from .frame_get_state import (
FrameGetStateConfirmation, FrameGetStateRequest, GatewayState,
GatewaySubState)
from .frame_get_network_setup import (
FrameGetNetworkSetupConfirmation, FrameGetNetworkSetupRequest, DHCPParameter)
from .frame_get_version import (
FrameGetVersionConfirmation, FrameGetVersionRequest)
from .frame_helper import calc_crc, extract_from_frame
Expand All @@ -44,10 +49,16 @@
FrameHouseStatusMonitorEnableConfirmation)
from .frame_house_status_monitor_enable_req import (
FrameHouseStatusMonitorEnableRequest)
from .frame_leave_learn_state import (
FrameLeaveLearnStateConfirmation, FrameLeaveLearnStateRequest,
LeaveLearnStateConfirmationStatus)
from .frame_node_information_changed import (
FrameNodeInformationChangedNotification)
from .frame_node_state_position_changed_notification import (
FrameNodeStatePositionChangedNotification)
from .frame_password_change import (
FramePasswordChangeConfirmation, FramePasswordChangeNotification,
FramePasswordChangeRequest, PasswordChangeConfirmationStatus)
from .frame_password_enter import (
FramePasswordEnterConfirmation, FramePasswordEnterRequest,
PasswordEnterConfirmationStatus)
Expand All @@ -56,14 +67,4 @@
from .frame_set_node_name import (
FrameSetNodeNameConfirmation, FrameSetNodeNameRequest,
SetNodeNameConfirmationStatus)
from .frame_set_utc import (FrameSetUTCConfirmation, FrameSetUTCRequest)
from .frame_leave_learn_state import (
FrameLeaveLearnStateRequest, FrameLeaveLearnStateConfirmation,
LeaveLearnStateConfirmationStatus)
from .frame_get_local_time import (
FrameGetLocalTimeRequest, FrameGetLocalTimeConfirmation)
from .frame_facory_default import (
FrameGatewayFactoryDefaultRequest, FrameGatewayFactoryDefaultConfirmation)
from .frame_password_change import (
FramePasswordChangeRequest, FramePasswordChangeConfirmation,
FramePasswordChangeNotification, PasswordChangeConfirmationStatus)
from .frame_set_utc import FrameSetUTCConfirmation, FrameSetUTCRequest
2 changes: 1 addition & 1 deletion pyvlx/api/frames/frame_get_all_nodes_information.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
from pyvlx.parameter import Parameter
from pyvlx.string_helper import bytes_to_string, string_to_bytes

from .frame import FrameBase
from .alias_array import AliasArray
from .frame import FrameBase


class FrameGetAllNodesInformationRequest(FrameBase):
Expand Down
1 change: 1 addition & 0 deletions pyvlx/api/frames/frame_get_local_time.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Module for get local time classes."""
from pyvlx.const import Command
from pyvlx.dataobjects import DtoLocalTime

from .frame import FrameBase


Expand Down
1 change: 1 addition & 0 deletions pyvlx/api/frames/frame_get_network_setup.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Frames for receiving network setup from gateway."""
from pyvlx.const import Command, DHCPParameter

from .frame import FrameBase


Expand Down
2 changes: 1 addition & 1 deletion pyvlx/api/frames/frame_get_node_information.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
from pyvlx.parameter import Parameter
from pyvlx.string_helper import bytes_to_string, string_to_bytes

from .frame import FrameBase
from .alias_array import AliasArray
from .frame import FrameBase


class FrameGetNodeInformationRequest(FrameBase):
Expand Down
1 change: 1 addition & 0 deletions pyvlx/api/frames/frame_get_state.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Frames for receiving state from gateway."""
from pyvlx.const import Command, GatewayState, GatewaySubState

from .frame import FrameBase


Expand Down
1 change: 1 addition & 0 deletions pyvlx/api/frames/frame_leave_learn_state.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Module for leave learn state frame classes."""
from pyvlx.const import Command, LeaveLearnStateConfirmationStatus

from .frame import FrameBase


Expand Down
2 changes: 2 additions & 0 deletions pyvlx/api/frames/frame_set_utc.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
"""Module for sending command to gw."""
import struct
from datetime import datetime

from pyvlx.const import Command

from .frame import FrameBase


Expand Down
1 change: 1 addition & 0 deletions pyvlx/api/get_all_nodes_information.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Module for retrieving node information from API."""
from pyvlx.log import PYVLXLOG

from .api_event import ApiEvent
from .frames import (
FrameGetAllNodesInformationConfirmation,
Expand Down
Loading

0 comments on commit ff1d13e

Please sign in to comment.