rupython 1.3.0__py3-none-any.whl → 1.3.1__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 +32 -17
- {rupython-1.3.0.dist-info → rupython-1.3.1.dist-info}/METADATA +1 -1
- {rupython-1.3.0.dist-info → rupython-1.3.1.dist-info}/RECORD +6 -6
- {rupython-1.3.0.dist-info → rupython-1.3.1.dist-info}/LICENSE +0 -0
- {rupython-1.3.0.dist-info → rupython-1.3.1.dist-info}/WHEEL +0 -0
- {rupython-1.3.0.dist-info → rupython-1.3.1.dist-info}/top_level.txt +0 -0
@@ -3,8 +3,8 @@ import runpy as Запуск_кода
|
|
3
3
|
import traceback as Разборщик_исключений
|
4
4
|
import os as ОС
|
5
5
|
import sys as Система
|
6
|
-
import importlib as Импортование
|
7
6
|
import re as РегВыр
|
7
|
+
import shutil as Операции_оболочки
|
8
8
|
from io import StringIO as Текстовый_ВВ
|
9
9
|
|
10
10
|
Служебные_слова = {
|
@@ -48,7 +48,9 @@ from io import StringIO as Текстовый_ВВ
|
|
48
48
|
'Используя': 'with',
|
49
49
|
'Удалить': 'del',
|
50
50
|
'Выбрать': 'match',
|
51
|
-
'При': 'case'
|
51
|
+
'При': 'case',
|
52
|
+
'Асинхр': 'async',
|
53
|
+
'Ожидать': 'await'
|
52
54
|
}
|
53
55
|
|
54
56
|
Встроенные_функции = {
|
@@ -475,16 +477,27 @@ def Обработать_импорт(импорт, путь_к_текущему
|
|
475
477
|
путь = разделитель.join(путь) + \
|
476
478
|
(разделитель + источник.replace('.', разделитель) if len(источник) > 0 else '') + \
|
477
479
|
разделитель + название
|
478
|
-
|
480
|
+
|
481
|
+
def Преобразовать_скрипт(путь, доп_путь = None):
|
479
482
|
if путь not in Временные_файлы:
|
480
483
|
код = Преобразовать_код(путь + '.крп')
|
481
|
-
файл = open(путь + '.py', mode='w', encoding='utf-8')
|
482
|
-
if
|
484
|
+
файл = open((путь if not доп_путь else доп_путь) + '.py', mode='w', encoding='utf-8')
|
485
|
+
if not файл:
|
483
486
|
искл = FileNotFoundError('Невозможно открыть файл "' + файл + '".')
|
484
487
|
Вывести_текст_исключения(искл, 'при чтении кода', путь_к_файлу)
|
485
488
|
файл.write(код)
|
486
489
|
файл.close()
|
487
|
-
Временные_файлы.append(путь)
|
490
|
+
Временные_файлы.append(путь if not доп_путь else доп_путь)
|
491
|
+
|
492
|
+
if ОС.path.isfile(путь + '.крп') and not ОС.path.isfile(путь + '.py'):
|
493
|
+
Преобразовать_скрипт(путь)
|
494
|
+
elif ОС.path.exists(путь):
|
495
|
+
for скрипт_пакета in [('__Основа__', '__init__'), ('__Запуск__', '__main__')]:
|
496
|
+
if ОС.path.isfile(путь + разделитель + скрипт_пакета[0] + '.крп'):
|
497
|
+
Преобразовать_скрипт(
|
498
|
+
путь + разделитель + скрипт_пакета[0],
|
499
|
+
путь + разделитель + скрипт_пакета[1]
|
500
|
+
)
|
488
501
|
|
489
502
|
def Проверить_соответствие_слов(слова, путь_к_файлу):
|
490
503
|
def Вывести_исключение(инструкция):
|
@@ -720,11 +733,19 @@ def Посчитать_физические_строки(путь_к_файлу,
|
|
720
733
|
r"TypeError: cannot unpack non-iterable (\w+) object": r'Невозможно распаковать неитерируемый объект типа "\1".',
|
721
734
|
r"MemoryError": r'Недостаточно памяти для выполнения операции.',
|
722
735
|
r"OverflowError: (.+)": r'Переполнение: \1.',
|
723
|
-
r"no binding for nonlocal '(.+)' found": 'Не найдена привязка для нелокальной сущности "\1".',
|
736
|
+
r"no binding for nonlocal '(.+)' found": r'Не найдена привязка для нелокальной сущности "\1".',
|
724
737
|
r"AssertionError": r'Ошибка проверки: условие не выполнено.',
|
725
|
-
r"attempted relative import with no known parent package": r'Попытка относительного импорта без известного родительского пакета.'
|
738
|
+
r"attempted relative import with no known parent package": r'Попытка относительного импорта без известного родительского пакета.',
|
739
|
+
r"pop from empty list": r'Извлечение из пустого списка.',
|
740
|
+
r"No module named '(.+)'": r'Модуль под названием "\1" не найден.'
|
726
741
|
}
|
727
742
|
|
743
|
+
def Очистить_файлы():
|
744
|
+
for файл in Временные_файлы:
|
745
|
+
ОС.remove(файл + '.py')
|
746
|
+
кэш = ОС.path.join(ОС.path.dirname(файл), '__pycache__')
|
747
|
+
if ОС.path.exists(кэш): Операции_оболочки.rmtree(кэш)
|
748
|
+
|
728
749
|
def Вывести_текст_исключения(исключение, заголовок, путь_к_файлу, с_заголовком = True):
|
729
750
|
назв_исп_ф = путь_к_файлу.split('\\' if Система.platform.startswith('win32') else '/')[-1]
|
730
751
|
сч = 1
|
@@ -747,12 +768,6 @@ def Вывести_текст_исключения(исключение, заг
|
|
747
768
|
if номер_строки > 0:
|
748
769
|
номер_строки = Посчитать_физические_строки(путь_к_файлу, номер_строки)
|
749
770
|
|
750
|
-
выч_стр = 0
|
751
|
-
for ц in Циклы_со_счётчиком:
|
752
|
-
if номер_строки > ц[1] + 1: выч_стр += 2;
|
753
|
-
elif номер_строки > ц[0]: выч_стр += 1; break
|
754
|
-
else: break
|
755
|
-
номер_строки -= выч_стр
|
756
771
|
название_исключения = type(исключение).__name__
|
757
772
|
if название_исключения in Исключения.values():
|
758
773
|
название_исключения = next(к for к, з in Исключения.items() if з == название_исключения)
|
@@ -768,9 +783,9 @@ def Вывести_текст_исключения(исключение, заг
|
|
768
783
|
if РегВыр.match(шаблон, текст_исключения):
|
769
784
|
текст_исключения = РегВыр.sub(шаблон, перевод, текст_исключения)
|
770
785
|
break
|
771
|
-
print((' ' if с_заголовком else '')
|
786
|
+
print((' ' if с_заголовком else '') + str(текст_исключения))
|
772
787
|
|
773
|
-
|
788
|
+
Очистить_файлы()
|
774
789
|
input()
|
775
790
|
Система.exit()
|
776
791
|
|
@@ -783,4 +798,4 @@ def Запустить_код(название, исходник, путь_к_ф
|
|
783
798
|
try: Запуск_кода._run_module_code(код, mod_name="__Главный__", script_name=путь_к_файлу)
|
784
799
|
except Exception as исключение:
|
785
800
|
Вывести_текст_исключения(исключение, 'при выполнении кода', путь_к_файлу)
|
786
|
-
|
801
|
+
Очистить_файлы()
|
@@ -1,7 +1,7 @@
|
|
1
1
|
rupython/__main__.py,sha256=wfmjyJhg6iQN1_9Hl6tIu6mKHO95xP2ibVcDdIIEXjE,1256
|
2
2
|
rupython/__Заголовочный_код__.py,sha256=yTxMJ93pxJeg_h-BnrTMoAqSB_a0tliYX6gkXtTyWx8,13594
|
3
3
|
rupython/__Общие_функции__.py,sha256=MH9QLcXqeFmpOS5_N8P5wA5eCYutlHRc7YUatn3CUIk,1255
|
4
|
-
rupython/Преобразователь.py,sha256=
|
4
|
+
rupython/Преобразователь.py,sha256=2d3ty3VSnU2cT7oG8Kyta2ejies_3vJPJSuGNf0jBBA,50363
|
5
5
|
rupython/Модули/Асинхр.py,sha256=sPQUgbS_kXj-Gyn2YCjXNCUqAy8aUW2-P6gO5e7f6Cc,9925
|
6
6
|
rupython/Модули/БД.py,sha256=GQSKiv3fRF9Bsw4S7jXw4KR1Ibqvk8TwQbEe1JjvsGA,38392
|
7
7
|
rupython/Модули/ДатаВремя.py,sha256=Ec9YyY1jb-R9uyXrrDNfaTqBQVv98_GPn29OY8dUkj8,27523
|
@@ -14,8 +14,8 @@ rupython/Модули/Потоки.py,sha256=am6hWxcrCx4Vx_FFPMIIhSl_ShWSV5vjW5d
|
|
14
14
|
rupython/Модули/РегВыр.py,sha256=OWgYtgBDtHsEHUOAsGx7K0UGq92sumSqEyf-sVpICjw,6709
|
15
15
|
rupython/Модули/Случ.py,sha256=foIuQo2QZ5z0iyxp9fn4NaunSx96vYzC2pRjwaT2FD8,2723
|
16
16
|
rupython/Модули/Файлы.py,sha256=AekdYf2jmPhRW_9BngbQDzgTfsMr4zPpKzuwp6fRfzQ,6895
|
17
|
-
rupython-1.3.
|
18
|
-
rupython-1.3.
|
19
|
-
rupython-1.3.
|
20
|
-
rupython-1.3.
|
21
|
-
rupython-1.3.
|
17
|
+
rupython-1.3.1.dist-info/LICENSE,sha256=qqVMvbdzR5e4XIV6qwYVgI5Ovki8wR0qZaKB2Oj9DXw,25656
|
18
|
+
rupython-1.3.1.dist-info/METADATA,sha256=SrKBt4MpO6sAbbE0pqWB7if728Q4r5UILawWh4lu3tM,30445
|
19
|
+
rupython-1.3.1.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
20
|
+
rupython-1.3.1.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
|
21
|
+
rupython-1.3.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|