rupython 1.2.11__tar.gz → 1.2.13__tar.gz

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 (26) hide show
  1. {rupython-1.2.11 → rupython-1.2.13}/PKG-INFO +4 -4
  2. {rupython-1.2.11 → rupython-1.2.13}/README.md +3 -3
  3. {rupython-1.2.11 → rupython-1.2.13}/rupython/__/320/227/320/260/320/263/320/276/320/273/320/276/320/262/320/276/321/207/320/275/321/213/320/271_/320/272/320/276/320/264__.py +49 -4
  4. {rupython-1.2.11 → rupython-1.2.13}/rupython/__/320/236/320/261/321/211/320/270/320/265_/321/204/321/203/320/275/320/272/321/206/320/270/320/270__.py +9 -0
  5. rupython-1.2.13/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/220/321/201/320/270/320/275/321/205/321/200.py +206 -0
  6. {rupython-1.2.11 → rupython-1.2.13}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/221/320/224.py +61 -76
  7. rupython-1.2.13/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/224/320/260/321/202/320/260/320/222/321/200/320/265/320/274/321/217.py +566 -0
  8. rupython-1.2.13/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/232/320/276/320/273/320/273/320/265/320/272/321/206/320/270/320/270.py +559 -0
  9. rupython-1.2.13/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/232/321/203/321/207/320/260.py +87 -0
  10. rupython-1.2.13/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/236/321/207/320/265/321/200/320/265/320/264/321/214.py +177 -0
  11. rupython-1.2.13/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/237/320/276/321/202/320/276/320/272/320/270.py +273 -0
  12. rupython-1.2.13/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/240/320/265/320/263/320/222/321/213/321/200.py +100 -0
  13. {rupython-1.2.11 → rupython-1.2.13}/rupython.egg-info/PKG-INFO +4 -4
  14. {rupython-1.2.11 → rupython-1.2.13}/rupython.egg-info/SOURCES.txt +4 -0
  15. {rupython-1.2.11 → rupython-1.2.13}/setup.py +1 -1
  16. rupython-1.2.11/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/224/320/260/321/202/320/260/320/222/321/200/320/265/320/274/321/217.py +0 -553
  17. rupython-1.2.11/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/232/320/276/320/273/320/273/320/265/320/272/321/206/320/270/320/270.py +0 -426
  18. rupython-1.2.11/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/240/320/265/320/263/320/222/321/213/321/200.py +0 -100
  19. {rupython-1.2.11 → rupython-1.2.13}/LICENSE +0 -0
  20. {rupython-1.2.11 → rupython-1.2.13}/rupython/__main__.py +0 -0
  21. {rupython-1.2.11 → rupython-1.2.13}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/234/320/260/321/202/320/265/320/274.py" +0 -0
  22. {rupython-1.2.11 → rupython-1.2.13}/rupython//320/234/320/276/320/264/321/203/320/273/320/270//320/241/320/273/321/203/321/207.py" +0 -0
  23. {rupython-1.2.11 → rupython-1.2.13}/rupython//320/237/321/200/320/265/320/276/320/261/321/200/320/260/320/267/320/276/320/262/320/260/321/202/320/265/320/273/321/214.py" +0 -0
  24. {rupython-1.2.11 → rupython-1.2.13}/rupython.egg-info/dependency_links.txt +0 -0
  25. {rupython-1.2.11 → rupython-1.2.13}/rupython.egg-info/top_level.txt +0 -0
  26. {rupython-1.2.11 → rupython-1.2.13}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rupython
3
- Version: 1.2.11
3
+ Version: 1.2.13
4
4
  Summary: Исполнитель кода Русского Питона
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -154,8 +154,8 @@ k = l это m и m это не n
154
154
  ##### Класс
155
155
  ```
156
156
  Класс Пример(Другой_класс):
157
- Функция __Подготовка__(здесь, перем = 0):
158
- здесь.зн = перем
157
+ Функция __Подготовка__(экземпляр, перем = 0):
158
+ экземпляр.зн = перем
159
159
 
160
160
  Объект = Пример(1)
161
161
  ```
@@ -240,7 +240,7 @@ x = 0
240
240
 
241
241
  ##### Контекстный менеджер
242
242
  ```
243
- ВКонтексте Открыть('Файл.дан', 'r') как файл:
243
+ Используя Открыть('Файл.дан', 'r') как файл:
244
244
  Пока стр := файл.Читать_строку():
245
245
  Вывести(стр.Удалить_по_бокам())
246
246
  ```
@@ -147,8 +147,8 @@ k = l это m и m это не n
147
147
  ##### Класс
148
148
  ```
149
149
  Класс Пример(Другой_класс):
150
- Функция __Подготовка__(здесь, перем = 0):
151
- здесь.зн = перем
150
+ Функция __Подготовка__(экземпляр, перем = 0):
151
+ экземпляр.зн = перем
152
152
 
153
153
  Объект = Пример(1)
154
154
  ```
@@ -233,7 +233,7 @@ x = 0
233
233
 
234
234
  ##### Контекстный менеджер
235
235
  ```
236
- ВКонтексте Открыть('Файл.дан', 'r') как файл:
236
+ Используя Открыть('Файл.дан', 'r') как файл:
237
237
  Пока стр := файл.Читать_строку():
238
238
  Вывести(стр.Удалить_по_бокам())
239
239
  ```
@@ -183,15 +183,15 @@ def Заменить_преобразование_в_строку(класс, ф
183
183
  setattr(Объект_типа.from_address(id(класс)), 'tp_str', Объект_типа._fields_[-1])
184
184
  Выполнить(класс, функция)
185
185
 
186
- Обёртка__Вещ_в_стр = lambda здесь: Вещ_в_стр(здесь).replace('.', ',').replace('inf', 'Бскн')
186
+ Обёртка__Вещ_в_стр = lambda экземпляр: Вещ_в_стр(экземпляр).replace('.', ',').replace('inf', 'Бскн')
187
187
  Вещ_в_стр = float.__str__
188
188
  Заменить_преобразование_в_строку(float, Обёртка__Вещ_в_стр)
189
189
 
190
- Обёртка__Логич_в_стр = lambda здесь: Логич_в_стр(здесь).replace('True', 'Да').replace('False', 'Нет')
190
+ Обёртка__Логич_в_стр = lambda экземпляр: Логич_в_стр(экземпляр).replace('True', 'Да').replace('False', 'Нет')
191
191
  Логич_в_стр = bool.__str__
192
192
  Заменить_преобразование_в_строку(bool, Обёртка__Логич_в_стр)
193
193
 
194
- Обёртка__Пусто_в_стр = lambda здесь: Пусто_в_стр(здесь).replace('None', 'Пусто')
194
+ Обёртка__Пусто_в_стр = lambda экземпляр: Пусто_в_стр(экземпляр).replace('None', 'Пусто')
195
195
  Пусто_в_стр = type(None).__str__
196
196
  Заменить_преобразование_в_строку(type(None), Обёртка__Пусто_в_стр)
197
197
 
@@ -215,7 +215,52 @@ def Свёртка(функция, перебираемое, нач_знач = N
215
215
  for эл in перебираемое: рез = функция(рез, эл)
216
216
  return рез
217
217
 
218
+ class ТрЛогич:
219
+ _instance_map = {}
220
+
221
+ def __new__(класс, название):
222
+ if название not in класс._instance_map:
223
+ класс._instance_map[название] = super().__new__(класс)
224
+ класс._instance_map[название]._name = название
225
+ return класс._instance_map[название]
226
+
227
+ def __and__(экземпляр, значение):
228
+ if not isinstance(значение, ТрЛогич):
229
+ raise TypeError("Операция 'И' возможна только между троичными логическими значениями.")
230
+ if экземпляр is Ложь or значение is Ложь: return Ложь
231
+ if экземпляр is Истина and значение is Истина: return Истина
232
+ return Неопр
233
+
234
+ def __or__(экземпляр, значение):
235
+ if not isinstance(значение, ТрЛогич):
236
+ raise TypeError("Операция 'Или' возможна только между троичными логическими значениями.")
237
+ if экземпляр is Истина or значение is Истина: return Истина
238
+ if экземпляр is Ложь and значение is Ложь: return Ложь
239
+ return Неопр
240
+
241
+ def __invert__(экземпляр):
242
+ if экземпляр is Истина: return Ложь
243
+ if экземпляр is Ложь: return Истина
244
+ return Неопр
245
+
246
+ def __eq__(экземпляр, значение):
247
+ if not isinstance(значение, ТрЛогич): return NotImplemented
248
+ return экземпляр is значение
249
+
250
+ def __bool__(экземпляр):
251
+ if экземпляр is Истина: return True
252
+ elif экземпляр is Ложь: return False
253
+ else:
254
+ raise TypeError("Невозможно преобразовать 'Неопр' в двоичное логическое значение.")
255
+
256
+ def __repr__(экземпляр):
257
+ return f"Троичное({экземпляр._name})"
258
+
259
+ def __str__(экземпляр):
260
+ return экземпляр._name
261
+
218
262
  __builtins__.update(
219
263
  __Проверить_существование__ = Проверить_существование,
220
- Свёртка = Свёртка
264
+ Свёртка = Свёртка,
265
+ Истина = ТрЛогич("Истина"), Ложь = ТрЛогич("ТрЛогич"), Неопр = ТрЛогич("Неопр")
221
266
  )
@@ -20,3 +20,12 @@ def Ожидать_нажатие_клавиши(сообщение):
20
20
  старые_настройки = termios.tcgetattr(fd)
21
21
  try: tty.setraw(fd); Система.stdin.read(1)
22
22
  finally: termios.tcsetattr(fd, termios.TCSADRAIN, старые_настройки)
23
+
24
+ def Склонение_после_числительного(число, слова):
25
+ return str(число) + ' ' + (
26
+ слова[2] if число % 100 >= 5 and число % 100 <= 20 else (
27
+ слова[0] if число % 10 == 1 else (
28
+ слова[1] if число % 10 >= 2 and число % 10 <= 4 else слова[2]
29
+ )
30
+ )
31
+ )
@@ -0,0 +1,206 @@
1
+ import queue
2
+ from rupython import __Общие_функции__
3
+
4
+ Очередь_пуста = queue.Empty
5
+ Очередь_полна = queue.Full
6
+
7
+ Словарь_параметров = {
8
+ 'максимальный_размер': 'maxsize',
9
+ 'элемент': 'item',
10
+ 'блоковать': 'block',
11
+ 'таймаут': 'timeout',
12
+ 'приоритет': 'priority'
13
+ }
14
+
15
+ Словарь_склонений = {
16
+ 'элемент': ['элемент', 'элемента', 'элементов'],
17
+ 'задача': ['задача', 'задачи', 'задач']
18
+ }
19
+
20
+ class Очередь:
21
+ def __init__(экземпляр, максимальный_размер = 0):
22
+ ИА = {'maxsize': максимальный_размер}
23
+ экземпляр._queue = queue.Queue(**ИА)
24
+
25
+ def Добавить(экземпляр, элемент, блоковать = True, таймаут = None):
26
+ ИА = {'item': элемент, 'block': блоковать}
27
+ if таймаут is not None:
28
+ ИА['timeout'] = таймаут
29
+ экземпляр._queue.put(**ИА)
30
+
31
+ def Добавить_без_блокования(экземпляр, элемент):
32
+ экземпляр._queue.put_nowait(элемент)
33
+
34
+ def Получить(экземпляр, блоковать = True, таймаут = None):
35
+ ИА = {'block': блоковать}
36
+ if таймаут is not None:
37
+ ИА['timeout'] = таймаут
38
+ return экземпляр._queue.get(**ИА)
39
+
40
+ def Получить_без_блокования(экземпляр):
41
+ return экземпляр._queue.get_nowait()
42
+
43
+ def Задача_выполнена(экземпляр):
44
+ экземпляр._queue.task_done()
45
+
46
+ def Ждать_завершения(экземпляр):
47
+ экземпляр._queue.join()
48
+
49
+ def Пустая(экземпляр):
50
+ return экземпляр._queue.empty()
51
+
52
+ def Полная(экземпляр):
53
+ return экземпляр._queue.full()
54
+
55
+ def Размер(экземпляр):
56
+ return экземпляр._queue.qsize()
57
+
58
+ def __len__(экземпляр):
59
+ return экземпляр._queue.qsize()
60
+
61
+ def __str__(экземпляр):
62
+ размер = экземпляр.Размер()
63
+ return f"Очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
64
+
65
+ def В_строку_с_задачами(экземпляр):
66
+ размер = экземпляр.Размер()
67
+ return f"Очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"
68
+
69
+ class Стековая_очередь:
70
+ def __init__(экземпляр, максимальный_размер = 0):
71
+ ИА = {'maxsize': максимальный_размер}
72
+ экземпляр._queue = queue.LifoQueue(**ИА)
73
+
74
+ def Добавить(экземпляр, элемент, блоковать = True, таймаут = None):
75
+ ИА = {'item': элемент, 'block': блоковать}
76
+ if таймаут is not None:
77
+ ИА['timeout'] = таймаут
78
+ экземпляр._queue.put(**ИА)
79
+
80
+ def Добавить_без_блокования(экземпляр, элемент):
81
+ экземпляр._queue.put_nowait(элемент)
82
+
83
+ def Получить(экземпляр, блоковать = True, таймаут = None):
84
+ ИА = {'block': блоковать}
85
+ if таймаут is not None:
86
+ ИА['timeout'] = таймаут
87
+ return экземпляр._queue.get(**ИА)
88
+
89
+ def Получить_без_блокования(экземпляр):
90
+ return экземпляр._queue.get_nowait()
91
+
92
+ def Задача_выполнена(экземпляр):
93
+ экземпляр._queue.task_done()
94
+
95
+ def Ждать_завершения(экземпляр):
96
+ экземпляр._queue.join()
97
+
98
+ def Пустая(экземпляр):
99
+ return экземпляр._queue.empty()
100
+
101
+ def Полная(экземпляр):
102
+ return экземпляр._queue.full()
103
+
104
+ def Размер(экземпляр):
105
+ return экземпляр._queue.qsize()
106
+
107
+ def __len__(экземпляр):
108
+ return экземпляр._queue.qsize()
109
+
110
+ def __str__(экземпляр):
111
+ размер = экземпляр.Размер()
112
+ return f"Стековая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
113
+
114
+ def В_строку_с_задачами(экземпляр):
115
+ размер = экземпляр.Размер()
116
+ return f"Стековая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"
117
+
118
+ class Приоритетная_очередь:
119
+ def __init__(экземпляр, максимальный_размер = 0):
120
+ ИА = {'maxsize': максимальный_размер}
121
+ экземпляр._queue = queue.PriorityQueue(**ИА)
122
+
123
+ def Добавить(экземпляр, элемент, приоритет, блоковать = True, таймаут = None):
124
+ ИА = {'item': (приоритет, элемент), 'block': блоковать}
125
+ if таймаут is not None:
126
+ ИА['timeout'] = таймаут
127
+ экземпляр._queue.put(**ИА)
128
+
129
+ def Добавить_без_блокования(экземпляр, элемент, приоритет):
130
+ экземпляр._queue.put_nowait((приоритет, элемент))
131
+
132
+ def Получить(экземпляр, блоковать = True, таймаут = None):
133
+ ИА = {'block': блоковать}
134
+ if таймаут is not None:
135
+ ИА['timeout'] = таймаут
136
+ приоритет, элемент = экземпляр._queue.get(**ИА)
137
+ return элемент
138
+
139
+ def Получить_с_приоритетом(экземпляр, блоковать = True, таймаут = None):
140
+ ИА = {'block': блоковать}
141
+ if таймаут is not None:
142
+ ИА['timeout'] = таймаут
143
+ return экземпляр._queue.get(**ИА)
144
+
145
+ def Получить_без_блокования(экземпляр):
146
+ приоритет, элемент = экземпляр._queue.get_nowait()
147
+ return элемент
148
+
149
+ def Получить_без_блокования_с_приоритетом(экземпляр):
150
+ return экземпляр._queue.get_nowait()
151
+
152
+ def Задача_выполнена(экземпляр):
153
+ экземпляр._queue.task_done()
154
+
155
+ def Ждать_завершения(экземпляр):
156
+ экземпляр._queue.join()
157
+
158
+ def Пустая(экземпляр):
159
+ return экземпляр._queue.empty()
160
+
161
+ def Полная(экземпляр):
162
+ return экземпляр._queue.full()
163
+
164
+ def Размер(экземпляр):
165
+ return экземпляр._queue.qsize()
166
+
167
+ def __len__(экземпляр):
168
+ return экземпляр._queue.qsize()
169
+
170
+ def __str__(экземпляр):
171
+ размер = экземпляр.Размер()
172
+ return f"Приоритетная_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
173
+
174
+ def В_строку_с_задачами(экземпляр):
175
+ размер = экземпляр.Размер()
176
+ return f"Приоритетная_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"
177
+
178
+ class Простая_очередь:
179
+ def __init__(экземпляр):
180
+ экземпляр._queue = queue.SimpleQueue()
181
+
182
+ def Добавить(экземпляр, элемент):
183
+ экземпляр._queue.put(элемент)
184
+
185
+ def Получить(экземпляр):
186
+ return экземпляр._queue.get()
187
+
188
+ def Получить_без_блокования(экземпляр):
189
+ return экземпляр._queue.get_nowait()
190
+
191
+ def Пустая(экземпляр):
192
+ экземпляр._queue.empty()
193
+
194
+ def Размер(экземпляр):
195
+ return экземпляр._queue.qsize()
196
+
197
+ def __len__(экземпляр):
198
+ return экземпляр._queue.qsize()
199
+
200
+ def __str__(экземпляр):
201
+ размер = экземпляр.Размер()
202
+ return f"Простая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['элемент'])}"
203
+
204
+ def В_строку_с_задачами(экземпляр):
205
+ размер = экземпляр.Размер()
206
+ return f"Простая_очередь с {__Общие_функции__.Склонение_после_числительного(размер, Словарь_склонений['задача'])}"
@@ -324,7 +324,7 @@ def Получить_токены(запрос):
324
324
  def Перевести_токены(токены):
325
325
  переведённые_токены = []
326
326
  i = 0
327
-
327
+
328
328
  while i < len(токены):
329
329
  токен = токены[i]
330
330
 
@@ -338,30 +338,15 @@ def Перевести_токены(токены):
338
338
  найдено_ключевое_слово = False
339
339
  for длина in range(5, 0, -1):
340
340
  if i + длина <= len(токены):
341
- фраза = ' '.join(токены[i:i + длина]).upper()
342
-
343
- for ключ, значение in Словарь_перевода.items():
344
- if '___' in ключ:
345
- шаблон = '^' + ключ.replace('___', r'(\S+)') + '$'
346
- совпадение = РегВыр.match(шаблон, фраза)
347
- if совпадение:
348
- переменная = совпадение.group(1).upper()
349
- if переменная in Словарь_перевода:
350
- переведённая_переменная = Словарь_перевода[переменная]
351
- переведённая_фраза = значение.replace('___', переведённая_переменная)
352
- переведённые_токены.append(переведённая_фраза)
353
- i += длина
354
- найдено_ключевое_слово = True
355
- break
356
-
357
- if найдено_ключевое_слово:
358
- break
359
-
341
+ фраза = ' '.join(токены[i:i + длина])
360
342
  if фраза in Словарь_перевода:
361
343
  переведённые_токены.append(Словарь_перевода[фраза])
362
344
  i += длина
363
345
  найдено_ключевое_слово = True
364
346
  break
347
+ if not найдено_ключевое_слово:
348
+ переведённые_токены.append(токен)
349
+ i += 1
365
350
 
366
351
  return переведённые_токены
367
352
 
@@ -438,68 +423,68 @@ def Перевести_ошибку(исключение):
438
423
  return f"Неизвестная ошибка: {сообщение}"
439
424
 
440
425
  class Указатель():
441
- def __init__(здесь, курсор):
442
- здесь._курсор = курсор
426
+ def __init__(экземпляр, курсор):
427
+ экземпляр._курсор = курсор
443
428
 
444
- def Выполнить_запрос(здесь, запрос, параметры=()):
429
+ def Выполнить_запрос(экземпляр, запрос, параметры=()):
445
430
  try:
446
431
  запрос = Перевести_код_запроса(запрос)
447
- здесь._курсор.execute(запрос, параметры)
432
+ экземпляр._курсор.execute(запрос, параметры)
448
433
  except Ошибка as ош:
449
434
  raise Ошибка(Перевести_ошибку(ош)) from ош
450
435
 
451
- def Выполнить_запросы(здесь, запрос, последовательность_параметров):
436
+ def Выполнить_запросы(экземпляр, запрос, последовательность_параметров):
452
437
  try:
453
438
  запрос = Перевести_код_запроса(запрос)
454
- здесь._курсор.executemany(запрос, последовательность_параметров)
439
+ экземпляр._курсор.executemany(запрос, последовательность_параметров)
455
440
  except Ошибка as ош:
456
441
  raise Ошибка(Перевести_ошибку(ош)) from ош
457
442
 
458
- def Выполнить_сценарий(здесь, сценарий):
443
+ def Выполнить_сценарий(экземпляр, сценарий):
459
444
  try:
460
445
  скрипт = Перевести_код_запроса(сценарий)
461
- здесь._курсор.executescript(скрипт)
446
+ экземпляр._курсор.executescript(скрипт)
462
447
  except Ошибка as ош:
463
448
  raise Ошибка(Перевести_ошибку(ош)) from ош
464
449
 
465
- def Извлечь_запись(здесь):
450
+ def Извлечь_запись(экземпляр):
466
451
  try:
467
- return здесь._курсор.fetchone()
452
+ return экземпляр._курсор.fetchone()
468
453
  except Ошибка as ош:
469
454
  raise Ошибка(Перевести_ошибку(ош)) from ош
470
455
 
471
- def Извлечь_записи(здесь, количество):
456
+ def Извлечь_записи(экземпляр, количество):
472
457
  try:
473
- return здесь._курсор.fetchmany(количество)
458
+ return экземпляр._курсор.fetchmany(количество)
474
459
  except Ошибка as ош:
475
460
  raise Ошибка(Перевести_ошибку(ош)) from ош
476
461
 
477
- def Извлечь_все_записи(здесь):
462
+ def Извлечь_все_записи(экземпляр):
478
463
  try:
479
- return здесь._курсор.fetchall()
464
+ return экземпляр._курсор.fetchall()
480
465
  except Ошибка as ош:
481
466
  raise Ошибка(Перевести_ошибку(ош)) from ош
482
467
 
483
- def Закрыть(здесь):
468
+ def Закрыть(экземпляр):
484
469
  try:
485
- здесь._курсор.close()
470
+ экземпляр._курсор.close()
486
471
  except Ошибка as ош:
487
472
  raise Ошибка(Перевести_ошибку(ош)) from ош
488
473
 
489
474
  @property
490
- def Описание(здесь):
491
- return здесь._курсор.description
475
+ def Описание(экземпляр):
476
+ return экземпляр._курсор.description
492
477
 
493
478
  @property
494
- def Количество_строк(здесь):
495
- return здесь._курсор.rowcount
479
+ def Количество_строк(экземпляр):
480
+ return экземпляр._курсор.rowcount
496
481
 
497
482
  @property
498
- def Последний_идентификатор(здесь):
499
- return здесь._курсор.lastrowid
483
+ def Последний_идентификатор(экземпляр):
484
+ return экземпляр._курсор.lastrowid
500
485
 
501
486
  class Соединение():
502
- def __init__(здесь,
487
+ def __init__(экземпляр,
503
488
  путь, *,
504
489
  таймаут = 5.0,
505
490
  обнаружение_типов = 0,
@@ -514,7 +499,7 @@ class Соединение():
514
499
  else: уровень_изоляции = None
515
500
 
516
501
  try:
517
- здесь._соединение = sqlite3.connect(
502
+ экземпляр._соединение = sqlite3.connect(
518
503
  путь,
519
504
  timeout=таймаут,
520
505
  detect_types=обнаружение_типов,
@@ -526,94 +511,94 @@ class Соединение():
526
511
  except Ошибка as ош:
527
512
  raise Ошибка(Перевести_ошибку(ош)) from ош
528
513
 
529
- def __enter__(здесь):
530
- return здесь
514
+ def __enter__(экземпляр):
515
+ return экземпляр
531
516
 
532
- def __exit__(здесь, exc_type, exc_value, traceback):
533
- здесь.Закрыть()
517
+ def __exit__(экземпляр, exc_type, exc_value, traceback):
518
+ экземпляр.Закрыть()
534
519
 
535
- def Создать_указатель(здесь):
520
+ def Создать_указатель(экземпляр):
536
521
  try:
537
- курсор = здесь._соединение.cursor()
522
+ курсор = экземпляр._соединение.cursor()
538
523
  return Указатель(курсор)
539
524
  except Ошибка as ош:
540
525
  raise Ошибка(Перевести_ошибку(ош)) from ош
541
526
 
542
- def Выполнить_запрос(здесь, запрос, параметры=()):
527
+ def Выполнить_запрос(экземпляр, запрос, параметры=()):
543
528
  try:
544
529
  запрос = Перевести_код_запроса(запрос)
545
- указатель = здесь._соединение.execute(запрос, параметры)
530
+ указатель = экземпляр._соединение.execute(запрос, параметры)
546
531
  return Указатель(указатель)
547
532
  except Ошибка as ош:
548
533
  raise Ошибка(Перевести_ошибку(ош)) from ош
549
534
 
550
- def Выполнить_запросы(здесь, запрос, параметры):
535
+ def Выполнить_запросы(экземпляр, запрос, параметры):
551
536
  try:
552
537
  запрос = Перевести_код_запроса(запрос)
553
- указатель = здесь._соединение.executemany(запрос, параметры)
538
+ указатель = экземпляр._соединение.executemany(запрос, параметры)
554
539
  return Указатель(указатель)
555
540
  except Ошибка as ош:
556
541
  raise Ошибка(Перевести_ошибку(ош)) from ош
557
542
 
558
- def Выполнить_сценарий(здесь, сценарий):
543
+ def Выполнить_сценарий(экземпляр, сценарий):
559
544
  try:
560
545
  скрипт = Перевести_код_запроса(сценарий)
561
- здесь._соединение.executescript(скрипт)
546
+ экземпляр._соединение.executescript(скрипт)
562
547
  except Ошибка as ош:
563
548
  raise Ошибка(Перевести_ошибку(ош)) from ош
564
549
 
565
- def Создать_функцию(здесь, имя, количество_параметров, функция):
550
+ def Создать_функцию(экземпляр, имя, количество_параметров, функция):
566
551
  try:
567
- здесь._соединение.create_function(имя, количество_параметров, функция)
552
+ экземпляр._соединение.create_function(имя, количество_параметров, функция)
568
553
  except Ошибка as ош:
569
554
  raise Ошибка(Перевести_ошибку(ош)) from ош
570
555
 
571
- def Создать_агрегатную_функцию(здесь, имя, число_аргументов, класс):
556
+ def Создать_агрегатную_функцию(экземпляр, имя, число_аргументов, класс):
572
557
  try:
573
- здесь._соединение.create_aggregate(имя, число_аргументов, класс)
558
+ экземпляр._соединение.create_aggregate(имя, число_аргументов, класс)
574
559
  except Ошибка as ош:
575
560
  raise Ошибка(Перевести_ошибку(ош)) from ош
576
561
 
577
- def Создать_сопоставление(здесь, имя, функция):
562
+ def Создать_сопоставление(экземпляр, имя, функция):
578
563
  try:
579
- здесь._соединение.create_collation(имя, функция)
564
+ экземпляр._соединение.create_collation(имя, функция)
580
565
  except Ошибка as ош:
581
566
  raise Ошибка(Перевести_ошибку(ош)) from ош
582
567
 
583
- def Прервать(здесь):
568
+ def Прервать(экземпляр):
584
569
  try:
585
- здесь._соединение.interrupt()
570
+ экземпляр._соединение.interrupt()
586
571
  except Ошибка as ош:
587
572
  raise Ошибка(Перевести_ошибку(ош)) from ош
588
573
 
589
- def Закрыть(здесь):
574
+ def Закрыть(экземпляр):
590
575
  try:
591
- здесь._соединение.close()
576
+ экземпляр._соединение.close()
592
577
  except Ошибка as ош:
593
578
  raise Ошибка(Перевести_ошибку(ош)) from ош
594
579
 
595
- def Утвердить(здесь):
580
+ def Утвердить(экземпляр):
596
581
  try:
597
- здесь._соединение.commit()
582
+ экземпляр._соединение.commit()
598
583
  except Ошибка as ош:
599
584
  raise Ошибка(Перевести_ошибку(ош)) from ош
600
585
 
601
- def Откатить(здесь):
586
+ def Откатить(экземпляр):
602
587
  try:
603
- здесь._соединение.rollback()
588
+ экземпляр._соединение.rollback()
604
589
  except Ошибка as ош:
605
590
  raise Ошибка(Перевести_ошибку(ош)) from ош
606
591
 
607
592
  @property
608
- def В_транзакции(здесь):
609
- return здесь._соединение.in_transaction
593
+ def В_транзакции(экземпляр):
594
+ return экземпляр._соединение.in_transaction
610
595
 
611
596
  @property
612
- def Изоляция(здесь):
613
- return здесь._соединение.isolation_level
597
+ def Изоляция(экземпляр):
598
+ return экземпляр._соединение.isolation_level
614
599
 
615
600
  @Изоляция.setter
616
- def Изоляция(здесь, значение):
601
+ def Изоляция(экземпляр, значение):
617
602
  if значение not in (None, 'DEFERRED', 'IMMEDIATE', 'EXCLUSIVE'):
618
603
  raise ValueError(f"Недопустимый уровень изоляции: {значение}")
619
- здесь._соединение.isolation_level = значение
604
+ экземпляр._соединение.isolation_level = значение