python-miio icon indicating copy to clipboard operation
python-miio copied to clipboard

many bug in python-miio(list will be update)

Open CyberMan571 opened this issue 8 months ago • 2 comments

        def wrap(self, ctx, func):
            gco = ctx.find_object(GlobalContextObject)
            if gco is not None and gco.output is not None:
                output_decorator = gco.output
            elif self.default_output:
                output_decorator = self.default_output
            else:
                output_decorator = format_output(f"Running command {self.command_name}")

            # Remove skip_autodetect before constructing the click.command
            self.kwargs.pop("skip_autodetect", None)

       
            for decorator in self.decorators:
                func = decorator(func)
                func = output_decorator(func)
            return click.command(self.command_name, **self.kwargs)(func)

click_common.py içindeki satırı bu şekilde değiştirince

Command.__init__() got an unexpected keyword argument 'default_output'
bu sorunu çözüldü

"The following issue was resolved by changing default_output=default_output to default_output=format_output: Command.init() got an unexpected keyword argument 'default_output'."

CyberMan571 avatar May 15 '25 08:05 CyberMan571

[tool.poetry.group.dev.dependencies]
pytest = ">=6.2.5"
pytest-cov = "*"
pytest-mock = "*"
pytest-asyncio = "*"
pre-commit = "*"
doc8 = "*"
restructuredtext_lint = "*"
tox = "*"
isort = "*"
cffi = "*"
docformatter = "*"
mypy = {version = "*", markers = "platform_python_implementation == 'CPython'"}
coverage = {extras = ["toml"], version = "*"}

[tool.poetry.dev-dependencies] -> [tool.poetry.group.dev.dependencies] şeklinde değiştirildi.

python yeni sürümlerde desteklemeyeceğini söyledi.

CyberMan571 avatar May 15 '25 09:05 CyberMan571

miot_device.py

from enum import Enum, member

# partial is required here for str2bool, see https://stackoverflow.com/a/40339397
class MiotValueType(Enum):
    def _str2bool(x):
        """Helper to convert string to boolean."""
        return x.lower() in ("true", "1")

    Int = int
    Float = float
    Bool = member(partial(_str2bool))
    Str = str

/home/kali/my-venv/lib/python3.13/site-packages/miio/miot_device.py:23: FutureWarning: functools.partial will be a method descriptor in future Python versions; wrap it in enum.member() if you want to preserve the old behavior Bool = partial(_str2bool) 

bu hata duzeltildi 
def cast_miot_value(value_str: str, value_type_name: str):
    """
    Bir dize değeri (string) belirtilen MiotValueType'a dönüştürür (cast eder).
    """
    try:
        miot_type_member = MiotValueType[value_type_name]
        casting_func = miot_type_member.value
        return casting_func(value_str)
    except KeyError:
        raise ValueError(f"Geçersiz MiotValueType adı: {value_type_name}")
    except (ValueError, TypeError) as e:
         raise TypeError(f"'{value_str}' değerini '{value_type_name}' tipine dönüştürülemiyor: {e}")

bunu da ekleyebilirsin.

CyberMan571 avatar May 15 '25 09:05 CyberMan571