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.
@@ -0,0 +1,8 @@
1
+ class ModuleEnum(object):
2
+ @staticmethod
3
+ def isValueIn(value, enumClass)->bool:
4
+ try:
5
+ enumClass(value)
6
+ except ValueError:
7
+ return False
8
+ return True
@@ -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)]
@@ -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
 
@@ -52,8 +52,7 @@ class ModuloNumeri(object):
52
52
  Converte una stringa in numero intero.
53
53
  """
54
54
  try:
55
- ris=int(valore)
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
- if int(valore)==1:
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
@@ -0,0 +1,12 @@
1
+ from enum import StrEnum
2
+ from enum import unique
3
+
4
+
5
+ @unique
6
+ class IotOSEnum(StrEnum):
7
+ """
8
+ Supported operating systems for Iot devices
9
+ """
10
+ ESPURNA="ESPURNA"
11
+ TASMOTA="TASMOTA"
12
+ TIZS="TIZS"
@@ -0,0 +1,3 @@
1
+ class ModuleEspurna(object):
2
+ URL_GET_RELAY="http://{ip}/api/relay/{relayNum}?apikey={apiKey}"
3
+ URL_SET_RELAY=URL_GET_RELAY+"&value={status}"
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modulitiz_micro
3
- Version: 2.38.1
3
+ Version: 2.40.0
4
4
  Summary: Raccolta dei miei moduli - versione micro
5
5
  Author-email: tiz <sderfo1234@altervista.org>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -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=K-8rwVeSEgKCCLQSIXVHZ69YhLRCy3ILYxZXZOy95eI,1947
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=Tr3lRW-lvk9XKm_M-ZvohJ6ueA9oA4TbP6BaZVeCl60,2310
7
- modulitiz_micro/ModuloNumeri.py,sha256=aWTKRwVzFSXKZ7GGwJjl6xFZIE3xgAgq6cezVLw1qwM,2806
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=4IPwfUjwYHHBTavLxnAULOVetKpcE_kFLESWUFgO3w4,4693
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.38.1.dist-info/LICENSE,sha256=b-Ia9Hv3N_FviXoFAXG44lDGbk4tCC0fBdduccm8nl0,1086
101
- modulitiz_micro-2.38.1.dist-info/METADATA,sha256=F3Qr0knvwgGjNuWU7UqoZlLZta1i55imXv1TcTyz9bQ,1690
102
- modulitiz_micro-2.38.1.dist-info/WHEEL,sha256=2aRSX09k7pmd4gPs96VOQ860h0v0t30ka6JGHtpC3BY,94
103
- modulitiz_micro-2.38.1.dist-info/top_level.txt,sha256=ESJE0qtNJp3tbKPrffbFVjH511NSjJHxscfpdLjTpA8,16
104
- modulitiz_micro-2.38.1.dist-info/RECORD,,
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,,