modulitiz-micro 2.40.0__py311-none-any.whl → 2.41.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.
@@ -5,6 +5,9 @@ from datetime import datetime
5
5
  from datetime import time as dt_time
6
6
  from datetime import timedelta
7
7
  from datetime import timezone
8
+ from datetime import tzinfo
9
+
10
+ from suntime import Sun
8
11
 
9
12
 
10
13
  class ModuloDate(object):
@@ -18,6 +21,7 @@ class ModuloDate(object):
18
21
  FORMATO_DATA_ORA_NOMEFILE="%Y-%m-%d_%H-%M-%S"
19
22
  FORMATO_DATA_ORA_NOSPAZI="%Y%m%d%H%M%S"
20
23
  FORMATO_ORA="%H:%M:%S"
24
+ FORMAT_HH_MM="%H:%M"
21
25
 
22
26
 
23
27
  @staticmethod
@@ -268,21 +272,49 @@ class ModuloDate(object):
268
272
  return cls.setTimezoneFromTzInfo(data,timezone.utc)
269
273
 
270
274
  @staticmethod
271
- def setTimezoneFromTzInfo(data:datetime,tz:datetime.tzinfo)->datetime:
275
+ def setTimezoneFromTzInfo(data:datetime,tz:tzinfo)->datetime:
272
276
  """
273
277
  Imposta un fuso orario ad una data completa.
274
278
  """
275
279
  return data.replace(tzinfo=tz)
276
280
 
277
281
  @classmethod
278
- def getTimezoneLocal(cls)->datetime.tzinfo:
282
+ def getTimezoneLocal(cls,dateTime:datetime|None=None)->tzinfo:
279
283
  """
280
- Ritorna il fuso orario locale.
284
+ Ritorna il fuso orario locale + DST.
281
285
  """
282
- return cls.now().astimezone().tzinfo
286
+ if dateTime is None:
287
+ dateTime=cls.now()
288
+ return dateTime.astimezone().tzinfo
289
+
290
+ @staticmethod
291
+ def isDst(dateTime:datetime)->bool:
292
+ return time.localtime(ModuloDate.dateToTimestamp(dateTime)).tm_isdst==1
293
+
294
+ @classmethod
295
+ def getDstSeconds(cls,dateTime:datetime)->int:
296
+ return 3600 if cls.isDst(dateTime) else 0
297
+
298
+ #
299
+ # sunrise / sunset
300
+ #
301
+
302
+ @classmethod
303
+ def getLocalSunrise(cls,lat:float,long:float,dateTime:datetime|None=None)->datetime:
304
+ if dateTime is None:
305
+ dateTime=cls.now()
306
+ sun=Sun(lat,long)
307
+ return sun.get_sunrise_time(dateTime,cls.getTimezoneLocal(dateTime))
308
+
309
+ @classmethod
310
+ def getLocalSunset(cls,lat:float,long:float,dateTime:datetime|None=None)->datetime:
311
+ if dateTime is None:
312
+ dateTime=cls.now()
313
+ sun=Sun(lat,long)
314
+ return sun.get_sunset_time(dateTime,cls.getTimezoneLocal(dateTime))
283
315
 
284
316
  #
285
- # altre funzioni
317
+ # others
286
318
  #
287
319
  @classmethod
288
320
  def calculateElapsedSecs(cls,millisInizio:int)->str:
@@ -1,15 +1,9 @@
1
- from abc import ABC
2
-
3
1
  import schedule
4
2
 
5
3
  from modulitiz_micro.ModuloListe import ModuloListe
6
4
 
7
5
 
8
- class AbstractScheduler(ABC):
9
-
10
- def __init__(self):
11
- super().__init__()
12
-
6
+ class ModuleScheduler(object):
13
7
  @staticmethod
14
8
  def cancelJobByTag(tag:str):
15
9
  schedule.clear(tag)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: modulitiz_micro
3
- Version: 2.40.0
3
+ Version: 2.41.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
@@ -25,6 +25,7 @@ Requires-Dist: pypyodbc>=1.3
25
25
  Requires-Dist: pyserial>=3.5
26
26
  Requires-Dist: requests>=2.31
27
27
  Requires-Dist: schedule>=1.2
28
+ Requires-Dist: suntime==1.3.2
28
29
  Requires-Dist: telethon>=1.33
29
30
  Requires-Dist: webcolors>=1.13
30
31
 
@@ -1,7 +1,7 @@
1
1
  modulitiz_micro/ModuleEnum.py,sha256=1HVhYspeTyE8nEuYSDkQXuRUISEggR_Cejqn3uGMOPQ,159
2
2
  modulitiz_micro/ModuloBase64.py,sha256=dW1TP8TkIuOqAbbJcvTAo4xEurHl8NBs8lQTuHY_HaU,1866
3
3
  modulitiz_micro/ModuloColorText.py,sha256=_sMSh9xZ-qbpa35oaSGdzQJKpFiGLsCHtM4P1HQWcTE,828
4
- modulitiz_micro/ModuloDate.py,sha256=niDdyhWUkRNOfxK7G-RkvvuGJdPCCJRpL3-TFZiuUOE,7997
4
+ modulitiz_micro/ModuloDate.py,sha256=9SbLsonm3PAobbLB-KLnOcGej9Eze7yLQTWXMb82BHY,8894
5
5
  modulitiz_micro/ModuloFunzioni.py,sha256=n2wNRCLg-l2EvUtZu2K2yT-oE9XJN8nYSDjzECYVqNw,1977
6
6
  modulitiz_micro/ModuloListe.py,sha256=aWqnJX2JAk_LApUQvObkc6P89qXJzFviljJeKa39KC8,3581
7
7
  modulitiz_micro/ModuloMeteo.py,sha256=uiENrmpkRVFX-qaFoxH5BfuEkob-1KqiVmXd734qeCk,2324
@@ -88,7 +88,7 @@ modulitiz_micro/util/beans/globalvar/AbstractGlobalVarBean.py,sha256=YrjrR2Ao86y
88
88
  modulitiz_micro/util/decorators/noAwait.py,sha256=O9g_-4jSoLUjISslDRMlcvE91OtY2EkqcJKDDZxckDg,536
89
89
  modulitiz_micro/util/pip/AbstractModuloPip.py,sha256=JwdRmKMBIk28QctAf8OKR6SrgFfEfacGw3aQMFT-5XM,1254
90
90
  modulitiz_micro/util/pip/ModuloPip.py,sha256=PhgOdO_jZPJW0J2-Js9fQ3rVFbAks4ZD1oazhx9p1Os,1983
91
- modulitiz_micro/util/scheduler/AbstractScheduler.py,sha256=JTX39slhcaigiZUUUXKdUed4y0Vhom2Ldi61Zt0LSSE,668
91
+ modulitiz_micro/util/scheduler/ModuleScheduler.py,sha256=QPlvdLYXMhywxXRmEOoztLd5j2MbBpbxmptDF7Eu7CI,596
92
92
  modulitiz_micro/util/spooler/AbstractSpooler.py,sha256=suJSAdevgZYErqwOTmM9b_fQEZSyJwD2Y11grCFpf5I,295
93
93
  modulitiz_micro/util/spooler/Spooler.py,sha256=pAqm-L3KyR7LRuw10RTVqf8DZNiEFS1KeA9q9wuqbz4,430
94
94
  modulitiz_micro/util/spooler/beans/QueueBean.py,sha256=HjfK17XpyUUYYXTNS5q56iyBdqGoFQeP_DcQadtZJFY,150
@@ -102,8 +102,8 @@ modulitiz_micro/util/wheel/ModuloBuildWheel.py,sha256=OtZdKTiiU0XhrIjWaFlBx8denZ
102
102
  modulitiz_micro/util/wheel/ModuloCheckTestNamingConvention.py,sha256=ZGwMtVexRscwVEtiwxgU5ENsItcfsV2NEAcyclcLFgA,3885
103
103
  modulitiz_micro/util/wheel/ModuloToml.py,sha256=774GQ8y6lyhOrT0edJPlLq4TBU7Nq4699q74deGlFW4,1205
104
104
  modulitiz_micro/util/wheel/ModuloWheel.py,sha256=VRS_6kSt62qubBYzkGm91_GWzcIiD0KlSnaqhM_aQnE,338
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,,
105
+ modulitiz_micro-2.41.0.dist-info/LICENSE,sha256=b-Ia9Hv3N_FviXoFAXG44lDGbk4tCC0fBdduccm8nl0,1086
106
+ modulitiz_micro-2.41.0.dist-info/METADATA,sha256=ESKfsw1ErqgtcNju2Ul_1QQKlhudIZ4AGS__GoM4tv0,1721
107
+ modulitiz_micro-2.41.0.dist-info/WHEEL,sha256=2aRSX09k7pmd4gPs96VOQ860h0v0t30ka6JGHtpC3BY,94
108
+ modulitiz_micro-2.41.0.dist-info/top_level.txt,sha256=ESJE0qtNJp3tbKPrffbFVjH511NSjJHxscfpdLjTpA8,16
109
+ modulitiz_micro-2.41.0.dist-info/RECORD,,