lyrpy 2024.0.4__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.
- SRC/LIB/__init__.py +21 -0
- SRC/LIB/lyrpy/LUConst.py +358 -0
- {lyrpy → SRC/LIB/lyrpy}/LUDateTime.py +2 -4
- {lyrpy → SRC/LIB/lyrpy}/LUDecotators.py +2 -3
- {lyrpy → SRC/LIB/lyrpy}/LUDict.py +0 -1
- {lyrpy → SRC/LIB/lyrpy}/LUDoc.py +4 -3
- {lyrpy → SRC/LIB/lyrpy}/LUErrors.py +0 -1
- {lyrpy → SRC/LIB/lyrpy}/LUFile.py +115 -61
- {lyrpy → SRC/LIB/lyrpy}/LUFileUtils.py +60 -45
- {lyrpy → SRC/LIB/lyrpy}/LULog.py +267 -191
- {lyrpy → SRC/LIB/lyrpy}/LUObjects.py +4 -4
- {lyrpy → SRC/LIB/lyrpy}/LUObjectsYT.py +39 -22
- {lyrpy → SRC/LIB/lyrpy}/LUParserARG.py +2 -3
- {lyrpy → SRC/LIB/lyrpy}/LUParserINI.py +8 -3
- {lyrpy → SRC/LIB/lyrpy}/LUParserREG.py +5 -1
- {lyrpy → SRC/LIB/lyrpy}/LUQThread.py +6 -4
- {lyrpy → SRC/LIB/lyrpy}/LUQTimer.py +5 -5
- {lyrpy → SRC/LIB/lyrpy}/LUSheduler.py +24 -23
- SRC/LIB/lyrpy/LUTelegram.py +428 -0
- {lyrpy → SRC/LIB/lyrpy}/LUThread.py +7 -6
- {lyrpy → SRC/LIB/lyrpy}/LUTimer.py +5 -3
- {lyrpy → SRC/LIB/lyrpy}/LUVersion.py +4 -1
- {lyrpy → SRC/LIB/lyrpy}/LUYouTube.py +6 -7
- {lyrpy → SRC/LIB/lyrpy}/LUos.py +13 -3
- SRC/LIB/lyrpy/__init__.py +21 -0
- {lyrpy → SRC/LIB/lyrpy}/__main__.py +20 -19
- SRC/__init__.py +0 -0
- SRC/lyrpy/LUConsole.py +402 -0
- SRC/lyrpy/LUConst.py +358 -0
- SRC/lyrpy/LUDateTime.py +205 -0
- SRC/lyrpy/LUDecotators.py +417 -0
- SRC/lyrpy/LUDict.py +116 -0
- SRC/lyrpy/LUDoc.py +62 -0
- SRC/lyrpy/LUErrors.py +79 -0
- SRC/lyrpy/LUFile.py +1228 -0
- SRC/lyrpy/LUFileUtils.py +501 -0
- SRC/lyrpy/LULog.py +2324 -0
- SRC/lyrpy/LUNetwork.py +277 -0
- SRC/lyrpy/LUNumUtils.py +305 -0
- SRC/lyrpy/LUObjects.py +208 -0
- SRC/lyrpy/LUObjectsYT.py +846 -0
- SRC/lyrpy/LUParserARG.py +364 -0
- SRC/lyrpy/LUParserINI.py +376 -0
- SRC/lyrpy/LUParserREG.py +514 -0
- SRC/lyrpy/LUProc.py +110 -0
- SRC/lyrpy/LUQThread.py +141 -0
- SRC/lyrpy/LUQTimer.py +197 -0
- SRC/lyrpy/LUSheduler.py +941 -0
- SRC/lyrpy/LUStrDecode.py +223 -0
- SRC/lyrpy/LUStrUtils.py +633 -0
- SRC/lyrpy/LUSupport.py +124 -0
- SRC/lyrpy/LUTelegram.py +428 -0
- SRC/lyrpy/LUThread.py +177 -0
- SRC/lyrpy/LUTimer.py +141 -0
- SRC/lyrpy/LUVersion.py +383 -0
- SRC/lyrpy/LUYouTube.py +203 -0
- SRC/lyrpy/LUos.py +807 -0
- lyrpy/LUConst.py → SRC/lyrpy/LUsys.py +12 -10
- SRC/lyrpy/__init__.py +21 -0
- lyrpy/__init__.py → SRC/lyrpy/__main__.py +2 -3
- TESTS/__init__.py +0 -0
- TESTS/test_lyrpy.py +4 -0
- TESTS/test_main.py +10 -0
- __SRC/LIB/__init__.py +0 -0
- __SRC/LIB/lyrpy/LUConsole.py +402 -0
- __SRC/LIB/lyrpy/LUConst.py +358 -0
- __SRC/LIB/lyrpy/LUDateTime.py +205 -0
- __SRC/LIB/lyrpy/LUDecotators.py +417 -0
- __SRC/LIB/lyrpy/LUDict.py +116 -0
- __SRC/LIB/lyrpy/LUDoc.py +62 -0
- __SRC/LIB/lyrpy/LUErrors.py +79 -0
- __SRC/LIB/lyrpy/LUFile.py +1228 -0
- __SRC/LIB/lyrpy/LUFileUtils.py +501 -0
- __SRC/LIB/lyrpy/LULog.py +2324 -0
- __SRC/LIB/lyrpy/LUNetwork.py +277 -0
- __SRC/LIB/lyrpy/LUNumUtils.py +305 -0
- __SRC/LIB/lyrpy/LUObjects.py +208 -0
- __SRC/LIB/lyrpy/LUObjectsYT.py +846 -0
- __SRC/LIB/lyrpy/LUParserARG.py +364 -0
- __SRC/LIB/lyrpy/LUParserINI.py +376 -0
- __SRC/LIB/lyrpy/LUParserREG.py +514 -0
- __SRC/LIB/lyrpy/LUProc.py +110 -0
- __SRC/LIB/lyrpy/LUQThread.py +141 -0
- __SRC/LIB/lyrpy/LUQTimer.py +197 -0
- __SRC/LIB/lyrpy/LUSheduler.py +941 -0
- __SRC/LIB/lyrpy/LUStrDecode.py +223 -0
- __SRC/LIB/lyrpy/LUStrUtils.py +633 -0
- __SRC/LIB/lyrpy/LUSupport.py +124 -0
- __SRC/LIB/lyrpy/LUTelegram.py +428 -0
- __SRC/LIB/lyrpy/LUThread.py +177 -0
- __SRC/LIB/lyrpy/LUTimer.py +141 -0
- __SRC/LIB/lyrpy/LUVersion.py +383 -0
- __SRC/LIB/lyrpy/LUYouTube.py +203 -0
- __SRC/LIB/lyrpy/LUos.py +807 -0
- __SRC/LIB/lyrpy/LUsys.py +47 -0
- __SRC/LIB/lyrpy/__init__.py +21 -0
- __SRC/LIB/lyrpy/__main__.py +20 -0
- __SRC/__init__.py +0 -0
- ____src/__init__.py +0 -0
- ____src/lyrpy/LUConsole.py +402 -0
- ____src/lyrpy/LUConst.py +358 -0
- ____src/lyrpy/LUDateTime.py +205 -0
- ____src/lyrpy/LUDecotators.py +417 -0
- ____src/lyrpy/LUDict.py +116 -0
- ____src/lyrpy/LUDoc.py +62 -0
- ____src/lyrpy/LUErrors.py +79 -0
- ____src/lyrpy/LUFile.py +1228 -0
- ____src/lyrpy/LUFileUtils.py +501 -0
- ____src/lyrpy/LULog.py +2324 -0
- ____src/lyrpy/LUNetwork.py +277 -0
- ____src/lyrpy/LUNumUtils.py +305 -0
- ____src/lyrpy/LUObjects.py +208 -0
- ____src/lyrpy/LUObjectsYT.py +846 -0
- ____src/lyrpy/LUParserARG.py +364 -0
- ____src/lyrpy/LUParserINI.py +376 -0
- ____src/lyrpy/LUParserREG.py +514 -0
- ____src/lyrpy/LUProc.py +110 -0
- ____src/lyrpy/LUQThread.py +141 -0
- ____src/lyrpy/LUQTimer.py +197 -0
- ____src/lyrpy/LUSheduler.py +941 -0
- ____src/lyrpy/LUStrDecode.py +223 -0
- ____src/lyrpy/LUStrUtils.py +633 -0
- ____src/lyrpy/LUSupport.py +124 -0
- ____src/lyrpy/LUTelegram.py +428 -0
- ____src/lyrpy/LUThread.py +177 -0
- ____src/lyrpy/LUTimer.py +141 -0
- ____src/lyrpy/LUVersion.py +383 -0
- ____src/lyrpy/LUYouTube.py +203 -0
- ____src/lyrpy/LUos.py +807 -0
- ____src/lyrpy/LUsys.py +47 -0
- ____src/lyrpy/__init__.py +21 -0
- ____src/lyrpy/__main__.py +20 -0
- lyrpy-2025.0.2.dist-info/METADATA +21 -0
- lyrpy-2025.0.2.dist-info/RECORD +145 -0
- {lyrpy-2024.0.4.dist-info → lyrpy-2025.0.2.dist-info}/WHEEL +1 -1
- lyrpy-2025.0.2.dist-info/top_level.txt +2 -0
- lyrpy-2024.0.4.data/data/data/text.txt +0 -1
- lyrpy-2024.0.4.dist-info/METADATA +0 -44
- lyrpy-2024.0.4.dist-info/RECORD +0 -38
- lyrpy-2024.0.4.dist-info/top_level.txt +0 -1
- {lyrpy → SRC/LIB/lyrpy}/LUConsole.py +0 -0
- {lyrpy → SRC/LIB/lyrpy}/LUNetwork.py +0 -0
- {lyrpy → SRC/LIB/lyrpy}/LUNumUtils.py +0 -0
- {lyrpy → SRC/LIB/lyrpy}/LUProc.py +0 -0
- {lyrpy → SRC/LIB/lyrpy}/LUStrDecode.py +0 -0
- {lyrpy → SRC/LIB/lyrpy}/LUStrUtils.py +0 -0
- {lyrpy → SRC/LIB/lyrpy}/LUSupport.py +0 -0
- {lyrpy → SRC/LIB/lyrpy}/LUsys.py +0 -0
- {lyrpy-2024.0.4.dist-info → lyrpy-2025.0.2.dist-info/licenses}/LICENSE +0 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
"""LUParserARG.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
|
+
LUParserARG.py
|
|
13
|
+
|
|
14
|
+
=======================================================
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
#------------------------------------------
|
|
18
|
+
# БИБЛИОТЕКИ python
|
|
19
|
+
#------------------------------------------
|
|
20
|
+
import sys
|
|
21
|
+
import argparse
|
|
22
|
+
|
|
23
|
+
# re - Regular expression operations
|
|
24
|
+
import re
|
|
25
|
+
|
|
26
|
+
#------------------------------------------
|
|
27
|
+
# БИБЛИОТЕКИ сторонние
|
|
28
|
+
#------------------------------------------
|
|
29
|
+
|
|
30
|
+
#------------------------------------------
|
|
31
|
+
# БИБЛИОТЕКА LU
|
|
32
|
+
#------------------------------------------
|
|
33
|
+
import lyrpy.LULog as LULog
|
|
34
|
+
|
|
35
|
+
#------------------------------------------
|
|
36
|
+
# Разбор аргументов
|
|
37
|
+
#------------------------------------------
|
|
38
|
+
cSwitchChars = ('-', '/')
|
|
39
|
+
|
|
40
|
+
class TArgParser (argparse.ArgumentParser):
|
|
41
|
+
"""TArgParser"""
|
|
42
|
+
luClassName = 'TArgParser'
|
|
43
|
+
|
|
44
|
+
#--------------------------------------------------
|
|
45
|
+
# constructor
|
|
46
|
+
#--------------------------------------------------
|
|
47
|
+
def __init__ (self, **kwargs):
|
|
48
|
+
""" Constructor """
|
|
49
|
+
#beginfunction
|
|
50
|
+
super ().__init__ (**kwargs)
|
|
51
|
+
self.__FArgs: argparse.Namespace = None
|
|
52
|
+
self.__FArgsUnknown: argparse.Namespace = None
|
|
53
|
+
self.__FArgsDICT = {}
|
|
54
|
+
...
|
|
55
|
+
#endfunction
|
|
56
|
+
|
|
57
|
+
#--------------------------------------------------
|
|
58
|
+
# destructor
|
|
59
|
+
#--------------------------------------------------
|
|
60
|
+
def __del__ (self):
|
|
61
|
+
""" destructor """
|
|
62
|
+
#beginfunction
|
|
63
|
+
LClassName = self.__class__.__name__
|
|
64
|
+
s = '{} уничтожен'.format (LClassName)
|
|
65
|
+
# LULog.LoggerTOOLS_AddLevel (LULog.DEBUGTEXT, s)
|
|
66
|
+
#print (s)
|
|
67
|
+
#endfunction
|
|
68
|
+
|
|
69
|
+
#--------------------------------------------------
|
|
70
|
+
# @property ArgParser
|
|
71
|
+
#--------------------------------------------------
|
|
72
|
+
# getter
|
|
73
|
+
@property
|
|
74
|
+
def ArgParser(self):
|
|
75
|
+
#beginfunction
|
|
76
|
+
return self
|
|
77
|
+
#endfunction
|
|
78
|
+
|
|
79
|
+
#--------------------------------------------------
|
|
80
|
+
# @property ArgsDICT
|
|
81
|
+
#--------------------------------------------------
|
|
82
|
+
@property
|
|
83
|
+
# getter
|
|
84
|
+
def ArgsDICT (self):
|
|
85
|
+
#beginfunction
|
|
86
|
+
return self.__FArgsDICT
|
|
87
|
+
#endfunction
|
|
88
|
+
@ArgsDICT.setter
|
|
89
|
+
def ArgsDICT (self, Value):
|
|
90
|
+
#beginfunction
|
|
91
|
+
self.__FArgsDICT = Value
|
|
92
|
+
#endfunction
|
|
93
|
+
|
|
94
|
+
#--------------------------------------------------
|
|
95
|
+
# @property Args
|
|
96
|
+
#--------------------------------------------------
|
|
97
|
+
@property
|
|
98
|
+
# getter
|
|
99
|
+
def Args (self) -> argparse.Namespace:
|
|
100
|
+
#beginfunction
|
|
101
|
+
return self.__FArgs
|
|
102
|
+
#endfunction
|
|
103
|
+
@Args.setter
|
|
104
|
+
def Args (self, Value: argparse.Namespace):
|
|
105
|
+
#beginfunction
|
|
106
|
+
self.__FArgs = Value
|
|
107
|
+
#endfunction
|
|
108
|
+
|
|
109
|
+
#--------------------------------------------------
|
|
110
|
+
# @property ArgsUnknown
|
|
111
|
+
#--------------------------------------------------
|
|
112
|
+
@property
|
|
113
|
+
# getter
|
|
114
|
+
def ArgsUnknown (self) -> argparse.Namespace:
|
|
115
|
+
#beginfunction
|
|
116
|
+
return self.__FArgsUnknown
|
|
117
|
+
#endfunction
|
|
118
|
+
@ArgsUnknown.setter
|
|
119
|
+
def ArgsUnknown (self, Value: argparse.Namespace):
|
|
120
|
+
#beginfunction
|
|
121
|
+
self.__FArgsUnknown = Value
|
|
122
|
+
#endfunction
|
|
123
|
+
|
|
124
|
+
def Clear (self):
|
|
125
|
+
#beginfunction
|
|
126
|
+
...
|
|
127
|
+
#endfunction
|
|
128
|
+
|
|
129
|
+
def ReadARGS (self, AARGS: dict):
|
|
130
|
+
|
|
131
|
+
def GetARG (AARGName, AARGValue):
|
|
132
|
+
#beginfunction
|
|
133
|
+
LResult = AARGS.get (AARGName).get (AARGValue)
|
|
134
|
+
# try:
|
|
135
|
+
# LResult = AARGS [AARGName] [AARGValue]
|
|
136
|
+
# except:
|
|
137
|
+
# LResult = None
|
|
138
|
+
# #endtry
|
|
139
|
+
return LResult
|
|
140
|
+
#endfunction
|
|
141
|
+
|
|
142
|
+
#beginfunction
|
|
143
|
+
for name, value in AARGS.items ():
|
|
144
|
+
# s = f"{name}={value}"
|
|
145
|
+
#print (s)
|
|
146
|
+
LArg = self.add_argument (GetARG (name, 'name'),
|
|
147
|
+
dest = GetARG (name, 'dest'),
|
|
148
|
+
type = GetARG (name, 'type'),
|
|
149
|
+
default = GetARG (name, 'default'),
|
|
150
|
+
help = GetARG (name, 'help'),
|
|
151
|
+
action = GetARG (name, 'action'),
|
|
152
|
+
choices = GetARG (name, 'choices')
|
|
153
|
+
)
|
|
154
|
+
#endfor
|
|
155
|
+
|
|
156
|
+
# GArgParser.Args = GArgParser.ArgParser.parse_args (['-ld', '1'], namespace = C)
|
|
157
|
+
|
|
158
|
+
# self.Args = self.ArgParser.parse_args ()
|
|
159
|
+
self.Args, self.ArgsUnknown = self.parse_known_args ()
|
|
160
|
+
#print (self.Args)
|
|
161
|
+
|
|
162
|
+
self.ArgsDICT = vars (self.Args)
|
|
163
|
+
#print (self.ArgsDICT)
|
|
164
|
+
|
|
165
|
+
# for item in self.Args:
|
|
166
|
+
# ...
|
|
167
|
+
# GArgParser.ArgsDICT = {'-ld': GArgParser.Args.ld, '-lf': GArgParser.Args.lf,
|
|
168
|
+
# '-lfj': GArgParser.Args.lfj, '-ini': GArgParser.Args.ini}
|
|
169
|
+
|
|
170
|
+
#endfunction
|
|
171
|
+
#endclass
|
|
172
|
+
|
|
173
|
+
"""
|
|
174
|
+
--------------------------------------
|
|
175
|
+
ArgumentParser objects
|
|
176
|
+
--------------------------------------
|
|
177
|
+
class argparse.ArgumentParser(prog=None, usage=None, description=None,
|
|
178
|
+
epilog=None, parents=[], formatter_class=argparse.HelpFormatter,
|
|
179
|
+
prefix_chars='-', fromfile_prefix_chars=None, argument_default=None,
|
|
180
|
+
conflict_handler='error', add_help=True, allow_abbrev=True, exit_on_error=True)
|
|
181
|
+
|
|
182
|
+
prog - имя программы (по умолчанию: os.path.basename(sys.argv[0]))
|
|
183
|
+
usage - Строка, описывающая использование программы (по умолчанию: генерируется из аргументов, добавленных в парсер)
|
|
184
|
+
description - текст для отображения перед аргументом help (по умолчанию без текста)
|
|
185
|
+
epilog - текст для отображения после справки аргумента (по умолчанию без текста)
|
|
186
|
+
parents - список объектов ArgumentParser, чьи аргументы также должны быть включены
|
|
187
|
+
formatter_class - класс для настройки вывода справки
|
|
188
|
+
prefix_chars - набор символов, которые предшествуют необязательным аргументам (по умолчанию: «-»).
|
|
189
|
+
fromfile_prefix_chars - набор символов, которые префиксируют файлы,
|
|
190
|
+
из которых должны быть прочитаны дополнительные аргументы (по умолчанию: нет)
|
|
191
|
+
argument_default - глобальное значение по умолчанию для аргументов (по умолчанию: None)
|
|
192
|
+
conflict_handler - стратегия разрешения конфликтующих опций (обычно ненужных)
|
|
193
|
+
add_help - добавить параметр -h/--help в парсер (по умолчанию: True)
|
|
194
|
+
allow_abbrev - позволяет сокращать длинные параметры, если аббревиатура недвусмысленна. (по умолчанию: Истина)
|
|
195
|
+
exit_on_error - определяет, завершается ли ArgumentParser с информацией об ошибке при возникновении ошибки.
|
|
196
|
+
(по умолчанию: Истина)
|
|
197
|
+
"""
|
|
198
|
+
|
|
199
|
+
"""
|
|
200
|
+
--------------------------------------
|
|
201
|
+
The add_argument() method
|
|
202
|
+
ArgumentParser.add_argument(name or flags...[, action][, nargs]
|
|
203
|
+
[, const][, default][, type][, choices][, required][, help][, metavar][, dest])
|
|
204
|
+
--------------------------------------
|
|
205
|
+
name or flags - либо имя, либо список строк параметров, например. foo или -f, --foo.
|
|
206
|
+
action - основной тип действия, которое необходимо предпринять, когда этот аргумент встречается в командной строке.
|
|
207
|
+
'store', 'store_const', 'store_true', 'append', 'append_const', 'count', 'help', 'version'
|
|
208
|
+
nargs - количество аргументов командной строки, которые следует использовать.
|
|
209
|
+
int, '?', '*', '+', or argparse.REMAINDER
|
|
210
|
+
const - постоянное значение, необходимое для выбора некоторых действий и nargs.
|
|
211
|
+
default - значение, создаваемое, если аргумент отсутствует в командной строке и если он
|
|
212
|
+
отсутствует в объекте пространства имен. Defaults to None.
|
|
213
|
+
type - Тип, в который должен быть преобразован аргумент командной строки.
|
|
214
|
+
int, float, argparse.FileType('w'), or callable function
|
|
215
|
+
choices - последовательность допустимых значений аргумента.
|
|
216
|
+
['foo', 'bar'], range(1, 10), or Container instance
|
|
217
|
+
required - можно ли опустить параметр командной строки (только необязательные параметры).
|
|
218
|
+
True or False
|
|
219
|
+
help - Краткое описание того, что делает аргумент.
|
|
220
|
+
metavar - имя аргумента в сообщениях об использовании.
|
|
221
|
+
dest - имя атрибута, который будет добавлен к объекту, возвращаемому функцией parse_args().
|
|
222
|
+
|
|
223
|
+
LArg = GArgParser.add_argument (
|
|
224
|
+
'-ld', dest='ld',
|
|
225
|
+
type=str, default='',
|
|
226
|
+
help = 'log dir',
|
|
227
|
+
|
|
228
|
+
action='store', required=True,
|
|
229
|
+
# action='store_const', const=True
|
|
230
|
+
# action='store_true',
|
|
231
|
+
# action='store_false',
|
|
232
|
+
|
|
233
|
+
nargs = '+',
|
|
234
|
+
# nargs = '?', const='',
|
|
235
|
+
|
|
236
|
+
# choices=[],
|
|
237
|
+
metavar = 'LDM'
|
|
238
|
+
)
|
|
239
|
+
"""
|
|
240
|
+
|
|
241
|
+
"""
|
|
242
|
+
--------------------------------------
|
|
243
|
+
The parse_args() method
|
|
244
|
+
--------------------------------------
|
|
245
|
+
ArgumentParser.parse_args(args=None, namespace=None)
|
|
246
|
+
args - Список строк для разбора. Значение по умолчанию берется из sys.argv.
|
|
247
|
+
namespace - Объект для получения атрибутов. По умолчанию используется новый пустой объект пространства имен.
|
|
248
|
+
----------------------------------
|
|
249
|
+
"""
|
|
250
|
+
|
|
251
|
+
#------------------------------------------------------
|
|
252
|
+
""" Работа со параметрами программы """
|
|
253
|
+
#------------------------------------------------------
|
|
254
|
+
|
|
255
|
+
#------------------------------------------------------
|
|
256
|
+
# __GetCmdLineArg
|
|
257
|
+
#------------------------------------------------------
|
|
258
|
+
def __GetCmdLineArg (ASwitch: str, ASwitchChars: (), AIgnoreCase: bool) -> str:
|
|
259
|
+
"""__GetCmdLineArg"""
|
|
260
|
+
#beginfunction
|
|
261
|
+
i = 0
|
|
262
|
+
for s in sys.argv:
|
|
263
|
+
i = i + 1
|
|
264
|
+
if len(ASwitchChars) == 0 or ((s[0] in ASwitchChars) and (len(s) > 1)):
|
|
265
|
+
s = re.split('|'.join(ASwitchChars), s)[1]
|
|
266
|
+
if AIgnoreCase:
|
|
267
|
+
if s.upper() == ASwitch.upper():
|
|
268
|
+
if i < len(sys.argv):
|
|
269
|
+
s = sys.argv[i]
|
|
270
|
+
if s[0] in ASwitchChars:
|
|
271
|
+
return ''
|
|
272
|
+
else:
|
|
273
|
+
return s
|
|
274
|
+
#endif
|
|
275
|
+
#endif
|
|
276
|
+
#endif
|
|
277
|
+
else:
|
|
278
|
+
if s == ASwitch:
|
|
279
|
+
i = i + 1
|
|
280
|
+
if i <= len(sys.argv):
|
|
281
|
+
s = sys.argv[i]
|
|
282
|
+
if s[0] in ASwitchChars:
|
|
283
|
+
return ''
|
|
284
|
+
else:
|
|
285
|
+
return s
|
|
286
|
+
#endif
|
|
287
|
+
#endif
|
|
288
|
+
#endif
|
|
289
|
+
#endif
|
|
290
|
+
#endfor
|
|
291
|
+
return ''
|
|
292
|
+
#endfunction
|
|
293
|
+
|
|
294
|
+
#------------------------------------------------------
|
|
295
|
+
# FindCmdLineSwitch
|
|
296
|
+
#------------------------------------------------------
|
|
297
|
+
def FindCmdLineSwitch (ASwitch: str, ASwitchChars: (), AIgnoreCase: bool) -> bool:
|
|
298
|
+
"""FindCmdLineSwitch"""
|
|
299
|
+
#beginfunction
|
|
300
|
+
i = 0
|
|
301
|
+
for s in sys.argv:
|
|
302
|
+
i = i + 1
|
|
303
|
+
if len(ASwitchChars) == 0 or ((s[0] in ASwitchChars) and (len(s) > 1)):
|
|
304
|
+
s = re.split('|'.join(ASwitchChars), s)[1]
|
|
305
|
+
if AIgnoreCase:
|
|
306
|
+
if s.upper() == ASwitch.upper():
|
|
307
|
+
return True
|
|
308
|
+
#endif
|
|
309
|
+
else:
|
|
310
|
+
if s == ASwitch:
|
|
311
|
+
return True
|
|
312
|
+
#endif
|
|
313
|
+
#endif
|
|
314
|
+
#endif
|
|
315
|
+
#endfor
|
|
316
|
+
return False
|
|
317
|
+
#endfunction
|
|
318
|
+
|
|
319
|
+
#---------------------------------------------------------
|
|
320
|
+
# GetParam
|
|
321
|
+
#---------------------------------------------------------
|
|
322
|
+
def GetParam (AParamName: str, ADefaultValue: str) -> str:
|
|
323
|
+
"""GetParam"""
|
|
324
|
+
#beginfunction
|
|
325
|
+
LResult = ADefaultValue
|
|
326
|
+
if FindCmdLineSwitch (AParamName, cSwitchChars, True):
|
|
327
|
+
LParamValue: str = __GetCmdLineArg (AParamName, cSwitchChars, True)
|
|
328
|
+
LResult = LParamValue
|
|
329
|
+
#endif
|
|
330
|
+
return LResult
|
|
331
|
+
#endfunction
|
|
332
|
+
|
|
333
|
+
#---------------------------------------------------------
|
|
334
|
+
# CreateTArgParser
|
|
335
|
+
#---------------------------------------------------------
|
|
336
|
+
def CreateTArgParser (AProg: str, ADescrption: str) -> TArgParser:
|
|
337
|
+
"""CreateTArgParser"""
|
|
338
|
+
#beginfunction
|
|
339
|
+
LResult = TArgParser (prog = AProg, description=ADescrption, prefix_chars='-/',
|
|
340
|
+
usage = None, epilog = None, parents = [], formatter_class = argparse.HelpFormatter,
|
|
341
|
+
fromfile_prefix_chars = None, argument_default = None,
|
|
342
|
+
conflict_handler = 'error', add_help = True)
|
|
343
|
+
return LResult
|
|
344
|
+
#endfunction
|
|
345
|
+
|
|
346
|
+
GArgParser = CreateTArgParser ('LUArgParser', 'Параметры')
|
|
347
|
+
|
|
348
|
+
#---------------------------------------------------------
|
|
349
|
+
# main
|
|
350
|
+
#---------------------------------------------------------
|
|
351
|
+
def main ():
|
|
352
|
+
#beginfunction
|
|
353
|
+
...
|
|
354
|
+
#endfunction
|
|
355
|
+
|
|
356
|
+
#------------------------------------------
|
|
357
|
+
#
|
|
358
|
+
#------------------------------------------
|
|
359
|
+
#beginmodule
|
|
360
|
+
if __name__ == "__main__":
|
|
361
|
+
main()
|
|
362
|
+
#endif
|
|
363
|
+
|
|
364
|
+
#endmodule
|