modulitiz-micro 2.34.0__py311-none-any.whl → 2.35.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.
Files changed (105) hide show
  1. modulitiz_micro/ModuloBase64.py +61 -61
  2. modulitiz_micro/ModuloColorText.py +35 -35
  3. modulitiz_micro/ModuloDate.py +295 -295
  4. modulitiz_micro/ModuloFunzioni.py +70 -70
  5. modulitiz_micro/ModuloListe.py +150 -150
  6. modulitiz_micro/ModuloMeteo.py +72 -72
  7. modulitiz_micro/ModuloNumeri.py +130 -130
  8. modulitiz_micro/ModuloPyinstaller.py +29 -29
  9. modulitiz_micro/ModuloSeriale.py +70 -61
  10. modulitiz_micro/ModuloStatistiche.py +31 -31
  11. modulitiz_micro/ModuloStringhe.py +180 -180
  12. modulitiz_micro/ModuloTarghe.py +46 -46
  13. modulitiz_micro/android/ModuloAndroid.py +18 -18
  14. modulitiz_micro/android/ModuloAndroidAdb.py +48 -48
  15. modulitiz_micro/android/ModuloAndroidSim.py +130 -130
  16. modulitiz_micro/android/beans/SmsBean.py +12 -12
  17. modulitiz_micro/android/enums/AndroidSmsTypeEnum.py +17 -17
  18. modulitiz_micro/database/AbstractDatabaseService.py +13 -13
  19. modulitiz_micro/database/AbstractSql.py +69 -69
  20. modulitiz_micro/database/ModuloSqlOracle.py +19 -19
  21. modulitiz_micro/database/ModuloSqlServer.py +43 -43
  22. modulitiz_micro/database/eccezioni/EccezioneDbNoData.py +6 -6
  23. modulitiz_micro/database/mysql/AbstractBasicMysql.py +114 -114
  24. modulitiz_micro/database/mysql/ModuloMysql.py +163 -163
  25. modulitiz_micro/database/mysql/MysqlCommonConverter.py +47 -47
  26. modulitiz_micro/database/mysql/eccezioni/EccezioneMysqlOffline.py +6 -6
  27. modulitiz_micro/database/sqlite/AbstractBasicSQLite.py +114 -114
  28. modulitiz_micro/database/sqlite/ModuloSQLite.py +82 -82
  29. modulitiz_micro/eccezioni/EccezioneBase.py +7 -7
  30. modulitiz_micro/eccezioni/EccezioneCtrlC.py +7 -7
  31. modulitiz_micro/eccezioni/EccezioneRuntime.py +7 -7
  32. modulitiz_micro/eccezioni/EccezioneScheduler.py +7 -7
  33. modulitiz_micro/eccezioni/EccezioneSoNonSupportato.py +7 -7
  34. modulitiz_micro/eccezioni/http/EccezioneHttp.py +8 -8
  35. modulitiz_micro/eccezioni/http/EccezioneHttp404.py +7 -7
  36. modulitiz_micro/eccezioni/http/EccezioneHttpGeneric.py +7 -7
  37. modulitiz_micro/files/ModuloFiles.py +173 -173
  38. modulitiz_micro/files/ModuloLogging.py +69 -69
  39. modulitiz_micro/files/ModuloZip.py +42 -42
  40. modulitiz_micro/files/cache/CacheBean.py +5 -5
  41. modulitiz_micro/files/cache/CacheRam.py +29 -29
  42. modulitiz_micro/files/cache/DatabaseCache.py +91 -91
  43. modulitiz_micro/files/cache/decorators/cacheRam.py +26 -26
  44. modulitiz_micro/files/git/ModuloGit.py +28 -28
  45. modulitiz_micro/files/git/decorators/catchAndRaiseGitExceptions.py +19 -19
  46. modulitiz_micro/files/git/exceptions/EccezioneGit.py +7 -7
  47. modulitiz_micro/gestionedom/GestioneDom.py +44 -44
  48. modulitiz_micro/init/AbstractBasicInit.py +27 -27
  49. modulitiz_micro/init/AbstractInit.py +11 -11
  50. modulitiz_micro/keylogger/EccezioneKeyLogger.py +7 -7
  51. modulitiz_micro/keylogger/ModuloKeylogger.py +73 -73
  52. modulitiz_micro/multithread/ModuloThread.py +26 -26
  53. modulitiz_micro/multithread/ModuloThreadLogger.py +8 -8
  54. modulitiz_micro/multithread/ModuloThreadWithCallbackError.py +25 -25
  55. modulitiz_micro/nlp/ModuloNlp.py +36 -36
  56. modulitiz_micro/nlp/ModuloNlpDateAndTime.py +59 -59
  57. modulitiz_micro/rete/ModuloNetworking.py +67 -67
  58. modulitiz_micro/rete/ModuloOpenVpn.py +15 -15
  59. modulitiz_micro/rete/email/EmailBean.py +5 -5
  60. modulitiz_micro/rete/email/ModuloEmail.py +90 -90
  61. modulitiz_micro/rete/http/ModuloHttp.py +115 -115
  62. modulitiz_micro/rete/http/ModuloHttpConnectionSafe.py +91 -91
  63. modulitiz_micro/rete/http/ModuloHttpUtils.py +69 -69
  64. modulitiz_micro/rete/http/beans/HttpResponseBean.py +5 -5
  65. modulitiz_micro/rete/http/decorators/catchAndRaiseHttpExceptions.py +22 -22
  66. modulitiz_micro/rete/ntp/AbstractModuloNtp.py +73 -73
  67. modulitiz_micro/rete/ntp/ModuloNtpIt.py +8 -8
  68. modulitiz_micro/rete/socketserver/AbstractBasicGetSocketServer.py +35 -35
  69. modulitiz_micro/rete/socketserver/AbstractSocketServer.py +267 -267
  70. modulitiz_micro/rete/ssl/ModuloSsl.py +56 -56
  71. modulitiz_micro/sistema/EnvVarsEnum.py +9 -9
  72. modulitiz_micro/sistema/ModuloEnvVars.py +34 -34
  73. modulitiz_micro/sistema/ModuloSystem.py +298 -298
  74. modulitiz_micro/sistema/ModuloSystemPipe.py +67 -67
  75. modulitiz_micro/social/telegram/AbstractModuloTelegram.py +53 -53
  76. modulitiz_micro/social/telegram/ModuloTelegramSimple.py +26 -26
  77. modulitiz_micro/util/beans/conf/AbstractBasicConfBean.py +11 -11
  78. modulitiz_micro/util/beans/conf/AbstractConfBean.py +16 -16
  79. modulitiz_micro/util/beans/fileconf/AbstractBasicFileConfBean.py +11 -11
  80. modulitiz_micro/util/beans/fileconf/AbstractFileConfBean.py +13 -13
  81. modulitiz_micro/util/beans/globalvar/AbstractBasicGlobalVarBean.py +15 -15
  82. modulitiz_micro/util/beans/globalvar/AbstractGlobalVarBean.py +34 -34
  83. modulitiz_micro/util/decorators/noAwait.py +23 -23
  84. modulitiz_micro/util/pip/AbstractModuloPip.py +41 -41
  85. modulitiz_micro/util/pip/ModuloPip.py +49 -49
  86. modulitiz_micro/util/scheduler/AbstractScheduler.py +32 -32
  87. modulitiz_micro/util/spooler/AbstractSpooler.py +14 -14
  88. modulitiz_micro/util/spooler/Spooler.py +18 -18
  89. modulitiz_micro/util/spooler/beans/QueueBean.py +8 -8
  90. modulitiz_micro/util/spooler/decorators/spooler.py +49 -49
  91. modulitiz_micro/util/spooler/eccezioni/EccezioneSpooler.py +7 -7
  92. modulitiz_micro/util/spooler/eccezioni/EccezioneSpoolerFull.py +7 -7
  93. modulitiz_micro/util/unittesting/AbstractOverrideTestUtil.py +31 -31
  94. modulitiz_micro/util/unittesting/AbstractTestUtil.py +11 -11
  95. modulitiz_micro/util/unittesting/ModuloRunUnitTest.py +25 -25
  96. modulitiz_micro/util/wheel/ModuloBuildWheel.py +117 -117
  97. modulitiz_micro/util/wheel/ModuloCheckTestNamingConvention.py +83 -83
  98. modulitiz_micro/util/wheel/ModuloToml.py +40 -40
  99. modulitiz_micro/util/wheel/ModuloWheel.py +12 -12
  100. {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.35.0.dist-info}/LICENSE +21 -21
  101. {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.35.0.dist-info}/METADATA +64 -64
  102. modulitiz_micro-2.35.0.dist-info/RECORD +104 -0
  103. modulitiz_micro-2.34.0.dist-info/RECORD +0 -104
  104. {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.35.0.dist-info}/WHEEL +0 -0
  105. {modulitiz_micro-2.34.0.dist-info → modulitiz_micro-2.35.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")