lyrpy 2025.0.1__py3-none-any.whl → 2025.0.2__py3-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.

Potentially problematic release.


This version of lyrpy might be problematic. Click here for more details.

Files changed (109) hide show
  1. SRC/LIB/__init__.py +21 -0
  2. SRC/lyrpy/LUConsole.py +402 -0
  3. SRC/lyrpy/LUConst.py +358 -0
  4. SRC/lyrpy/LUDateTime.py +205 -0
  5. SRC/lyrpy/LUDecotators.py +417 -0
  6. SRC/lyrpy/LUDict.py +116 -0
  7. SRC/lyrpy/LUDoc.py +62 -0
  8. SRC/lyrpy/LUErrors.py +79 -0
  9. SRC/lyrpy/LUFile.py +1228 -0
  10. SRC/lyrpy/LUFileUtils.py +501 -0
  11. SRC/lyrpy/LULog.py +2324 -0
  12. SRC/lyrpy/LUNetwork.py +277 -0
  13. SRC/lyrpy/LUNumUtils.py +305 -0
  14. SRC/lyrpy/LUObjects.py +208 -0
  15. SRC/lyrpy/LUObjectsYT.py +846 -0
  16. SRC/lyrpy/LUParserARG.py +364 -0
  17. SRC/lyrpy/LUParserINI.py +376 -0
  18. SRC/lyrpy/LUParserREG.py +514 -0
  19. SRC/lyrpy/LUProc.py +110 -0
  20. SRC/lyrpy/LUQThread.py +141 -0
  21. SRC/lyrpy/LUQTimer.py +197 -0
  22. SRC/lyrpy/LUSheduler.py +941 -0
  23. SRC/lyrpy/LUStrDecode.py +223 -0
  24. SRC/lyrpy/LUStrUtils.py +633 -0
  25. SRC/lyrpy/LUSupport.py +124 -0
  26. SRC/lyrpy/LUTelegram.py +428 -0
  27. SRC/lyrpy/LUThread.py +177 -0
  28. SRC/lyrpy/LUTimer.py +141 -0
  29. SRC/lyrpy/LUVersion.py +383 -0
  30. SRC/lyrpy/LUYouTube.py +203 -0
  31. SRC/lyrpy/LUos.py +807 -0
  32. SRC/lyrpy/LUsys.py +47 -0
  33. SRC/lyrpy/__init__.py +21 -0
  34. SRC/lyrpy/__main__.py +20 -0
  35. __SRC/LIB/__init__.py +0 -0
  36. __SRC/LIB/lyrpy/LUConsole.py +402 -0
  37. __SRC/LIB/lyrpy/LUConst.py +358 -0
  38. __SRC/LIB/lyrpy/LUDateTime.py +205 -0
  39. __SRC/LIB/lyrpy/LUDecotators.py +417 -0
  40. __SRC/LIB/lyrpy/LUDict.py +116 -0
  41. __SRC/LIB/lyrpy/LUDoc.py +62 -0
  42. __SRC/LIB/lyrpy/LUErrors.py +79 -0
  43. __SRC/LIB/lyrpy/LUFile.py +1228 -0
  44. __SRC/LIB/lyrpy/LUFileUtils.py +501 -0
  45. __SRC/LIB/lyrpy/LULog.py +2324 -0
  46. __SRC/LIB/lyrpy/LUNetwork.py +277 -0
  47. __SRC/LIB/lyrpy/LUNumUtils.py +305 -0
  48. __SRC/LIB/lyrpy/LUObjects.py +208 -0
  49. __SRC/LIB/lyrpy/LUObjectsYT.py +846 -0
  50. __SRC/LIB/lyrpy/LUParserARG.py +364 -0
  51. __SRC/LIB/lyrpy/LUParserINI.py +376 -0
  52. __SRC/LIB/lyrpy/LUParserREG.py +514 -0
  53. __SRC/LIB/lyrpy/LUProc.py +110 -0
  54. __SRC/LIB/lyrpy/LUQThread.py +141 -0
  55. __SRC/LIB/lyrpy/LUQTimer.py +197 -0
  56. __SRC/LIB/lyrpy/LUSheduler.py +941 -0
  57. __SRC/LIB/lyrpy/LUStrDecode.py +223 -0
  58. __SRC/LIB/lyrpy/LUStrUtils.py +633 -0
  59. __SRC/LIB/lyrpy/LUSupport.py +124 -0
  60. __SRC/LIB/lyrpy/LUTelegram.py +428 -0
  61. __SRC/LIB/lyrpy/LUThread.py +177 -0
  62. __SRC/LIB/lyrpy/LUTimer.py +141 -0
  63. __SRC/LIB/lyrpy/LUVersion.py +383 -0
  64. __SRC/LIB/lyrpy/LUYouTube.py +203 -0
  65. __SRC/LIB/lyrpy/LUos.py +807 -0
  66. __SRC/LIB/lyrpy/LUsys.py +47 -0
  67. __SRC/LIB/lyrpy/__init__.py +21 -0
  68. __SRC/LIB/lyrpy/__main__.py +20 -0
  69. __SRC/__init__.py +0 -0
  70. ____src/__init__.py +0 -0
  71. ____src/lyrpy/LUConsole.py +402 -0
  72. ____src/lyrpy/LUConst.py +358 -0
  73. ____src/lyrpy/LUDateTime.py +205 -0
  74. ____src/lyrpy/LUDecotators.py +417 -0
  75. ____src/lyrpy/LUDict.py +116 -0
  76. ____src/lyrpy/LUDoc.py +62 -0
  77. ____src/lyrpy/LUErrors.py +79 -0
  78. ____src/lyrpy/LUFile.py +1228 -0
  79. ____src/lyrpy/LUFileUtils.py +501 -0
  80. ____src/lyrpy/LULog.py +2324 -0
  81. ____src/lyrpy/LUNetwork.py +277 -0
  82. ____src/lyrpy/LUNumUtils.py +305 -0
  83. ____src/lyrpy/LUObjects.py +208 -0
  84. ____src/lyrpy/LUObjectsYT.py +846 -0
  85. ____src/lyrpy/LUParserARG.py +364 -0
  86. ____src/lyrpy/LUParserINI.py +376 -0
  87. ____src/lyrpy/LUParserREG.py +514 -0
  88. ____src/lyrpy/LUProc.py +110 -0
  89. ____src/lyrpy/LUQThread.py +141 -0
  90. ____src/lyrpy/LUQTimer.py +197 -0
  91. ____src/lyrpy/LUSheduler.py +941 -0
  92. ____src/lyrpy/LUStrDecode.py +223 -0
  93. ____src/lyrpy/LUStrUtils.py +633 -0
  94. ____src/lyrpy/LUSupport.py +124 -0
  95. ____src/lyrpy/LUTelegram.py +428 -0
  96. ____src/lyrpy/LUThread.py +177 -0
  97. ____src/lyrpy/LUTimer.py +141 -0
  98. ____src/lyrpy/LUVersion.py +383 -0
  99. ____src/lyrpy/LUYouTube.py +203 -0
  100. ____src/lyrpy/LUos.py +807 -0
  101. ____src/lyrpy/LUsys.py +47 -0
  102. ____src/lyrpy/__init__.py +21 -0
  103. ____src/lyrpy/__main__.py +20 -0
  104. {lyrpy-2025.0.1.dist-info → lyrpy-2025.0.2.dist-info}/METADATA +1 -1
  105. lyrpy-2025.0.2.dist-info/RECORD +145 -0
  106. lyrpy-2025.0.1.dist-info/RECORD +0 -43
  107. {lyrpy-2025.0.1.dist-info → lyrpy-2025.0.2.dist-info}/WHEEL +0 -0
  108. {lyrpy-2025.0.1.dist-info → lyrpy-2025.0.2.dist-info}/licenses/LICENSE +0 -0
  109. {lyrpy-2025.0.1.dist-info → lyrpy-2025.0.2.dist-info}/top_level.txt +0 -0
SRC/lyrpy/LUConst.py ADDED
@@ -0,0 +1,358 @@
1
+ """LUConst.py"""
2
+ # -*- coding: UTF-8 -*-
3
+ __annotations__ = """
4
+ =======================================================
5
+ Copyright (c) 2023-2024
6
+ Author:
7
+ Lisitsin Y.R.
8
+ Project:
9
+ TOOLS_SRC_PY
10
+ Module:
11
+ LUConst.py
12
+ =======================================================
13
+ """
14
+
15
+ #------------------------------------------
16
+ # БИБЛИОТЕКИ python
17
+ #------------------------------------------
18
+ import os
19
+
20
+ #------------------------------------------
21
+ # БИБЛИОТЕКИ сторонние
22
+ #------------------------------------------
23
+
24
+ #------------------------------------------
25
+ # БИБЛИОТЕКИ LU
26
+ #------------------------------------------
27
+ import lyrpy.LUFile as LUFile
28
+
29
+ GSCRIPT_FULLFILENAME = ''
30
+ GSCRIPT_BASEFILENAME = ''
31
+ GSCRIPT_FILENAME = ''
32
+ GSCRIPT_FILEDIR = ''
33
+ GSCRIPT_FILEEXT = ''
34
+ GAPPName = ''
35
+
36
+ GDirectoryLOG = ''
37
+ GFileNameLOG = ''
38
+ GFileNameLOGjson = ''
39
+
40
+ #--------------------------------------------------------------------------------
41
+ #procedure LYRConst ()
42
+ #--------------------------------------------------------------------------------
43
+ def LYRConst ():
44
+ #beginfunction
45
+ ...
46
+ #endfunction
47
+
48
+ #-----------------------------------------------
49
+ # procedure SET_LIB (AFileName)
50
+ #-----------------------------------------------
51
+ def SET_LIB (AFileName: str):
52
+ #beginfunction
53
+ __SET_VAR_SCRIPT (AFileName)
54
+ __SET_VAR_DEFAULT ()
55
+ __SET_VAR_PROJECTS ()
56
+ __SET_LOG ()
57
+ #endfunction
58
+
59
+ #--------------------------------------------------------------------------------
60
+ # procedure __SET_VAR_SCRIPT (AFileName)
61
+ #--------------------------------------------------------------------------------
62
+ def __SET_VAR_SCRIPT (AFileName: str):
63
+ #beginfunction
64
+
65
+ global GSCRIPT_FULLFILENAME
66
+ global GSCRIPT_BASEFILENAME
67
+ global GSCRIPT_FILENAME
68
+ global GSCRIPT_FILEDIR
69
+ global GSCRIPT_FILEEXT
70
+ global GAPPName
71
+
72
+ GFULLFILENAME=AFileName
73
+
74
+ #-------------------------------------------------------------------
75
+ # GSCRIPT_FULLFILENAME - Файл скрипта [каталог+имя+расширение]
76
+ #-------------------------------------------------------------------
77
+ GSCRIPT_FULLFILENAME=AFileName
78
+ #-------------------------------------------------------------------
79
+ # GSCRIPT_FULLFILENAME - Файл скрипта [каталог+имя+расширение]
80
+ #-------------------------------------------------------------------
81
+ GSCRIPT_FULLFILENAME=AFileName
82
+
83
+ #-------------------------------------------------------------------
84
+ # GSCRIPT_BASEFILENAME - Файл скрипта [имя+расширение]
85
+ #-------------------------------------------------------------------
86
+ GSCRIPT_BASEFILENAME=LUFile.ExtractFileName (AFileName)
87
+
88
+ #-------------------------------------------------------------------
89
+ # GSCRIPT_FILENAME - Файл скрипта [имя]
90
+ #-------------------------------------------------------------------
91
+ GSCRIPT_FILENAME=LUFile.ExtractFileNameWithoutExt (AFileName)
92
+
93
+ #-------------------------------------------------------------------
94
+ # GSCRIPT_FILEDIR - Файл скрипта: каталог
95
+ #-------------------------------------------------------------------
96
+ GSCRIPT_FILEDIR=LUFile.ExtractFileDir (AFileName)
97
+
98
+ #-------------------------------------------------------------------
99
+ # GSCRIPT_FILEEXT - Файл скрипта: расширение
100
+ #-------------------------------------------------------------------
101
+ GSCRIPT_FILEEXT=LUFile.ExtractFileExt (AFileName)
102
+
103
+ #-------------------------------------------------------------------
104
+ # GAPPName - APP
105
+ #-------------------------------------------------------------------
106
+ GAPPName = os.environ.get ('APPName', LUFile.ExtractFileNameWithoutExt (AFileName))
107
+ #endfunction
108
+
109
+ #--------------------------------------------------------------------------------
110
+ # procedure __SET_VAR_DEFAULT ()
111
+ #--------------------------------------------------------------------------------
112
+ def __SET_VAR_DEFAULT ():
113
+ #beginfunction
114
+ APP=''
115
+ COMMAND=''
116
+ OPTION=''
117
+ ARGS=''
118
+ APPRUN=''
119
+
120
+ touchRUN=r'touch -f'
121
+ touchRUN=r'D:\TOOLS\EXE\touch.exe'
122
+ SetINIAPP=r'D:\TOOLS\EXE\setini.exe'
123
+ GetINIAPP=r'D:\TOOLS\EXE\getini.exe'
124
+
125
+ #-------------------------------------------------------------------
126
+ # GDATETIME_STAMP - формат имени файла журнала [YYYYMMDDHHMMSS]
127
+ #-------------------------------------------------------------------
128
+ # DATETIME_STAMP=%date:~6,4%%date:~3,2%%date:~0,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
129
+
130
+ #-------------------------------------------------------------------
131
+ # GSLEEP - Number
132
+ #-------------------------------------------------------------------
133
+ GSLEEP=0
134
+
135
+ #-------------------------------------------------------------------
136
+ # GREPO_INI - Файл с параметрами репозитария
137
+ #-------------------------------------------------------------------
138
+ GREPO_INI='REPO.ini'
139
+
140
+ #-------------------------------------------------------------------
141
+ # GREPO_NAME - Имя репозитария
142
+ #-------------------------------------------------------------------
143
+ GREPO_NAME=''
144
+
145
+ #-------------------------------------------------------------------
146
+ # GPROJECT_INI - Файл с параметрами проекта
147
+ #-------------------------------------------------------------------
148
+ GPROJECT_INI='PROJECT.ini'
149
+
150
+ #-------------------------------------------------------------------
151
+ # GPROJECT_NAME - Имя проекта
152
+ #-------------------------------------------------------------------
153
+ GPROJECT_NAME=''
154
+
155
+ #-------------------------------------------------------------------
156
+ # GPOETRY_INI - Файл с параметрами проекта
157
+ #-------------------------------------------------------------------
158
+ GPOETRY_INI='POETRY.ini'
159
+
160
+ #-------------------------------------------------------------------
161
+ # GPOETRY_NAME - Имя проекта
162
+ #-------------------------------------------------------------------
163
+ GPOETRY_NAME=''
164
+ #endfunction
165
+
166
+ #--------------------------------------------------------------------------------
167
+ #procedure __SET_VAR_PROJECTS ()
168
+ #--------------------------------------------------------------------------------
169
+ def __SET_VAR_PROJECTS ():
170
+ #beginfunction
171
+ #-------------------------------------------------------------------
172
+ # GPROJECTS_LYR_DIR -
173
+ #-------------------------------------------------------------------
174
+ GPROJECTS_LYR_DIR=r'D:\PROJECTS_LYR'
175
+
176
+ #-------------------------------------------------------------------
177
+ # GPROJECT - проект
178
+ #-------------------------------------------------------------------
179
+ GPROJECT=''
180
+
181
+ #-------------------------------------------------------------------
182
+ # GPROJECT_DIR -
183
+ #-------------------------------------------------------------------
184
+ GPROJECT_DIR=''
185
+
186
+ #-------------------------------------------------------------------
187
+ # GCURRENT_SYSTEM -
188
+ #-------------------------------------------------------------------
189
+ # GCURRENT_SYSTEM=%OS%
190
+
191
+ #-------------------------------------------------------------------
192
+ # GUNAME - COMPUTERNAME
193
+ #-------------------------------------------------------------------
194
+ # GUNAME=%COMPUTERNAME%
195
+
196
+ #-------------------------------------------------------------------
197
+ # GUSERNAME - USERNAME
198
+ #-------------------------------------------------------------------
199
+ # GUSERNAME=%USERNAME%
200
+
201
+ #-------------------------------------------------------------------
202
+ # GCURRENT_DIR - Текущий каталог
203
+ #-------------------------------------------------------------------
204
+ # GCURRENT_DIR=%CD%
205
+
206
+ #-------------------------------------------------------------------
207
+ # GTEMP_DIR - Временный каталог
208
+ #-------------------------------------------------------------------
209
+ # GTEMP_DIR=%temp%
210
+ #endfunction
211
+
212
+ #--------------------------------------------------------------------------------
213
+ #procedure __SET_LOG ()
214
+ #--------------------------------------------------------------------------------
215
+ def __SET_LOG ():
216
+ #beginfunction
217
+ global GDirectoryLOG
218
+ global GFileNameLOG
219
+ global GFileNameLOGjson
220
+
221
+ #------------------------------------------------------
222
+ # GLOG_FILESCRIPT - Файл первого скрипта [имя]
223
+ #------------------------------------------------------
224
+ GLOG_FILESCRIPT=''
225
+
226
+ #-------------------------------------------------------------------
227
+ # GLOG_DT_FORMAT_DEFAULT -
228
+ #-------------------------------------------------------------------
229
+ # GLOG_DT_FORMAT_DEFAULT='%Y%m%d'
230
+ # GLOG_DT_FORMAT_DEFAULT=%date:~6,4%%date:~3,2%%date:~0,2%
231
+
232
+ #-------------------------------------------------------------------
233
+ # GLOG_FILE_ADD - Параметры журнала [0]
234
+ #-------------------------------------------------------------------
235
+ # if not defined GLOG_FILE_ADD (
236
+ # GLOG_FILE_ADD=0
237
+ # )
238
+
239
+ #-------------------------------------------------------------------
240
+ # GLOG_FILE_DT - Параметры журнала [0]
241
+ #-------------------------------------------------------------------
242
+ # if not defined GLOG_FILE_DT (
243
+ # GLOG_FILE_DT=0
244
+ # )
245
+
246
+ #-------------------------------------------------------------------
247
+ # GLOG_DT_FORMAT -
248
+ #-------------------------------------------------------------------
249
+ # GLOG_DT_FORMAT=
250
+ # if not defined GLOG_DT_FORMAT (
251
+ # LOG_DT_FORMAT=!GLOG_DT_FORMAT_DEFAULT!
252
+ # )
253
+
254
+ #-------------------------------------------------------------------
255
+ # GLOG_FILENAME_FORMAT - Формат имени файла журнала [FILENAME,DATETIME,...]
256
+ #-------------------------------------------------------------------
257
+ # GLOG_FILENAME_FORMAT=
258
+ # if not defined GLOG_FILENAME_FORMAT (
259
+ # GLOG_FILENAME_FORMAT='FILENAME'
260
+ # )
261
+
262
+ #-------------------------------------------------------------------
263
+ # GLOG_DIR - Каталог журнала [каталог]
264
+ #-------------------------------------------------------------------
265
+ # if not defined GLOG_DIR (
266
+ # GLOG_DIR=!GPROJECTS_LYR_DIR!\LOGS
267
+ # )
268
+ # if not exist !GLOG_DIR! (
269
+ # mkdir "!GLOG_DIR!"
270
+ # if not !ERRORLEVEL! EQU 0 (
271
+ # echo ERROR: Dir !LOG_DIR! not created...
272
+ # exit /b 1
273
+ # )
274
+ # )
275
+
276
+ #-------------------------------------------------------------------
277
+ # GLOG_FILENAME - Файл журнала [имя]
278
+ #-------------------------------------------------------------------
279
+ # if not defined GLOG_FILENAME (
280
+ # if "!GLOG_FILENAME_FORMAT!"=="FILENAME" (
281
+ # GLOG_FILENAME=!GSCRIPT_FILENAME!
282
+ # ) else (
283
+ # if "!GLOG_FILENAME_FORMAT!"=="DATETIME" (
284
+ # GLOG_FILENAME=!GDATETIME_STAMP!
285
+ # ) else (
286
+ # echo ERROR: GLOG_FILENAME_FORMAT not set...
287
+ # exit /b 1
288
+ # )
289
+ # )
290
+ # )
291
+ # if "!GLOG_FILENAME_FORMAT!"=="FILENAME" (
292
+ # if GLOG_FILE_DT==1 (
293
+ # GLOG_FILENAME=!GDATETIME_STAMP!_!GLOG_FILENAME!
294
+ # )
295
+ # )
296
+
297
+ #-------------------------------------------------------------------
298
+ # GLOG_FULLFILENAME - Файл журнала [каталог+имя+расширение]
299
+ #-------------------------------------------------------------------
300
+ # GLOG_FULLFILENAME=!GLOG_DIR!\!GLOG_FILENAME!.log
301
+
302
+ #-------------------------------------------------------------------
303
+ # GDirectoryLOG - Каталог журнала
304
+ #-------------------------------------------------------------------
305
+ GDirectoryLOG = os.environ.get ('DirectoryLOG', '')
306
+ if GDirectoryLOG == '' or not LUFile.DirectoryExists (GDirectoryLOG):
307
+ GDirectoryLOG = r'D:\PROJECTS_LYR\LOGS'
308
+ #endif
309
+ #-------------------------------------------------------------------
310
+ # GFileNameLOG - Файл журнала
311
+ #-------------------------------------------------------------------
312
+ GFileNameLOG = os.environ.get ('FileNameLOG', GAPPName + '.log')
313
+ GFileNameLOGjson = os.environ.get ('FileNameLOGjson', GAPPName + '_json.log')
314
+ #endfunction
315
+
316
+ # #-------------------------------------------------------------------------------
317
+ # # SET_CONST
318
+ # #-------------------------------------------------------------------------------
319
+ # def SET_CONST (AFileName: str):
320
+ # #beginfunction
321
+ # global GAPPName
322
+ # global GDirectoryLOG
323
+ # global GFileNameLOG
324
+ # global GFileNameLOGjson
325
+ #
326
+ # GAPPName = os.environ.get ('APPName', LUFile.ExtractFileNameWithoutExt (AFileName))
327
+ #
328
+ # #-------------------------------------------------------------------
329
+ # #DirectoryLOG - Каталог журнала
330
+ # #-------------------------------------------------------------------
331
+ # GDirectoryLOG = os.environ.get ('DirectoryLOG', '')
332
+ # if GDirectoryLOG == '' or not LUFile.DirectoryExists (GDirectoryLOG):
333
+ # GDirectoryLOG = r'D:\PROJECTS_LYR\LOGS'
334
+ # #endif
335
+ # #-------------------------------------------------------------------
336
+ # #FileNameLOG - Файл журнала
337
+ # #-------------------------------------------------------------------
338
+ # GFileNameLOG = os.environ.get ('FileNameLOG', GAPPName + '.log')
339
+ # GFileNameLOGjson = os.environ.get ('FileNameLOGjson', GAPPName + '_json.log')
340
+ # #endfunction
341
+
342
+ #-------------------------------------------------------------------------------
343
+ #
344
+ #-------------------------------------------------------------------------------
345
+ def main ():
346
+ #beginfunction
347
+ print('main LUConst.py ...')
348
+ #endfunction
349
+
350
+ #------------------------------------------
351
+ #
352
+ #------------------------------------------
353
+ #beginmodule
354
+ if __name__ == "__main__":
355
+ main()
356
+ #endif
357
+
358
+ #endmodule
@@ -0,0 +1,205 @@
1
+ """LUDateTime.py"""
2
+ # -*- coding: UTF-8 -*-
3
+ __annotations__ = """
4
+ =======================================================
5
+ Copyright (c) 2023-2024
6
+ Author:
7
+ Lisitsin Y.R.
8
+ Project:
9
+ LU_PY
10
+ Python (LU)
11
+ Module:
12
+ LUDateTime.py
13
+
14
+ =======================================================
15
+ """
16
+
17
+ #------------------------------------------
18
+ # БИБЛИОТЕКИ python
19
+ #------------------------------------------
20
+ import datetime
21
+ import calendar
22
+ import platform
23
+
24
+ #------------------------------------------
25
+ # БИБЛИОТЕКИ сторонние
26
+ #------------------------------------------
27
+
28
+ #------------------------------------------
29
+ # БИБЛИОТЕКИ LU
30
+ #------------------------------------------
31
+ import lyrpy.LUStrUtils as LUStrUtils
32
+
33
+ #------------------------------------------
34
+ # CONST
35
+ #------------------------------------------
36
+ cFormatDateTimeLog01 = ('%H:%M:%S', '%d/%m/%Y %H:%M:%S')
37
+ cFormatDateTimeLog02 = ('%H%M%S', '%Y%m%d %H%M%S')
38
+ cFormatDateTimeLog04 = ('', '%Y%m%d%H%M%S%f')
39
+ cFormatDateTimeLog05 = ('%d/%m/%Y %H:%M:%S', '%H:%M:%S')
40
+
41
+ cFormatDateYYMMDD_01 = ('', '%Y%m%d')
42
+ cFormatDateYYMM_01 = ('', '%Y%m')
43
+
44
+ if platform.system() == 'Windows':
45
+ cFormatDateYYMMDD_02 = ('', r'%Y\%m\%d')
46
+ cFormatDateYYMM_02 = ('', r'%Y\%m')
47
+ #endif
48
+ if platform.system() == 'Linux':
49
+ cFormatDateYYMMDD_02 = ('', r'%Y/%m/%d')
50
+ cFormatDateYYMM_02 = ('', r'%Y/%m')
51
+ #endif
52
+
53
+ #---------------------------------------------------------------
54
+ # Now
55
+ #---------------------------------------------------------------
56
+ def Now () -> datetime:
57
+ """Now"""
58
+ #beginfunction
59
+ LResult = datetime.datetime.now ()
60
+ return LResult
61
+ #endfunction
62
+
63
+ #---------------------------------------------------------------
64
+ # DateTimeStr
65
+ #---------------------------------------------------------------
66
+ def DateTimeStr (ATimeOnly: bool, ADateTime: datetime.datetime, AFormat: (), Amsecs: bool) -> str:
67
+ """DateTimeStr"""
68
+ #beginfunction
69
+ msecs = ADateTime.microsecond
70
+ msecs = msecs // 1000
71
+ smsecs = LUStrUtils.AddChar('0', str(msecs), 3)
72
+ # ct = time.time ()
73
+ # msecs = int((ct - int(ct)) * 1000) + 0.0 # see gh-89047
74
+ if ATimeOnly:
75
+ if Amsecs:
76
+ LResult = ADateTime.strftime (AFormat[0]+' '+smsecs)
77
+ else:
78
+ LResult = ADateTime.strftime (AFormat [0])
79
+ #endif
80
+ else:
81
+ if Amsecs:
82
+ LResult = ADateTime.strftime (AFormat[1]+' '+smsecs)
83
+ else:
84
+ LResult = ADateTime.strftime (AFormat[1])
85
+ #endif
86
+ #endif
87
+ return LResult
88
+ #endfunction
89
+
90
+ #---------------------------------------------------------------
91
+ # DecodeDate
92
+ #---------------------------------------------------------------
93
+ def DecodeDate (ADateTime: datetime.datetime):
94
+ """DecodeDate"""
95
+ #beginfunction
96
+ LDate = ADateTime
97
+ LTuple = (LDate.year, LDate.month, LDate.day)
98
+ return LTuple
99
+ #endfunction
100
+
101
+ #---------------------------------------------------------------
102
+ # EncodeDate
103
+ #---------------------------------------------------------------
104
+ def EncodeDate (AYear: int, AMonth: int, ADay: int) -> datetime.date:
105
+ """EncodeDate"""
106
+ #beginfunction
107
+ return datetime.date(AYear, AMonth, ADay)
108
+ #endfunction
109
+
110
+ #---------------------------------------------------------------
111
+ # DecodeTime
112
+ #---------------------------------------------------------------
113
+ def DecodeTime (ADateTime: datetime.datetime):
114
+ """DecodeTime"""
115
+ #beginfunction
116
+ LTuple = (ADateTime.hour, ADateTime.minute, ADateTime.second, ADateTime.microsecond)
117
+ return LTuple
118
+ #endfunction
119
+
120
+ #---------------------------------------------------------------
121
+ # EncodeTime
122
+ #---------------------------------------------------------------
123
+ def EncodeTime (AHour: int, AMin: int, ASec: int, AMSec: int) -> datetime.time:
124
+ """EncodeTime"""
125
+ #beginfunction
126
+ return datetime.time(AHour, AMin, ASec, AMSec)
127
+ #endfunction
128
+
129
+ #---------------------------------------------------------------
130
+ # EncodeDateTime
131
+ #---------------------------------------------------------------
132
+ def EncodeDateTime (AYear: int, AMonth: int, ADay: int, AHour: int, AMin: int, ASec: int, AMSec: int) -> datetime.datetime:
133
+ """EncodeDate"""
134
+ #beginfunction
135
+ return datetime.datetime(AYear, AMonth, ADay, AHour, AMin, ASec, AMSec)
136
+ #endfunction
137
+
138
+ #---------------------------------------------------------------
139
+ # DayOfWeek
140
+ #---------------------------------------------------------------
141
+ def DayOfWeek (ADateTime: datetime.date):
142
+ """DayOfWeek"""
143
+ #beginfunction
144
+ return ADateTime.weekday()
145
+ #endfunction
146
+
147
+ #---------------------------------------------------------------
148
+ # DaysInMonth
149
+ #---------------------------------------------------------------
150
+ def DaysInMonth (AYear: int, AMonth: int):
151
+ """DaysInMonth"""
152
+ #beginfunction
153
+ return calendar.monthrange (AYear, AMonth) [1]
154
+ #endfunction
155
+
156
+ #---------------------------------------------------------------
157
+ # IsLeapYear
158
+ #---------------------------------------------------------------
159
+ def IsLeapYear(AYear: int) -> bool:
160
+ """IsLeapYear"""
161
+ #beginfunction
162
+ return (AYear % 4 == 0) and ((AYear % 100 != 0) or (AYear % 400 == 0))
163
+ #endfunction
164
+
165
+ #---------------------------------------------------------------
166
+ # DaysPerMonth
167
+ #---------------------------------------------------------------
168
+ def DaysPerMonth(AYear: int, AMonth: int) -> int:
169
+ """DaysPerMonth"""
170
+ LDaysInMonth = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
171
+ #beginfunction
172
+ LResult = LDaysInMonth[AMonth]
173
+ if (AMonth == 2) and IsLeapYear(AYear):
174
+ LResult = LResult + 1
175
+ #endif
176
+ return LResult
177
+ #endfunction
178
+
179
+ #---------------------------------------------------------------
180
+ # GenerateObjectIDStr
181
+ #---------------------------------------------------------------
182
+ def GenerateObjectIDStr (AObjectID: datetime.datetime) -> str:
183
+ """GenerateObjectIDStr"""
184
+ #beginfunction
185
+ LResult = DateTimeStr (False, AObjectID, cFormatDateTimeLog04,Amsecs = False)
186
+ return LResult
187
+ #endfunction
188
+
189
+ #---------------------------------------------------------------
190
+ # main
191
+ #---------------------------------------------------------------
192
+ def main ():
193
+ #beginfunction
194
+ print('main LUDatTime.py ...')
195
+ #endfunction
196
+
197
+ #------------------------------------------
198
+ #
199
+ #------------------------------------------
200
+ #beginmodule
201
+ if __name__ == "__main__":
202
+ main()
203
+ #endif
204
+
205
+ #endmodule