Small fixes, Add checks
This commit is contained in:
		
							
								
								
									
										39
									
								
								.github/workflows/python-check.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								.github/workflows/python-check.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					name: Python check
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches: [ "main", "refactor" ]
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    branches: [ "main" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    strategy:
 | 
				
			||||||
 | 
					      fail-fast: false
 | 
				
			||||||
 | 
					      matrix:
 | 
				
			||||||
 | 
					        python-version: ["3.10", "3.11"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v3
 | 
				
			||||||
 | 
					    - name: Set up Python ${{ matrix.python-version }}
 | 
				
			||||||
 | 
					      uses: actions/setup-python@v3
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        python-version: ${{ matrix.python-version }}
 | 
				
			||||||
 | 
					    - name: Install dependencies
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        python -m pip install --upgrade pip
 | 
				
			||||||
 | 
					        python -m pip install -r requirements.txt
 | 
				
			||||||
 | 
					        python -m pip install flake8 pylint black
 | 
				
			||||||
 | 
					    - name: Lint with flake8
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        # stop the build if there are Python syntax errors or undefined names
 | 
				
			||||||
 | 
					        flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
 | 
				
			||||||
 | 
					        flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics
 | 
				
			||||||
 | 
					    # - name: Analysing the code with pylint
 | 
				
			||||||
 | 
					    #   run: |
 | 
				
			||||||
 | 
					    #     pylint --max-line-length 88 $(git ls-files '*.py')
 | 
				
			||||||
 | 
					    - name: Check black style
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        black . --check
 | 
				
			||||||
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
								
							@@ -47,28 +47,28 @@ settings:
 | 
				
			|||||||
### List devices
 | 
					### List devices
 | 
				
			||||||
```python
 | 
					```python
 | 
				
			||||||
import asyncio
 | 
					import asyncio
 | 
				
			||||||
from pyhon import HonConnection
 | 
					from pyhon import Hon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async def devices_example():
 | 
					async def devices_example():
 | 
				
			||||||
    async with HonConnection(USER, PASSWORD) as hon:
 | 
					    async with Hon(USER, PASSWORD) as hon:
 | 
				
			||||||
        for device in hon.devices:
 | 
					        for appliance in hon.appliances:
 | 
				
			||||||
            print(device.nick_name)
 | 
					            print(appliance.nick_name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
asyncio.run(devices_example())
 | 
					asyncio.run(devices_example())
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Execute a command
 | 
					### Execute a command
 | 
				
			||||||
```python
 | 
					```python
 | 
				
			||||||
async with HonConnection(USER, PASSWORD) as hon:
 | 
					async with Hon(USER, PASSWORD) as hon:
 | 
				
			||||||
    washing_machine = hon.devices[0]
 | 
					    washing_machine = hon.appliances[0]
 | 
				
			||||||
    pause_command = washing_machine.commands["pauseProgram"]
 | 
					    pause_command = washing_machine.commands["pauseProgram"]
 | 
				
			||||||
    await pause_command.send()
 | 
					    await pause_command.send()
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Set command parameter
 | 
					### Set command parameter
 | 
				
			||||||
```python
 | 
					```python
 | 
				
			||||||
async with HonConnection(USER, PASSWORD) as hon:
 | 
					async with Hon(USER, PASSWORD) as hon:
 | 
				
			||||||
    washing_machine = hon.devices[0]
 | 
					    washing_machine = hon.appliances[0]
 | 
				
			||||||
    start_command = washing_machine.commands["startProgram"]
 | 
					    start_command = washing_machine.commands["startProgram"]
 | 
				
			||||||
    for name, setting in start_command.settings:
 | 
					    for name, setting in start_command.settings:
 | 
				
			||||||
        print("Setting", name)
 | 
					        print("Setting", name)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,2 +1,4 @@
 | 
				
			|||||||
from .connection.api import HonAPI
 | 
					from .connection.api import HonAPI
 | 
				
			||||||
from hon import Hon
 | 
					from .hon import Hon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__all__ = ["Hon", "HonAPI"]
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								pyhon/__main__.py
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										1
									
								
								pyhon/__main__.py
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							@@ -6,7 +6,6 @@ import logging
 | 
				
			|||||||
import sys
 | 
					import sys
 | 
				
			||||||
from getpass import getpass
 | 
					from getpass import getpass
 | 
				
			||||||
from pathlib import Path
 | 
					from pathlib import Path
 | 
				
			||||||
from pprint import pprint
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == "__main__":
 | 
					if __name__ == "__main__":
 | 
				
			||||||
    sys.path.insert(0, str(Path(__file__).parent.parent))
 | 
					    sys.path.insert(0, str(Path(__file__).parent.parent))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,12 +10,13 @@ _LOGGER = logging.getLogger()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HonAPI:
 | 
					class HonAPI:
 | 
				
			||||||
    def __init__(self, email="", password="") -> None:
 | 
					    def __init__(self, email="", password="", anonymous=False) -> None:
 | 
				
			||||||
        super().__init__()
 | 
					        super().__init__()
 | 
				
			||||||
        self._email = email
 | 
					        self._email = email
 | 
				
			||||||
        self._password = password
 | 
					        self._password = password
 | 
				
			||||||
 | 
					        self._anonymous = anonymous
 | 
				
			||||||
        self._hon = None
 | 
					        self._hon = None
 | 
				
			||||||
        self._hon_anonymous = HonAnonymousConnectionHandler()
 | 
					        self._hon_anonymous = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def __aenter__(self):
 | 
					    async def __aenter__(self):
 | 
				
			||||||
        return await self.create()
 | 
					        return await self.create()
 | 
				
			||||||
@@ -24,7 +25,9 @@ class HonAPI:
 | 
				
			|||||||
        await self._hon.close()
 | 
					        await self._hon.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def create(self):
 | 
					    async def create(self):
 | 
				
			||||||
        self._hon = await HonConnectionHandler(self._email, self._password).create()
 | 
					        self._hon_anonymous = HonAnonymousConnectionHandler()
 | 
				
			||||||
 | 
					        if not self._anonymous:
 | 
				
			||||||
 | 
					            self._hon = await HonConnectionHandler(self._email, self._password).create()
 | 
				
			||||||
        return self
 | 
					        return self
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def load_appliances(self):
 | 
					    async def load_appliances(self):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,11 +27,11 @@ class HonBaseConnectionHandler:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @asynccontextmanager
 | 
					    @asynccontextmanager
 | 
				
			||||||
    async def get(self, *args, **kwargs):
 | 
					    async def get(self, *args, **kwargs):
 | 
				
			||||||
        raise NotImplemented
 | 
					        raise NotImplementedError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @asynccontextmanager
 | 
					    @asynccontextmanager
 | 
				
			||||||
    async def post(self, *args, **kwargs):
 | 
					    async def post(self, *args, **kwargs):
 | 
				
			||||||
        raise NotImplemented
 | 
					        raise NotImplementedError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async def close(self):
 | 
					    async def close(self):
 | 
				
			||||||
        await self._session.close()
 | 
					        await self._session.close()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user