rupython 1.3.2__py3-none-any.whl → 1.3.3__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/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/240/342/225/244/320/221/342/225/250/342/225/225/342/225/250/342/225/234/342/225/244/320/225/342/225/244/320/220/342/225/250/342/225/233/342/225/250/342/225/234/342/225/250/342/225/234/342/225/250/342/225/233/342/225/244/320/221/342/225/244/320/222/342/225/244/320/234.py +99 -0
- 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 +10 -1
- {rupython-1.3.2.dist-info → rupython-1.3.3.dist-info}/METADATA +1 -1
- {rupython-1.3.2.dist-info → rupython-1.3.3.dist-info}/RECORD +7 -6
- {rupython-1.3.2.dist-info → rupython-1.3.3.dist-info}/LICENSE +0 -0
- {rupython-1.3.2.dist-info → rupython-1.3.3.dist-info}/WHEEL +0 -0
- {rupython-1.3.2.dist-info → rupython-1.3.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,99 @@
|
|
1
|
+
import asyncio
|
2
|
+
|
3
|
+
Задача_отменена = asyncio.CancelledError
|
4
|
+
Время_ожидания_истекло = asyncio.TimeoutError
|
5
|
+
Недопустимое_состояние = asyncio.InvalidStateError
|
6
|
+
Чтение_неполное = asyncio.IncompleteReadError
|
7
|
+
Буфер_переполнен = asyncio.LimitOverrunError
|
8
|
+
Ошибка_протокола_потока = asyncio.StreamReaderProtocol
|
9
|
+
Очередь_пуста = asyncio.QueueEmpty
|
10
|
+
Очередь_переполнена = asyncio.QueueFull
|
11
|
+
|
12
|
+
class Процедура:
|
13
|
+
def __init__(экземпляр, функция, *аргументы, **параметры):
|
14
|
+
экземпляр.функция = функция
|
15
|
+
экземпляр.аргументы = аргументы
|
16
|
+
экземпляр.параметры = параметры
|
17
|
+
экземпляр.задача = None
|
18
|
+
|
19
|
+
def Запустить(экземпляр):
|
20
|
+
экземпляр.задача = asyncio.create_task(
|
21
|
+
экземпляр.функция(*экземпляр.аргументы, **экземпляр.параметры)
|
22
|
+
)
|
23
|
+
return экземпляр.задача
|
24
|
+
|
25
|
+
async def Ждать(экземпляр):
|
26
|
+
if экземпляр.задача is None:
|
27
|
+
экземпляр.задача = экземпляр.запустить()
|
28
|
+
return await экземпляр.задача
|
29
|
+
|
30
|
+
class Задачи:
|
31
|
+
def __init__(экземпляр):
|
32
|
+
экземпляр.список = []
|
33
|
+
|
34
|
+
def Добавить(экземпляр, процедура):
|
35
|
+
задача = процедура.Запустить()
|
36
|
+
экземпляр.список.append(задача)
|
37
|
+
|
38
|
+
async def Ждать_все(экземпляр):
|
39
|
+
return await asyncio.gather(*экземпляр.список)
|
40
|
+
|
41
|
+
class Процесс:
|
42
|
+
def __init__(экземпляр, команда):
|
43
|
+
экземпляр.команда = команда
|
44
|
+
экземпляр.процесс = None
|
45
|
+
|
46
|
+
async def Запустить(экземпляр):
|
47
|
+
экземпляр.процесс = await asyncio.create_subprocess_shell(
|
48
|
+
экземпляр.команда,
|
49
|
+
stdout = asyncio.subprocess.PIPE,
|
50
|
+
stderr = asyncio.subprocess.PIPE
|
51
|
+
)
|
52
|
+
stdout, stderr = await экземпляр.процесс.communicate()
|
53
|
+
return {
|
54
|
+
"код": экземпляр.процесс.returncode,
|
55
|
+
"вывод": stdout.decode(),
|
56
|
+
"ошибка": stderr.decode()
|
57
|
+
}
|
58
|
+
|
59
|
+
class Поток:
|
60
|
+
def __init__(экземпляр, поток_чтения):
|
61
|
+
экземпляр.поток = поток_чтения
|
62
|
+
|
63
|
+
async def читать_всё(экземпляр):
|
64
|
+
строки = []
|
65
|
+
while True:
|
66
|
+
строка = await экземпляр.поток.readline()
|
67
|
+
if not строка:
|
68
|
+
break
|
69
|
+
строки.append(строка.decode())
|
70
|
+
return строки
|
71
|
+
|
72
|
+
class Блокование:
|
73
|
+
def __init__(экземпляр):
|
74
|
+
экземпляр.блокировка = asyncio.Lock()
|
75
|
+
|
76
|
+
async def Выполнить(экземпляр, функция, *аргументы, **параметры):
|
77
|
+
async with экземпляр.блокировка:
|
78
|
+
return await функция(*аргументы, **параметры)
|
79
|
+
|
80
|
+
async def Спать(секунд):
|
81
|
+
await asyncio.sleep(секунд)
|
82
|
+
|
83
|
+
def Запустить(процедура):
|
84
|
+
return asyncio.run(процедура)
|
85
|
+
|
86
|
+
def Создать_задачу(процедура):
|
87
|
+
return asyncio.create_task(процедура)
|
88
|
+
|
89
|
+
def Собрать(*процедуры):
|
90
|
+
return asyncio.gather(*процедуры)
|
91
|
+
|
92
|
+
def Ожидать(объект, таймаут = None):
|
93
|
+
return asyncio.wait_for(объект, timeout = таймаут)
|
94
|
+
|
95
|
+
def Все_задачи():
|
96
|
+
return asyncio.all_tasks()
|
97
|
+
|
98
|
+
def Текущая_задача():
|
99
|
+
return asyncio.current_task()
|
@@ -16,6 +16,7 @@ from io import StringIO as Текстовый_ВВ
|
|
16
16
|
'не': 'not',
|
17
17
|
'это': 'is',
|
18
18
|
'Функция': 'def',
|
19
|
+
'функция': 'def',
|
19
20
|
'Класс': 'class',
|
20
21
|
'Общее': 'global', # Глобальное
|
21
22
|
'НеМестное': 'nonlocal', # Нелокальное
|
@@ -521,6 +522,10 @@ def Проверить_соответствие_слов(слова, путь_к
|
|
521
522
|
if поз != len(слова) - 1 and слова[поз + 1][0] not in (4, 61, 65):
|
522
523
|
Вывести_исключение('Возврат'); return False
|
523
524
|
|
525
|
+
for поз in [i for i, x in enumerate(слова) if x[1] == 'функция']:
|
526
|
+
if поз == 0 or слова[поз - 1][1] != 'Асинхр':
|
527
|
+
Вывести_исключение('функция'); return False
|
528
|
+
|
524
529
|
return True
|
525
530
|
|
526
531
|
Циклы_со_счётчиком = []
|
@@ -740,7 +745,11 @@ def Посчитать_физические_строки(путь_к_файлу,
|
|
740
745
|
r"No module named '(.+)'": r'Модуль под названием "\1" не найден.',
|
741
746
|
r"unindent does not match any outer indentation level": r'Отступ не соответствует никакому окружающему уровню.',
|
742
747
|
r"int too big to convert": r'Число слишком большое для преобразования.',
|
743
|
-
r"unexpected indent": r'Неожиданный отступ.'
|
748
|
+
r"unexpected indent": r'Неожиданный отступ.',
|
749
|
+
r"cannot import name '(.+)' from '(.+)' (unknown location)": r'Невозможно импортовать название "\1" из "\2" (неизвестное расположение).',
|
750
|
+
r"(.+) missing (.+) required positional arguments: (.+), and (.+)": r'Для функции "\1" требуется позиционных аргументов: \2 (\3 и \4).',
|
751
|
+
r"module '(.+)' has no attribute '(.+)'": r'Модуль "\1" не имеет атрибута "\1".',
|
752
|
+
r"string argument without an encoding": r'Строковый аргумент без кодования.'
|
744
753
|
}
|
745
754
|
|
746
755
|
def Очистить_файлы():
|
@@ -1,8 +1,9 @@
|
|
1
1
|
rupython/__main__.py,sha256=sb4hTmi5_MtnNDEpm43DAgklVPWT4ddm4yQtattUdeE,1322
|
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=04puHUj0KkH9GpLrA3KCv0tNq6h4ZPJQ0PR-LJgZ3Po,51866
|
5
5
|
rupython/Модули/Асинхр.py,sha256=sPQUgbS_kXj-Gyn2YCjXNCUqAy8aUW2-P6gO5e7f6Cc,9925
|
6
|
+
rupython/Модули/Асинхронность.py,sha256=-iBmQmykdePgP2pW8UQtLQjRND3mVnafdBYccDqc0WQ,3786
|
6
7
|
rupython/Модули/БД.py,sha256=GQSKiv3fRF9Bsw4S7jXw4KR1Ibqvk8TwQbEe1JjvsGA,38392
|
7
8
|
rupython/Модули/ДатаВремя.py,sha256=Ec9YyY1jb-R9uyXrrDNfaTqBQVv98_GPn29OY8dUkj8,27523
|
8
9
|
rupython/Модули/Запросы.py,sha256=BPFWyPDLA6Qjmzb5KwOhuGZ5qjeAE0fudz5aJ8lRa6o,7562
|
@@ -14,8 +15,8 @@ rupython/Модули/Потоки.py,sha256=am6hWxcrCx4Vx_FFPMIIhSl_ShWSV5vjW5d
|
|
14
15
|
rupython/Модули/РегВыр.py,sha256=OWgYtgBDtHsEHUOAsGx7K0UGq92sumSqEyf-sVpICjw,6709
|
15
16
|
rupython/Модули/Случ.py,sha256=foIuQo2QZ5z0iyxp9fn4NaunSx96vYzC2pRjwaT2FD8,2723
|
16
17
|
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.
|
18
|
+
rupython-1.3.3.dist-info/LICENSE,sha256=qqVMvbdzR5e4XIV6qwYVgI5Ovki8wR0qZaKB2Oj9DXw,25656
|
19
|
+
rupython-1.3.3.dist-info/METADATA,sha256=j9TdftdbkoujZD4jVqh23uwUjdIT3SMAYId9Ve41O_s,30456
|
20
|
+
rupython-1.3.3.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
21
|
+
rupython-1.3.3.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
|
22
|
+
rupython-1.3.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|