rupython 1.2.12__py3-none-any.whl → 1.2.14__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/247/342/225/250/342/226/221/342/225/250/342/224/202/342/225/250/342/225/233/342/225/250/342/225/227/342/225/250/342/225/233/342/225/250/342/226/223/342/225/250/342/225/233/342/225/244/320/227/342/225/250/342/225/234/342/225/244/320/233/342/225/250/342/225/243_/342/225/250/342/225/221/342/225/250/342/225/233/342/225/250/342/224/244__.py +50 -4
- 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.py +100 -100
- 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 +56 -56
- 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/244/342/225/250/342/226/221/342/225/244/320/222/342/225/250/342/226/221/342/225/250/320/242/342/225/244/320/220/342/225/250/342/225/241/342/225/250/342/225/235/342/225/244/320/237.py +212 -212
- 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/247/342/225/250/342/226/221/342/225/250/342/224/220/342/225/244/320/220/342/225/250/342/225/233/342/225/244/320/221/342/225/244/320/233.py +141 -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/252/342/225/244/320/223/342/225/244/320/227/342/225/250/342/226/221.py +32 -32
- 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/252/342/225/250/342/225/233/342/225/250/342/225/227/342/225/250/342/225/227/342/225/250/342/225/241/342/225/250/342/225/221/342/225/244/320/226/342/225/250/342/225/225/342/225/250/342/225/225.py +326 -326
- 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/254/342/225/250/342/226/221/342/225/244/320/222/342/225/250/342/225/241/342/225/250/342/225/235.py +4 -4
- 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/256/342/225/244/320/227/342/225/250/342/225/241/342/225/244/320/220/342/225/250/342/225/241/342/225/250/342/224/244/342/225/244/320/234.py +82 -82
- 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/257/342/225/250/342/225/233/342/225/244/320/222/342/225/250/342/225/233/342/225/250/342/225/221/342/225/250/342/225/225.py +121 -121
- 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/260/342/225/250/342/225/241/342/225/250/342/224/202/342/225/250/320/242/342/225/244/320/233/342/225/244/320/220.py +42 -42
- 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/264/342/225/250/342/226/221/342/225/250/342/225/243/342/225/250/342/225/227/342/225/244/320/233.py +123 -0
- rupython-1.2.14.dist-info/LICENSE +55 -0
- {rupython-1.2.12.dist-info → rupython-1.2.14.dist-info}/METADATA +6 -3
- rupython-1.2.14.dist-info/RECORD +21 -0
- rupython-1.2.12.dist-info/LICENSE +0 -27
- rupython-1.2.12.dist-info/RECORD +0 -19
- {rupython-1.2.12.dist-info → rupython-1.2.14.dist-info}/WHEEL +0 -0
- {rupython-1.2.12.dist-info → rupython-1.2.14.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,141 @@
|
|
1
|
+
import requests
|
2
|
+
|
3
|
+
Словарь_параметров_запроса = {
|
4
|
+
'параметры': 'params',
|
5
|
+
'данные': 'data',
|
6
|
+
'данные_json': 'json',
|
7
|
+
'заголовки': 'headers',
|
8
|
+
'куки': 'cookies',
|
9
|
+
'аутентификация': 'auth',
|
10
|
+
'таймаут': 'timeout',
|
11
|
+
'разрешить_перенаправления': 'allow_redirects',
|
12
|
+
'проверить_шифрование': 'verify',
|
13
|
+
'поток': 'stream',
|
14
|
+
'прокси': 'proxies',
|
15
|
+
'кодование_ответа': 'encoding',
|
16
|
+
'задержка_соединения': 'connect',
|
17
|
+
'задержка_чтения': 'read'
|
18
|
+
}
|
19
|
+
|
20
|
+
Успешно = 200
|
21
|
+
Создано = 201
|
22
|
+
Принято = 202
|
23
|
+
Нет_содержимого = 204
|
24
|
+
Множественный_выбор = 300
|
25
|
+
Перенаправление = 301
|
26
|
+
Найдено = 302
|
27
|
+
Не_изменено = 304
|
28
|
+
Неверный_запрос = 400
|
29
|
+
Не_авторизован = 401
|
30
|
+
Запрещено = 403
|
31
|
+
Не_найдено = 404
|
32
|
+
Метод_не_разрешен = 405
|
33
|
+
Конфликт = 409
|
34
|
+
Ошибка_сервера = 500
|
35
|
+
Не_реализовано = 501
|
36
|
+
Служба_недоступна = 503
|
37
|
+
|
38
|
+
class Ответ:
|
39
|
+
def __init__(экземпляр, исходный_ответ: requests.Response):
|
40
|
+
экземпляр._ответ = исходный_ответ
|
41
|
+
|
42
|
+
@property
|
43
|
+
def код_статуса(экземпляр): return экземпляр._ответ.status_code
|
44
|
+
|
45
|
+
@property
|
46
|
+
def текст(экземпляр): return экземпляр._ответ.text
|
47
|
+
|
48
|
+
@property
|
49
|
+
def json(экземпляр):
|
50
|
+
try: return экземпляр._ответ.json()
|
51
|
+
except requests.exceptions.JSONDecodeError: return None
|
52
|
+
|
53
|
+
@property
|
54
|
+
def заголовки(экземпляр): return экземпляр._ответ.headers
|
55
|
+
|
56
|
+
@property
|
57
|
+
def байты(экземпляр): return экземпляр._ответ.content
|
58
|
+
|
59
|
+
@property
|
60
|
+
def успешно(экземпляр): return экземпляр._ответ.ok
|
61
|
+
|
62
|
+
@property
|
63
|
+
def кодование(экземпляр): return экземпляр._ответ.encoding
|
64
|
+
|
65
|
+
@кодование.setter
|
66
|
+
def кодование(экземпляр, новое_кодование):
|
67
|
+
экземпляр._ответ.encoding = новое_кодование
|
68
|
+
|
69
|
+
def Выдать_ошибку(экземпляр): экземпляр._ответ.raise_for_status()
|
70
|
+
|
71
|
+
def __str__(экземпляр):
|
72
|
+
return f"Ответ (статус: {экземпляр.код_статуса}, ссылка: {экземпляр._ответ.ссылка})"
|
73
|
+
|
74
|
+
def __repr__(экземпляр):
|
75
|
+
return f"<Ответ - статус: {экземпляр.код_статуса}, ссылка: {экземпляр._ответ.ссылка}>"
|
76
|
+
|
77
|
+
class Запросы:
|
78
|
+
def __init__(экземпляр):
|
79
|
+
экземпляр._сессия = requests.Session()
|
80
|
+
|
81
|
+
def _Перевести_параметры(экземпляр, **ИА):
|
82
|
+
новые_ИА = {}
|
83
|
+
for ключ, значение in ИА.items():
|
84
|
+
if isinstance(ключ, tuple) and ключ[0] == 'таймаут':
|
85
|
+
connect_timeout = ИА.get(('таймаут', 'задержка_соединения'), None)
|
86
|
+
read_timeout = ИА.get(('таймаут', 'задержка_чтения'), None)
|
87
|
+
if connect_timeout is not None or read_timeout is not None:
|
88
|
+
новые_ИА['timeout'] = (connect_timeout, read_timeout)
|
89
|
+
else:
|
90
|
+
if ключ in Словарь_параметров_запроса:
|
91
|
+
новые_ИА[Словарь_параметров_запроса[ключ]] = значение
|
92
|
+
else:
|
93
|
+
новые_ИА[ключ] = значение
|
94
|
+
return новые_ИА
|
95
|
+
|
96
|
+
def Получить(экземпляр, ссылка, **ИА):
|
97
|
+
переведенные_параметры = экземпляр._Перевести_параметры(**ИА)
|
98
|
+
ответ = экземпляр._сессия.get(ссылка, **переведенные_параметры)
|
99
|
+
return Ответ_HTTP(ответ)
|
100
|
+
|
101
|
+
def Отправить(экземпляр, ссылка, **ИА):
|
102
|
+
переведенные_параметры = экземпляр._Перевести_параметры(**ИА)
|
103
|
+
ответ = экземпляр._сессия.post(ссылка, **переведенные_параметры)
|
104
|
+
return Ответ_HTTP(ответ)
|
105
|
+
|
106
|
+
def Положить(экземпляр, ссылка, **ИА):
|
107
|
+
переведенные_параметры = экземпляр._Перевести_параметры(**ИА)
|
108
|
+
ответ = экземпляр._сессия.put(ссылка, **переведенные_параметры)
|
109
|
+
return Ответ_HTTP(ответ)
|
110
|
+
|
111
|
+
def Удалить(экземпляр, ссылка, **ИА):
|
112
|
+
переведенные_параметры = экземпляр._Перевести_параметры(**ИА)
|
113
|
+
ответ = экземпляр._сессия.delete(ссылка, **переведенные_параметры)
|
114
|
+
return Ответ_HTTP(ответ)
|
115
|
+
|
116
|
+
def Заголовки(экземпляр, ссылка, **ИА):
|
117
|
+
переведенные_параметры = экземпляр._Перевести_параметры(**ИА)
|
118
|
+
ответ = экземпляр._сессия.head(ссылка, **переведенные_параметры)
|
119
|
+
return Ответ_HTTP(ответ)
|
120
|
+
|
121
|
+
def Опции(экземпляр, ссылка, **ИА):
|
122
|
+
переведенные_параметры = экземпляр._Перевести_параметры(**ИА)
|
123
|
+
ответ = экземпляр._сессия.options(ссылка, **переведенные_параметры)
|
124
|
+
return Ответ_HTTP(ответ)
|
125
|
+
|
126
|
+
def Изменить(экземпляр, ссылка, **ИА):
|
127
|
+
переведенные_параметры = экземпляр._Перевести_параметры(**ИА)
|
128
|
+
ответ = экземпляр._сессия.patch(ссылка, **переведенные_параметры)
|
129
|
+
return Ответ_HTTP(ответ)
|
130
|
+
|
131
|
+
def Закрыть_сессию(экземпляр):
|
132
|
+
экземпляр._сессия.close()
|
133
|
+
|
134
|
+
Запросы_по_умолчанию = Запросы()
|
135
|
+
def Получить(ссылка, **ИА): return Запросы_по_умолчанию.Получить(ссылка, **ИА)
|
136
|
+
def Отправить(ссылка, **ИА): return Запросы_по_умолчанию.Отправить(ссылка, **ИА)
|
137
|
+
def Положить(ссылка, **ИА): return Запросы_по_умолчанию.Положить(ссылка, **ИА)
|
138
|
+
def Удалить(ссылка, **ИА): return Запросы_по_умолчанию.Удалить(ссылка, **ИА)
|
139
|
+
def Заголовки(ссылка, **ИА): return Запросы_по_умолчанию.Заголовки(ссылка, **ИА)
|
140
|
+
def Опции(ссылка, **ИА): return Запросы_по_умолчанию.Опции(ссылка, **ИА)
|
141
|
+
def Изменить(ссылка, **ИА): return Запросы_по_умолчанию.Изменить(ссылка, **ИА)
|
@@ -23,59 +23,59 @@ def Склонение_после_числительного(число, сло
|
|
23
23
|
)
|
24
24
|
|
25
25
|
class Куча:
|
26
|
-
def __init__(
|
27
|
-
|
28
|
-
heapq.heapify(
|
26
|
+
def __init__(экземпляр, перебираемое=None):
|
27
|
+
экземпляр._heap = list(перебираемое or [])
|
28
|
+
heapq.heapify(экземпляр._heap)
|
29
29
|
|
30
|
-
def Добавить(
|
31
|
-
heapq.heappush(
|
30
|
+
def Добавить(экземпляр, элемент):
|
31
|
+
heapq.heappush(экземпляр._heap, элемент)
|
32
32
|
|
33
|
-
def Извлечь(
|
34
|
-
if not
|
33
|
+
def Извлечь(экземпляр):
|
34
|
+
if not экземпляр._heap:
|
35
35
|
raise IndexError("Куча пуста")
|
36
|
-
return heapq.heappop(
|
36
|
+
return heapq.heappop(экземпляр._heap)
|
37
37
|
|
38
|
-
def Добавить_и_извлечь(
|
39
|
-
return heapq.heappushpop(
|
38
|
+
def Добавить_и_извлечь(экземпляр, элемент):
|
39
|
+
return heapq.heappushpop(экземпляр._heap, элемент)
|
40
40
|
|
41
|
-
def Заменить(
|
42
|
-
if not
|
41
|
+
def Заменить(экземпляр, элемент):
|
42
|
+
if not экземпляр._heap:
|
43
43
|
raise IndexError("Куча пуста")
|
44
|
-
return heapq.heapreplace(
|
44
|
+
return heapq.heapreplace(экземпляр._heap, элемент)
|
45
45
|
|
46
|
-
def Наибольшие(
|
46
|
+
def Наибольшие(экземпляр, количество, ключ=None):
|
47
47
|
kwargs = {'n': количество}
|
48
48
|
if ключ is not None:
|
49
49
|
kwargs['key'] = ключ
|
50
|
-
return heapq.nlargest(**kwargs, iterable
|
50
|
+
return heapq.nlargest(**kwargs, iterable=экземпляр._heap)
|
51
51
|
|
52
|
-
def Наименьшие(
|
52
|
+
def Наименьшие(экземпляр, количество, ключ=None):
|
53
53
|
kwargs = {'n': количество}
|
54
54
|
if ключ is not None:
|
55
55
|
kwargs['key'] = ключ
|
56
|
-
return heapq.nsmallest(**kwargs, iterable
|
56
|
+
return heapq.nsmallest(**kwargs, iterable=экземпляр._heap)
|
57
57
|
|
58
|
-
def Размер(
|
59
|
-
return len(
|
58
|
+
def Размер(экземпляр):
|
59
|
+
return len(экземпляр._heap)
|
60
60
|
|
61
|
-
def Пустая(
|
62
|
-
return len(
|
61
|
+
def Пустая(экземпляр):
|
62
|
+
return len(экземпляр._heap) == 0
|
63
63
|
|
64
|
-
def Получить_список(
|
65
|
-
return list(
|
64
|
+
def Получить_список(экземпляр):
|
65
|
+
return list(экземпляр._heap)
|
66
66
|
|
67
|
-
def __len__(
|
68
|
-
return len(
|
67
|
+
def __len__(экземпляр):
|
68
|
+
return len(экземпляр._heap)
|
69
69
|
|
70
|
-
def __iter__(
|
71
|
-
return iter(
|
70
|
+
def __iter__(экземпляр):
|
71
|
+
return iter(экземпляр._heap)
|
72
72
|
|
73
|
-
def __contains__(
|
74
|
-
return элемент in
|
73
|
+
def __contains__(экземпляр, элемент):
|
74
|
+
return элемент in экземпляр._heap
|
75
75
|
|
76
|
-
def __str__(
|
77
|
-
размер =
|
78
|
-
return f"Куча с {Склонение_после_числительного(размер, Словарь_склонений['элемент'])}: {
|
76
|
+
def __str__(экземпляр):
|
77
|
+
размер = экземпляр.Размер()
|
78
|
+
return f"Куча с {Склонение_после_числительного(размер, Словарь_склонений['элемент'])}: {экземпляр._heap}"
|
79
79
|
|
80
80
|
def Слить_кучи(*перебираемые, ключ=None):
|
81
81
|
kwargs = {}
|