rupython 1.1.8__py3-none-any.whl → 1.1.10__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/__main__.py CHANGED
@@ -4,9 +4,27 @@ import sys as Система
4
4
 
5
5
  Путь_к_файлу = ОС.path.realpath(Система.argv[1])
6
6
  Название_файла = ОС.path.basename(Система.argv[1])
7
- Исходник = None
7
+
8
+ def Перехватчик_прерывания_клавиатурой(тип_исключения, значение, предыдущие_шаги):
9
+ if тип_исключения == KeyboardInterrupt: print('\nСработало прерывание клавиатурой.')
10
+ else: Система.__excepthook__(тип, значение, предыдущие_шаги)
11
+ Система.excepthook = Перехватчик_прерывания_клавиатурой
12
+
8
13
  Исходник = Преобразователь.Преобразовать_код(Путь_к_файлу)
9
- if Исходник:
10
- Преобразователь.Запустить_код(Название_файла, Исходник, Путь_к_файлу)
14
+ if Исходник: Преобразователь.Запустить_код(Название_файла, Исходник, Путь_к_файлу)
15
+
16
+ def Ожидать_нажатие_клавиши(сообщение):
17
+ if ОС.name == 'nt':
18
+ import msvcrt
19
+ print('\n' + сообщение)
20
+ msvcrt.getch()
21
+ else:
22
+ import tty
23
+ import termios
24
+ print('\n' + сообщение)
25
+ fd = Система.stdin.fileno()
26
+ old_settings = termios.tcgetattr(fd)
27
+ try: tty.setraw(fd); Система.stdin.read(1)
28
+ finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
11
29
 
12
- input()
30
+ Ожидать_нажатие_клавиши('=== Исполнение кода завершено. Нажмите любую клавишу для выхода. ===')
@@ -1,9 +1,7 @@
1
1
  import sqlite3
2
+ import re as РегВыр
2
3
 
3
4
  Ошибка = sqlite3.Error
4
- ОшибкаБазыДанных = sqlite3.DatabaseError
5
- ОшибкаПрограммования = sqlite3.ProgrammingError
6
- ОшибкаОперации = sqlite3.OperationalError
7
5
 
8
6
  Разбор_объявленных_типов = sqlite3.PARSE_DECLTYPES
9
7
  Разбор_названий_столбцов = sqlite3.PARSE_COLNAMES
@@ -82,8 +80,8 @@ import sqlite3
82
80
 
83
81
  'ОПРЕДЕЛИВ': 'WITH',
84
82
  'ВЫБОР': 'CASE',
85
- 'ЕСЛИ': 'WHEN',
86
- 'ТО': 'THEN',
83
+ 'ПРИ': 'WHEN',
84
+ 'ЭТО': 'THEN',
87
85
  'КОНЕЦ': 'END',
88
86
  'РЕКУРСИВНО': 'RECURSIVE',
89
87
 
@@ -262,21 +260,76 @@ def Перевести_код_запроса(текст):
262
260
  запрос = Собрать_запрос(переведённые_токены)
263
261
  return запрос
264
262
 
263
+ Переводы_ошибок = {
264
+ r"no such table: (.+)": r'Таблица "\1" не существует.',
265
+ r"database is locked": r'База данных заблокована.',
266
+ r"near \"(.+)\": syntax error": r'Синтаксическая ошибка около "\1".',
267
+ r"table (.+) already exists": r'Таблица "\1" уже существует.',
268
+ r"no such column: (.+)": r'Столбец "\1" не существует.',
269
+ r"(.+) has no column named (.+)": r'Таблица "\1" не имеет столбца "\2".',
270
+ r"cannot open database file": r'Не удалось открыть файл базы данных.',
271
+ r"database or disk is full": r'База данных или диск переполнены.',
272
+ r"attempt to write a readonly database": r'Попытка записи в базу данных, доступную только для чтения.',
273
+ r"no such index: (.+)": r'Индекс "\1" не существует.',
274
+ r"too many SQL variables": r'Слишком много переменных в запросе.',
275
+ r"maximum recursion depth exceeded": r'Превышена максимальная глубина рекурсии в запросе.',
276
+ r"incomplete input": r'Неполный запрос.',
277
+ r"malformed database schema \((.+)\)": r'Некорректная схема базы данных: \1.',
278
+ r"file is not a database": r'Файл не является базой данных.',
279
+ r"database disk image is malformed": r'Образ диска базы данных повреждён.',
280
+ r"incorrect number of bindings supplied. The statement has (\d+) parameters, and (\d+) were supplied": r'Неверное количество переданных параметров. Ожидаемых запросом параметров - \1, передано - \2.',
281
+ r"You did not supply a value for binding (\d+)": r'Не указано значение для параметра \1.',
282
+ r"Cannot operate on a closed database": r'Невозможно выполнить операцию на закрытой базе данных.',
283
+ r"Cannot operate on a closed cursor": r'Невозможно выполнить операцию на закрытом указателе.',
284
+ r"column (.+) is not unique": r'Столбец "\1" должен быть уникальным.',
285
+ r"number of bound variables does not match number of parameters": r'Количество привязанных переменных не соответствует количеству параметров.',
286
+ r"only one statement is allowed": r'Разрешено выполнять только один запрос за раз.',
287
+ r"NOT NULL constraint failed: (.+)": r'Нарушение ограничения НЕ ПУСТО для столбца "\1".',
288
+ r"UNIQUE constraint failed: (.+)": r'Нарушение ограничения УНИКАЛЬНЫЙ для столбца "\1".',
289
+ r"FOREIGN KEY constraint failed": r'Нарушение ограничения ВНЕШНИЙ КЛЮЧ.',
290
+ r"CHECK constraint failed: (.+)": r'Нарушение ограничения ПРОВЕРЯТЬ: \1.',
291
+ r"PRIMARY KEY must be unique": r'Первичный ключ должен быть уникальным.',
292
+ r"Error binding parameter (\d+) - probably unsupported type": r'Ошибка привязки параметра \1 - вероятно, неподдерживаемый тип.',
293
+ r"Cursor needed to be reset because of commit/rollback and can no longer be fetched from": r'Указатель должен быть сброшен из-за утверждения или отката и больше не может быть использован.',
294
+ r"Warning: You can only execute one statement at a time": r'Можно выполнять только один запрос за раз.',
295
+ r"(.+) not supported by this database": r'Операция "\1" не поддерживается этой базой данных.',
296
+ r"too many connections": r'Слишком много активных подключений к базе данных.',
297
+ r"no such function: (.+)": r'Функция "\1" не существует.',
298
+ r"no such module: (.+)": r'Модуль "\1" не существует.',
299
+ r"parameters are of unsupported type": r'Параметры имеют неподдерживаемый тип.',
300
+ r"interrupted": r'Операция была прервана.',
301
+ r"out of memory": r'Недостаточно памяти для выполнения операции.'
302
+ }
303
+
304
+ def Перевести_ошибку(исключение):
305
+ сообщение = str(исключение)
306
+ for шаблон, перевод in Переводы_ошибок.items():
307
+ совпадение = РегВыр.match(шаблон, сообщение)
308
+ if совпадение:
309
+ return РегВыр.sub(шаблон, перевод, сообщение)
310
+ return f"Неизвестная ошибка: {сообщение}"
311
+
265
312
  class Указатель():
266
313
  def __init__(здесь, курсор):
267
314
  здесь._курсор = курсор
268
315
 
269
316
  def Выполнить_запрос(здесь, запрос, параметры=()):
270
- запрос = Перевести_код_запроса(запрос)
271
- здесь._курсор.execute(запрос, параметры)
317
+ try:
318
+ запрос = Перевести_код_запроса(запрос)
319
+ здесь._курсор.execute(запрос, параметры)
320
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
272
321
 
273
322
  def Выполнить_запросы(здесь, запрос, последовательность_параметров):
274
- запрос = Перевести_код_запроса(запрос)
275
- здесь._курсор.executemany(запрос, последовательность_параметров)
323
+ try:
324
+ запрос = Перевести_код_запроса(запрос)
325
+ здесь._курсор.executemany(запрос, последовательность_параметров)
326
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
276
327
 
277
328
  def Выполнить_сценарий(здесь, сценарий):
278
- скрипт = Перевести_код_запроса(сценарий)
279
- здесь._курсор.executescript(скрипт)
329
+ try:
330
+ скрипт = Перевести_код_запроса(сценарий)
331
+ здесь._курсор.executescript(скрипт)
332
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
280
333
 
281
334
  def Извлечь_запись(здесь):
282
335
  return здесь._курсор.fetchone()
@@ -313,48 +366,67 @@ class Соединение():
313
366
  elif уровень_изоляции == 'ИСКЛЮЧИТЕЛЬНО': уровень_изоляции = 'EXCLUSIVE'
314
367
  else: уровень_изоляции = None
315
368
 
316
- здесь._соединение = sqlite3.connect(
317
- путь,
318
- timeout=таймаут,
319
- detect_types=обнаружение_типов,
320
- isolation_level=уровень_изоляции,
321
- check_same_thread=проверять_тот_же_ли_поток,
322
- cached_statements=кэш_инструкций,
323
- uri=является_ссылкой
324
- )
369
+ try:
370
+ здесь._соединение = sqlite3.connect(
371
+ путь,
372
+ timeout=таймаут,
373
+ detect_types=обнаружение_типов,
374
+ isolation_level=уровень_изоляции,
375
+ check_same_thread=проверять_тот_же_ли_поток,
376
+ cached_statements=кэш_инструкций,
377
+ uri=является_ссылкой
378
+ )
379
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
325
380
 
326
381
  def Создать_указатель(здесь):
327
- курсор = здесь._соединение.cursor()
328
- return Указатель(курсор)
382
+ try:
383
+ курсор = здесь._соединение.cursor()
384
+ return Указатель(курсор)
385
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
329
386
 
330
387
  def Выполнить_запрос(здесь, запрос, параметры=()):
331
- запрос = Перевести_код_запроса(запрос)
332
- указатель = здесь._соединение.execute(запрос, параметры)
333
- return Указатель(указатель)
334
-
335
- def Выполнить_запросы(здесь, запрос, последовательность_параметров):
336
- запрос = Перевести_код_запроса(запрос)
337
- указатель = здесь._соединение.executemany(запрос, последовательность_параметров)
338
- return Указатель(указатель)
388
+ try:
389
+ запрос = Перевести_код_запроса(запрос)
390
+ указатель = здесь._соединение.execute(запрос, параметры)
391
+ return Указатель(указатель)
392
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
393
+
394
+ def Выполнить_запросы(здесь, запрос, параметры):
395
+ try:
396
+ запрос = Перевести_код_запроса(запрос)
397
+ указатель = здесь._соединение.executemany(запрос, параметры)
398
+ return Указатель(указатель)
399
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
339
400
 
340
401
  def Выполнить_сценарий(здесь, сценарий):
341
- скрипт = Перевести_код_запроса(сценарий)
342
- здесь._соединение.executescript(скрипт)
402
+ try:
403
+ скрипт = Перевести_код_запроса(сценарий)
404
+ здесь._соединение.executescript(скрипт)
405
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
343
406
 
344
407
  def Создать_функцию(здесь, имя, количество_параметров, функция):
345
- здесь._соединение.create_function(имя, количество_параметров, функция)
408
+ try: здесь._соединение.create_function(имя, количество_параметров, функция)
409
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
346
410
 
347
- def Создать_агрегатную_функцию(здесь, имя, количество_параметров, класс_агрегатной_функции):
348
- здесь._соединение.create_aggregate(имя, количество_параметров, класс_агрегатной_функции)
411
+ def Создать_агрегатную_функцию(здесь, имя, число_аргументов, класс):
412
+ try: здесь._соединение.create_aggregate(имя, число_аргументов)
413
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
349
414
 
350
415
  def Создать_сопоставление(здесь, имя, функция):
351
- здесь._соединение.create_collation(имя, функция)
416
+ try: здесь._соединение.create_collation(имя, функция)
417
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
352
418
 
353
- def Закрыть(здесь): здесь._соединение.close()
419
+ def Закрыть(здесь):
420
+ try: здесь._соединение.close()
421
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
354
422
 
355
- def Утвердить(здесь): здесь._соединение.commit()
423
+ def Утвердить(здесь):
424
+ try: здесь._соединение.commit()
425
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
356
426
 
357
- def Откатить(здесь): здесь._соединение.rollback()
427
+ def Откатить(здесь):
428
+ try: здесь._соединение.rollback()
429
+ except Ошибка as ош: raise Ошибка(Перевести_ошибку(ош)) from ош
358
430
 
359
431
  @property
360
432
  def В_транзакции(здесь): return здесь._соединение.in_transaction
@@ -0,0 +1,630 @@
1
+ Metadata-Version: 2.1
2
+ Name: rupython
3
+ Version: 1.1.10
4
+ Summary: Исполнитель кода Русского Питона
5
+ Description-Content-Type: text/markdown
6
+ License-File: LICENSE
7
+
8
+ Русская версия языка Python, реализованная в виде транслятора кода в код Python.
9
+
10
+ Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
11
+
12
+ * Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
13
+ * Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
14
+
15
+ Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
16
+
17
+ ### Установка
18
+
19
+ Транслятор устанавливается как пакет соответствующей командой:
20
+
21
+ `pip install rupython`
22
+
23
+ Если "pip" выдаёт ошибку "externally-managed-environment" (под некоторыми версиями ОС Linux), то установка производится следущей командой:
24
+
25
+ `pip install rupython --break-system-packages`
26
+
27
+ Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
28
+
29
+ ```
30
+ assoc .крп = "Код на Русском Питоне"
31
+ ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
32
+ ```
33
+
34
+ Исходный код размещён тут: https://github.com/russkiy/rupython
35
+
36
+ ### Примеры кода
37
+
38
+ ```
39
+ Функция НОД(*числа):
40
+ f = фун a, b: a если b == 0 иначе f(b, a % b)
41
+ Вернуть Свёртка(фун a, b: f(a, b), числа)
42
+
43
+ Функция НОК(*числа):
44
+ числа = Множ(числа)
45
+ n = n_ = Макс(числа)
46
+ числа.Удалить(n)
47
+ Пока Любое(n % m для m в числа): n += n_
48
+ Вернуть n
49
+ ```
50
+
51
+ ```
52
+ Функция Дата_Пасхи(год, нов_ст = Пусто):
53
+ д = (год % 19 * 19 + 15) % 30
54
+ д += (год % 4 * 2 + год % 7 * 4 + 6 * д + 6) % 7
55
+ нов_ст = Да если нов_ст это Пусто и год >= 1918 иначе нов_ст
56
+ Если не нов_ст:
57
+ Если д > 9: Вернуть Строка(д - 9) + ' апреля'
58
+ Иначе: Вернуть Строка(22 + д) + ' марта'
59
+ Иначе:
60
+ п = год // 100 - год // 400 - 2
61
+ Если д > 39 - п: Вернуть Строка(д - 39 + п) + ' мая'
62
+ Иначе: Вернуть Строка(д - 9 + п) + ' апреля'
63
+ ```
64
+
65
+ ### Обзор особенностей языка
66
+
67
+ ##### Основные встроенные типы данных:
68
+
69
+ * Числовые: ```Цел```, ```Вещ```, ```Компл```.
70
+ * Логический: ```Логич``` – значения ```Да``` и ```Нет```.
71
+ * Неопределённое значение: ```Пусто``` (пустое значение, или ничего).
72
+ * Строковый (текстовый): ```Строка```.
73
+ * Последовательности: ```Список```, ```Кортеж```, ```Ряд``` (диапазон).
74
+ * Ассоциативный массив: ```Словарь```.
75
+ * Множества: ```Множ``` и ```НеизмМнож```.
76
+ * Байтовые: ```Байты``` и ```БайтМассив```.
77
+
78
+ Далее представлены примеры кода, демонстрирующие использование наиболее важных языковых конструкций.
79
+
80
+ ##### Условие:
81
+ ```
82
+ Если x > 0:
83
+ зн = 1
84
+ АЕсли x < 0:
85
+ зн = -1
86
+ Иначе:
87
+ зн = 0
88
+ ```
89
+
90
+ ##### Цикл перебора:
91
+ ```
92
+ Для перем из Ряд(10):
93
+ Вывести(перем)
94
+ ```
95
+
96
+ ##### Цикл с предусловием:
97
+ ```
98
+ Пока x < знач:
99
+ x += y
100
+ Если x == z: Продолжить
101
+ ```
102
+
103
+ ##### Цикл с послеусловием:
104
+ ```
105
+ Повторять:
106
+ x *= z
107
+ Если x >= y: Прервать
108
+ До x > знач
109
+ ```
110
+
111
+ ##### Цикл со счётчиком:
112
+ ```
113
+ Цикл i = 0 : i < 10 : i += 1:
114
+ Вывести(i)
115
+ ```
116
+
117
+ ##### Импорт:
118
+ ```
119
+ Из Пакет_1 подключить Модуль_1, Модуль_2
120
+ Подключить Модуль_3 как М3
121
+ ```
122
+
123
+ ##### Логические операции:
124
+ ```
125
+ v = не x и (y или z)
126
+ u = w в сп1 и w не в сп2
127
+ k = l это m и m это не n
128
+ ```
129
+
130
+ ##### Функция:
131
+ ```
132
+ Функция F(a, b):
133
+ Если a == b: Вернуть Да
134
+ Иначе: Вернуть Нет
135
+ ```
136
+
137
+ ```
138
+ Функция Пример(парам):
139
+ Для сч из Ряд(парам):
140
+ Если парам[сч] == 0: Возврат
141
+ ```
142
+
143
+ ##### Генераторы
144
+ ```
145
+ Функция Фиб(n):
146
+ a, b = 0, 1
147
+ Для _ из Ряд(n):
148
+ Выдать a
149
+ a, b = b, a + b
150
+ ```
151
+ ```
152
+ кв_ч = (сч ** 2 для сч в Ряд(1, 10))
153
+ ```
154
+
155
+ ##### Класс
156
+ ```
157
+ Класс Пример(Другой_класс):
158
+ Функция __Подготовка__(здесь, перем = 0):
159
+ здесь.зн = перем
160
+
161
+ Объект = Пример(1)
162
+ ```
163
+
164
+ ##### Значение по условию
165
+ ```
166
+ перем = 0 если x == зн иначе 1
167
+ ```
168
+
169
+ ##### Пропуск действия и удаление переменной
170
+ ```
171
+ Если x == 1: Пропустить
172
+ Иначе: Удалить y
173
+ ```
174
+
175
+ ##### Краткое условие
176
+ ```
177
+ перем = 1 если x > 0 иначе 0
178
+ ```
179
+
180
+ ##### Пропуск действия и удаление переменной
181
+ ```
182
+ Если x == 1: Пропустить
183
+ Иначе: Удалить y
184
+ ```
185
+
186
+ ##### Безымянная (λ) функция
187
+ ```
188
+ В_квадрат = фун x: x ** 2
189
+ ```
190
+
191
+ ##### Обработка исключений
192
+ ```
193
+ Попробовать:
194
+ ч = Цел(строка)
195
+ ПриИсключении ОшибкаЗначения:
196
+ Вывести('Ошибка.')
197
+ Иначе: Вывести('Сработало.')
198
+ ВКонце: Вывести('Выполнено.')
199
+
200
+ Если Тип(x) != Стр:
201
+ Бросить ОшибкаЗначения
202
+ ```
203
+
204
+ ##### Области видимости
205
+ ```
206
+ x = 0
207
+
208
+ Функция Внешняя():
209
+ y = 1
210
+ Функция Внутренняя():
211
+ Общее x
212
+ НеМестное y
213
+ x = y
214
+ Внутренняя()
215
+ ```
216
+
217
+ ##### Проверка существования переменной:
218
+ ```
219
+ Если $Переменная?: Вывести('Существует.')
220
+ ```
221
+
222
+ ##### Обёртка (декоратор) функции
223
+ ```
224
+ Функция Обёртка(Ф):
225
+ Функция ФО():
226
+ Вывести('1')
227
+ Ф()
228
+ Вернуть ФО
229
+
230
+ @Обёртка
231
+ Функция Проверка(): Вывести('2')
232
+ ```
233
+
234
+ ##### Конструкция выбора
235
+ ```
236
+ Выбрать x:
237
+ При 1: зн = '+'
238
+ При -1: зн = '-'
239
+ При _: зн = '0'
240
+ ```
241
+
242
+ ##### Контекстный менеджер
243
+ ```
244
+ ВКонтексте Открыть('Файл.дан', 'r') как файл:
245
+ Пока стр := файл.Читать_строку():
246
+ Вывести(стр.Удалить_по_бокам())
247
+ ```
248
+
249
+ ##### Проверка условия
250
+ ```
251
+ Функция Разделить(x, y):
252
+ Проверить y != 0, 'Деление на 0.'
253
+ Вернуть x / y
254
+ ```
255
+
256
+ ---
257
+
258
+ ### Встроенные функции и обёртки
259
+
260
+ ##### `АбсЗнач(x)`
261
+ Возвращает модуль (абсолютное значение) числа `x`.
262
+
263
+ ##### `АсПеребиратель(асинхр_перебираемое)`
264
+ Создаёт асинхронный перебиратель из асинхронно перебираемого объекта.
265
+
266
+ ##### `Все(перебираемое)`
267
+ Возвращает `Да`, если все элементы перебираемого истинны, иначе `Нет`.
268
+
269
+ ##### `Любое(перебираемое)`
270
+ Возвращает `Да`, если хотя бы один элемент перебираемого истинный.
271
+
272
+ ##### `АсСледущий(асинхр_перебиратель[, по_умолчанию])`
273
+ Возвращает следующий элемент асинхронного перебирателя. Если элементы закончились и задан `по_умолчанию`, возвращает его.
274
+
275
+ ##### `В7битовСимв(объект)`
276
+ Возвращает строковое представление объекта из 7-битовых символов, экрануя остальные.
277
+
278
+ ##### `Двоич(x)`
279
+ Преобразует целое число `x` в строку его двоичного представления.
280
+
281
+ ##### `Логич(объект = Нет)`
282
+ Возвращает `Да`, если объект логически истинный, иначе `Нет`.
283
+
284
+ ##### `Останов(*ПА, **ИА)`
285
+ Запускает отладчик в текущей точке выполнения.
286
+
287
+ ##### `БайтМассив([источник = ''[, кодование[, при_ошибках]]])`
288
+ Создаёт изменяемый массив байтов. При передаче строки — кодует её.
289
+
290
+ ##### `Байты([источник = ''[, кодование[, при_ошибках]]])`
291
+ Создаёт неизменяемую последовательность байтов.
292
+
293
+ ##### `Вызываемое(объект)`
294
+ Проверяет, можно ли объект вызвать как функцию.
295
+
296
+ ##### `Код_в_знак(i)`
297
+ Возвращает многобайтовый символ по его числовому коду.
298
+
299
+ ##### `@Метод_класса`
300
+ Обёртка (декоратор), делающая функцию методом класса (первый аргумент — сам класс).
301
+
302
+ ##### `Собрать_код(исходник, название_файла, режим, флаги = 0, не_наследовать = Нет, оптимизация = -1)`
303
+ Компилирует строку в объект кода.
304
+
305
+ ##### `Компл(число = 0 | строка | действ_часть = 0, мнимая_часть = 0)`
306
+ Создаёт комплексное число из строки, числа или пары вещественных частей.
307
+
308
+ ##### `Удалить_поле(объект, название)`
309
+ Удаляет атрибут объекта по названию.
310
+
311
+ ##### `Словарь([отображение | перебираемое], **ИА)`
312
+ Создаёт словарь. Принимает пары ключ-значение, отображение или именованные аргументы.
313
+
314
+ ##### `Содержимое([объект])`
315
+ Возвращает список доступных атрибутов объекта.
316
+
317
+ ##### `ДелОст(a, b)`
318
+ Возвращает кортеж `(a // b, a % b)` — целая часть и остаток от деления.
319
+
320
+ ##### `Перечислить(перебираемое, начало = 0)`
321
+ Возвращает пары `(индекс, элемент)` с начала `начало`.
322
+
323
+ ##### `ВычВыр(исходник, общие_сущности = Пусто, местные_сущности = Пусто)`
324
+ Вычисляет выражение из строки и возвращает результат.
325
+
326
+ ##### `ВыпКод(исходник, общие_сущности = Пусто, местные_сущности = Пусто, замыкание = Пусто)`
327
+ Выполняет код из строки. Не возвращает результат.
328
+
329
+ ##### `Фильтр(функция, перебираемое)`
330
+ Фильтрует элементы, для которых функция возвращает `Да`.
331
+
332
+ ##### `Вещ(число = 0.0 | строка)`
333
+ Преобразует аргумент в число с плавающей запятой.
334
+
335
+ ##### `Формат(значение, описание = '')`
336
+ Форматует значение по шаблону.
337
+
338
+ ##### `НеизмМнож(перебираемое = Множ())`
339
+ Создаёт неизменяемое множество.
340
+
341
+ ##### `Получить_поле(объект, название[, по_умолчанию])`
342
+ Возвращает атрибут объекта. Если не существует — возвращает `по_умолчанию`, если задано.
343
+
344
+ ##### `Общие_сущности()`
345
+ Возвращает глобальные переменные текущего контекста.
346
+
347
+ ##### `Имеет_поле(объект, название)`
348
+ Проверяет наличие атрибута у объекта.
349
+
350
+ ##### `Хэш(объект)`
351
+ Возвращает хэш-значение объекта.
352
+
353
+ ##### `Справка([запрос])`
354
+ Выводит встроенную справку.
355
+
356
+ ##### `Шестн(x)`
357
+ Преобразует число `x` в строку его шестнадцатеричного представления.
358
+
359
+ ##### `Идент(объект)`
360
+ Возвращает уникальный идентификатор объекта.
361
+
362
+ ##### `Принять(сообщение)`
363
+ Читает строку с клавиатуры. Показывает `сообщение`, если задано.
364
+
365
+ ##### `Цел(число = 0 | строка, основание = 10)`
366
+ Преобразует в целое число. Для строки можно указать основание.
367
+
368
+ ##### `Экземпляр(объект, класс)`
369
+ Проверяет, является ли объект экземпляром класса.
370
+
371
+ ##### `Подкласс(класс, надкласс)`
372
+ Проверяет, является ли `класс` подклассом `надкласс`.
373
+
374
+ ##### `Перебиратель(объект[, исключение])`
375
+ Возвращает перебиратель (итератор) по объекту.
376
+
377
+ ##### `Длина(s)`
378
+ Возвращает количество элементов в последовательности или коллекции.
379
+
380
+ ##### `Список([перебираемое])`
381
+ Создаёт список из перебираемого объекта или пустой список.
382
+
383
+ ##### `Местные_сущности()`
384
+ Возвращает словарь локальных переменных в текущем контексте.
385
+
386
+ ##### `Отображение(функция, перебираемое, *перебираемые)`
387
+ Применяет `функцию` к каждому набору элементов из `перебираемых`.
388
+
389
+ ##### `Макс((перебираемое[, если_пусто] | аргумент_1, аргумент_2, *аргументы), ф_сравнения = Пусто)`
390
+ Возвращает наибольшее значение. Можно передавать последовательность **или** несколько аргументов.
391
+
392
+ ##### `Память(объект)`
393
+ Возвращает представление объекта на уровне байтов.
394
+
395
+ ##### `Мин((перебираемое[, если_пусто] | аргумент_1, аргумент_2, *аргументы), ф_сравнения = Пусто)`
396
+ Возвращает наименьшее значение. Можно передавать последовательность **или** несколько аргументов.
397
+
398
+ ##### `Следующий(перебиратель[, по_умолчанию])`
399
+ Возвращает следующий элемент из перебирателя. Если элементов больше нет и задан `по_умолчанию`, возвращает его.
400
+
401
+ ##### `Объект()`
402
+ Базовый класс для всех объектов.
403
+
404
+ ##### `Восьм(x)`
405
+ Преобразует целое число `x` в строку его восьмеричного представления.
406
+
407
+ ##### `Открыть(название, режим = 'r', буферизация = -1, кодование = Пусто, при_ошибках = Пусто, новая_строка = Пусто, закрыть_описатель = Да, открыватель = Пусто)`
408
+ Открывает файл и возвращает файловый объект.
409
+
410
+ ##### `Знак_в_код(c)`
411
+ Возвращает многобайтовый код символа `c`.
412
+
413
+ ##### `Степень(основание, показатель, модуль = Пусто)`
414
+ Возводит число в степень с возможностью указать модуль (`a ** b % m`).
415
+
416
+ ##### `Вывести(*объекты, разделитель = ' ', в_конце = '\n', файл = Пусто, немедленно = Нет)`
417
+ Выводит значения на экран или в файл, с настройкой форматирования.
418
+
419
+ ##### `[@]Свойство(ф_получения = Пусто, ф_установки = Пусто, ф_удаления = Пусто, документация = Пусто)`
420
+ Создаёт объект свойства. Может использоваться как обёртка (декоратор).
421
+
422
+ ##### `Ряд(длина | нач, кон, шаг = 1)`
423
+ Создаёт диапазон целых чисел.
424
+
425
+ ##### `Представление(объект)`
426
+ Возвращает строковое представление объекта.
427
+
428
+ ##### `Обратить(последовательность)`
429
+ Возвращает обратный перебиратель (итератор).
430
+
431
+ ##### `Округлить(число, разрядов = Пусто)`
432
+ Округляет число до ближайшего значения с возможностью указать число знаков.
433
+
434
+ ##### `Множ([перебираемое])`
435
+ Создаёт множество (уникальные элементы без порядка).
436
+
437
+ ##### `Установить_поле(объект, название, значение)`
438
+ Устанавливает значение атрибута по названию.
439
+
440
+ ##### `Срез(длина | нач, кон, шаг = 1)`
441
+ Создаёт срез для применения к последовательностям.
442
+
443
+ ##### `Упорядочить(перебираемое, ф_сравнения, наоборот)`
444
+ Возвращает отсортованный список. Возможно сортование по ключу и в обратном порядке.
445
+
446
+ ##### `[@]Статический_метод(функция)`
447
+ Обёртка, превращающая функцию в статический метод класса.
448
+
449
+ ##### `Строка(объект[, кодование = 'utf-8', при_ошибках = 'strict')`
450
+ Преобразует объект в строку. Если объект байтовый — оборачивает его.
451
+
452
+ ##### `Сумма(перебираемое[, начало = 0])`
453
+ Возвращает сумму элементов. Можно указать начальное значение.
454
+
455
+ ##### `Надкласс([тип, порядок_поиска = Пусто])`
456
+ Возвращает объект, предоставляющий доступ к родительскому классу.
457
+
458
+ ##### `Кортеж([перебираемое])`
459
+ Создаёт кортеж (неизменяемую последовательность) из перебираемого объекта или пустой.
460
+
461
+ ##### `Тип(объект | название, надклассы, поля, **ключевые_слова)`
462
+ Возвращает тип объекта или создаёт новый.
463
+
464
+ ##### `Поля([объект])`
465
+ Возвращает словарь атрибутов объекта.
466
+
467
+ ##### `Упаковать(*перебираемые, проверить_длины = Нет)`
468
+ Объединяет элементы из нескольких источников.
469
+
470
+ ##### `Свёртка(функция, перебираемое, нач_знач = Пусто)`
471
+ Пошагово сворачивает элементы, применяя функцию: ((a, b) -> c).
472
+
473
+ ##### `@Метод_получения`
474
+ Обёртка получения значения для свойства.
475
+
476
+ ##### `@Метод_установки`
477
+ Обёртка установки значения для свойства.
478
+
479
+ ##### `@Метод_удаления`
480
+ Обёртка удаления значения для свойства.
481
+
482
+ ##### `__Подключить__(название, общие_сущности = Пусто, местные_сущности = Пусто, по_списку = 0, уровень = 0)`
483
+ Внутренняя функция импорта.
484
+
485
+ ---
486
+
487
+ ### Встроенные методы и свойства
488
+
489
+ ##### Строки (`Строка`)
490
+ Методы:
491
+
492
+ - `Найти(подстрока)`
493
+ - `Найти_с_конца(подстрока)`
494
+ - `Положение(подстрока)`
495
+ - `Положение_с_конца(подстрока)`
496
+ - `Заменить(старое, новое)`
497
+ - `Разбить(разделитель)`
498
+ - `Сцепить(список_строк)`
499
+ - `В_заглавные()`
500
+ - `В_строчные()`
501
+ - `Из_заглавных()`
502
+ - `Из_строчных()`
503
+ - `Из_цифр()`
504
+ - `Из_букв()`
505
+ - `Из_цифробукв()`
506
+ - `Из_пробелов()`
507
+ - `Слова_с_заглавных()`
508
+ - `Начинается(подстрока)`
509
+ - `Кончается(подстрока)`
510
+ - `Начать_с_заглавной()`
511
+ - `Отцентровать(ширина)`
512
+ - `Число_вхождений(подстрока)`
513
+ - `Табуляции_в_пробелы()`
514
+ - `Удалить_в_начале()`
515
+ - `Удалить_в_конце()`
516
+ - `Удалить_по_бокам()`
517
+ - `Разбить()` / `Разбить_с_конца()`
518
+ - `Обратить_регистр()`
519
+ - `Начать_слова_с_заглавных()`
520
+ - `Дополнить_нулями(ширина)`
521
+ - `Дополнить_справа(ширина)`
522
+ - `Дополнить_слева(ширина)`
523
+ - `Формат(...)` *(через ключевые аргументы)*
524
+
525
+ ##### Списки (`Список`)
526
+ Методы:
527
+
528
+ - `Добавить(значение)`
529
+ - `Очистить()`
530
+ - `Копия()`
531
+ - `Число_вхождений(значение)`
532
+ - `Дополнить(последовательность)`
533
+ - `Положение(значение)`
534
+ - `Вставить(позиция, значение)`
535
+ - `Вытащить([позиция])`
536
+ - `Удалить(значение)`
537
+ - `Обратить()`
538
+ - `Упорядочить(ключ = ..., обратно = Да|Нет)`
539
+
540
+ ---
541
+
542
+ ##### Словари (`Словарь`)
543
+ Методы:
544
+
545
+ - `Очистить()`
546
+ - `Копия()`
547
+ - `Из_ключей(ключи[, значение])`
548
+ - `Получить(ключ[, по_умолчанию])`
549
+ - `Элементы()` — пары `(ключ, значение)`
550
+ - `Ключи()` — список ключей
551
+ - `Значения()` — список значений
552
+ - `Вытащить(ключ[, по_умолчанию])`
553
+ - `Вытащить_последнее()`
554
+ - `Получить_или_добавить(ключ[, значение])`
555
+ - `Обновить(другой_словарь)`
556
+
557
+ ##### Кортежи (`Кортеж`)
558
+ Методы:
559
+
560
+ - `Положение(значение)`
561
+ - `Число_вхождений(значение)`
562
+
563
+ ##### Множества (`Множ`, `НеизмМнож`)
564
+ Методы:
565
+
566
+ - `Не_пересекаются(другое)`
567
+ - `Подмножество(другое)`
568
+ - `Надмножество(другое)`
569
+ - `Объединение(...)`
570
+ - `Пересечение(...)`
571
+ - `Разница(...)`
572
+ - `СимметрРазница(...)`
573
+ - `Копия()`
574
+
575
+ Дополнительно для `Множ`:
576
+
577
+ - `Дополнить(...)`
578
+ - `Пересечь(...)`
579
+ - `Вычесть(...)`
580
+ - `СимметрВычесть(...)`
581
+ - `Добавить(значение)`
582
+ - `Удалить(значение)`
583
+ - `Убрать(значение)`
584
+ - `Вытащить()`
585
+ - `Очистить()`
586
+
587
+ ##### Целые числа (`Цел`)
588
+ Методы:
589
+
590
+ - `Длина_в_битах()`
591
+ - `В_байты(длина, порядок = 'МлСт'|'СтМл', со_знаком = Да|Нет)`
592
+ - `Из_байтов(байты, порядок = 'МлСт'|'СтМл', со_знаком = Да|Нет)`
593
+
594
+ Свойства:
595
+
596
+ - `числитель`
597
+ - `знаменатель`
598
+
599
+ ##### Вещественные (`Вещ`)
600
+ Методы:
601
+
602
+ - `Целое()` — возвращает `Да`, если число целое
603
+ - `В_шестн()` / `Из_шестн(строка)`
604
+ - `В_дробь()` — возвращает `(числитель, знаменатель)`
605
+
606
+ ##### Комплексные (`Компл`)
607
+ Методы:
608
+
609
+ - `Cопряжённое()`
610
+
611
+ Свойства:
612
+
613
+ - `действ_часть`
614
+ - `мнимая_часть`
615
+
616
+ ##### Потоки
617
+ Методы:
618
+
619
+ - `Читать([размер])`
620
+ - `Читать_строку()`
621
+ - `Писать(данные)`
622
+ - `Позиция()` / `Задать_позицию(позиция)`
623
+ - `Изменить_размер(размер)`
624
+ - `Отделить()` — для текстовых обёрток
625
+ - `Закрыть()`
626
+
627
+ Свойства:
628
+
629
+ - `закрыт`
630
+
@@ -0,0 +1,12 @@
1
+ rupython/__main__.py,sha256=a2Uh9VhUlxF2O4IpE-8tpbNr__XXoYeVo5ZiuUUvvAk,1660
2
+ rupython/__Заголовочный_код__.py,sha256=VWghfQc6dv9lwIeQvJotpdOlBtHZeN00NBeL4RdWloA,10998
3
+ rupython/Преобразователь.py,sha256=YaR4lZaQxgo4vEZFk0i4_1Nx41AoH3N0mSbV2KH3wEM,42790
4
+ rupython/Модули/БД.py,sha256=sMsPwyMLxrgPZmXZACdWGoyaTo3vr0A4jrMZQ7ydwzE,22107
5
+ rupython/Модули/Матем.py,sha256=d8ekm7GJreu7LJ9KmAKcTOciIUQ-VBI567BfK_QeLSc,3587
6
+ rupython/Модули/РегВыр.py,sha256=yeXYfeDF2qw4DSKVdZVSFInMUW52U7Nq_KOJKvm4XnM,6349
7
+ rupython/Модули/Случ.py,sha256=oeVdSdFVb4X_T-nX2P7NSIhise1zUPIS4lk7h-67XSg,2689
8
+ rupython-1.1.10.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
9
+ rupython-1.1.10.dist-info/METADATA,sha256=QFO06B2gK3f2v_jyn9WOaXKKn0RWXsuWa8o5mZxASCY,27377
10
+ rupython-1.1.10.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
11
+ rupython-1.1.10.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
12
+ rupython-1.1.10.dist-info/RECORD,,
@@ -1,333 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: rupython
3
- Version: 1.1.8
4
- Summary: Исполнитель кода Русского Питона
5
- Description-Content-Type: text/markdown
6
- License-File: LICENSE
7
-
8
- Русская версия языка Python, реализованная в виде транслятора кода в код Python.
9
-
10
- Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
11
-
12
- * Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
13
- * Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
14
-
15
- Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
16
-
17
- ### Установка
18
-
19
- Транслятор устанавливается как пакет соответствующей командой:
20
-
21
- `pip install rupython`
22
-
23
- Если "pip" выдаёт ошибку "externally-managed-environment" (под некоторыми версиями ОС Linux), то установка производится следущей командой:
24
-
25
- `pip install rupython --break-system-packages`
26
-
27
- Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
28
-
29
- ```
30
- assoc .крп = "Код на Русском Питоне"
31
- ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
32
- ```
33
-
34
- Исходный код размещён тут: https://github.com/russkiy/rupython
35
-
36
- ### Примеры кода
37
-
38
- ```
39
- Функция НОД(*числа):
40
- f = фун a, b: a если b == 0 иначе f(b, a % b)
41
- Вернуть Свёртка(фун a, b: f(a, b), числа)
42
-
43
- Функция НОК(*числа):
44
- числа = Множ(числа)
45
- n = n_ = Макс(числа)
46
- числа.Удалить(n)
47
- Пока Любое(n % m для m в числа): n += n_
48
- Вернуть n
49
- ```
50
-
51
- ```
52
- Функция Дата_Пасхи(год, нов_ст = Пусто):
53
- д = (год % 19 * 19 + 15) % 30
54
- д += (год % 4 * 2 + год % 7 * 4 + 6 * д + 6) % 7
55
- нов_ст = Да если нов_ст это Пусто и год >= 1918 иначе нов_ст
56
- Если не нов_ст:
57
- Если д > 9: Вернуть Строка(д - 9) + ' апреля'
58
- Иначе: Вернуть Строка(22 + д) + ' марта'
59
- Иначе:
60
- п = год // 100 - год // 400 - 2
61
- Если д > 39 - п: Вернуть Строка(д - 39 + п) + ' мая'
62
- Иначе: Вернуть Строка(д - 9 + п) + ' апреля'
63
- ```
64
-
65
- ### Обзор особенностей языка
66
-
67
- ##### Основные встроенные типы данных:
68
-
69
- * Числовые: ```Цел```, ```Вещ```, ```Компл```.
70
- * Логический: ```Логич``` – значения ```Да``` и ```Нет```.
71
- * Неопределённое значение: ```Пусто``` (пустое значение, или ничего).
72
- * Строковый (текстовый): ```Строка```.
73
- * Последовательности: ```Список```, ```Кортеж```, ```Ряд``` (диапазон).
74
- * Ассоциативный массив: ```Словарь```.
75
- * Множества: ```Множ``` и ```НеизмМнож```.
76
- * Байтовые: ```Байты``` и ```БайтМассив```.
77
-
78
- Далее представлены примеры кода, демонстрирующие использование наиболее важных языковых конструкций.
79
-
80
- ##### Условие:
81
- ```
82
- Если x > 0:
83
- зн = 1
84
- АЕсли x < 0:
85
- зн = -1
86
- Иначе:
87
- зн = 0
88
- ```
89
-
90
- ##### Цикл перебора:
91
- ```
92
- Для перем из Ряд(10):
93
- Вывести(перем)
94
- ```
95
-
96
- ##### Цикл с предусловием:
97
- ```
98
- Пока x < знач:
99
- x += y
100
- Если x == z: Продолжить
101
- ```
102
-
103
- ##### Цикл с послеусловием:
104
- ```
105
- Повторять:
106
- x *= z
107
- Если x >= y: Прервать
108
- До x > знач
109
- ```
110
-
111
- ##### Цикл со счётчиком:
112
- ```
113
- Цикл i = 0 : i < 10 : i += 1:
114
- Вывести(i)
115
- ```
116
-
117
- ##### Импорт:
118
- ```
119
- Из Пакет_1 подключить Модуль_1, Модуль_2
120
- Подключить Модуль_3 как М3
121
- ```
122
-
123
- ##### Логические операции:
124
- ```
125
- v = не x и (y или z)
126
- u = w в сп1 и w не в сп2
127
- k = l это m и m это не n
128
- ```
129
-
130
- ##### Функция:
131
- ```
132
- Функция F(a, b):
133
- Если a == b: Вернуть Да
134
- Иначе: Вернуть Нет
135
- ```
136
-
137
- ```
138
- Функция Пример(парам):
139
- Для сч из Ряд(парам):
140
- Если парам[сч] == 0: Возврат
141
- ```
142
-
143
- ##### Генераторы
144
- ```
145
- Функция Фиб(n):
146
- a, b = 0, 1
147
- Для _ из Ряд(n):
148
- Выдать a
149
- a, b = b, a + b
150
- ```
151
- ```
152
- кв_ч = (сч ** 2 для сч в Ряд(1, 10))
153
- ```
154
-
155
- ##### Класс
156
- ```
157
- Класс Пример(Другой_класс):
158
- Функция __Подготовка__(здесь, перем = 0):
159
- здесь.зн = перем
160
-
161
- Объект = Пример(1)
162
- ```
163
-
164
- ##### Значение по условию
165
- ```
166
- перем = 0 если x == зн иначе 1
167
- ```
168
-
169
- ##### Пропуск действия и удаление переменной
170
- ```
171
- Если x == 1: Пропустить
172
- Иначе: Удалить y
173
- ```
174
-
175
- ##### Краткое условие
176
- ```
177
- перем = 1 если x > 0 иначе 0
178
- ```
179
-
180
- ##### Пропуск действия и удаление переменной
181
- ```
182
- Если x == 1: Пропустить
183
- Иначе: Удалить y
184
- ```
185
-
186
- ##### Безымянная (λ) функция
187
- ```
188
- В_квадрат = фун x: x ** 2
189
- ```
190
-
191
- ##### Обработка исключений
192
- ```
193
- Попробовать:
194
- ч = Цел(строка)
195
- ПриИсключении ОшибкаЗначения:
196
- Вывести('Ошибка.')
197
- Иначе: Вывести('Сработало.')
198
- ВКонце: Вывести('Выполнено.')
199
-
200
- Если Тип(x) != Стр:
201
- Бросить ОшибкаЗначения
202
- ```
203
-
204
- ##### Области видимости
205
- ```
206
- x = 0
207
-
208
- Функция Внешняя():
209
- y = 1
210
- Функция Внутренняя():
211
- Общее x
212
- НеМестное y
213
- x = y
214
- Внутренняя()
215
- ```
216
-
217
- ##### Проверка существования переменной:
218
- ```
219
- Если $Переменная?: Вывести('Существует.')
220
- ```
221
-
222
- ##### Обёртка (декоратор) функции
223
- ```
224
- Функция Обёртка(Ф):
225
- Функция ФО():
226
- Вывести('1')
227
- Ф()
228
- Вернуть ФО
229
-
230
- @Обёртка
231
- Функция Проверка(): Вывести('2')
232
- ```
233
-
234
- ##### Конструкция выбора
235
- ```
236
- Выбрать x:
237
- При 1: зн = '+'
238
- При -1: зн = '-'
239
- При _: зн = '0'
240
- ```
241
-
242
- ##### Контекстный менеджер
243
- ```
244
- ВКонтексте Открыть('Файл.дан', 'r') как файл:
245
- Пока стр := файл.Читать_строку():
246
- Вывести(стр.Удалить_по_бокам())
247
- ```
248
-
249
- ##### Проверка условия
250
- ```
251
- Функция Разделить(x, y):
252
- Проверить y != 0, 'Деление на 0.'
253
- Вернуть x / y
254
- ```
255
-
256
- ### Встроенные функции и обёртки
257
- ```
258
- АбсЗнач(x)
259
- АсПеребиратель(асинхр_перебираемое)
260
- Все(перебираемое)
261
- Любое(перебираемое)
262
- АсСледущий(асинхр_перебиратель[, по_умолчанию])
263
- В7битовСимв(объект)
264
- Двоич(x)
265
- Логич(объект = Нет)
266
- Останов(*ПА, **ИА)
267
- БайтМассив([источник = ''[, кодование[, при_ошибках]]])
268
- Байты([источник = ''[, кодование[, при_ошибках]]])
269
- Вызываемое(объект)
270
- Код_в_знак(i)
271
- @Метод_класса
272
- Собрать_код(исходник, название_файла, режим, флаги = 0, не_наследовать = Нет, оптимизация = -1)
273
- Компл(число = 0 | строка | действ_часть = 0, мнимая_часть = 0)
274
- Удалить_поле(объект, название)
275
- Словарь([отображение | перебираемое], **ИА)
276
- Содержимое([объект])
277
- ДелОст(a, b)
278
- Перечислить(перебираемое, начало = 0)
279
- ВычВыр(исходник, общие_сущности = Пусто, местные_сущности = Пусто)
280
- ВыпКод(исходник, общие_сущности = Пусто, местные_сущности = Пусто, замыкание = Пусто)
281
- Фильтр(функция, перебираемое)
282
- Вещ(число = 0.0 | строка)
283
- Формат(значение, описание = '')
284
- НеизмМнож(перебираемое = Множ())
285
- Получить_поле(объект, название[, по_умолчанию])
286
- Общие_сущности()
287
- Имеет_поле(объект, название)
288
- Хэш(объект)
289
- Справка([запрос])
290
- Шестн(x)
291
- Идент(объект)
292
- Принять(сообщение)
293
- Цел(число = 0 | строка, основание = 10)
294
- Экземпляр(объект, класс)
295
- Подкласс(класс, надкласс)
296
- Перебиратель(объект[, исключение])
297
- Длина(s) | Размер(s)
298
- Список([перебираемое])
299
- Местные_сущности()
300
- Отображение(функция, перебираемое, *перебираемые)
301
- Макс((перебираемое[, если_пусто] | аргумент_1, аргумент_2, * аргументы), ф_сравнения = Пусто)
302
- Память(объект)
303
- Мин((перебираемое[, если_пусто] | аргумент_1, аргумент_2, * аргументы), ф_сравнения = Пусто)
304
- Следующий(перебиратель[, по_умолчанию])
305
- Объект()
306
- Восьм(x)
307
- Открыть(название, режим = 'r', буферизация = -1, кодование = Пусто, при_ошибках = Пусто, новая_строка = Пусто, закрыть_описатель = Да, открыватель = Пусто)
308
- Знак_в_код(c)
309
- Степень(основание, показатель, модуль = Пусто)
310
- Вывести(*объекты, разделитель = ' ', в_конце = '\n', файл = Пусто, немедленно = Нет)
311
- [@]Свойство(ф_получения = Пусто, ф_установки = Пусто, ф_удаления = Пусто, документация = Пусто)
312
- Ряд(длина | нач, кон, шаг = 1)
313
- Представление(объект)
314
- Обратить(последовательность)
315
- Округлить(число, разрядов = Пусто)
316
- Множ([перебираемое])
317
- Установить_поле(объект, название, значение)
318
- Срез(длина | нач, кон, шаг = 1)
319
- Упорядочить(перебираемое, ф_сравнения, наоборот)
320
- [@]Статический_метод(функция)
321
- Строка(объект[, кодование = 'utf-8', при_ошибках = 'strict')
322
- Сумма(перебираемое[, начало = 0])
323
- Надкласс([тип, порядок_поиска = Пусто])
324
- Кортеж([перебираемое])
325
- Тип(объект | название, надклассы, поля, **ключевые_слова)
326
- Поля([объект])
327
- Упаковать(*перебираемые, проверить_длины = Нет)
328
- Свёртка(функция, перебираемое, нач_знач = Пусто)
329
- @Метод_получения
330
- @Метод_установки
331
- @Метод_удаления
332
- __Подключить__(название, общие_сущности = Пусто, местные_сущности = Пусто, по_списку = 0, уровень = 0)
333
- ```
@@ -1,12 +0,0 @@
1
- rupython/__main__.py,sha256=BxtsIK8PJuOOGVDKxqoscwJjjWWhZts7adicFuwUL6k,540
2
- rupython/__Заголовочный_код__.py,sha256=VWghfQc6dv9lwIeQvJotpdOlBtHZeN00NBeL4RdWloA,10998
3
- rupython/Преобразователь.py,sha256=YaR4lZaQxgo4vEZFk0i4_1Nx41AoH3N0mSbV2KH3wEM,42790
4
- rupython/Модули/БД.py,sha256=Hkp7Iyx9WeefuJLCNJ-NMCUMd7KF8R63mELQf6L6WFo,15521
5
- rupython/Модули/Матем.py,sha256=d8ekm7GJreu7LJ9KmAKcTOciIUQ-VBI567BfK_QeLSc,3587
6
- rupython/Модули/РегВыр.py,sha256=yeXYfeDF2qw4DSKVdZVSFInMUW52U7Nq_KOJKvm4XnM,6349
7
- rupython/Модули/Случ.py,sha256=oeVdSdFVb4X_T-nX2P7NSIhise1zUPIS4lk7h-67XSg,2689
8
- rupython-1.1.8.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
9
- rupython-1.1.8.dist-info/METADATA,sha256=b-F1dnuD_q-nTzF5xOY9PHJ_YWchjSn7rOqNkiX8t60,13869
10
- rupython-1.1.8.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
11
- rupython-1.1.8.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
12
- rupython-1.1.8.dist-info/RECORD,,