rupython 1.2.5__py3-none-any.whl → 1.2.7__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.
- rupython/__/342/225/250/320/256/342/225/250/342/226/222/342/225/244/320/231/342/225/250/342/225/225/342/225/250/342/225/241_/342/225/244/320/224/342/225/244/320/223/342/225/250/342/225/234/342/225/250/342/225/221/342/225/244/320/226/342/225/250/342/225/225/342/225/250/342/225/225__.py +1 -0
- rupython//342/225/250/320/254/342/225/250/342/225/233/342/225/250/342/224/244/342/225/244/320/223/342/225/250/342/225/227/342/225/250/342/225/225//342/225/250/320/241/342/225/250/320/244.py +77 -26
- rupython//342/225/250/320/257/342/225/244/320/220/342/225/250/342/225/241/342/225/250/342/225/233/342/225/250/342/226/222/342/225/244/320/220/342/225/250/342/226/221/342/225/250/342/225/226/342/225/250/342/225/233/342/225/250/342/226/223/342/225/250/342/226/221/342/225/244/320/222/342/225/250/342/225/241/342/225/250/342/225/227/342/225/244/320/234.py +9 -3
- {rupython-1.2.5.dist-info → rupython-1.2.7.dist-info}/METADATA +1 -1
- {rupython-1.2.5.dist-info → rupython-1.2.7.dist-info}/RECORD +8 -8
- {rupython-1.2.5.dist-info → rupython-1.2.7.dist-info}/LICENSE +0 -0
- {rupython-1.2.5.dist-info → rupython-1.2.7.dist-info}/WHEEL +0 -0
- {rupython-1.2.5.dist-info → rupython-1.2.7.dist-info}/top_level.txt +0 -0
@@ -3,21 +3,12 @@ import re as РегВыр
|
|
3
3
|
|
4
4
|
Ошибка = sqlite3.Error
|
5
5
|
|
6
|
-
Успешно = sqlite3.SQLITE_OK # Успешное выполнение
|
7
|
-
Отказ = sqlite3.SQLITE_DENY # Отказ в операции
|
8
|
-
Пропустить = sqlite3.SQLITE_IGNORE # Игнорирование операции
|
9
|
-
Занято = sqlite3.SQLITE_BUSY # База данных занята
|
10
|
-
Заблоковано = sqlite3.SQLITE_LOCKED # База или таблица заблокирована
|
11
|
-
Переполнено = sqlite3.SQLITE_FULL # Диск или база переполнены
|
12
|
-
|
13
|
-
# Уровни изоляции транзакций
|
14
|
-
Отложенно = "DEFERRED"
|
15
|
-
Немедленно = "IMMEDIATE"
|
16
|
-
Исключительно = "EXCLUSIVE"
|
17
|
-
|
18
6
|
Разбор_объявленных_типов = sqlite3.PARSE_DECLTYPES
|
19
7
|
Разбор_названий_столбцов = sqlite3.PARSE_COLNAMES
|
20
|
-
|
8
|
+
Успешно = sqlite3.SQLITE_OK
|
9
|
+
Отказ = sqlite3.SQLITE_DENY
|
10
|
+
Игнорировать = sqlite3.SQLITE_IGNORE
|
11
|
+
Уровень_интерфейса_взаимодействия = sqlite3.apilevel
|
21
12
|
Стиль_параметров = sqlite3.paramstyle
|
22
13
|
Потокобезопасность = sqlite3.threadsafety
|
23
14
|
|
@@ -29,9 +20,8 @@ import re as РегВыр
|
|
29
20
|
'ОТЛОЖЕННО': 'DEFERRED',
|
30
21
|
'НЕМЕДЛЕННО': 'IMMEDIATE',
|
31
22
|
'ИСКЛЮЧИТЕЛЬНО': 'EXCLUSIVE',
|
32
|
-
'ОТКАТИТЬ': 'ROLLBACK
|
23
|
+
'ОТКАТИТЬ': 'ROLLBACK',
|
33
24
|
'ТОЧКА_СОХРАНЕНИЯ': 'SAVEPOINT',
|
34
|
-
'ОСВОБОДИТЬ': 'RELEASE SAVEPOINT',
|
35
25
|
'НАСТРОИТЬ': 'PRAGMA',
|
36
26
|
|
37
27
|
'ВЫБРАТЬ': 'SELECT',
|
@@ -57,7 +47,6 @@ import re as РегВыр
|
|
57
47
|
'ПО ПРАВОЙ': 'RIGHT',
|
58
48
|
'ПОЛНОСТЬЮ': 'FULL',
|
59
49
|
'ПО': 'ON',
|
60
|
-
'К': 'TO',
|
61
50
|
'ПЕРЕКРЁСТНО': 'CROSS',
|
62
51
|
'ИСПОЛЬЗУЯ': 'USING',
|
63
52
|
|
@@ -66,7 +55,7 @@ import re as РегВыр
|
|
66
55
|
'ЗНАЧЕНИЯ': 'VALUES',
|
67
56
|
'ИЗМЕНИТЬ': 'UPDATE',
|
68
57
|
'УСТАНОВИВ': 'SET',
|
69
|
-
'УДАЛИТЬ': 'DELETE',
|
58
|
+
'УДАЛИТЬ ИЗ': 'DELETE FROM',
|
70
59
|
'ПРИ КОНФЛИКТЕ': 'ON CONFLICT',
|
71
60
|
'ВЫПОЛНЯТЬ': 'DO',
|
72
61
|
'НИЧЕГО': 'NOTHING',
|
@@ -79,22 +68,23 @@ import re as РегВыр
|
|
79
68
|
'ИЗМЕНИТЬ ТАБЛИЦУ': 'ALTER TABLE',
|
80
69
|
'ИЗМЕНИТЬ СТОЛБЕЦ': 'ALTER COLUMN',
|
81
70
|
'СОЗДАТЬ': 'CREATE',
|
71
|
+
'УДАЛИТЬ': 'DROP',
|
82
72
|
'БАЗУ ДАННЫХ': 'DATABASE',
|
83
73
|
'ТАБЛИЦУ': 'TABLE',
|
84
74
|
'ВРЕМЕННУЮ': 'TEMPORARY',
|
85
75
|
'ДОБАВИВ': 'ADD',
|
86
76
|
'УДАЛИВ': 'DROP',
|
87
77
|
'ИНДЕКС': 'INDEX',
|
88
|
-
'СХЕМУ': '
|
89
|
-
'ТАБЛИЦУ': 'TABLE',
|
78
|
+
'СХЕМУ': 'SCHEMA',
|
90
79
|
'УНИКАЛЬНЫЙ': 'UNIQUE',
|
91
80
|
'ПРЕДСТАВЛЕНИЕ': 'VIEW',
|
92
81
|
'СТОЛБЕЦ': 'COLUMN',
|
82
|
+
'ТРИГГЕР': 'TRIGGER',
|
93
83
|
'СТРОГО': 'STRICT',
|
94
|
-
'ПЕРЕИМЕНОВАТЬ В': 'RENAME TO',
|
95
84
|
|
96
85
|
'ЯВЛЯЕТСЯ ПУСТЫМ': 'IS NULL',
|
97
86
|
'НЕ ЯВЛЯЕТСЯ ПУСТЫМ': 'IS NOT NULL',
|
87
|
+
'НЕ ПУСТОЕ': 'NOT NULL',
|
98
88
|
'ПУСТО': 'NULL',
|
99
89
|
'И': 'AND',
|
100
90
|
'ИЛИ': 'OR',
|
@@ -130,7 +120,7 @@ import re as РегВыр
|
|
130
120
|
'ДА': 'TRUE',
|
131
121
|
'НЕТ': 'FALSE',
|
132
122
|
'ПО_УМОЛЧАНИЮ': 'DEFAULT',
|
133
|
-
'САМОУВЕЛИЧИВАЮЩЕЕСЯ': '
|
123
|
+
'САМОУВЕЛИЧИВАЮЩЕЕСЯ': 'AUTOINCREMENT',
|
134
124
|
'ССЫЛАЕТСЯ НА': 'REFERENCES',
|
135
125
|
|
136
126
|
'ОТОБРАВ': 'FILTER',
|
@@ -143,7 +133,7 @@ import re as РегВыр
|
|
143
133
|
'ДЛИНА': 'LENGTH',
|
144
134
|
'В_ЗАГЛАВНЫЕ': 'UPPER',
|
145
135
|
'В_СТРОЧНЫЕ': 'LOWER',
|
146
|
-
'ПОДСТРОКА': '
|
136
|
+
'ПОДСТРОКА': 'SUBSTR',
|
147
137
|
'ЗАМЕНИТЬ': 'REPLACE',
|
148
138
|
'ОКРУГЛИТЬ': 'ROUND',
|
149
139
|
'ОКРУГЛИТЬ_ВНИЗ': 'FLOOR',
|
@@ -155,7 +145,56 @@ import re as РегВыр
|
|
155
145
|
'ИЗВЛЕЧЬ': 'EXTRACT',
|
156
146
|
'ГОД': 'YEAR',
|
157
147
|
'МЕСЯЦ': 'MONTH',
|
158
|
-
'ДЕНЬ': 'DAY'
|
148
|
+
'ДЕНЬ': 'DAY',
|
149
|
+
|
150
|
+
'СЛУЧАЙНОЕ': 'RANDOM',
|
151
|
+
'ТИП_ДАННЫХ': 'TYPEOF',
|
152
|
+
'ПОСЛЕДНИЙ_ИДЕНТИФИКАТОР': 'LAST_INSERT_ROWID',
|
153
|
+
'ЗНАК': 'SIGN',
|
154
|
+
'ЕСЛИ_ПУСТО': 'IFNULL',
|
155
|
+
'ЯВЛЯЕТСЯ_ПУСТЫМ': 'NULLIF',
|
156
|
+
'СОВПАДЕНИЕ': 'LIKE',
|
157
|
+
'ГЛОБАЛЬНОЕ_СОВПАДЕНИЕ': 'GLOB',
|
158
|
+
'ОБРЕЗАТЬ': 'TRIM',
|
159
|
+
'ОБРЕЗАТЬ_СЛЕВА': 'LTRIM',
|
160
|
+
'ОБРЕЗАТЬ_СПРАВА': 'RTRIM',
|
161
|
+
'ОБЩЕЕ': 'TOTAL',
|
162
|
+
'СТАНДАРТНОЕ_ОТКЛОНЕНИЕ': 'STDDEV',
|
163
|
+
'ДИСПЕРСИЯ': 'VARIANCE',
|
164
|
+
'СТРОКА_В_ЧИСЛО': 'CAST',
|
165
|
+
'МАКСИМАЛЬНАЯ_ДЛИНА': 'MAXLEN',
|
166
|
+
'МИНИМАЛЬНАЯ_ДЛИНА': 'MINLEN',
|
167
|
+
'СЖАТЬ': 'COMPRESS',
|
168
|
+
'РАСЖАТЬ': 'UNCOMPRESS',
|
169
|
+
'ВЫЧИСЛИТЬ_ХЭШ': 'HEX',
|
170
|
+
'ЗАКОДОВАТЬ_64': 'BASE64',
|
171
|
+
'РАСКОДОВАТЬ_64': 'UNBASE64',
|
172
|
+
|
173
|
+
'ВКЛЮЧЕНО': 'ON',
|
174
|
+
'ОТКЛЮЧЕНО': 'OFF',
|
175
|
+
'Синхронизация': 'synchronous',
|
176
|
+
'Журнал': 'journal_mode',
|
177
|
+
'Размер_кэша': 'cache_size',
|
178
|
+
'Режим_блокования': 'locking_mode',
|
179
|
+
'Самоочищение': 'auto_vacuum',
|
180
|
+
'Ключ_шифрования': 'key',
|
181
|
+
'Чтение_без_утверждения': 'read_uncommitted',
|
182
|
+
'Режим_чтения': 'query_only',
|
183
|
+
'Кодование': 'encoding',
|
184
|
+
'Размер_страницы': 'page_size',
|
185
|
+
'Максимум_страниц': 'max_page_count',
|
186
|
+
'Временное_хранилище': 'temp_store',
|
187
|
+
'Предел_анализа': 'analysis_limit',
|
188
|
+
'Проверка_целостности': 'integrity_check',
|
189
|
+
'Быстрая_проверка': 'quick_check',
|
190
|
+
'Внешние_ключи': 'foreign_keys',
|
191
|
+
'Пропускать_проверки': 'ignore_check_constraints',
|
192
|
+
'Рекурсивные_триггеры': 'recursive_triggers',
|
193
|
+
'Список_сопоставлений': 'collation_list',
|
194
|
+
'Информация_о_таблице': 'table_info',
|
195
|
+
'Информация_об_индексе': 'index_info',
|
196
|
+
'Список_индексов': 'index_list',
|
197
|
+
'Список_таблиц': 'table_list'
|
159
198
|
}
|
160
199
|
|
161
200
|
def Получить_токены(запрос):
|
@@ -285,7 +324,13 @@ def Перевести_токены(токены):
|
|
285
324
|
break
|
286
325
|
|
287
326
|
if not найдено_ключевое_слово:
|
288
|
-
|
327
|
+
# Специальная обработка для значений PRAGMA
|
328
|
+
if токен.upper() == 'ДА':
|
329
|
+
переведённые_токены.append('ON')
|
330
|
+
elif токен.upper() == 'НЕТ':
|
331
|
+
переведённые_токены.append('OFF')
|
332
|
+
else:
|
333
|
+
переведённые_токены.append(токен)
|
289
334
|
i += 1
|
290
335
|
|
291
336
|
return переведённые_токены
|
@@ -320,6 +365,7 @@ def Перевести_код_запроса(текст):
|
|
320
365
|
r"no such index: (.+)": r'Индекс "\1" не существует.',
|
321
366
|
r"too many SQL variables": r'Слишком много переменных в запросе.',
|
322
367
|
r"maximum recursion depth exceeded": r'Превышена максимальная глубина рекурсии в запросе.',
|
368
|
+
r"no such database: (.+)": r'База данных "\1" не существует.', # Добавлено
|
323
369
|
r"incomplete input": r'Неполный запрос.',
|
324
370
|
r"malformed database schema \((.+)\)": r'Некорректная схема базы данных: \1.',
|
325
371
|
r"file is not a database": r'Файл не является базой данных.',
|
@@ -345,7 +391,12 @@ def Перевести_код_запроса(текст):
|
|
345
391
|
r"no such module: (.+)": r'Модуль "\1" не существует.',
|
346
392
|
r"parameters are of unsupported type": r'Параметры имеют неподдерживаемый тип.',
|
347
393
|
r"interrupted": r'Операция была прервана.',
|
348
|
-
r"out of memory": r'Недостаточно памяти для выполнения операции.'
|
394
|
+
r"out of memory": r'Недостаточно памяти для выполнения операции.',
|
395
|
+
r"no such pragma: (.+)": r'Настройка "\1" не существует.',
|
396
|
+
r"invalid value for pragma (.+)": r'Недопустимое значение для настройки "\1".',
|
397
|
+
r"unsupported journal mode: (.+)": r'Неподдерживаемый режим журнала: \1.',
|
398
|
+
r"invalid encoding: (.+)": r'Недопустимая кодировка: \1.',
|
399
|
+
r"invalid synchronous value: (.+)": r'Недопустимое значение синхронизации: \1.'
|
349
400
|
}
|
350
401
|
|
351
402
|
def Перевести_ошибку(исключение):
|
@@ -456,7 +507,7 @@ class Соединение():
|
|
456
507
|
except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
|
457
508
|
|
458
509
|
def Создать_агрегатную_функцию(здесь, имя, число_аргументов, класс):
|
459
|
-
try: здесь._соединение.create_aggregate(имя, число_
|
510
|
+
try: здесь._соединение.create_aggregate(имя, число_аргументов, класс)
|
460
511
|
except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
|
461
512
|
|
462
513
|
def Создать_сопоставление(здесь, имя, функция):
|
@@ -5,7 +5,7 @@ import os as ОС
|
|
5
5
|
import sys as Система
|
6
6
|
import importlib as Импортование
|
7
7
|
import re as РегВыр
|
8
|
-
from io import StringIO as
|
8
|
+
from io import StringIO as Текстовый_ВВ
|
9
9
|
|
10
10
|
Служебные_слова = {
|
11
11
|
'Да': 'True',
|
@@ -396,7 +396,7 @@ def Обработать_f_строки(слова, путь_к_файлу):
|
|
396
396
|
Вывести_текст_исключения(искл, 'при разборе f-строки', путь_к_файлу)
|
397
397
|
выражение = содержимое[нач_поз:поз-1]
|
398
398
|
try:
|
399
|
-
токены_выражения = list(Разборщик_слов.generate_tokens(
|
399
|
+
токены_выражения = list(Разборщик_слов.generate_tokens(Текстовый_ВВ(выражение).readline))
|
400
400
|
токены_выражения = [(ток.type, ток.string, отступов) for ток in токены_выражения if ток.type != Разборщик_слов.ENDMARKER]
|
401
401
|
Выполнить_основные_замены(токены_выражения, Служебные_слова)
|
402
402
|
Выполнить_основные_замены(токены_выражения, Специальные_названия)
|
@@ -696,11 +696,17 @@ def Посчитать_физические_строки(путь_к_файлу,
|
|
696
696
|
r"KeyError: '(.+)'": r'Ключ "\1" отсутствует в словаре.',
|
697
697
|
r"invalid syntax\. Perhaps you forgot a comma\?": r'Ошибочный синтаксис. Может быть, вы забыли запятую?',
|
698
698
|
r"invalid syntax": r'Синтаксическая ошибка в коде.',
|
699
|
+
r"unrecognized token: \"(.+?)\"": r'Неизвестный токен: "\1".',
|
699
700
|
r"expected .+, got .+": r'Ожидался один тип данных, получен другой.',
|
700
|
-
r"int\(\) argument must be a string, a bytes-like object or a number, not '(\w+)'": r'Аргумент функции Цел() должен быть строкой, байтовым объектом или числом, а не "\1".',
|
701
|
+
r"int\(\) argument must be a string, a bytes-like object or a number, not '(\w+)'": r'Аргумент функции "Цел()" должен быть строкой, байтовым объектом или числом, а не "\1".',
|
701
702
|
r"IndentationError: expected an indented block": r'Ожидался блок с отступом.',
|
702
703
|
r"IndentationError: unindent does not match any outer indentation level": r'Уровень отступа не соответствует внешнему блоку.',
|
703
704
|
r"TypeError: (\w+)\(\) takes \d+ positional arguments? but \d+ were given": r'Функция "\1" принимает меньше аргументов, чем было передано.',
|
705
|
+
r"'(.+)' is an invalid keyword argument for (.+)": r'"\1" не является верным названием аргумента для "\2".',
|
706
|
+
r"(.+) takes exactly one argument \((\d+) given\)": r'"\1" принимает ровно один аргумент (получено \2).',
|
707
|
+
r"(.+) takes exactly (\d+) arguments \((\d+) given\)": r'"\1" принимает аргументы в количестве ровно \2 (получено \3).',
|
708
|
+
r"(.+) takes at most (\d+) arguments \((\d+) given\)": r'"\1" принимает аргументы в количестве не более \2 (получено \3).',
|
709
|
+
r"(.+) takes at least (\d+) arguments \((\d+) given\)": r'"\1" принимает аргументы в количестве не менее \2 (получено \3).',
|
704
710
|
r"ValueError: (.+)": r'Ошибка значения: \1.',
|
705
711
|
r"AttributeError: '(\w+)' object is not callable": r'Объект типа "\1" не является вызываемым.',
|
706
712
|
r"ImportError: No module named '(\w+)'": r'Ошибка импорта: модуль "\1" не найден.',
|
@@ -1,14 +1,14 @@
|
|
1
1
|
rupython/__main__.py,sha256=wfmjyJhg6iQN1_9Hl6tIu6mKHO95xP2ibVcDdIIEXjE,1256
|
2
2
|
rupython/__Заголовочный_код__.py,sha256=VWghfQc6dv9lwIeQvJotpdOlBtHZeN00NBeL4RdWloA,10998
|
3
|
-
rupython/__Общие_функции__.py,sha256=
|
4
|
-
rupython/Преобразователь.py,sha256
|
5
|
-
rupython/Модули/БД.py,sha256=
|
3
|
+
rupython/__Общие_функции__.py,sha256=eiDtxw8MVlZ8rZZC2N-NkYqmf2F-XCczHubUnzVKWJA,856
|
4
|
+
rupython/Преобразователь.py,sha256=mF6rQPRqI4k1yhFMO8WQ-166s_NsIyY2F8DxK8uACQs,48449
|
5
|
+
rupython/Модули/БД.py,sha256=3910eO3_rdfKrwR8wusgEZ-gNBZhXEdVg4aiJefz-2E,27306
|
6
6
|
rupython/Модули/ДатаВремя.py,sha256=YdpACxtHXt57zV7uYpZJZeH3T4bMd6orud-Y34DqWTI,25087
|
7
7
|
rupython/Модули/Матем.py,sha256=d8ekm7GJreu7LJ9KmAKcTOciIUQ-VBI567BfK_QeLSc,3587
|
8
8
|
rupython/Модули/РегВыр.py,sha256=T3yxVP-B5AwAzbUTjWpog3HCzRTGLZ58CEQpfA-0dsY,6341
|
9
9
|
rupython/Модули/Случ.py,sha256=foIuQo2QZ5z0iyxp9fn4NaunSx96vYzC2pRjwaT2FD8,2723
|
10
|
-
rupython-1.2.
|
11
|
-
rupython-1.2.
|
12
|
-
rupython-1.2.
|
13
|
-
rupython-1.2.
|
14
|
-
rupython-1.2.
|
10
|
+
rupython-1.2.7.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
|
11
|
+
rupython-1.2.7.dist-info/METADATA,sha256=d4qGP1x4E3yyi-HpMhhz6QlQoLefpAERxN1lROhLpNc,29768
|
12
|
+
rupython-1.2.7.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
13
|
+
rupython-1.2.7.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
|
14
|
+
rupython-1.2.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|