modulitiz-micro 2.34.0__py311-none-any.whl → 2.36.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/ModuloBase64.py +61 -61
- modulitiz_micro/ModuloColorText.py +35 -35
- modulitiz_micro/ModuloDate.py +295 -295
- modulitiz_micro/ModuloFunzioni.py +70 -70
- modulitiz_micro/ModuloListe.py +150 -150
- modulitiz_micro/ModuloMeteo.py +72 -72
- modulitiz_micro/ModuloNumeri.py +130 -130
- modulitiz_micro/ModuloPyinstaller.py +29 -29
- modulitiz_micro/ModuloSeriale.py +70 -61
- modulitiz_micro/ModuloStatistiche.py +31 -31
- modulitiz_micro/ModuloStringhe.py +180 -180
- modulitiz_micro/ModuloTarghe.py +46 -46
- modulitiz_micro/android/ModuloAndroid.py +18 -18
- modulitiz_micro/android/ModuloAndroidAdb.py +48 -48
- modulitiz_micro/android/ModuloAndroidSim.py +130 -130
- modulitiz_micro/android/beans/SmsBean.py +12 -12
- modulitiz_micro/android/enums/AndroidSmsTypeEnum.py +17 -17
- modulitiz_micro/database/AbstractDatabaseService.py +13 -13
- modulitiz_micro/database/AbstractSql.py +69 -69
- modulitiz_micro/database/ModuloSqlOracle.py +19 -19
- modulitiz_micro/database/ModuloSqlServer.py +43 -43
- modulitiz_micro/database/eccezioni/EccezioneDbNoData.py +6 -6
- modulitiz_micro/database/mysql/AbstractBasicMysql.py +114 -114
- modulitiz_micro/database/mysql/ModuloMysql.py +163 -163
- modulitiz_micro/database/mysql/MysqlCommonConverter.py +47 -47
- modulitiz_micro/database/mysql/eccezioni/EccezioneMysqlOffline.py +6 -6
- modulitiz_micro/database/sqlite/AbstractBasicSQLite.py +114 -114
- modulitiz_micro/database/sqlite/ModuloSQLite.py +82 -82
- modulitiz_micro/eccezioni/EccezioneBase.py +7 -7
- modulitiz_micro/eccezioni/EccezioneCtrlC.py +7 -7
- modulitiz_micro/eccezioni/EccezioneRuntime.py +7 -7
- modulitiz_micro/eccezioni/EccezioneScheduler.py +7 -7
- modulitiz_micro/eccezioni/EccezioneSoNonSupportato.py +7 -7
- modulitiz_micro/eccezioni/http/EccezioneHttp.py +8 -8
- modulitiz_micro/eccezioni/http/EccezioneHttp404.py +7 -7
- modulitiz_micro/eccezioni/http/EccezioneHttpGeneric.py +7 -7
- modulitiz_micro/files/ModuloFiles.py +173 -173
- modulitiz_micro/files/ModuloLogging.py +69 -69
- modulitiz_micro/files/ModuloZip.py +42 -42
- modulitiz_micro/files/cache/CacheBean.py +5 -5
- modulitiz_micro/files/cache/CacheRam.py +29 -29
- modulitiz_micro/files/cache/DatabaseCache.py +91 -91
- modulitiz_micro/files/cache/decorators/cacheRam.py +26 -26
- modulitiz_micro/files/git/ModuloGit.py +28 -28
- modulitiz_micro/files/git/decorators/catchAndRaiseGitExceptions.py +19 -19
- modulitiz_micro/files/git/exceptions/EccezioneGit.py +7 -7
- modulitiz_micro/gestionedom/GestioneDom.py +44 -44
- modulitiz_micro/init/AbstractBasicInit.py +27 -27
- modulitiz_micro/init/AbstractInit.py +11 -11
- modulitiz_micro/keylogger/EccezioneKeyLogger.py +7 -7
- modulitiz_micro/keylogger/ModuloKeylogger.py +73 -73
- modulitiz_micro/multithread/ModuloThread.py +26 -26
- modulitiz_micro/multithread/ModuloThreadLogger.py +8 -8
- modulitiz_micro/multithread/ModuloThreadWithCallbackError.py +25 -25
- modulitiz_micro/nlp/ModuloNlp.py +36 -36
- modulitiz_micro/nlp/ModuloNlpDateAndTime.py +59 -59
- modulitiz_micro/rete/ModuloNetworking.py +67 -67
- modulitiz_micro/rete/ModuloOpenVpn.py +15 -15
- modulitiz_micro/rete/email/EmailBean.py +5 -5
- modulitiz_micro/rete/email/ModuloEmail.py +90 -90
- modulitiz_micro/rete/http/ModuloHttp.py +115 -115
- modulitiz_micro/rete/http/ModuloHttpConnectionSafe.py +91 -91
- modulitiz_micro/rete/http/ModuloHttpUtils.py +69 -69
- modulitiz_micro/rete/http/beans/HttpResponseBean.py +5 -5
- modulitiz_micro/rete/http/decorators/catchAndRaiseHttpExceptions.py +22 -22
- modulitiz_micro/rete/ntp/AbstractModuloNtp.py +73 -73
- modulitiz_micro/rete/ntp/ModuloNtpIt.py +8 -8
- modulitiz_micro/rete/socketserver/AbstractBasicGetSocketServer.py +35 -35
- modulitiz_micro/rete/socketserver/AbstractSocketServer.py +267 -267
- modulitiz_micro/rete/ssl/ModuloSsl.py +56 -56
- modulitiz_micro/sistema/EnvVarsEnum.py +9 -9
- modulitiz_micro/sistema/ModuloEnvVars.py +34 -34
- modulitiz_micro/sistema/ModuloSystem.py +298 -298
- modulitiz_micro/sistema/ModuloSystemPipe.py +67 -67
- modulitiz_micro/social/telegram/AbstractModuloTelegram.py +53 -53
- modulitiz_micro/social/telegram/ModuloTelegramSimple.py +26 -26
- modulitiz_micro/util/beans/conf/AbstractBasicConfBean.py +11 -11
- modulitiz_micro/util/beans/conf/AbstractConfBean.py +16 -16
- modulitiz_micro/util/beans/fileconf/AbstractBasicFileConfBean.py +11 -11
- modulitiz_micro/util/beans/fileconf/AbstractFileConfBean.py +13 -13
- modulitiz_micro/util/beans/globalvar/AbstractBasicGlobalVarBean.py +15 -15
- modulitiz_micro/util/beans/globalvar/AbstractGlobalVarBean.py +34 -34
- modulitiz_micro/util/decorators/noAwait.py +23 -23
- modulitiz_micro/util/pip/AbstractModuloPip.py +41 -41
- modulitiz_micro/util/pip/ModuloPip.py +49 -49
- modulitiz_micro/util/scheduler/AbstractScheduler.py +32 -32
- modulitiz_micro/util/spooler/AbstractSpooler.py +14 -14
- modulitiz_micro/util/spooler/Spooler.py +18 -18
- modulitiz_micro/util/spooler/beans/QueueBean.py +8 -8
- modulitiz_micro/util/spooler/decorators/spooler.py +49 -49
- modulitiz_micro/util/spooler/eccezioni/EccezioneSpooler.py +7 -7
- modulitiz_micro/util/spooler/eccezioni/EccezioneSpoolerFull.py +7 -7
- modulitiz_micro/util/unittesting/AbstractOverrideTestUtil.py +31 -31
- modulitiz_micro/util/unittesting/AbstractTestUtil.py +11 -11
- modulitiz_micro/util/unittesting/ModuloRunUnitTest.py +25 -25
- modulitiz_micro/util/wheel/ModuloBuildWheel.py +117 -117
- modulitiz_micro/util/wheel/ModuloCheckTestNamingConvention.py +83 -83
- modulitiz_micro/util/wheel/ModuloToml.py +40 -40
- modulitiz_micro/util/wheel/ModuloWheel.py +12 -12
- {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.36.0.dist-info}/LICENSE +21 -21
- {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.36.0.dist-info}/METADATA +64 -64
- modulitiz_micro-2.36.0.dist-info/RECORD +104 -0
- modulitiz_micro-2.34.0.dist-info/RECORD +0 -104
- {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.36.0.dist-info}/WHEEL +0 -0
- {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.36.0.dist-info}/top_level.txt +0 -0
@@ -1,91 +1,91 @@
|
|
1
|
-
from modulitiz_micro.ModuloStringhe import ModuloStringhe
|
2
|
-
from modulitiz_micro.database.sqlite.ModuloSQLite import AbstractSqlite
|
3
|
-
|
4
|
-
|
5
|
-
class DatabaseCache(AbstractSqlite):
|
6
|
-
|
7
|
-
# costruttore
|
8
|
-
def __init__(self,*args,**kwargs):
|
9
|
-
super().__init__(*args,**kwargs)
|
10
|
-
|
11
|
-
# metodi
|
12
|
-
def schema(self):
|
13
|
-
sql="""
|
14
|
-
CREATE TABLE tb_cache(
|
15
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
16
|
-
type TEXT NOT NULL,
|
17
|
-
key TEXT NULL,
|
18
|
-
valore TEXT NOT NULL,
|
19
|
-
data_insert TIMESTAMP NOT NULL
|
20
|
-
);
|
21
|
-
CREATE UNIQUE INDEX IX_tb_cache__type_key ON tb_cache(type,key);
|
22
|
-
|
23
|
-
"""
|
24
|
-
|
25
|
-
return sql
|
26
|
-
|
27
|
-
def insertBasicTables(self):
|
28
|
-
return
|
29
|
-
|
30
|
-
|
31
|
-
#############################################################################################################################
|
32
|
-
def select_cache_valore_by_entries(self,tipo,chiave):
|
33
|
-
results=self.select_cache_by_entries(tipo, chiave)
|
34
|
-
if results is None:
|
35
|
-
return
|
36
|
-
return results[0]['valore']
|
37
|
-
|
38
|
-
def select_cache_by_entries(self,tipo,chiave):
|
39
|
-
with self.__query_cache_by_entries(tipo, chiave,False) as cursoreDb:
|
40
|
-
results=cursoreDb.fetchall()
|
41
|
-
if len(results)==0:
|
42
|
-
return
|
43
|
-
return results
|
44
|
-
|
45
|
-
def count_cache_by_entries(self,tipo,chiave)->int:
|
46
|
-
cursoreDb=self.__query_cache_by_entries(tipo, chiave,True)
|
47
|
-
return self.count(cursoreDb)
|
48
|
-
|
49
|
-
def __query_cache_by_entries(self,tipo,chiave,isCount):
|
50
|
-
add_chiave=ModuloStringhe.isEmpty(chiave) is False
|
51
|
-
sql="SELECT "+("COUNT(*) AS conta" if isCount is True else "*")+"""
|
52
|
-
FROM tb_cache
|
53
|
-
WHERE type=:tipo
|
54
|
-
"""+("AND key=:chiave" if add_chiave is True else "")+"""
|
55
|
-
;
|
56
|
-
"""
|
57
|
-
params={'tipo':tipo}
|
58
|
-
if add_chiave is True:
|
59
|
-
params['chiave']=chiave
|
60
|
-
|
61
|
-
cursoreDb=self.initCursor()
|
62
|
-
cursoreDb.execute(sql,params)
|
63
|
-
return cursoreDb
|
64
|
-
|
65
|
-
def insert_cache(self,tipo,chiave,valore):
|
66
|
-
sql="""
|
67
|
-
INSERT INTO tb_cache(
|
68
|
-
type,key,valore,data_insert
|
69
|
-
) VALUES (
|
70
|
-
:tipo,:chiave,:valore,"""+self.DATE_TIME_NOW+"""
|
71
|
-
);
|
72
|
-
"""
|
73
|
-
cursoreDb=self.initCursor()
|
74
|
-
cursoreDb.execute(sql,{
|
75
|
-
'tipo':tipo,'chiave':chiave,'valore':valore
|
76
|
-
})
|
77
|
-
return cursoreDb
|
78
|
-
|
79
|
-
def update_cache_valore(self,tipo,chiave,valore):
|
80
|
-
sql="""
|
81
|
-
UPDATE tb_cache
|
82
|
-
SET valore=:valore,data_insert="""+self.DATE_TIME_NOW+"""
|
83
|
-
WHERE type=:tipo AND key=:chiave
|
84
|
-
;
|
85
|
-
"""
|
86
|
-
cursoreDb=self.initCursor()
|
87
|
-
cursoreDb.execute(sql,{
|
88
|
-
'valore':valore,'tipo':tipo,'chiave':chiave
|
89
|
-
})
|
90
|
-
return cursoreDb
|
91
|
-
|
1
|
+
from modulitiz_micro.ModuloStringhe import ModuloStringhe
|
2
|
+
from modulitiz_micro.database.sqlite.ModuloSQLite import AbstractSqlite
|
3
|
+
|
4
|
+
|
5
|
+
class DatabaseCache(AbstractSqlite):
|
6
|
+
|
7
|
+
# costruttore
|
8
|
+
def __init__(self,*args,**kwargs):
|
9
|
+
super().__init__(*args,**kwargs)
|
10
|
+
|
11
|
+
# metodi
|
12
|
+
def schema(self):
|
13
|
+
sql="""
|
14
|
+
CREATE TABLE tb_cache(
|
15
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
16
|
+
type TEXT NOT NULL,
|
17
|
+
key TEXT NULL,
|
18
|
+
valore TEXT NOT NULL,
|
19
|
+
data_insert TIMESTAMP NOT NULL
|
20
|
+
);
|
21
|
+
CREATE UNIQUE INDEX IX_tb_cache__type_key ON tb_cache(type,key);
|
22
|
+
|
23
|
+
"""
|
24
|
+
|
25
|
+
return sql
|
26
|
+
|
27
|
+
def insertBasicTables(self):
|
28
|
+
return
|
29
|
+
|
30
|
+
|
31
|
+
#############################################################################################################################
|
32
|
+
def select_cache_valore_by_entries(self,tipo,chiave):
|
33
|
+
results=self.select_cache_by_entries(tipo, chiave)
|
34
|
+
if results is None:
|
35
|
+
return
|
36
|
+
return results[0]['valore']
|
37
|
+
|
38
|
+
def select_cache_by_entries(self,tipo,chiave):
|
39
|
+
with self.__query_cache_by_entries(tipo, chiave,False) as cursoreDb:
|
40
|
+
results=cursoreDb.fetchall()
|
41
|
+
if len(results)==0:
|
42
|
+
return
|
43
|
+
return results
|
44
|
+
|
45
|
+
def count_cache_by_entries(self,tipo,chiave)->int:
|
46
|
+
cursoreDb=self.__query_cache_by_entries(tipo, chiave,True)
|
47
|
+
return self.count(cursoreDb)
|
48
|
+
|
49
|
+
def __query_cache_by_entries(self,tipo,chiave,isCount):
|
50
|
+
add_chiave=ModuloStringhe.isEmpty(chiave) is False
|
51
|
+
sql="SELECT "+("COUNT(*) AS conta" if isCount is True else "*")+"""
|
52
|
+
FROM tb_cache
|
53
|
+
WHERE type=:tipo
|
54
|
+
"""+("AND key=:chiave" if add_chiave is True else "")+"""
|
55
|
+
;
|
56
|
+
"""
|
57
|
+
params={'tipo':tipo}
|
58
|
+
if add_chiave is True:
|
59
|
+
params['chiave']=chiave
|
60
|
+
|
61
|
+
cursoreDb=self.initCursor()
|
62
|
+
cursoreDb.execute(sql,params)
|
63
|
+
return cursoreDb
|
64
|
+
|
65
|
+
def insert_cache(self,tipo,chiave,valore):
|
66
|
+
sql="""
|
67
|
+
INSERT INTO tb_cache(
|
68
|
+
type,key,valore,data_insert
|
69
|
+
) VALUES (
|
70
|
+
:tipo,:chiave,:valore,"""+self.DATE_TIME_NOW+"""
|
71
|
+
);
|
72
|
+
"""
|
73
|
+
cursoreDb=self.initCursor()
|
74
|
+
cursoreDb.execute(sql,{
|
75
|
+
'tipo':tipo,'chiave':chiave,'valore':valore
|
76
|
+
})
|
77
|
+
return cursoreDb
|
78
|
+
|
79
|
+
def update_cache_valore(self,tipo,chiave,valore):
|
80
|
+
sql="""
|
81
|
+
UPDATE tb_cache
|
82
|
+
SET valore=:valore,data_insert="""+self.DATE_TIME_NOW+"""
|
83
|
+
WHERE type=:tipo AND key=:chiave
|
84
|
+
;
|
85
|
+
"""
|
86
|
+
cursoreDb=self.initCursor()
|
87
|
+
cursoreDb.execute(sql,{
|
88
|
+
'valore':valore,'tipo':tipo,'chiave':chiave
|
89
|
+
})
|
90
|
+
return cursoreDb
|
91
|
+
|
@@ -1,26 +1,26 @@
|
|
1
|
-
from functools import wraps
|
2
|
-
|
3
|
-
from cachetools import TTLCache
|
4
|
-
from cachetools import cached
|
5
|
-
|
6
|
-
from modulitiz_micro.ModuloNumeri import ModuloNumeri
|
7
|
-
|
8
|
-
|
9
|
-
def cacheRam(minsBeforeExpiry: int|float|None):
|
10
|
-
"""
|
11
|
-
Usare questo decorator per mettere in cache delle informazioni.
|
12
|
-
Alla base usa una libreria di terze parti.
|
13
|
-
:param minsBeforeExpiry: se null mantiene i dati in memoria per 1 giorno
|
14
|
-
"""
|
15
|
-
|
16
|
-
__secsBeforeExpiry=24*3600 if minsBeforeExpiry is None else ModuloNumeri.decimalNumbersTruncate(minsBeforeExpiry*60,2)
|
17
|
-
__cache=cached(TTLCache(20,__secsBeforeExpiry))
|
18
|
-
|
19
|
-
def decorator(funzione):
|
20
|
-
__funzione=__cache(funzione)
|
21
|
-
|
22
|
-
@wraps(funzione)
|
23
|
-
def wrapped(*args,**kwargs):
|
24
|
-
return __funzione(*args,**kwargs)
|
25
|
-
return wrapped
|
26
|
-
return decorator
|
1
|
+
from functools import wraps
|
2
|
+
|
3
|
+
from cachetools import TTLCache
|
4
|
+
from cachetools import cached
|
5
|
+
|
6
|
+
from modulitiz_micro.ModuloNumeri import ModuloNumeri
|
7
|
+
|
8
|
+
|
9
|
+
def cacheRam(minsBeforeExpiry: int|float|None):
|
10
|
+
"""
|
11
|
+
Usare questo decorator per mettere in cache delle informazioni.
|
12
|
+
Alla base usa una libreria di terze parti.
|
13
|
+
:param minsBeforeExpiry: se null mantiene i dati in memoria per 1 giorno
|
14
|
+
"""
|
15
|
+
|
16
|
+
__secsBeforeExpiry=24*3600 if minsBeforeExpiry is None else ModuloNumeri.decimalNumbersTruncate(minsBeforeExpiry*60,2)
|
17
|
+
__cache=cached(TTLCache(20,__secsBeforeExpiry))
|
18
|
+
|
19
|
+
def decorator(funzione):
|
20
|
+
__funzione=__cache(funzione)
|
21
|
+
|
22
|
+
@wraps(funzione)
|
23
|
+
def wrapped(*args,**kwargs):
|
24
|
+
return __funzione(*args,**kwargs)
|
25
|
+
return wrapped
|
26
|
+
return decorator
|
@@ -1,28 +1,28 @@
|
|
1
|
-
import git
|
2
|
-
|
3
|
-
from modulitiz_micro.files.git.decorators.catchAndRaiseGitExceptions import catchAndRaiseGitExceptions
|
4
|
-
|
5
|
-
|
6
|
-
class ModuloGit(object):
|
7
|
-
def __init__(self, repoPath:str):
|
8
|
-
self.inner=git.Repo(repoPath)
|
9
|
-
|
10
|
-
@catchAndRaiseGitExceptions
|
11
|
-
def getWorkingCopyRevision(self)->str:
|
12
|
-
return self.inner.head.object.hexsha
|
13
|
-
|
14
|
-
@catchAndRaiseGitExceptions
|
15
|
-
def getRemoteRevision(self)->str:
|
16
|
-
return self.inner.remotes[0].fetch()[0].ref.object.hexsha
|
17
|
-
|
18
|
-
@catchAndRaiseGitExceptions
|
19
|
-
def addFile(self,filenamePath:str):
|
20
|
-
self.inner.index.add(filenamePath)
|
21
|
-
|
22
|
-
@catchAndRaiseGitExceptions
|
23
|
-
def removeFile(self,filenamePath:str):
|
24
|
-
self.inner.index.remove(filenamePath,working_tree=True)
|
25
|
-
|
26
|
-
@catchAndRaiseGitExceptions
|
27
|
-
def update(self)->str:
|
28
|
-
return self.inner.remotes[0].pull()[0].ref.object.hexsha
|
1
|
+
import git
|
2
|
+
|
3
|
+
from modulitiz_micro.files.git.decorators.catchAndRaiseGitExceptions import catchAndRaiseGitExceptions
|
4
|
+
|
5
|
+
|
6
|
+
class ModuloGit(object):
|
7
|
+
def __init__(self, repoPath:str):
|
8
|
+
self.inner=git.Repo(repoPath)
|
9
|
+
|
10
|
+
@catchAndRaiseGitExceptions
|
11
|
+
def getWorkingCopyRevision(self)->str:
|
12
|
+
return self.inner.head.object.hexsha
|
13
|
+
|
14
|
+
@catchAndRaiseGitExceptions
|
15
|
+
def getRemoteRevision(self)->str:
|
16
|
+
return self.inner.remotes[0].fetch()[0].ref.object.hexsha
|
17
|
+
|
18
|
+
@catchAndRaiseGitExceptions
|
19
|
+
def addFile(self,filenamePath:str):
|
20
|
+
self.inner.index.add(filenamePath)
|
21
|
+
|
22
|
+
@catchAndRaiseGitExceptions
|
23
|
+
def removeFile(self,filenamePath:str):
|
24
|
+
self.inner.index.remove(filenamePath,working_tree=True)
|
25
|
+
|
26
|
+
@catchAndRaiseGitExceptions
|
27
|
+
def update(self)->str:
|
28
|
+
return self.inner.remotes[0].pull()[0].ref.object.hexsha
|
@@ -1,19 +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
|
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
|
@@ -1,7 +1,7 @@
|
|
1
|
-
from modulitiz_micro.eccezioni.EccezioneBase import EccezioneBase
|
2
|
-
|
3
|
-
|
4
|
-
class EccezioneGit(EccezioneBase):
|
5
|
-
|
6
|
-
def __init__(self,*args,**kwargs):
|
7
|
-
super().__init__(*args,**kwargs)
|
1
|
+
from modulitiz_micro.eccezioni.EccezioneBase import EccezioneBase
|
2
|
+
|
3
|
+
|
4
|
+
class EccezioneGit(EccezioneBase):
|
5
|
+
|
6
|
+
def __init__(self,*args,**kwargs):
|
7
|
+
super().__init__(*args,**kwargs)
|
@@ -1,44 +1,44 @@
|
|
1
|
-
from bs4 import BeautifulSoup
|
2
|
-
|
3
|
-
from modulitiz_micro.ModuloStringhe import ModuloStringhe
|
4
|
-
from modulitiz_micro.files.ModuloFiles import ModuloFiles
|
5
|
-
|
6
|
-
|
7
|
-
class GestioneDom(object):
|
8
|
-
def __init__(self, percorsoNomefile: str | None, htmlString:str):
|
9
|
-
if percorsoNomefile is not None:
|
10
|
-
self.percorsoNomefile=percorsoNomefile
|
11
|
-
htmlString=ModuloFiles.readFileText(percorsoNomefile, True)
|
12
|
-
self.htmlString=htmlString
|
13
|
-
self.dom=self.__createObj()
|
14
|
-
|
15
|
-
@staticmethod
|
16
|
-
def innerHTML(tag):
|
17
|
-
"""
|
18
|
-
dato in input un tag html della classe BeautifulSoup, restituisce il codice html all'interno di questo tag
|
19
|
-
"""
|
20
|
-
return "".join([str(x) for x in tag.contents])
|
21
|
-
|
22
|
-
def selector(self,cssSelector:str):
|
23
|
-
"""
|
24
|
-
estrae tutti gli elementi che corrispondono al css selector
|
25
|
-
"""
|
26
|
-
elementi=self.dom.select(cssSelector)
|
27
|
-
return elementi
|
28
|
-
|
29
|
-
@staticmethod
|
30
|
-
def getAttributeValue(tag, nomeAttr:str):
|
31
|
-
oldValue=tag.attrs[nomeAttr]
|
32
|
-
return oldValue
|
33
|
-
@staticmethod
|
34
|
-
def setAttributeValue(tag, nomeAttr:str, value):
|
35
|
-
tag.attrs[nomeAttr]=value
|
36
|
-
return tag
|
37
|
-
|
38
|
-
def save(self):
|
39
|
-
htmlOut=str(self.dom).encode(ModuloStringhe.CODIFICA_UTF8)
|
40
|
-
with ModuloFiles.open(self.percorsoNomefile, "wb") as file:
|
41
|
-
file.write(htmlOut)
|
42
|
-
|
43
|
-
def __createObj(self)->BeautifulSoup:
|
44
|
-
return BeautifulSoup(self.htmlString, features="html.parser")
|
1
|
+
from bs4 import BeautifulSoup
|
2
|
+
|
3
|
+
from modulitiz_micro.ModuloStringhe import ModuloStringhe
|
4
|
+
from modulitiz_micro.files.ModuloFiles import ModuloFiles
|
5
|
+
|
6
|
+
|
7
|
+
class GestioneDom(object):
|
8
|
+
def __init__(self, percorsoNomefile: str | None, htmlString:str):
|
9
|
+
if percorsoNomefile is not None:
|
10
|
+
self.percorsoNomefile=percorsoNomefile
|
11
|
+
htmlString=ModuloFiles.readFileText(percorsoNomefile, True)
|
12
|
+
self.htmlString=htmlString
|
13
|
+
self.dom=self.__createObj()
|
14
|
+
|
15
|
+
@staticmethod
|
16
|
+
def innerHTML(tag):
|
17
|
+
"""
|
18
|
+
dato in input un tag html della classe BeautifulSoup, restituisce il codice html all'interno di questo tag
|
19
|
+
"""
|
20
|
+
return "".join([str(x) for x in tag.contents])
|
21
|
+
|
22
|
+
def selector(self,cssSelector:str):
|
23
|
+
"""
|
24
|
+
estrae tutti gli elementi che corrispondono al css selector
|
25
|
+
"""
|
26
|
+
elementi=self.dom.select(cssSelector)
|
27
|
+
return elementi
|
28
|
+
|
29
|
+
@staticmethod
|
30
|
+
def getAttributeValue(tag, nomeAttr:str):
|
31
|
+
oldValue=tag.attrs[nomeAttr]
|
32
|
+
return oldValue
|
33
|
+
@staticmethod
|
34
|
+
def setAttributeValue(tag, nomeAttr:str, value):
|
35
|
+
tag.attrs[nomeAttr]=value
|
36
|
+
return tag
|
37
|
+
|
38
|
+
def save(self):
|
39
|
+
htmlOut=str(self.dom).encode(ModuloStringhe.CODIFICA_UTF8)
|
40
|
+
with ModuloFiles.open(self.percorsoNomefile, "wb") as file:
|
41
|
+
file.write(htmlOut)
|
42
|
+
|
43
|
+
def __createObj(self)->BeautifulSoup:
|
44
|
+
return BeautifulSoup(self.htmlString, features="html.parser")
|
@@ -1,27 +1,27 @@
|
|
1
|
-
from abc import ABC
|
2
|
-
from abc import abstractmethod
|
3
|
-
|
4
|
-
from modulitiz_micro.init.AbstractInit import AbstractInit
|
5
|
-
|
6
|
-
|
7
|
-
class AbstractBasicInit(AbstractInit,ABC):
|
8
|
-
@classmethod
|
9
|
-
@abstractmethod
|
10
|
-
def getCartellaBase(cls)->str:
|
11
|
-
"""
|
12
|
-
Ricavo la cartella dell'archivio del progetto attuale.
|
13
|
-
"""
|
14
|
-
|
15
|
-
@classmethod
|
16
|
-
@abstractmethod
|
17
|
-
def getProjectRoot(cls,nome: str) -> str:
|
18
|
-
"""
|
19
|
-
Restituisce il percorso assoluto di un progetto.
|
20
|
-
"""
|
21
|
-
|
22
|
-
@classmethod
|
23
|
-
@abstractmethod
|
24
|
-
def getProjectsRoot(cls) -> str:
|
25
|
-
"""
|
26
|
-
Restituisce il percorso assoluto dei progetti.
|
27
|
-
"""
|
1
|
+
from abc import ABC
|
2
|
+
from abc import abstractmethod
|
3
|
+
|
4
|
+
from modulitiz_micro.init.AbstractInit import AbstractInit
|
5
|
+
|
6
|
+
|
7
|
+
class AbstractBasicInit(AbstractInit,ABC):
|
8
|
+
@classmethod
|
9
|
+
@abstractmethod
|
10
|
+
def getCartellaBase(cls)->str:
|
11
|
+
"""
|
12
|
+
Ricavo la cartella dell'archivio del progetto attuale.
|
13
|
+
"""
|
14
|
+
|
15
|
+
@classmethod
|
16
|
+
@abstractmethod
|
17
|
+
def getProjectRoot(cls,nome: str) -> str:
|
18
|
+
"""
|
19
|
+
Restituisce il percorso assoluto di un progetto.
|
20
|
+
"""
|
21
|
+
|
22
|
+
@classmethod
|
23
|
+
@abstractmethod
|
24
|
+
def getProjectsRoot(cls) -> str:
|
25
|
+
"""
|
26
|
+
Restituisce il percorso assoluto dei progetti.
|
27
|
+
"""
|
@@ -1,11 +1,11 @@
|
|
1
|
-
from abc import ABC
|
2
|
-
from abc import abstractmethod
|
3
|
-
|
4
|
-
|
5
|
-
class AbstractInit(ABC):
|
6
|
-
@staticmethod
|
7
|
-
@abstractmethod
|
8
|
-
def getCartellaScriptCorrente(cls)->str:
|
9
|
-
"""
|
10
|
-
Come recuperare la cartella dello script corrente.
|
11
|
-
"""
|
1
|
+
from abc import ABC
|
2
|
+
from abc import abstractmethod
|
3
|
+
|
4
|
+
|
5
|
+
class AbstractInit(ABC):
|
6
|
+
@staticmethod
|
7
|
+
@abstractmethod
|
8
|
+
def getCartellaScriptCorrente(cls)->str:
|
9
|
+
"""
|
10
|
+
Come recuperare la cartella dello script corrente.
|
11
|
+
"""
|
@@ -1,7 +1,7 @@
|
|
1
|
-
from modulitiz_micro.eccezioni.EccezioneBase import EccezioneBase
|
2
|
-
|
3
|
-
|
4
|
-
class EccezioneKeyLogger(EccezioneBase):
|
5
|
-
|
6
|
-
def __init__(self):
|
7
|
-
super().__init__("Ricevuto comando da tastiera di chiusura programma")
|
1
|
+
from modulitiz_micro.eccezioni.EccezioneBase import EccezioneBase
|
2
|
+
|
3
|
+
|
4
|
+
class EccezioneKeyLogger(EccezioneBase):
|
5
|
+
|
6
|
+
def __init__(self):
|
7
|
+
super().__init__("Ricevuto comando da tastiera di chiusura programma")
|