diff --git a/README.md b/README.md index 6a3d123..8636fb3 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,18 @@ ## [ES] Cliente Python (NO OFICIAL) para i-DE (Iberdrola distribución). ### Instalación: +#### Requests support: + ``` -pip install oligo +pip install oligo[requests] ``` + #### Async support: ``` pip install oligo[asyncio] ``` + ### Ejemplos: #### Consultar consumo actual (Sync): diff --git a/demo/arduino_watthourmeter.py b/demo/arduino_watthourmeter.py index b0a0e63..c87e0b9 100644 --- a/demo/arduino_watthourmeter.py +++ b/demo/arduino_watthourmeter.py @@ -1,12 +1,12 @@ import PyCmdMessenger import time -from oligo import iber +from oligo import Iber arduino = PyCmdMessenger.ArduinoBoard("/dev/ttyACM0", baud_rate=9600) commands = [["watt", "d"]] c = PyCmdMessenger.CmdMessenger(arduino, commands) -connection = iber.Iber() +connection = Iber() connection.login("user", "password") while True: diff --git a/oligo/__init__.py b/oligo/__init__.py index 9c04639..afd128c 100644 --- a/oligo/__init__.py +++ b/oligo/__init__.py @@ -1 +1,6 @@ -from .iber import Iber +from sys import stderr + +try: + from .requests.iber import Iber +except ImportError as error: + print(error.message, file=stderr) diff --git a/oligo/asyncio/asynciber.py b/oligo/asyncio/asynciber.py index ecd2d7c..db14a78 100644 --- a/oligo/asyncio/asynciber.py +++ b/oligo/asyncio/asynciber.py @@ -1,10 +1,10 @@ -from oligo.exception import SessionException, ResponseException, NoResponseException, LoginException, \ +from ..exception import SessionException, ResponseException, NoResponseException, LoginException, \ SelectContractException try: import aiohttp except ImportError: - raise RuntimeError("AsyncIber requires aiohttp") + raise RuntimeError("AsyncIber requires aiohttp module") from datetime import datetime from typing import Union, Optional diff --git a/oligo/requests/__init__.py b/oligo/requests/__init__.py new file mode 100644 index 0000000..9c04639 --- /dev/null +++ b/oligo/requests/__init__.py @@ -0,0 +1 @@ +from .iber import Iber diff --git a/oligo/iber.py b/oligo/requests/iber.py similarity index 97% rename from oligo/iber.py rename to oligo/requests/iber.py index ba6e9c0..46234ba 100644 --- a/oligo/iber.py +++ b/oligo/requests/iber.py @@ -1,8 +1,12 @@ from datetime import datetime -from requests import Session +try: + from requests import Session +except ImportError: + raise RuntimeError("Iber requires requests module") -from .exception import LoginException, ResponseException, NoResponseException, SelectContractException, SessionException +from ..exception import LoginException, ResponseException, NoResponseException, SelectContractException, \ + SessionException class Iber: diff --git a/setup.py b/setup.py index 131df5d..96d90e6 100644 --- a/setup.py +++ b/setup.py @@ -14,10 +14,9 @@ long_description_content_type="text/markdown", url="https://github.com/hectorespert/python-oligo", packages=find_packages(), - install_requires=[ - 'requests' - ], + install_requires=[], extras_require={ + 'requests': ['requests'], 'asyncio': ['aiohttp'] }, classifiers=[