modulitiz-micro 2.38.1__py311-none-any.whl → 2.40.0__py311-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- modulitiz_micro/ModuleEnum.py +8 -0
- modulitiz_micro/ModuloFunzioni.py +1 -0
- modulitiz_micro/ModuloMeteo.py +1 -1
- modulitiz_micro/ModuloNumeri.py +2 -5
- modulitiz_micro/iot/ModuleIotDevice.py +62 -0
- modulitiz_micro/iot/beans/IotDeviceBean.py +13 -0
- modulitiz_micro/iot/enums/IotOSEnum.py +12 -0
- modulitiz_micro/iot/espurna/ModuleEspurna.py +3 -0
- modulitiz_micro/rete/http/ModuloHttp.py +1 -0
- {modulitiz_micro-2.38.1.dist-info → modulitiz_micro-2.40.0.dist-info}/METADATA +1 -1
- {modulitiz_micro-2.38.1.dist-info → modulitiz_micro-2.40.0.dist-info}/RECORD +14 -9
- {modulitiz_micro-2.38.1.dist-info → modulitiz_micro-2.40.0.dist-info}/LICENSE +0 -0
- {modulitiz_micro-2.38.1.dist-info → modulitiz_micro-2.40.0.dist-info}/WHEEL +0 -0
- {modulitiz_micro-2.38.1.dist-info → modulitiz_micro-2.40.0.dist-info}/top_level.txt +0 -0
@@ -38,6 +38,7 @@ class ModuloFunzioni(object):
|
|
38
38
|
def getClassesFromFileSource(filename:str)->list[str]:
|
39
39
|
"""
|
40
40
|
Reads content of file, then finds all classes in it.
|
41
|
+
Also counts inner classes.
|
41
42
|
"""
|
42
43
|
module=ast.parse(ModuloFiles.readFileText(filename,True))
|
43
44
|
classes=[node.name for node in ast.walk(module) if isinstance(node,ast.ClassDef)]
|
modulitiz_micro/ModuloMeteo.py
CHANGED
@@ -3,7 +3,7 @@ import json
|
|
3
3
|
from modulitiz_micro.ModuloDate import ModuloDate
|
4
4
|
from modulitiz_micro.ModuloListe import ModuloListe
|
5
5
|
from modulitiz_micro.eccezioni.http.EccezioneHttpGeneric import EccezioneHttpGeneric
|
6
|
-
from modulitiz_micro.files import ModuloLogging
|
6
|
+
from modulitiz_micro.files.ModuloLogging import ModuloLogging
|
7
7
|
from modulitiz_micro.rete.http.ModuloHttp import ModuloHttp
|
8
8
|
from modulitiz_micro.rete.http.ModuloHttpUtils import ModuloHttpUtils
|
9
9
|
|
modulitiz_micro/ModuloNumeri.py
CHANGED
@@ -52,8 +52,7 @@ class ModuloNumeri(object):
|
|
52
52
|
Converte una stringa in numero intero.
|
53
53
|
"""
|
54
54
|
try:
|
55
|
-
|
56
|
-
return ris
|
55
|
+
return int(valore)
|
57
56
|
except ValueError:
|
58
57
|
return None
|
59
58
|
|
@@ -62,9 +61,7 @@ class ModuloNumeri(object):
|
|
62
61
|
"""
|
63
62
|
Converte un numero intero in valore booleano (o binario).
|
64
63
|
"""
|
65
|
-
|
66
|
-
return True
|
67
|
-
return False
|
64
|
+
return int(valore)==1
|
68
65
|
|
69
66
|
@staticmethod
|
70
67
|
def boolToInt(valore:bool)->int:
|
@@ -0,0 +1,62 @@
|
|
1
|
+
from modulitiz_micro.ModuloNumeri import ModuloNumeri
|
2
|
+
from modulitiz_micro.ModuloStringhe import ModuloStringhe
|
3
|
+
from modulitiz_micro.eccezioni.EccezioneRuntime import EccezioneRuntime
|
4
|
+
from modulitiz_micro.eccezioni.http.EccezioneHttp import EccezioneHttp
|
5
|
+
from modulitiz_micro.files.ModuloLogging import ModuloLogging
|
6
|
+
from modulitiz_micro.iot.beans.IotDeviceBean import IotDeviceBean
|
7
|
+
from modulitiz_micro.iot.enums.IotOSEnum import IotOSEnum
|
8
|
+
from modulitiz_micro.iot.espurna.ModuleEspurna import ModuleEspurna
|
9
|
+
from modulitiz_micro.rete.http.ModuloHttp import ModuloHttp
|
10
|
+
|
11
|
+
|
12
|
+
class ModuleIotDevice(object):
|
13
|
+
def __init__(self, logger:ModuloLogging|None, deviceBean:IotDeviceBean):
|
14
|
+
self.__logger=logger
|
15
|
+
self.__deviceBean=deviceBean
|
16
|
+
|
17
|
+
def getRelayStatus(self, relayNum:int)->bool:
|
18
|
+
"""
|
19
|
+
@param relayNum: Depending on which OS you choose, can be relative (0, 1, ...) or GPIO
|
20
|
+
"""
|
21
|
+
if self.__deviceBean.os==IotOSEnum.ESPURNA:
|
22
|
+
url=ModuleEspurna.URL_GET_RELAY.format(ip=self.__deviceBean.ip,relayNum=relayNum,apiKey=self.__deviceBean.key)
|
23
|
+
else:
|
24
|
+
raise EccezioneRuntime("Iot os '%s' not known"%(self.__deviceBean.os,))
|
25
|
+
return ModuloNumeri.intToBool(ModuloNumeri.strToInt(self.__sendRequest(url)))
|
26
|
+
|
27
|
+
def setRelayStatus(self,relayNum: int,status: bool):
|
28
|
+
"""
|
29
|
+
@param relayNum: Depending on which OS you choose, can be relative (0, 1, ...) or GPIO
|
30
|
+
@param status: value to set, can only be false or true
|
31
|
+
"""
|
32
|
+
self.__setRelayStatus(relayNum,status)
|
33
|
+
|
34
|
+
def setRelayStatusToggle(self,relayNum: int):
|
35
|
+
self.__setRelayStatus(relayNum,None)
|
36
|
+
|
37
|
+
def __setRelayStatus(self, relayNum:int, status:bool|None):
|
38
|
+
"""
|
39
|
+
@param relayNum: Depending on which OS you choose, can be relative (0, 1, ...) or GPIO
|
40
|
+
@param status: value to set, can be: false = off, true = on, null/None = toggle
|
41
|
+
"""
|
42
|
+
if self.__deviceBean.os==IotOSEnum.ESPURNA:
|
43
|
+
if status is not None:
|
44
|
+
statusStr=str(ModuloNumeri.boolToInt(status))
|
45
|
+
else:
|
46
|
+
statusStr=2
|
47
|
+
url=ModuleEspurna.URL_SET_RELAY.format(ip=self.__deviceBean.ip,relayNum=relayNum,apiKey=self.__deviceBean.key,status=statusStr)
|
48
|
+
else:
|
49
|
+
raise EccezioneRuntime("Iot os '%s' not known"%(self.__deviceBean.os,))
|
50
|
+
# check output
|
51
|
+
statusOutput=ModuloNumeri.intToBool(int(self.__sendRequest(url)))
|
52
|
+
if status is None or status==statusOutput:
|
53
|
+
return
|
54
|
+
raise EccezioneRuntime("Wrong expected status: %d != %d"%(status,statusOutput))
|
55
|
+
|
56
|
+
def __sendRequest(self, url:str)->str:
|
57
|
+
http=ModuloHttp(url,self.__logger,False)
|
58
|
+
http.setUserAgent()
|
59
|
+
bean=http.doGet(0, False)
|
60
|
+
if bean.status!=ModuloHttp.STATUS_OK:
|
61
|
+
raise EccezioneHttp(bean.status)
|
62
|
+
return bean.responseBody.decode(ModuloStringhe.CODIFICA_UTF8)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
from modulitiz_micro.iot.enums.IotOSEnum import IotOSEnum
|
2
|
+
|
3
|
+
|
4
|
+
class IotDeviceBean(object):
|
5
|
+
"""
|
6
|
+
Classe che definisce la struttura di una voce complessa del file di configurazione del programma.
|
7
|
+
Elenca le proprietà che identificano un dispositivo/sensore Internet Of Things.
|
8
|
+
"""
|
9
|
+
|
10
|
+
def __init__(self,ip:str, os:IotOSEnum, key:str):
|
11
|
+
self.ip=ip
|
12
|
+
self.os=os
|
13
|
+
self.key=key
|
@@ -83,6 +83,7 @@ class ModuloHttp(object):
|
|
83
83
|
ctx=ssl.create_default_context()
|
84
84
|
ctx.check_hostname=False
|
85
85
|
ctx.verify_mode=ssl.CERT_NONE
|
86
|
+
# send request
|
86
87
|
with urllib.request.urlopen(self.__requestObj,context=ctx) as response:
|
87
88
|
responseBody=response.read()
|
88
89
|
responseHeaders=response.info()
|
@@ -1,10 +1,11 @@
|
|
1
|
+
modulitiz_micro/ModuleEnum.py,sha256=1HVhYspeTyE8nEuYSDkQXuRUISEggR_Cejqn3uGMOPQ,159
|
1
2
|
modulitiz_micro/ModuloBase64.py,sha256=dW1TP8TkIuOqAbbJcvTAo4xEurHl8NBs8lQTuHY_HaU,1866
|
2
3
|
modulitiz_micro/ModuloColorText.py,sha256=_sMSh9xZ-qbpa35oaSGdzQJKpFiGLsCHtM4P1HQWcTE,828
|
3
4
|
modulitiz_micro/ModuloDate.py,sha256=niDdyhWUkRNOfxK7G-RkvvuGJdPCCJRpL3-TFZiuUOE,7997
|
4
|
-
modulitiz_micro/ModuloFunzioni.py,sha256=
|
5
|
+
modulitiz_micro/ModuloFunzioni.py,sha256=n2wNRCLg-l2EvUtZu2K2yT-oE9XJN8nYSDjzECYVqNw,1977
|
5
6
|
modulitiz_micro/ModuloListe.py,sha256=aWqnJX2JAk_LApUQvObkc6P89qXJzFviljJeKa39KC8,3581
|
6
|
-
modulitiz_micro/ModuloMeteo.py,sha256=
|
7
|
-
modulitiz_micro/ModuloNumeri.py,sha256=
|
7
|
+
modulitiz_micro/ModuloMeteo.py,sha256=uiENrmpkRVFX-qaFoxH5BfuEkob-1KqiVmXd734qeCk,2324
|
8
|
+
modulitiz_micro/ModuloNumeri.py,sha256=0r2t8QHM_e-8GpFg_jvPEnb2QWlwJ0eVTMKDnak9nV0,2765
|
8
9
|
modulitiz_micro/ModuloPyinstaller.py,sha256=TiDtOsDAYkK1EVXNC0qWVCgBoCo2puH6HIVL6gMLqAw,845
|
9
10
|
modulitiz_micro/ModuloSeriale.py,sha256=k9po45AFiYc4d-j4BHQsaQFakW8Vs-ZlHu5Bxk7AaDg,1895
|
10
11
|
modulitiz_micro/ModuloStatistiche.py,sha256=ANDTatAfDxGfxN5ZusQxWZnqjUCA8z_kPyQR69sCJ_w,1316
|
@@ -47,6 +48,10 @@ modulitiz_micro/files/git/exceptions/EccezioneGit.py,sha256=SfBBBvfo7XXJeUYpF61I
|
|
47
48
|
modulitiz_micro/gestionedom/GestioneDom.py,sha256=LjmFKiBLNc0yn9m7Z27u2rpU4UcF9778Ljm8aYhdBcY,1350
|
48
49
|
modulitiz_micro/init/AbstractBasicInit.py,sha256=hp2U5ZSIaWtwMuohlsk2WHjPRKxJrQyavPsLPlbejtQ,582
|
49
50
|
modulitiz_micro/init/AbstractInit.py,sha256=0dxk2o6Sx3Ii4UzYvIMeWOClxdbmctO3M4XoMpk2v7k,228
|
51
|
+
modulitiz_micro/iot/ModuleIotDevice.py,sha256=tDh76kq_lOCGnb_7sF2QZbjbba8p1o8XJZ1YOgTaMmA,2650
|
52
|
+
modulitiz_micro/iot/beans/IotDeviceBean.py,sha256=lSxK80JW3PmhlbKMNX8-U1fjwciFp_MaxH8jYtJLGas,374
|
53
|
+
modulitiz_micro/iot/enums/IotOSEnum.py,sha256=jMGWbPo0gafFdog7f9VBX_vJQ86XiXYUcxVg-RM9-s8,191
|
54
|
+
modulitiz_micro/iot/espurna/ModuleEspurna.py,sha256=ueL-hDpaGzmU7mUvpLmu3YerJCJqrfTzATfOVeasD9I,142
|
50
55
|
modulitiz_micro/keylogger/EccezioneKeyLogger.py,sha256=BEhO2y8haOBfuboJHkZI_FyTmFsVw_uHKkQvjyBFkbk,212
|
51
56
|
modulitiz_micro/keylogger/ModuloKeylogger.py,sha256=7envuMiJVPGWDTzy9iq8tc9fPj1UKuaOfFz6viR8eDQ,1939
|
52
57
|
modulitiz_micro/multithread/ModuloThread.py,sha256=BB9t6tCGjDT4JuoEQ61AJmYiqY-oycjub3zq9gFVI_E,982
|
@@ -58,7 +63,7 @@ modulitiz_micro/rete/ModuloNetworking.py,sha256=3tatSHP4s2AeBBZM4nsyZFHdhlXhNIG1
|
|
58
63
|
modulitiz_micro/rete/ModuloOpenVpn.py,sha256=t99ofIYhM7q3HnQrvzQbx-6JeyDQqOc1wvg7pxvYo8U,627
|
59
64
|
modulitiz_micro/rete/email/EmailBean.py,sha256=EOKLfBVqwBEkbWfywiUmk2iB5K2uVlykxsh4zB9red8,168
|
60
65
|
modulitiz_micro/rete/email/ModuloEmail.py,sha256=6roT23q15xmo_olXORF19PRwss81tQg-71gGquvs28A,2956
|
61
|
-
modulitiz_micro/rete/http/ModuloHttp.py,sha256=
|
66
|
+
modulitiz_micro/rete/http/ModuloHttp.py,sha256=i7Zfu9aYT14AQpggW2GBdcGRtyHnBfxyjcuuWshPS5s,4711
|
62
67
|
modulitiz_micro/rete/http/ModuloHttpConnectionSafe.py,sha256=w1cLQrnPJXltUeJ4OOtFOTPv5k0J6uNqlrXUzO0UbX4,2936
|
63
68
|
modulitiz_micro/rete/http/ModuloHttpUtils.py,sha256=9r6Z4eT4j4ZH-UyjOQXz_vUaltW-oH9gyyQLZDgVf7s,2350
|
64
69
|
modulitiz_micro/rete/http/beans/HttpResponseBean.py,sha256=7JVywcWURv1I9rYKj4Kt9XLt7387wMZGTMefcsm7E3I,202
|
@@ -97,8 +102,8 @@ modulitiz_micro/util/wheel/ModuloBuildWheel.py,sha256=OtZdKTiiU0XhrIjWaFlBx8denZ
|
|
97
102
|
modulitiz_micro/util/wheel/ModuloCheckTestNamingConvention.py,sha256=ZGwMtVexRscwVEtiwxgU5ENsItcfsV2NEAcyclcLFgA,3885
|
98
103
|
modulitiz_micro/util/wheel/ModuloToml.py,sha256=774GQ8y6lyhOrT0edJPlLq4TBU7Nq4699q74deGlFW4,1205
|
99
104
|
modulitiz_micro/util/wheel/ModuloWheel.py,sha256=VRS_6kSt62qubBYzkGm91_GWzcIiD0KlSnaqhM_aQnE,338
|
100
|
-
modulitiz_micro-2.
|
101
|
-
modulitiz_micro-2.
|
102
|
-
modulitiz_micro-2.
|
103
|
-
modulitiz_micro-2.
|
104
|
-
modulitiz_micro-2.
|
105
|
+
modulitiz_micro-2.40.0.dist-info/LICENSE,sha256=b-Ia9Hv3N_FviXoFAXG44lDGbk4tCC0fBdduccm8nl0,1086
|
106
|
+
modulitiz_micro-2.40.0.dist-info/METADATA,sha256=p678I5RNNUgn1dgL0UEhPuor_8bRqU3RVHPiWaGYfP0,1690
|
107
|
+
modulitiz_micro-2.40.0.dist-info/WHEEL,sha256=2aRSX09k7pmd4gPs96VOQ860h0v0t30ka6JGHtpC3BY,94
|
108
|
+
modulitiz_micro-2.40.0.dist-info/top_level.txt,sha256=ESJE0qtNJp3tbKPrffbFVjH511NSjJHxscfpdLjTpA8,16
|
109
|
+
modulitiz_micro-2.40.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|