modulitiz-micro 2.29.3__py311-none-any.whl → 2.31.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/files/git/ModuloGit.py +5 -0
- modulitiz_micro/files/git/decorators/catchAndRaiseGitExceptions.py +19 -0
- modulitiz_micro/files/git/exceptions/EccezioneGit.py +7 -0
- modulitiz_micro/rete/ModuloNetworking.py +5 -2
- modulitiz_micro/rete/http/ModuloHttp.py +3 -2
- modulitiz_micro/rete/http/ModuloHttpUtils.py +5 -2
- modulitiz_micro/util/pip/ModuloPip.py +1 -1
- modulitiz_micro/util/unittesting/AbstractOverrideTestUtil.py +13 -0
- {modulitiz_micro-2.29.3.dist-info → modulitiz_micro-2.31.0.dist-info}/METADATA +1 -1
- {modulitiz_micro-2.29.3.dist-info → modulitiz_micro-2.31.0.dist-info}/RECORD +13 -11
- {modulitiz_micro-2.29.3.dist-info → modulitiz_micro-2.31.0.dist-info}/LICENSE +0 -0
- {modulitiz_micro-2.29.3.dist-info → modulitiz_micro-2.31.0.dist-info}/WHEEL +0 -0
- {modulitiz_micro-2.29.3.dist-info → modulitiz_micro-2.31.0.dist-info}/top_level.txt +0 -0
@@ -1,15 +1,20 @@
|
|
1
1
|
import git
|
2
2
|
|
3
|
+
from modulitiz_micro.files.git.decorators.catchAndRaiseGitExceptions import catchAndRaiseGitExceptions
|
4
|
+
|
3
5
|
|
4
6
|
class ModuloGit(object):
|
5
7
|
def __init__(self, repoPath:str):
|
6
8
|
self.inner=git.Repo(repoPath)
|
7
9
|
|
10
|
+
@catchAndRaiseGitExceptions
|
8
11
|
def getWorkingCopyRevision(self)->str:
|
9
12
|
return self.inner.head.object.hexsha
|
10
13
|
|
14
|
+
@catchAndRaiseGitExceptions
|
11
15
|
def getRemoteRevision(self)->str:
|
12
16
|
return self.inner.remotes[0].fetch()[0].ref.object.hexsha
|
13
17
|
|
18
|
+
@catchAndRaiseGitExceptions
|
14
19
|
def update(self)->str:
|
15
20
|
return self.inner.remotes[0].pull()[0].ref.object.hexsha
|
@@ -0,0 +1,19 @@
|
|
1
|
+
from functools import wraps
|
2
|
+
|
3
|
+
from git import GitCommandError
|
4
|
+
|
5
|
+
from modulitiz_micro.files.git.exceptions.EccezioneGit import EccezioneGit
|
6
|
+
|
7
|
+
|
8
|
+
def catchAndRaiseGitExceptions(funzione):
|
9
|
+
"""
|
10
|
+
Cattura tutte le eccezioni git di vario tipo e rilancia un'eccezione custom
|
11
|
+
"""
|
12
|
+
|
13
|
+
@wraps(funzione)
|
14
|
+
def wrapped(*args,**kwargs):
|
15
|
+
try:
|
16
|
+
return funzione(*args,**kwargs)
|
17
|
+
except (GitCommandError,) as ex:
|
18
|
+
raise EccezioneGit() from ex
|
19
|
+
return wrapped
|
@@ -18,11 +18,14 @@ class ModuloNetworking(object):
|
|
18
18
|
return mac
|
19
19
|
|
20
20
|
@staticmethod
|
21
|
-
def
|
21
|
+
def getLocalIp()->str|None:
|
22
|
+
"""
|
23
|
+
Returns private local IP address.
|
24
|
+
"""
|
22
25
|
sockObj = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
23
26
|
sockObj.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
24
|
-
# doesn't even have to be reachable
|
25
27
|
try:
|
28
|
+
# doesn't even have to be reachable
|
26
29
|
sockObj.connect(('255.255.255.255', 1))
|
27
30
|
indirizzoIp = sockObj.getsockname()[0]
|
28
31
|
except gaierror:
|
@@ -30,9 +30,10 @@ class ModuloHttp(object):
|
|
30
30
|
UAS=[UA_MACOS_CHROME,UA_WINDOWS_CHROME,UA_WINDOWS_FIREFOX]
|
31
31
|
|
32
32
|
URL_CERCA_GOOGLE="https://www.google.it/search?q="
|
33
|
-
|
33
|
+
# https://ipecho.net/plain removed because it can return either ipv4 or ipv6 depending on your ISP/Internet connection
|
34
|
+
URLS_GET_IPV4=('https://ipinfo.io/ip','https://api.ipify.org','https://ipv4.seeip.org')
|
34
35
|
|
35
|
-
|
36
|
+
REGEX_IPV4_ADDRESS=r"\b(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\b"
|
36
37
|
|
37
38
|
STATUS_OK=200
|
38
39
|
STATUS_OK_PARTIAL_CONTENT=206
|
@@ -31,8 +31,11 @@ class ModuloHttpUtils(object):
|
|
31
31
|
return response.status_code==ModuloHttp.STATUS_OK
|
32
32
|
|
33
33
|
@staticmethod
|
34
|
-
def
|
35
|
-
|
34
|
+
def getIpV4() -> str|None:
|
35
|
+
"""
|
36
|
+
Returns public external IpV4 address.
|
37
|
+
"""
|
38
|
+
url=random.choice(ModuloHttp.URLS_GET_IPV4)
|
36
39
|
http=ModuloHttp(url,None)
|
37
40
|
try:
|
38
41
|
response=http.doGet(2,False)
|
@@ -12,7 +12,7 @@ class ModuloPip(AbstractModuloPip):
|
|
12
12
|
fileDipendenze=ModuloFiles.pathJoin(percorsoCartellaDipendenze,"requirements.txt")
|
13
13
|
cmd='pip install -U -r "%s"'%(fileDipendenze,)
|
14
14
|
output=ModuloSystem.systemCallReturnOutput(cmd,None)
|
15
|
-
#
|
15
|
+
# check output
|
16
16
|
righe=ModuloListe.eliminaElementiVuoti(ModuloStringhe.normalizzaEol(output).split("\n"))
|
17
17
|
ultimeRigheReversed=righe[-10:]
|
18
18
|
ultimeRigheReversed.reverse()
|
@@ -1,5 +1,7 @@
|
|
1
1
|
from abc import ABC
|
2
2
|
|
3
|
+
from modulitiz_micro.eccezioni.EccezioneRuntime import EccezioneRuntime
|
4
|
+
|
3
5
|
|
4
6
|
class AbstractOverrideTestUtil(ABC):
|
5
7
|
"""
|
@@ -16,3 +18,14 @@ class AbstractOverrideTestUtil(ABC):
|
|
16
18
|
|
17
19
|
def __exit__(self,*args,**kwargs):
|
18
20
|
self._cache.clear()
|
21
|
+
|
22
|
+
@staticmethod
|
23
|
+
def getMockedFunction(throwExc:Exception|None,expectedValue: str|tuple|None):
|
24
|
+
"""
|
25
|
+
Must use only 1 param.
|
26
|
+
"""
|
27
|
+
if throwExc is not None:
|
28
|
+
return lambda *args,**kwargs:(_ for _ in ()).throw(throwExc)
|
29
|
+
elif expectedValue is not None:
|
30
|
+
return lambda *args,**kwargs:expectedValue
|
31
|
+
raise EccezioneRuntime("Use only 1 param")
|
@@ -41,7 +41,9 @@ modulitiz_micro/files/cache/CacheBean.py,sha256=EpOPXfg30oLLJ41wD-jTu9RhNCTRtGSl
|
|
41
41
|
modulitiz_micro/files/cache/CacheRam.py,sha256=iozy7AXCs-Tkn1HS_w7wovdzkCtRbyDbb2n9wVe3FPs,990
|
42
42
|
modulitiz_micro/files/cache/DatabaseCache.py,sha256=MD0eWEgQhOAmGTbm893rhcc9Nxf_vbr7z2bhqkyQJEk,2391
|
43
43
|
modulitiz_micro/files/cache/decorators/cacheRam.py,sha256=FQRzcNWTZKpU9cyrpWIumgg9GKGNBznTmSfok1QgvZM,770
|
44
|
-
modulitiz_micro/files/git/ModuloGit.py,sha256=
|
44
|
+
modulitiz_micro/files/git/ModuloGit.py,sha256=3GdvP4YpH7NPu5r0rnU37yoY67hj7Y3D09npsNvmTIM,579
|
45
|
+
modulitiz_micro/files/git/decorators/catchAndRaiseGitExceptions.py,sha256=qn876kuuLlG7C1hU36AvnG_CJWu2YCcPbXC6xZEjzt4,462
|
46
|
+
modulitiz_micro/files/git/exceptions/EccezioneGit.py,sha256=SfBBBvfo7XXJeUYpF61IzxuKAtRsqu1WvB_zsmJkG10,183
|
45
47
|
modulitiz_micro/gestionedom/GestioneDom.py,sha256=LjmFKiBLNc0yn9m7Z27u2rpU4UcF9778Ljm8aYhdBcY,1350
|
46
48
|
modulitiz_micro/init/AbstractBasicInit.py,sha256=hp2U5ZSIaWtwMuohlsk2WHjPRKxJrQyavPsLPlbejtQ,582
|
47
49
|
modulitiz_micro/init/AbstractInit.py,sha256=0dxk2o6Sx3Ii4UzYvIMeWOClxdbmctO3M4XoMpk2v7k,228
|
@@ -52,13 +54,13 @@ modulitiz_micro/multithreading/ModuloThreadLogger.py,sha256=YMFsiT5G2AAgJfEYACZG
|
|
52
54
|
modulitiz_micro/multithreading/ModuloThreadWithCallbackError.py,sha256=RQWfLDssdVmXoewrWaCdVSrySjbElh2iNBqlSslg0W8,724
|
53
55
|
modulitiz_micro/nlp/ModuloNlp.py,sha256=h7ca9kVLKRcqHMK6rCVOambdpPfh-ehVSppP2nYGxVA,799
|
54
56
|
modulitiz_micro/nlp/ModuloNlpDateAndTime.py,sha256=QCURYksP4-z_u03CVzcESLp5EtdIx2GNXDNYgYOPGuU,1851
|
55
|
-
modulitiz_micro/rete/ModuloNetworking.py,sha256=
|
57
|
+
modulitiz_micro/rete/ModuloNetworking.py,sha256=ouaArJo-sc_eKrTaJW3rzk6zLtNtpfI8YGHQboi_urE,1999
|
56
58
|
modulitiz_micro/rete/ModuloOpenVpn.py,sha256=t99ofIYhM7q3HnQrvzQbx-6JeyDQqOc1wvg7pxvYo8U,627
|
57
59
|
modulitiz_micro/rete/email/EmailBean.py,sha256=-2FPalluaGUwA8Syj2B7kFzkLVDcZnal_PnfYGIPOkM,196
|
58
60
|
modulitiz_micro/rete/email/ModuloEmail.py,sha256=NtlrqlY1TZGr8vGps8frZUft5yReHjtu7CPDKJLSEQ0,2963
|
59
|
-
modulitiz_micro/rete/http/ModuloHttp.py,sha256=
|
61
|
+
modulitiz_micro/rete/http/ModuloHttp.py,sha256=6s8F_NsVUqEoKGRwonBgCoLWlYc4ZH839QJ5eqnSDuY,4593
|
60
62
|
modulitiz_micro/rete/http/ModuloHttpConnectionSafe.py,sha256=w1cLQrnPJXltUeJ4OOtFOTPv5k0J6uNqlrXUzO0UbX4,2936
|
61
|
-
modulitiz_micro/rete/http/ModuloHttpUtils.py,sha256=
|
63
|
+
modulitiz_micro/rete/http/ModuloHttpUtils.py,sha256=9r6Z4eT4j4ZH-UyjOQXz_vUaltW-oH9gyyQLZDgVf7s,2350
|
62
64
|
modulitiz_micro/rete/http/beans/HttpResponseBean.py,sha256=7JVywcWURv1I9rYKj4Kt9XLt7387wMZGTMefcsm7E3I,202
|
63
65
|
modulitiz_micro/rete/http/decorators/catchAndRaiseHttpExceptions.py,sha256=MRhCeNMcy3hw-A8W40gozUY0FiL0tyKASauA7hRW0fo,595
|
64
66
|
modulitiz_micro/rete/ntp/AbstractModuloNtp.py,sha256=acwbAPhHz-1nEyxA2PzxLQC-_DKWIir4jy4CJFLA3Tk,2840
|
@@ -80,7 +82,7 @@ modulitiz_micro/util/beans/globalvar/AbstractBasicGlobalVarBean.py,sha256=had2NW
|
|
80
82
|
modulitiz_micro/util/beans/globalvar/AbstractGlobalVarBean.py,sha256=YrjrR2Ao86yRrqPMVgPV59rtWNex5Nc0BqVdQRqyylM,1372
|
81
83
|
modulitiz_micro/util/decorators/noAwait.py,sha256=O9g_-4jSoLUjISslDRMlcvE91OtY2EkqcJKDDZxckDg,536
|
82
84
|
modulitiz_micro/util/pip/AbstractModuloPip.py,sha256=JwdRmKMBIk28QctAf8OKR6SrgFfEfacGw3aQMFT-5XM,1254
|
83
|
-
modulitiz_micro/util/pip/ModuloPip.py,sha256=
|
85
|
+
modulitiz_micro/util/pip/ModuloPip.py,sha256=PhgOdO_jZPJW0J2-Js9fQ3rVFbAks4ZD1oazhx9p1Os,1983
|
84
86
|
modulitiz_micro/util/scheduler/AbstractScheduler.py,sha256=JTX39slhcaigiZUUUXKdUed4y0Vhom2Ldi61Zt0LSSE,668
|
85
87
|
modulitiz_micro/util/spooler/AbstractSpooler.py,sha256=suJSAdevgZYErqwOTmM9b_fQEZSyJwD2Y11grCFpf5I,295
|
86
88
|
modulitiz_micro/util/spooler/Spooler.py,sha256=pAqm-L3KyR7LRuw10RTVqf8DZNiEFS1KeA9q9wuqbz4,430
|
@@ -88,14 +90,14 @@ modulitiz_micro/util/spooler/beans/QueueBean.py,sha256=HjfK17XpyUUYYXTNS5q56iyBd
|
|
88
90
|
modulitiz_micro/util/spooler/decorators/spooler.py,sha256=lyRWKN7quD57HH_2u584_J1E6pXNGAn7slfUrUQvCas,1858
|
89
91
|
modulitiz_micro/util/spooler/eccezioni/EccezioneSpooler.py,sha256=b3uAh2EUrRvFJHaWs7PN-GNP7l0Qn7n2ThEVaVtzWho,169
|
90
92
|
modulitiz_micro/util/spooler/eccezioni/EccezioneSpoolerFull.py,sha256=KEcDisixOSkSO9Q9BGoI_IdorFfxeG55Q8w0EOXaaDc,199
|
91
|
-
modulitiz_micro/util/unittesting/AbstractOverrideTestUtil.py,sha256=
|
93
|
+
modulitiz_micro/util/unittesting/AbstractOverrideTestUtil.py,sha256=5YX20I-rhl6TpRrqSdNafI1cqBAdTs2sgtOTDjzDn5k,754
|
92
94
|
modulitiz_micro/util/unittesting/AbstractTestUtil.py,sha256=AW9mCj8i_qHrigcXcvvjgdLxa-4Ce0jrwJEZqpPVBxY,297
|
93
95
|
modulitiz_micro/util/unittesting/ModuloRunUnitTest.py,sha256=_YHxjTk_t9wvlCYgS4HSQ657ht7ekSRQsH7i1aKw1LY,774
|
94
96
|
modulitiz_micro/util/wheel/ModuloBuildWheel.py,sha256=-NTUqEjmGl8OUFa1hSwmBbLOaoJZhmzStvOexIN6CDo,5039
|
95
97
|
modulitiz_micro/util/wheel/ModuloToml.py,sha256=774GQ8y6lyhOrT0edJPlLq4TBU7Nq4699q74deGlFW4,1205
|
96
98
|
modulitiz_micro/util/wheel/ModuloWheel.py,sha256=VRS_6kSt62qubBYzkGm91_GWzcIiD0KlSnaqhM_aQnE,338
|
97
|
-
modulitiz_micro-2.
|
98
|
-
modulitiz_micro-2.
|
99
|
-
modulitiz_micro-2.
|
100
|
-
modulitiz_micro-2.
|
101
|
-
modulitiz_micro-2.
|
99
|
+
modulitiz_micro-2.31.0.dist-info/LICENSE,sha256=b-Ia9Hv3N_FviXoFAXG44lDGbk4tCC0fBdduccm8nl0,1086
|
100
|
+
modulitiz_micro-2.31.0.dist-info/METADATA,sha256=YENRtxuTjS0v5NVXm33hsoBPDkWp0OtckjNqXi4y808,1651
|
101
|
+
modulitiz_micro-2.31.0.dist-info/WHEEL,sha256=2aRSX09k7pmd4gPs96VOQ860h0v0t30ka6JGHtpC3BY,94
|
102
|
+
modulitiz_micro-2.31.0.dist-info/top_level.txt,sha256=ESJE0qtNJp3tbKPrffbFVjH511NSjJHxscfpdLjTpA8,16
|
103
|
+
modulitiz_micro-2.31.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|