rupython 1.1.2__py3-none-any.whl → 1.1.4__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/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 +161 -127
- {rupython-1.1.2.dist-info → rupython-1.1.4.dist-info}/METADATA +1 -1
- {rupython-1.1.2.dist-info → rupython-1.1.4.dist-info}/RECORD +6 -6
- {rupython-1.1.2.dist-info → rupython-1.1.4.dist-info}/LICENSE +0 -0
- {rupython-1.1.2.dist-info → rupython-1.1.4.dist-info}/WHEEL +0 -0
- {rupython-1.1.2.dist-info → rupython-1.1.4.dist-info}/top_level.txt +0 -0
@@ -50,7 +50,7 @@ import importlib as Импортование
|
|
50
50
|
}
|
51
51
|
|
52
52
|
Встроенные_функции = {
|
53
|
-
'АбсЗнач': ( 'abs', None, False ),
|
53
|
+
'АбсЗнач': ( 'abs', None, False ), # Модуль
|
54
54
|
'АсинхрПеребиратель': ( 'aiter', None, False ),
|
55
55
|
'АсСледующий': ( 'anext', None, False ),
|
56
56
|
'БайтМассив': ( 'bytearray', { 'источник': 'source', 'кодование': 'encoding', 'при_ошибках': 'errors' }, True ),
|
@@ -112,7 +112,7 @@ import importlib as Импортование
|
|
112
112
|
'Степень': ( 'pow', None, False ),
|
113
113
|
'Строка': ( 'str', { 'кодование': 'encoding', 'при_ошибках': 'errors' }, True ), # Текст
|
114
114
|
'Сумма': ( 'sum', { 'начало': 'start' }, False ),
|
115
|
-
'Тип': ( 'type', None, True ),
|
115
|
+
'Тип': ( 'type', None, True ), # Вид
|
116
116
|
'Удалить_поле': ( 'delattr', None, False ),
|
117
117
|
'Упаковать': ( 'zip', { 'проверить_длины': 'strict' }, False ),
|
118
118
|
'Упорядочить': ( 'sorted', { 'ф_сравнения': 'key', 'наоборот': 'reverse' }, False ),
|
@@ -127,131 +127,131 @@ import importlib as Импортование
|
|
127
127
|
}
|
128
128
|
|
129
129
|
Специальные_названия = {
|
130
|
-
|
130
|
+
'__Название__': '__name__',
|
131
131
|
'__Пакет__': '__package__',
|
132
|
-
|
132
|
+
'__Модуль__': '__module__',
|
133
133
|
'__Файл__': '__file__',
|
134
|
-
|
134
|
+
'__Полное_имя__': '__qualname__',
|
135
135
|
'__Документация__': '__doc__',
|
136
136
|
'__Примечания__': '__annotations__',
|
137
137
|
'__Загрузчик__': '__loader__',
|
138
138
|
'__Спецификация__': '__spec__',
|
139
139
|
'__Встроенное__': '__builtins__',
|
140
140
|
'__Кэш__': '__cached__',
|
141
|
-
|
142
|
-
|
143
|
-
|
141
|
+
'__Поля__': '__dict__',
|
142
|
+
'__Класс__': '__class__',
|
143
|
+
'__Надклассы__': '__bases__',
|
144
144
|
'__Подклассы__': '__subclasses__',
|
145
|
-
|
145
|
+
'__Порядок_разрешения_методов__': '__mro__',
|
146
146
|
'__Параметры_типа__': '__type_params__',
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
147
|
+
'__Значение__': '__value__',
|
148
|
+
'__По_умолчанию__': '__defaults__',
|
149
|
+
'__Именованные_по_умолчанию': '__kwdefaults__',
|
150
|
+
'__Замыкание__': '__closure__',
|
151
|
+
'__Код__': '__code__',
|
152
|
+
'__Флаги__': '__flags__',
|
153
153
|
'__Отладка__': '__debug__',
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
154
|
+
'__Создание__': '__new__',
|
155
|
+
'__Подготовка__': '__init__',
|
156
|
+
'__Уничтожение__': '__del__',
|
157
|
+
'__Представление__': '__repr__',
|
158
|
+
'__Строка__': '__str__',
|
159
|
+
'__Байты__': '__bytes__',
|
160
|
+
'__Формат__': '__format__',
|
161
|
+
'__МЧ__': '__lt__',
|
162
|
+
'__МР__': '__le__',
|
163
|
+
'__РВ__': '__eq__',
|
164
|
+
'__НР__': '__ne__',
|
165
|
+
'__БЧ__': '__gt__',
|
166
|
+
'__БР__': '__ge__',
|
167
|
+
'__Хэш__': '__hash__',
|
168
|
+
'__Несуществующее_поле__': '__getattr__',
|
169
|
+
'__Получить_поле__': '__getattribute__',
|
170
|
+
'__Установка_поля__': '__setattr__',
|
171
|
+
'__Удаление_поля__': '__delattr__',
|
172
|
+
'__Содержимое__': '__dir__',
|
173
|
+
'__Получение__': '__get__',
|
174
|
+
'__Установка__': '__set__',
|
175
|
+
'__Удаление__': '__delete__',
|
176
|
+
'__Вызов__': '__call__',
|
177
|
+
'__Длина__': '__len__',
|
178
|
+
'__Подсказка_длины__': '__length_hint__',
|
179
|
+
'__Получение_значения__': '__getitem__',
|
180
|
+
'__Установка_значения__': '__setitem__',
|
181
|
+
'__Удаление_значения__': '__delitem__',
|
182
|
+
'__Пропущенное_значение__': '__missing__',
|
183
|
+
'__Перебиратель__': '__iter__',
|
184
|
+
'__АсПеребиратель__': '__aiter__',
|
185
|
+
'__Следующий__': '__next__',
|
186
|
+
'__АсСледующий__': '__anext__',
|
187
|
+
'__Обращение__': '__reversed__',
|
188
|
+
'__Содержит__': '__contains__',
|
189
189
|
'__Сцепление__': '__concat__',
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
190
|
+
'__Сложение__': '__add__',
|
191
|
+
'__Вычитание__': '__sub__',
|
192
|
+
'__Умножение__': '__mul__',
|
193
|
+
'__МатрУмн__': '__matmul__',
|
194
|
+
'__Деление__': '__truediv__',
|
195
|
+
'__ЦелДел__': '__floordiv__',
|
196
|
+
'__Остаток__': '__mod__',
|
197
|
+
'__ЧастОст__': '__divmod__',
|
198
|
+
'__Степень__': '__pow__',
|
199
|
+
'__ЛСдвиг__': '__lshift__',
|
200
|
+
'__ПСдвиг__': '__rshift__',
|
201
|
+
'__ПобитИ__': '__and__',
|
202
|
+
'__ПобитИсклИли__': '__xor__',
|
203
|
+
'__ПобитИли__': '__or__',
|
204
|
+
'__АрифмОтр__': '__neg__',
|
205
|
+
'__ОдПлюс__': '__pos__',
|
206
|
+
'__АбсЗнач__': '__abs__',
|
207
|
+
'__ПобитИнв__': '__invert__',
|
208
|
+
'__Прав_Сложение__': '__radd__',
|
209
|
+
'__Прав_Вычитание__': '__rsub__',
|
210
|
+
'__Прав_Умножение__': '__rmul__',
|
211
|
+
'__Прав_МатрУмн__': '__rmatmul__',
|
212
|
+
'__Прав_Деление__': '__rtruediv__',
|
213
|
+
'__Прав_ЦелДел__': '__rfloordiv__',
|
214
|
+
'__Прав_Остаток__': '__rmod__',
|
215
|
+
'__Прав_ЧастОст__': '__rdivmod__',
|
216
|
+
'__Прав_Степень__': '__rpow__',
|
217
|
+
'__Прав_ЛСдвиг__': '__rlshift__',
|
218
|
+
'__Прав_ПСдвиг__': '__rrshift__',
|
219
|
+
'__Прав_И__': '__rand__',
|
220
|
+
'__Прав_ИсклИли__': '__rxor__',
|
221
|
+
'__Прав_Или__': '__ror__',
|
222
|
+
'__Присв_Сложение__': '__iadd__',
|
223
|
+
'__Присв_Вычитание__': '__isub__',
|
224
|
+
'__Присв_Умножение__': '__imul__',
|
225
|
+
'__Присв_МатрУмн__': '__imatmul__',
|
226
|
+
'__Присв_Деление__': '__itruediv__',
|
227
|
+
'__Присв_ЦелДел__': '__ifloordiv__',
|
228
|
+
'__Присв_Остаток__': '__imod__',
|
229
|
+
'__Присв_Степень__': '__ipow__',
|
230
|
+
'__Присв_ЛСдвиг__': '__ilshift__',
|
231
|
+
'__Присв_ПСдвиг__': '__irshift__',
|
232
|
+
'__Присв_И__': '__iand__',
|
233
|
+
'__Присв_ИсклИли__': '__ixor__',
|
234
|
+
'__Присв_Или__': '__ior__',
|
235
|
+
'__Компл__': '__complex__',
|
236
|
+
'__Цел__': '__int__',
|
237
|
+
'__Вещ__': '__float__',
|
238
|
+
'__Индекс__': '__index__',
|
239
|
+
'__Округлить__': '__round__',
|
240
|
+
'__ЦелЧасть__': '__trunc__',
|
241
|
+
'__МеньшЦел__': '__floor__',
|
242
|
+
'__БольшЦел__': '__ceil__',
|
243
|
+
'__Вход__': '__enter__',
|
244
|
+
'__Выход__': '__exit__',
|
245
|
+
'__Сопоставление_аргументов__': '__match_args__',
|
246
|
+
'__Буфер__': '__buffer__',
|
247
|
+
'__Освобождение_буфера__': '__release_buffer__',
|
248
|
+
'__Слоты__': '__slots__',
|
249
|
+
'__Подготовка_подкласса__': '__init_subclass__',
|
250
|
+
'__Получение_значения_из_класса__': '__class_getitem__',
|
251
|
+
'__Основные_классы__': '__mro_entries__',
|
252
|
+
'__Проверка_экземпляра__': '__instancecheck__',
|
253
|
+
'__Проверка_подкласса__': '__subclasscheck__',
|
254
|
+
'__Экспорт__': '__all__'
|
255
255
|
}
|
256
256
|
|
257
257
|
Исключения = {
|
@@ -316,10 +316,7 @@ import importlib as Импортование
|
|
316
316
|
'ПредупрОБайтах': 'BytesWarning'
|
317
317
|
}
|
318
318
|
|
319
|
-
|
320
|
-
|
321
|
-
def Прочитать_слова(чтение_строки):
|
322
|
-
global Ошибка_чтения_кода
|
319
|
+
def Прочитать_слова(чтение_строки, путь_к_файлу):
|
323
320
|
try:
|
324
321
|
for тип, название, _,_, строка in Разборщик_слов.generate_tokens(чтение_строки):
|
325
322
|
if тип == 5: название = название.replace(' ' * 4, '\t')
|
@@ -327,8 +324,7 @@ def Прочитать_слова(чтение_строки):
|
|
327
324
|
while (сч < len(строка) and строка[сч] == '\t'): отступов += 1; сч += 1
|
328
325
|
yield тип, название, отступов
|
329
326
|
except Exception as ошибка:
|
330
|
-
|
331
|
-
Ошибка_чтения_кода = True
|
327
|
+
Вывести_текст_исключения(ошибка, 'при чтении кода', путь_к_файлу)
|
332
328
|
|
333
329
|
def Выполнить_основные_замены(слова, соответствия, не_после_точки = False):
|
334
330
|
for номер, слово in enumerate(слова):
|
@@ -427,6 +423,9 @@ def Обработать_импорт(импорт, путь_к_текущему
|
|
427
423
|
if путь not in Временные_файлы:
|
428
424
|
код = Преобразовать_код(путь + '.крп')
|
429
425
|
файл = open(путь + '.py', mode='w', encoding='utf-8')
|
426
|
+
if (not файл):
|
427
|
+
искл = SyntaxError('Невозможно открыть файл "' + файл + '".')
|
428
|
+
Вывести_текст_исключения(искл, 'при чтении кода', путь_к_файлу)
|
430
429
|
файл.write(код)
|
431
430
|
файл.close()
|
432
431
|
Временные_файлы.append(путь)
|
@@ -458,7 +457,11 @@ def Проверить_соответствие_слов(слова, путь_к
|
|
458
457
|
Циклы_со_счётчиком = []
|
459
458
|
|
460
459
|
def Преобразовать_код(путь_к_файлу):
|
461
|
-
|
460
|
+
файл = open(путь_к_файлу, 'r', encoding='utf-8')
|
461
|
+
if (not файл):
|
462
|
+
искл = SyntaxError('Невозможно открыть файл "' + файл + '".')
|
463
|
+
Вывести_текст_исключения(искл, 'при чтении кода', путь_к_файлу)
|
464
|
+
слова = list(Прочитать_слова(файл.readline, путь_к_файлу))
|
462
465
|
if not Проверить_соответствие_слов(слова, путь_к_файлу): return
|
463
466
|
|
464
467
|
# обрабатываем импорты
|
@@ -529,6 +532,11 @@ def Преобразовать_код(путь_к_файлу):
|
|
529
532
|
слова.insert(поз + сдвиг + 2, (1, 'True', отступов))
|
530
533
|
слова.insert(поз + сдвиг + 3, (54, ')', отступов))
|
531
534
|
сдвиг += 3
|
535
|
+
if поз + сдвиг + 2 < len(слова) and слова[поз + сдвиг + 2][1] != '\n':
|
536
|
+
слова.insert(поз + сдвиг + 2, (4, '\n', отступов))
|
537
|
+
слова.insert(поз + сдвиг + 3, (5, '\t' * (отступов + 1), отступов + 1))
|
538
|
+
сдвиг += 2
|
539
|
+
сч = поз + сдвиг + 2
|
532
540
|
|
533
541
|
сдвиг = 0
|
534
542
|
for поз in [i for i, x in enumerate(слова) if x[1] == 'До']:
|
@@ -586,17 +594,37 @@ def Преобразовать_код(путь_к_файлу):
|
|
586
594
|
else: break
|
587
595
|
|
588
596
|
# Запускаем разборщик
|
589
|
-
global Ошибка_чтения_кода
|
590
597
|
исходник = None
|
591
598
|
try:
|
592
599
|
исходник = Разборщик_слов.untokenize(map(lambda с: (с[0], с[1]), слова))
|
593
600
|
except Exception as ошибка:
|
594
|
-
|
595
|
-
Ошибка_чтения_кода = True
|
601
|
+
Вывести_текст_исключения(ошибка, 'при чтении кода', путь_к_файлу)
|
596
602
|
|
597
|
-
|
603
|
+
if исходник:
|
604
|
+
исходник = 'import ' + __name__.split('.')[0] + '.__Заголовочный_код__\n\n' + исходник
|
598
605
|
|
599
|
-
return
|
606
|
+
return исходник
|
607
|
+
|
608
|
+
def Посчитать_физические_строки(путь_к_файлу, логическая_строка):
|
609
|
+
try:
|
610
|
+
физические_строки = 0
|
611
|
+
текущая_логическая = 0
|
612
|
+
with open(путь_к_файлу, 'r', encoding='utf-8') as файл:
|
613
|
+
продолжение = False
|
614
|
+
for строка in файл:
|
615
|
+
физические_строки += 1
|
616
|
+
строка = строка.rstrip('\n')
|
617
|
+
if not продолжение:
|
618
|
+
текущая_логическая += 1
|
619
|
+
if строка.endswith('\\'):
|
620
|
+
продолжение = True
|
621
|
+
else:
|
622
|
+
продолжение = False
|
623
|
+
if текущая_логическая >= логическая_строка:
|
624
|
+
return физические_строки
|
625
|
+
return физические_строки
|
626
|
+
except:
|
627
|
+
return логическая_строка
|
600
628
|
|
601
629
|
def Вывести_текст_исключения(исключение, заголовок, путь_к_файлу):
|
602
630
|
назв_исп_ф = путь_к_файлу.split('\\' if Система.platform.startswith('win32') else '/')[-1]
|
@@ -617,6 +645,9 @@ def Вывести_текст_исключения(исключение, заг
|
|
617
645
|
try: номер_строки = исключение.lineno - 2
|
618
646
|
except: номер_строки = 0
|
619
647
|
|
648
|
+
if номер_строки > 0:
|
649
|
+
номер_строки = Посчитать_физические_строки(путь_к_файлу, номер_строки)
|
650
|
+
|
620
651
|
выч_стр = 0
|
621
652
|
for ц in Циклы_со_счётчиком:
|
622
653
|
if номер_строки > ц[1] + 1: выч_стр += 2;
|
@@ -633,6 +664,9 @@ def Вывести_текст_исключения(исключение, заг
|
|
633
664
|
try: print(' ' + исключение.msg)
|
634
665
|
except: print(' ' + str(исключение))
|
635
666
|
|
667
|
+
input()
|
668
|
+
Система.exit()
|
669
|
+
|
636
670
|
def Запустить_код(название, исходник, путь_к_файлу):
|
637
671
|
код = None
|
638
672
|
try: код = compile(исходник, название, 'exec')
|
@@ -1,11 +1,11 @@
|
|
1
1
|
rupython/__main__.py,sha256=BxtsIK8PJuOOGVDKxqoscwJjjWWhZts7adicFuwUL6k,540
|
2
2
|
rupython/__Заголовочный_код__.py,sha256=VWghfQc6dv9lwIeQvJotpdOlBtHZeN00NBeL4RdWloA,10998
|
3
|
-
rupython/Преобразователь.py,sha256=
|
3
|
+
rupython/Преобразователь.py,sha256=zH2eaYqAKwfYXOUU_WWVqC6omm8Cp4jPxo0X_-A_MUk,38855
|
4
4
|
rupython/Модули/Матем.py,sha256=d8ekm7GJreu7LJ9KmAKcTOciIUQ-VBI567BfK_QeLSc,3587
|
5
5
|
rupython/Модули/РегВыр.py,sha256=yeXYfeDF2qw4DSKVdZVSFInMUW52U7Nq_KOJKvm4XnM,6349
|
6
6
|
rupython/Модули/Случ.py,sha256=oeVdSdFVb4X_T-nX2P7NSIhise1zUPIS4lk7h-67XSg,2689
|
7
|
-
rupython-1.1.
|
8
|
-
rupython-1.1.
|
9
|
-
rupython-1.1.
|
10
|
-
rupython-1.1.
|
11
|
-
rupython-1.1.
|
7
|
+
rupython-1.1.4.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
|
8
|
+
rupython-1.1.4.dist-info/METADATA,sha256=iyWOSt6mARPjZIlvKypU8irr7WB7_f2CwtfkYugETEE,13869
|
9
|
+
rupython-1.1.4.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
10
|
+
rupython-1.1.4.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
|
11
|
+
rupython-1.1.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|