rupython 1.1.4__py3-none-any.whl → 1.1.5__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.
@@ -4,6 +4,7 @@ import traceback as Разборщик_исключений
4
4
  import os as ОС
5
5
  import sys as Система
6
6
  import importlib as Импортование
7
+ import re as РегВыр
7
8
 
8
9
  Служебные_слова = {
9
10
  'Да': 'True',
@@ -306,6 +307,7 @@ import importlib as Импортование
306
307
  'ОшибкаЗакодСимволов': 'UnicodeEncodeError',
307
308
  'ОшибкаРаскодСимволов': 'UnicodeDecodeError',
308
309
  'ОшибкаПереводаКодСимв': 'UnicodeTranslateError',
310
+ 'ОшибкаТокена': 'TokenError',
309
311
  'ОбщееПредупреждение': 'Warning',
310
312
  'ПредупрУстаревание': 'DeprecationWarning',
311
313
  'ПредупрОжидаетсяУстаревание': 'PendingDeprecationWarning',
@@ -614,18 +616,32 @@ def Посчитать_физические_строки(путь_к_файлу,
614
616
  for строка in файл:
615
617
  физические_строки += 1
616
618
  строка = строка.rstrip('\n')
617
- if not продолжение:
618
- текущая_логическая += 1
619
- if строка.endswith('\\'):
620
- продолжение = True
621
- else:
622
- продолжение = False
619
+ if not продолжение: текущая_логическая += 1
620
+ продолжение = строка.endswith('\\')
623
621
  if текущая_логическая >= логическая_строка:
624
622
  return физические_строки
625
623
  return физические_строки
626
624
  except:
627
625
  return логическая_строка
628
626
 
627
+ Переводы_ошибок = {
628
+ r'.*EOF in multi-line statement.*': r'Неожиданный конец файла при обработке многострочной инструкции.',
629
+ r'name "(\w+)" is not defined': r'Переменная "\1" не определена.',
630
+ r'unsupported operand type\(s\) for .+: "(\w+)" and "(\w+)"': r'Неподдерживаемая операция между типами "\1" и "\2".',
631
+ r'invalid literal for int\(\) with base \d+: "(.+)"': r'Недопустимое значение "\1" для преобразования в целое число.',
632
+ r'division by zero': r'Деление на ноль.',
633
+ r'list index out of range': r'Индекс за пределами списка.',
634
+ r'"(\w+)" object has no attribute "(\w+)"': r'Объект типа "\1" не имеет атрибута "\2".',
635
+ r'module "(\w+)" has no attribute "(\w+)"': r'Модуль "\1" не имеет атрибута "\2".',
636
+ r'cannot import name "(\w+)" from "(\w+)"': r'Не удалось импортовать "\1" из модуля "\2".',
637
+ r'no such file or directory: "(.+)"': r'Файл или директория "\1" не найдены.',
638
+ r'index (\d+) is out of range': r'Индекс \1 вне допустимого диапазона.',
639
+ r'key "(\w+)" not found': r'Ключ "\1" не найден.',
640
+ r'invalid syntax': r'Синтаксическая ошибка.',
641
+ r'expected .+, got .+': r'Ожидался один тип данных, получен другой.',
642
+ r'int\(\) argument must be a string, a bytes-like object or a number, not "(\w+)"': r'Аргумент Цел() должен быть строкой, байтовым объектом или числом, а не "\1".'
643
+ }
644
+
629
645
  def Вывести_текст_исключения(исключение, заголовок, путь_к_файлу):
630
646
  назв_исп_ф = путь_к_файлу.split('\\' if Система.platform.startswith('win32') else '/')[-1]
631
647
  сч = 1
@@ -661,8 +677,14 @@ def Вывести_текст_исключения(исключение, заг
661
677
  print(' в файле "' + путь_к_файлу + '"' + ('.\n' if номер_строки == 0 else ''))
662
678
  if номер_строки > 0:
663
679
  print(' на строке № ' + str(номер_строки) + '.\n');
664
- try: print(' ' + исключение.msg)
665
- except: print(' ' + str(исключение))
680
+ try: текст_исключения = исключение.msg
681
+ except AttributeError: текст_исключения = str(исключение)
682
+
683
+ for шаблон, перевод in Переводы_ошибок.items():
684
+ if РегВыр.match(шаблон, текст_исключения):
685
+ текст_исключения = РегВыр.sub(шаблон, перевод, текст_исключения)
686
+ break
687
+ print(' ' + str(текст_исключения))
666
688
 
667
689
  input()
668
690
  Система.exit()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rupython
3
- Version: 1.1.4
3
+ Version: 1.1.5
4
4
  Summary: Исполнитель кода Русского Питона
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,11 +1,11 @@
1
1
  rupython/__main__.py,sha256=BxtsIK8PJuOOGVDKxqoscwJjjWWhZts7adicFuwUL6k,540
2
2
  rupython/__Заголовочный_код__.py,sha256=VWghfQc6dv9lwIeQvJotpdOlBtHZeN00NBeL4RdWloA,10998
3
- rupython/Преобразователь.py,sha256=zH2eaYqAKwfYXOUU_WWVqC6omm8Cp4jPxo0X_-A_MUk,38855
3
+ rupython/Преобразователь.py,sha256=_oJ2iaUxh5jmKqcIaAPW-9oTdx93rTYGITJGgk3cJQI,41041
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.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,,
7
+ rupython-1.1.5.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
8
+ rupython-1.1.5.dist-info/METADATA,sha256=400O3JzEeSfTKjUFZLtOoaeJ28abRjlaSCud5JjF7MQ,13869
9
+ rupython-1.1.5.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
10
+ rupython-1.1.5.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
11
+ rupython-1.1.5.dist-info/RECORD,,