Skip to content

Commit

Permalink
Reorganize all integrations to vendor-specific dirs (#1697)
Browse files Browse the repository at this point in the history
This will move all integrations to their own separate directories named
after the vendor name (which is mostly the same as in the model string).
  • Loading branch information
rytilahti committed Jan 27, 2023
1 parent d6b5fe8 commit aeadb4c
Show file tree
Hide file tree
Showing 220 changed files with 279 additions and 241 deletions.
4 changes: 2 additions & 2 deletions docs/device_docs/vacuum.rst
Original file line number Diff line number Diff line change
Expand Up @@ -306,8 +306,8 @@ so it is also possible to pass dicts.
`mirobo --help`
~~~~~~~~~~~~~~~

.. click:: miio.integrations.vacuum.roborock.vacuum_cli:cli
.. click:: miio.integrations.roborock.vacuum.vacuum_cli:cli
:prog: mirobo
:show-nested:

:py:class:`API <miio.vacuum>`
:py:class:`API <miio.integrations.roborocok.vacuum>`
2 changes: 1 addition & 1 deletion docs/device_docs/yeelight.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,4 @@ Status reporting
or an issue, if you do not want to implement it on your own!


:py:class:`API <miio.yeelight>`
:py:class:`API <miio.integrations.yeelight.light>`
6 changes: 3 additions & 3 deletions docs/simulator.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Usage

You start the simulator like this::

miiocli devtools miio-simulator --file miio/integrations/fan/zhimi/zhimi_fan.yaml
miiocli devtools miio-simulator --file miio/integrations/zhimi/fan/zhimi_fan.yaml

The mandatory ``--file`` option takes a path to :ref:`a device description file <miio_device_descriptions>` file
that defines information about the device to be simulated.
Expand Down Expand Up @@ -180,7 +180,7 @@ Example Description File
The following description file shows a complete,
concrete example for a device using ``get_prop`` for accessing the properties (``zhimi_fan.yaml``):

.. literalinclude:: ../miio/integrations/fan/zhimi/zhimi_fan.yaml
.. literalinclude:: ../miio/integrations/zhimi/fan/zhimi_fan.yaml
:language: yaml

.. _example_desc_methods:
Expand All @@ -191,7 +191,7 @@ Example Description File Using Methods
The following description file (``simulated_roborock.yaml``) shows a complete,
concrete example for a device using custom method names for obtaining the status.

.. literalinclude:: ../miio/integrations/vacuum/roborock/simulated_roborock.yaml
.. literalinclude:: ../miio/integrations/roborock/vacuum/simulated_roborock.yaml
:language: yaml


Expand Down
114 changes: 49 additions & 65 deletions miio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,84 +16,68 @@

# isort: on

# Integration imports
from miio.airconditioner_miot import AirConditionerMiot
from miio.airconditioningcompanion import (
AirConditioningCompanion,
AirConditioningCompanionV3,
)
from miio.airconditioningcompanionMCN import AirConditioningCompanionMcn02
from miio.airdehumidifier import AirDehumidifier
from miio.airqualitymonitor import AirQualityMonitor
from miio.airqualitymonitor_miot import AirQualityMonitorCGDN1
from miio.aqaracamera import AqaraCamera
from miio.chuangmi_camera import ChuangmiCamera
from miio.chuangmi_ir import ChuangmiIr
from miio.chuangmi_plug import ChuangmiPlug
from miio.cloud import CloudInterface
from miio.cooker import Cooker
from miio.curtain_youpin import CurtainMiot
from miio.devicefactory import DeviceFactory
from miio.gateway import Gateway
from miio.heater import Heater
from miio.heater_miot import HeaterMiot
from miio.huizuo import Huizuo, HuizuoLampFan, HuizuoLampHeater, HuizuoLampScene
from miio.integrations.airpurifier import (
AirDogX3,
AirFresh,
AirFreshA1,
AirFreshT2017,
AirPurifier,
AirPurifierMiot,
)
from miio.integrations.fan import Fan, Fan1C, FanLeshow, FanMiot, FanP5, FanZA5
from miio.integrations.airdog.airpurifier import AirDogX3
from miio.integrations.cgllc.airmonitor import AirQualityMonitor, AirQualityMonitorCGDN1
from miio.integrations.chuangmi.camera import ChuangmiCamera
from miio.integrations.chuangmi.plug import ChuangmiPlug
from miio.integrations.chuangmi.remote import ChuangmiIr
from miio.integrations.chunmi.cooker import Cooker
from miio.integrations.deerma.humidifier import AirHumidifierJsqs, AirHumidifierMjjsq
from miio.integrations.dmaker.airfresh import AirFreshA1, AirFreshT2017
from miio.integrations.dmaker.fan import Fan1C, FanMiot, FanP5
from miio.integrations.dreame.vacuum import DreameVacuum
from miio.integrations.genericmiot import GenericMiot
from miio.integrations.humidifier import (
AirHumidifier,
AirHumidifierJsq,
AirHumidifierJsqs,
AirHumidifierMiot,
AirHumidifierMjjsq,
from miio.integrations.huayi.light import (
Huizuo,
HuizuoLampFan,
HuizuoLampHeater,
HuizuoLampScene,
)
from miio.integrations.light import (
from miio.integrations.ijai.vacuum import Pro2Vacuum
from miio.integrations.ksmb.walkingpad import Walkingpad
from miio.integrations.leshow.fan import FanLeshow
from miio.integrations.lumi.acpartner import (
AirConditioningCompanion,
AirConditioningCompanionMcn02,
AirConditioningCompanionV3,
)
from miio.integrations.lumi.camera.aqaracamera import AqaraCamera
from miio.integrations.lumi.curtain import CurtainMiot
from miio.integrations.lumi.gateway import Gateway
from miio.integrations.mijia.vacuum import G1Vacuum
from miio.integrations.mmgg.petwaterdispenser import PetWaterDispenser
from miio.integrations.nwt.dehumidifier import AirDehumidifier
from miio.integrations.philips.light import (
Ceil,
PhilipsBulb,
PhilipsEyecare,
PhilipsMoonlight,
PhilipsRwread,
PhilipsWhiteBulb,
Yeelight,
)
from miio.integrations.petwaterdispenser import PetWaterDispenser
from miio.integrations.vacuum import (
DreameVacuum,
G1Vacuum,
Pro2Vacuum,
RoborockVacuum,
RoidmiVacuumMiot,
ViomiVacuum,
)
from miio.integrations.vacuum.roborock.vacuumcontainers import (
CleaningDetails,
CleaningSummary,
ConsumableStatus,
DNDStatus,
Timer,
VacuumStatus,
)
from miio.integrations.viomidishwasher import ViomiDishwasher
from miio.powerstrip import PowerStrip
from miio.integrations.pwzn.relay import PwznRelay
from miio.integrations.roborock.vacuum import RoborockVacuum
from miio.integrations.roidmi.vacuum import RoidmiVacuumMiot
from miio.integrations.scishare.coffee import ScishareCoffee
from miio.integrations.shuii.humidifier import AirHumidifierJsq
from miio.integrations.tinymu.toiletlid import Toiletlid
from miio.integrations.viomi.viomi import ViomiVacuum
from miio.integrations.viomi.viomidishwasher import ViomiDishwasher
from miio.integrations.xiaomi.aircondition.airconditioner_miot import AirConditionerMiot
from miio.integrations.xiaomi.repeater.wifirepeater import WifiRepeater
from miio.integrations.xiaomi.wifispeaker.wifispeaker import WifiSpeaker
from miio.integrations.yeelight.dual_switch import YeelightDualControlModule
from miio.integrations.yeelight.light import Yeelight
from miio.integrations.yunmi.waterpurifier import WaterPurifier, WaterPurifierYunmi
from miio.integrations.zhimi.airpurifier import AirFresh, AirPurifier, AirPurifierMiot
from miio.integrations.zhimi.fan import Fan, FanZA5
from miio.integrations.zhimi.heater import Heater, HeaterMiot
from miio.integrations.zhimi.humidifier import AirHumidifier, AirHumidifierMiot
from miio.integrations.zimi.powerstrip import PowerStrip
from miio.protocol import Message, Utils
from miio.push_server import EventInfo, PushServer
from miio.pwzn_relay import PwznRelay
from miio.scishare_coffeemaker import ScishareCoffee
from miio.toiletlid import Toiletlid
from miio.walkingpad import Walkingpad
from miio.waterpurifier import WaterPurifier
from miio.waterpurifier_yunmi import WaterPurifierYunmi
from miio.wifirepeater import WifiRepeater
from miio.wifispeaker import WifiSpeaker
from miio.yeelight_dual_switch import YeelightDualControlModule

from miio.discovery import Discovery

Expand Down
File renamed without changes.
4 changes: 0 additions & 4 deletions miio/integrations/airpurifier/__init__.py

This file was deleted.

File renamed without changes.
4 changes: 4 additions & 0 deletions miio/integrations/cgllc/airmonitor/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .airqualitymonitor import AirQualityMonitor
from .airqualitymonitor_miot import AirQualityMonitorCGDN1

__all__ = ["AirQualityMonitor", "AirQualityMonitorCGDN1"]
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@

import click

from .click_common import command, format_output
from .device import Device, DeviceStatus
from miio.click_common import command, format_output
from miio.device import Device, DeviceStatus

_LOGGER = logging.getLogger(__name__)

# TODO: move zhimi into its own place
MODEL_AIRQUALITYMONITOR_V1 = "zhimi.airmonitor.v1"
MODEL_AIRQUALITYMONITOR_B1 = "cgllc.airmonitor.b1"
MODEL_AIRQUALITYMONITOR_S1 = "cgllc.airmonitor.s1"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

import click

from .click_common import command, format_output
from .miot_device import DeviceStatus, MiotDevice
from miio.click_common import command, format_output
from miio.miot_device import DeviceStatus, MiotDevice

_LOGGER = logging.getLogger(__name__)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

import pytest

from miio import AirQualityMonitor
from miio.airqualitymonitor import (
from miio.tests.dummies import DummyDevice

from .airqualitymonitor import (
MODEL_AIRQUALITYMONITOR_B1,
MODEL_AIRQUALITYMONITOR_S1,
MODEL_AIRQUALITYMONITOR_V1,
AirQualityMonitor,
AirQualityMonitorStatus,
)

from .dummies import DummyDevice


class DummyAirQualityMonitorV1(DummyDevice, AirQualityMonitor):
def __init__(self, *args, **kwargs):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

import pytest

from miio import AirQualityMonitorCGDN1
from miio.airqualitymonitor_miot import ChargingState, DisplayTemperatureUnitCGDN1
from miio.tests.dummies import DummyMiotDevice

from .dummies import DummyMiotDevice
from .airqualitymonitor_miot import (
AirQualityMonitorCGDN1,
ChargingState,
DisplayTemperatureUnitCGDN1,
)

_INITIAL_STATE = {
"humidity": 34,
Expand Down
File renamed without changes.
3 changes: 3 additions & 0 deletions miio/integrations/chuangmi/camera/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .chuangmi_camera import ChuangmiCamera

__all__ = ["ChuangmiCamera"]
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

import click

from .click_common import EnumType, command, format_output
from .device import Device, DeviceStatus
from miio.click_common import EnumType, command, format_output
from miio.device import Device, DeviceStatus

_LOGGER = logging.getLogger(__name__)

Expand Down
3 changes: 3 additions & 0 deletions miio/integrations/chuangmi/plug/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .chuangmi_plug import ChuangmiPlug

__all__ = ["ChuangmiPlug"]
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@

import click

from .click_common import command, format_output
from .device import Device, DeviceStatus
from .exceptions import DeviceException
from .utils import deprecated
from miio import Device, DeviceException, DeviceStatus
from miio.click_common import command, format_output
from miio.utils import deprecated

_LOGGER = logging.getLogger(__name__)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

import pytest

from miio import ChuangmiPlug
from miio.chuangmi_plug import (
from miio.tests.dummies import DummyDevice

from .chuangmi_plug import (
MODEL_CHUANGMI_PLUG_M1,
MODEL_CHUANGMI_PLUG_V1,
MODEL_CHUANGMI_PLUG_V3,
ChuangmiPlug,
ChuangmiPlugStatus,
)

from .dummies import DummyDevice


class DummyChuangmiPlugV1(DummyDevice, ChuangmiPlug):
def __init__(self, *args, **kwargs):
Expand Down
3 changes: 3 additions & 0 deletions miio/integrations/chuangmi/remote/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .chuangmi_ir import ChuangmiIr

__all__ = ["ChuangmiIr"]
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
this,
)

from .click_common import command, format_output
from .device import Device
from miio.click_common import command, format_output
from miio.device import Device


class ChuangmiIr(Device):
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

import pytest

from miio import ChuangmiIr
from miio.tests.dummies import DummyDevice

from .dummies import DummyDevice
from .chuangmi_ir import ChuangmiIr

with open(os.path.join(os.path.dirname(__file__), "test_chuangmi_ir.json")) as inp:
test_data = json.load(inp)
Expand Down
File renamed without changes.
3 changes: 3 additions & 0 deletions miio/integrations/chunmi/cooker/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .cooker import Cooker

__all__ = ["Cooker"]
4 changes: 2 additions & 2 deletions miio/cooker.py → miio/integrations/chunmi/cooker/cooker.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

import click

from .click_common import command, format_output
from .device import Device, DeviceStatus
from miio.click_common import command, format_output
from miio.device import Device, DeviceStatus

_LOGGER = logging.getLogger(__name__)

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 0 additions & 4 deletions miio/integrations/fan/__init__.py

This file was deleted.

File renamed without changes.
3 changes: 3 additions & 0 deletions miio/integrations/huayi/light/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .huizuo import Huizuo, HuizuoLampFan, HuizuoLampHeater, HuizuoLampScene

__all__ = ["Huizuo", "HuizuoLampFan", "HuizuoLampHeater", "HuizuoLampScene"]
5 changes: 2 additions & 3 deletions miio/huizuo.py → miio/integrations/huayi/light/huizuo.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@

import click

from .click_common import command, format_output
from .exceptions import UnsupportedFeatureException
from .miot_device import DeviceStatus, MiotDevice
from miio import DeviceStatus, MiotDevice, UnsupportedFeatureException
from miio.click_common import command, format_output

_LOGGER = logging.getLogger(__name__)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

import pytest

from miio import Huizuo, HuizuoLampFan, HuizuoLampHeater, UnsupportedFeatureException
from miio.huizuo import MODEL_HUIZUO_FANWY # Fan model extended
from miio.huizuo import MODEL_HUIZUO_FANWY2 # Fan model basic
from miio.huizuo import MODEL_HUIZUO_PIS123 # Basic model
from miio.huizuo import MODEL_HUIZUO_WYHEAT # Heater model
from miio.tests.dummies import DummyMiotDevice

from .dummies import DummyMiotDevice
from .huizuo import MODEL_HUIZUO_FANWY # Fan model extended
from .huizuo import MODEL_HUIZUO_FANWY2 # Fan model basic
from .huizuo import MODEL_HUIZUO_PIS123 # Basic model
from .huizuo import MODEL_HUIZUO_WYHEAT # Heater model
from .huizuo import Huizuo, HuizuoLampFan, HuizuoLampHeater, UnsupportedFeatureException

_INITIAL_STATE = {
"power": True,
Expand Down
4 changes: 0 additions & 4 deletions miio/integrations/humidifier/__init__.py

This file was deleted.

File renamed without changes.
3 changes: 3 additions & 0 deletions miio/integrations/ijai/vacuum/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .pro2vacuum import Pro2Vacuum

__all__ = ["Pro2Vacuum"]
File renamed without changes.

0 comments on commit aeadb4c

Please sign in to comment.