rupython 1.0.5__tar.gz → 1.0.7__tar.gz

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.
@@ -0,0 +1,309 @@
1
+ Metadata-Version: 2.1
2
+ Name: rupython
3
+ Version: 1.0.7
4
+ Summary: Исполнитель кода Русского Питона
5
+ Description-Content-Type: text/markdown
6
+ License-File: LICENSE
7
+
8
+ Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
9
+
10
+ `pip install rupython`
11
+
12
+ Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
13
+
14
+ * Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
15
+ * Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
16
+
17
+ Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
18
+
19
+ ```
20
+ assoc .крп = "Код на Русском Питоне"
21
+ ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
22
+ ```
23
+
24
+ Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
25
+
26
+ ### Пример кода
27
+
28
+ ```
29
+ Функция НОД(*числа):
30
+ f = фун a, b: a если b == 0 иначе f(b, a % b)
31
+ Вернуть Свёртка(фун a, b: f(a, b), числа)
32
+
33
+ Функция НОК(*числа):
34
+ числа = Множ(числа)
35
+ n = n_ = Макс(числа)
36
+ числа.Удалить(n)
37
+ Пока Любое(n % m для m в числа): n += n_
38
+ Вернуть n
39
+ ```
40
+
41
+ ### Обзор особенностей языка
42
+
43
+ ##### Основные встроенные типы данных:
44
+
45
+ * Числовые: ```Цел```, ```Вещ```, ```Компл```.
46
+ * Логический: ```Логич``` – значения ```Да``` и ```Нет```.
47
+ * Неопределённое значение: ```Ничего``` (пустое значение, или ничего).
48
+ * Строковый (текстовый): ```Строка```.
49
+ * Последовательности: ```Список```, ```Кортеж```, ```Ряд``` (диапазон).
50
+ * Ассоциативный массив: ```Словарь```.
51
+ * Множества: ```Множ``` и ```НеизмМнож```.
52
+ * Байтовые: ```Байты``` и ```БайтМассив```.
53
+
54
+ Далее представлены примеры кода, демонстрирующие использование наиболее важных языковых конструкций.
55
+
56
+ ##### Условие:
57
+ ```
58
+ Если x > 0:
59
+ зн = 1
60
+ АЕсли x < 0:
61
+ зн = -1
62
+ Иначе:
63
+ зн = 0
64
+ ```
65
+
66
+ ##### Цикл перебора:
67
+ ```
68
+ Для перем из Ряд(10):
69
+ Вывести(перем)
70
+ ```
71
+
72
+ ##### Цикл с предусловием:
73
+ ```
74
+ Пока x < знач:
75
+ x += y
76
+ Если x == z: Продолжить
77
+ ```
78
+
79
+ ##### Цикл с послеусловием:
80
+ ```
81
+ Повторять:
82
+ x *= z
83
+ Если x >= y: Прервать
84
+ До x > знач
85
+ ```
86
+
87
+ ##### Цикл со счётчиком:
88
+ ```
89
+ Цикл i = 0 : i < 10 : i += 1:
90
+ Вывести(i)
91
+ ```
92
+
93
+ ##### Импорт:
94
+ ```
95
+ Из Пакет_1 подключить Модуль_1, Модуль_2
96
+ Подключить Модуль_3 как М3
97
+ ```
98
+
99
+ ##### Логические операции:
100
+ ```
101
+ v = не x и (y или z)
102
+ u = w в сп1 и w не в сп2
103
+ k = l это m и m это не n
104
+ ```
105
+
106
+ ##### Функция:
107
+ ```
108
+ Функция F(a, b):
109
+ Если a == b: Вернуть Да
110
+ Иначе: Вернуть Нет
111
+ ```
112
+
113
+ ```
114
+ Функция Пример(парам):
115
+ Для сч из Ряд(парам):
116
+ Если парам[сч] == 0: Возврат
117
+ ```
118
+
119
+ ##### Генераторы
120
+ ```
121
+ Функция Фиб(n):
122
+ a, b = 0, 1
123
+ Для _ из Ряд(n):
124
+ Выдать a
125
+ a, b = b, a + b
126
+ ```
127
+ ```
128
+ кв_ч = (сч ** 2 для сч в Ряд(1, 10))
129
+ ```
130
+
131
+ ##### Класс
132
+ ```
133
+ Класс Пример(Другой_класс):
134
+ Функция __Подготовка__(здесь, перем = 0):
135
+ здесь.зн = перем
136
+
137
+ Объект = Пример(1)
138
+ ```
139
+
140
+ ##### Значение по условию
141
+ ```
142
+ перем = 0 если x == зн иначе 1
143
+ ```
144
+
145
+ ##### Пропуск действия и удаление переменной
146
+ ```
147
+ Если x == 1: Пропустить
148
+ Иначе: Удалить y
149
+ ```
150
+
151
+ ##### Краткое условие
152
+ ```
153
+ перем = 1 если x > 0 иначе 0
154
+ ```
155
+
156
+ ##### Пропуск действия и удаление переменной
157
+ ```
158
+ Если x == 1: Пропустить
159
+ Иначе: Удалить y
160
+ ```
161
+
162
+ ##### Безымянная (λ) функция
163
+ ```
164
+ В_квадрат = фун x: x ** 2
165
+ ```
166
+
167
+ ##### Обработка исключений:
168
+ ```
169
+ Попробовать:
170
+ ч = Цел(строка)
171
+ ПриИсключении ОшибкаЗначения:
172
+ Вывести('Ошибка.')
173
+ Иначе: Вывести('Сработало.')
174
+ ВКонце: Вывести('Выполнено.')
175
+
176
+ Если Тип(x) != Стр:
177
+ Бросить ОшибкаЗначения
178
+ ```
179
+
180
+ ##### Области видимости
181
+ ```
182
+ x = 0
183
+
184
+ Функция Внешняя():
185
+ y = 1
186
+ Функция Внутренняя():
187
+ Общее x
188
+ НеМестное y
189
+ x = y
190
+ Внутренняя()
191
+ ```
192
+
193
+ ##### Проверка существования переменной:
194
+ ```
195
+ Если $Переменная?: Вывести('Существует.')
196
+ ```
197
+
198
+ ##### Обёртка (декоратор) функции
199
+ ```
200
+ Функция Обёртка(Ф):
201
+ Функция ФО():
202
+ Вывести('1')
203
+ Ф()
204
+ Вернуть ФО
205
+
206
+ @Обёртка
207
+ Функция Проверка(): Вывести('2')
208
+ ```
209
+
210
+ ##### Конструкция выбора
211
+ ```
212
+ Выбрать x:
213
+ При 1: зн = '+'
214
+ При -1: зн = '-'
215
+ При _: зн = '0'
216
+ ```
217
+
218
+ ##### Контекстный менеджер
219
+ ```
220
+ ВКонтексте Открыть('Файл.дан', 'r') как файл:
221
+ Пока стр := файл.Читать_строку():
222
+ Вывести(стр.Удалить_по_бокам())
223
+ ```
224
+
225
+ ##### Проверка условия
226
+ ```
227
+ Функция Разделить(x, y):
228
+ Проверить y != 0, 'Деление на 0.'
229
+ Вернуть x / y
230
+ ```
231
+
232
+ ### Встроенные функции и обёртки
233
+ ```
234
+ АбсЗнач(x)
235
+ АсПеребиратель(асинхр_перебираемое)
236
+ Все(перебираемое)
237
+ Любое(перебираемое)
238
+ АсСледущий(асинхр_перебиратель[, по_умолчанию])
239
+ В7битовСимв(объект)
240
+ Двоич(x)
241
+ Логич(объект = Нет)
242
+ Останов(*ПА, **ИА)
243
+ БайтМассив([источник = ''[, кодование[, при_ошибках]]])
244
+ Байты([источник = ''[, кодование[, при_ошибках]]])
245
+ Вызываемое(объект)
246
+ Код_в_знак(i)
247
+ @Метод_класса
248
+ Собрать_код(исходник, название_файла, режим, флаги = 0, не_наследовать = Нет, оптимизация = -1)
249
+ Компл(число = 0 | строка | действ_часть = 0, мнимая_часть = 0)
250
+ Удалить_поле(объект, название)
251
+ Словарь([отображение | перебираемое], **ИА)
252
+ Содержимое([объект])
253
+ ДелОст(a, b)
254
+ Перечислить(перебираемое, начало = 0)
255
+ ВычВыр(исходник, общие_сущности = Пусто, местные_сущности = Пусто)
256
+ ВыпКод(исходник, общие_сущности = Пусто, местные_сущности = Пусто, замыкание = Пусто)
257
+ Фильтр(функция, перебираемое)
258
+ Вещ(число = 0.0 | строка)
259
+ Формат(значение, описание = '')
260
+ НеизмМнож(перебираемое = Множ())
261
+ Получить_поле(объект, название[, по_умолчанию])
262
+ Общие_сущности()
263
+ Имеет_поле(объект, название)
264
+ Хэш(объект)
265
+ Справка([запрос])
266
+ Шестн(x)
267
+ Идент(объект)
268
+ Принять(сообщение)
269
+ Цел(число = 0 | строка, основание = 10)
270
+ Экземпляр(объект, класс)
271
+ Подкласс(класс, надкласс)
272
+ Перебиратель(объект[, исключение])
273
+ Длина(s) | Размер(s)
274
+ Список([перебираемое])
275
+ Местные_сущности()
276
+ Отображение(функция, перебираемое, *перебираемые)
277
+ Макс((перебираемое[, если_пусто] | аргумент_1, аргумент_2, * аргументы), ф_сравнения = Пусто)
278
+ Память(объект)
279
+ Мин((перебираемое[, если_пусто] | аргумент_1, аргумент_2, * аргументы), ф_сравнения = Пусто)
280
+ Следующий(перебиратель[, по_умолчанию])
281
+ Объект()
282
+ Восьм(x)
283
+ Открыть(название, режим = 'r', буферизация = -1, кодование = Пусто, при_ошибках = Пусто, новая_строка = Пусто, закрыть_описатель = Да, открыватель = Пусто)
284
+ Знак_в_код(c)
285
+ Степень(основание, показатель, модуль = Пусто)
286
+ Вывести(*объекты, разделитель = ' ', в_конце = '\n', файл = Пусто, немедленно = Нет)
287
+ [@]Свойство(ф_получения = Пусто, ф_установки = Пусто, ф_удаления = Пусто, документация = Пусто)
288
+ Ряд(длина | нач, кон, шаг = 1)
289
+ Представление(объект)
290
+ Обратить(последовательность)
291
+ Округлить(число, разрядов = Пусто)
292
+ Множ([перебираемое])
293
+ Установить_поле(объект, название, значение)
294
+ Срез(длина | нач, кон, шаг = 1)
295
+ Упорядочить(перебираемое, ф_сравнения, наоборот)
296
+ [@]Статический_метод(функция)
297
+ Строка(объект[, кодование = 'utf-8', при_ошибках = 'strict')
298
+ Сумма(перебираемое[, начало = 0])
299
+ Надкласс([тип, порядок_поиска = Пусто])
300
+ Кортеж([перебираемое])
301
+ Тип(объект | название, надклассы, поля, **ключевые_слова)
302
+ Поля([объект])
303
+ Упаковать(*перебираемые, проверить_длины = Нет)
304
+ Свёртка(функция, перебираемое, нач_знач = Пусто)
305
+ @Метод_получения
306
+ @Метод_установки
307
+ @Метод_удаления
308
+ __Подключить__(название, общие_сущности = Пусто, местные_сущности = Пусто, по_списку = 0, уровень = 0)
309
+ ```
@@ -0,0 +1,302 @@
1
+ Русская версия языка Python, реализованная в виде транслятора кода в код Python. Транслятор устанавливается как пакет соответствующей командой:
2
+
3
+ `pip install rupython`
4
+
5
+ Русский Питон почти полностью идентичен оригинальному языку с англоязычной лексической базой, основное отличие заключается в использовании русских названий для именования сущностей в коде. Данный инструмент создан для достижения двух целей:
6
+
7
+ * Повышение производительности труда работников, выполняющих задачи автоматизации процессов и формализации алгоритмов, за счёт применения лексики на родном им языке, что априори повышает усвоение и читаемость кода.
8
+ * Упрощение освоения навыков алгоритмизации и составления компьютерных программ учащимися путём устранения искусственного препятствия в виде необходимости оперировать лексикой иностранного языка.
9
+
10
+ Код модулей Русского Питона размещается в файлах с расширением **.крп**. Для интеграции в операционную систему необходимо ассоциировать эти файлы с транслятором. Например, для ОС Windows это выполняется следующими консольными командами:
11
+
12
+ ```
13
+ assoc .крп = "Код на Русском Питоне"
14
+ ftype "Код на Русском Питоне"=py -m rupython "%%1" %%*
15
+ ```
16
+
17
+ Приложения на Русском Питоне могут использовать все возможности оригинального Python, включая всё богатство подключаемых пакетов и библиотек. Код может быть написан на обоих вариантах языка.
18
+
19
+ ### Пример кода
20
+
21
+ ```
22
+ Функция НОД(*числа):
23
+ f = фун a, b: a если b == 0 иначе f(b, a % b)
24
+ Вернуть Свёртка(фун a, b: f(a, b), числа)
25
+
26
+ Функция НОК(*числа):
27
+ числа = Множ(числа)
28
+ n = n_ = Макс(числа)
29
+ числа.Удалить(n)
30
+ Пока Любое(n % m для m в числа): n += n_
31
+ Вернуть n
32
+ ```
33
+
34
+ ### Обзор особенностей языка
35
+
36
+ ##### Основные встроенные типы данных:
37
+
38
+ * Числовые: ```Цел```, ```Вещ```, ```Компл```.
39
+ * Логический: ```Логич``` – значения ```Да``` и ```Нет```.
40
+ * Неопределённое значение: ```Ничего``` (пустое значение, или ничего).
41
+ * Строковый (текстовый): ```Строка```.
42
+ * Последовательности: ```Список```, ```Кортеж```, ```Ряд``` (диапазон).
43
+ * Ассоциативный массив: ```Словарь```.
44
+ * Множества: ```Множ``` и ```НеизмМнож```.
45
+ * Байтовые: ```Байты``` и ```БайтМассив```.
46
+
47
+ Далее представлены примеры кода, демонстрирующие использование наиболее важных языковых конструкций.
48
+
49
+ ##### Условие:
50
+ ```
51
+ Если x > 0:
52
+ зн = 1
53
+ АЕсли x < 0:
54
+ зн = -1
55
+ Иначе:
56
+ зн = 0
57
+ ```
58
+
59
+ ##### Цикл перебора:
60
+ ```
61
+ Для перем из Ряд(10):
62
+ Вывести(перем)
63
+ ```
64
+
65
+ ##### Цикл с предусловием:
66
+ ```
67
+ Пока x < знач:
68
+ x += y
69
+ Если x == z: Продолжить
70
+ ```
71
+
72
+ ##### Цикл с послеусловием:
73
+ ```
74
+ Повторять:
75
+ x *= z
76
+ Если x >= y: Прервать
77
+ До x > знач
78
+ ```
79
+
80
+ ##### Цикл со счётчиком:
81
+ ```
82
+ Цикл i = 0 : i < 10 : i += 1:
83
+ Вывести(i)
84
+ ```
85
+
86
+ ##### Импорт:
87
+ ```
88
+ Из Пакет_1 подключить Модуль_1, Модуль_2
89
+ Подключить Модуль_3 как М3
90
+ ```
91
+
92
+ ##### Логические операции:
93
+ ```
94
+ v = не x и (y или z)
95
+ u = w в сп1 и w не в сп2
96
+ k = l это m и m это не n
97
+ ```
98
+
99
+ ##### Функция:
100
+ ```
101
+ Функция F(a, b):
102
+ Если a == b: Вернуть Да
103
+ Иначе: Вернуть Нет
104
+ ```
105
+
106
+ ```
107
+ Функция Пример(парам):
108
+ Для сч из Ряд(парам):
109
+ Если парам[сч] == 0: Возврат
110
+ ```
111
+
112
+ ##### Генераторы
113
+ ```
114
+ Функция Фиб(n):
115
+ a, b = 0, 1
116
+ Для _ из Ряд(n):
117
+ Выдать a
118
+ a, b = b, a + b
119
+ ```
120
+ ```
121
+ кв_ч = (сч ** 2 для сч в Ряд(1, 10))
122
+ ```
123
+
124
+ ##### Класс
125
+ ```
126
+ Класс Пример(Другой_класс):
127
+ Функция __Подготовка__(здесь, перем = 0):
128
+ здесь.зн = перем
129
+
130
+ Объект = Пример(1)
131
+ ```
132
+
133
+ ##### Значение по условию
134
+ ```
135
+ перем = 0 если x == зн иначе 1
136
+ ```
137
+
138
+ ##### Пропуск действия и удаление переменной
139
+ ```
140
+ Если x == 1: Пропустить
141
+ Иначе: Удалить y
142
+ ```
143
+
144
+ ##### Краткое условие
145
+ ```
146
+ перем = 1 если x > 0 иначе 0
147
+ ```
148
+
149
+ ##### Пропуск действия и удаление переменной
150
+ ```
151
+ Если x == 1: Пропустить
152
+ Иначе: Удалить y
153
+ ```
154
+
155
+ ##### Безымянная (λ) функция
156
+ ```
157
+ В_квадрат = фун x: x ** 2
158
+ ```
159
+
160
+ ##### Обработка исключений:
161
+ ```
162
+ Попробовать:
163
+ ч = Цел(строка)
164
+ ПриИсключении ОшибкаЗначения:
165
+ Вывести('Ошибка.')
166
+ Иначе: Вывести('Сработало.')
167
+ ВКонце: Вывести('Выполнено.')
168
+
169
+ Если Тип(x) != Стр:
170
+ Бросить ОшибкаЗначения
171
+ ```
172
+
173
+ ##### Области видимости
174
+ ```
175
+ x = 0
176
+
177
+ Функция Внешняя():
178
+ y = 1
179
+ Функция Внутренняя():
180
+ Общее x
181
+ НеМестное y
182
+ x = y
183
+ Внутренняя()
184
+ ```
185
+
186
+ ##### Проверка существования переменной:
187
+ ```
188
+ Если $Переменная?: Вывести('Существует.')
189
+ ```
190
+
191
+ ##### Обёртка (декоратор) функции
192
+ ```
193
+ Функция Обёртка(Ф):
194
+ Функция ФО():
195
+ Вывести('1')
196
+ Ф()
197
+ Вернуть ФО
198
+
199
+ @Обёртка
200
+ Функция Проверка(): Вывести('2')
201
+ ```
202
+
203
+ ##### Конструкция выбора
204
+ ```
205
+ Выбрать x:
206
+ При 1: зн = '+'
207
+ При -1: зн = '-'
208
+ При _: зн = '0'
209
+ ```
210
+
211
+ ##### Контекстный менеджер
212
+ ```
213
+ ВКонтексте Открыть('Файл.дан', 'r') как файл:
214
+ Пока стр := файл.Читать_строку():
215
+ Вывести(стр.Удалить_по_бокам())
216
+ ```
217
+
218
+ ##### Проверка условия
219
+ ```
220
+ Функция Разделить(x, y):
221
+ Проверить y != 0, 'Деление на 0.'
222
+ Вернуть x / y
223
+ ```
224
+
225
+ ### Встроенные функции и обёртки
226
+ ```
227
+ АбсЗнач(x)
228
+ АсПеребиратель(асинхр_перебираемое)
229
+ Все(перебираемое)
230
+ Любое(перебираемое)
231
+ АсСледущий(асинхр_перебиратель[, по_умолчанию])
232
+ В7битовСимв(объект)
233
+ Двоич(x)
234
+ Логич(объект = Нет)
235
+ Останов(*ПА, **ИА)
236
+ БайтМассив([источник = ''[, кодование[, при_ошибках]]])
237
+ Байты([источник = ''[, кодование[, при_ошибках]]])
238
+ Вызываемое(объект)
239
+ Код_в_знак(i)
240
+ @Метод_класса
241
+ Собрать_код(исходник, название_файла, режим, флаги = 0, не_наследовать = Нет, оптимизация = -1)
242
+ Компл(число = 0 | строка | действ_часть = 0, мнимая_часть = 0)
243
+ Удалить_поле(объект, название)
244
+ Словарь([отображение | перебираемое], **ИА)
245
+ Содержимое([объект])
246
+ ДелОст(a, b)
247
+ Перечислить(перебираемое, начало = 0)
248
+ ВычВыр(исходник, общие_сущности = Пусто, местные_сущности = Пусто)
249
+ ВыпКод(исходник, общие_сущности = Пусто, местные_сущности = Пусто, замыкание = Пусто)
250
+ Фильтр(функция, перебираемое)
251
+ Вещ(число = 0.0 | строка)
252
+ Формат(значение, описание = '')
253
+ НеизмМнож(перебираемое = Множ())
254
+ Получить_поле(объект, название[, по_умолчанию])
255
+ Общие_сущности()
256
+ Имеет_поле(объект, название)
257
+ Хэш(объект)
258
+ Справка([запрос])
259
+ Шестн(x)
260
+ Идент(объект)
261
+ Принять(сообщение)
262
+ Цел(число = 0 | строка, основание = 10)
263
+ Экземпляр(объект, класс)
264
+ Подкласс(класс, надкласс)
265
+ Перебиратель(объект[, исключение])
266
+ Длина(s) | Размер(s)
267
+ Список([перебираемое])
268
+ Местные_сущности()
269
+ Отображение(функция, перебираемое, *перебираемые)
270
+ Макс((перебираемое[, если_пусто] | аргумент_1, аргумент_2, * аргументы), ф_сравнения = Пусто)
271
+ Память(объект)
272
+ Мин((перебираемое[, если_пусто] | аргумент_1, аргумент_2, * аргументы), ф_сравнения = Пусто)
273
+ Следующий(перебиратель[, по_умолчанию])
274
+ Объект()
275
+ Восьм(x)
276
+ Открыть(название, режим = 'r', буферизация = -1, кодование = Пусто, при_ошибках = Пусто, новая_строка = Пусто, закрыть_описатель = Да, открыватель = Пусто)
277
+ Знак_в_код(c)
278
+ Степень(основание, показатель, модуль = Пусто)
279
+ Вывести(*объекты, разделитель = ' ', в_конце = '\n', файл = Пусто, немедленно = Нет)
280
+ [@]Свойство(ф_получения = Пусто, ф_установки = Пусто, ф_удаления = Пусто, документация = Пусто)
281
+ Ряд(длина | нач, кон, шаг = 1)
282
+ Представление(объект)
283
+ Обратить(последовательность)
284
+ Округлить(число, разрядов = Пусто)
285
+ Множ([перебираемое])
286
+ Установить_поле(объект, название, значение)
287
+ Срез(длина | нач, кон, шаг = 1)
288
+ Упорядочить(перебираемое, ф_сравнения, наоборот)
289
+ [@]Статический_метод(функция)
290
+ Строка(объект[, кодование = 'utf-8', при_ошибках = 'strict')
291
+ Сумма(перебираемое[, начало = 0])
292
+ Надкласс([тип, порядок_поиска = Пусто])
293
+ Кортеж([перебираемое])
294
+ Тип(объект | название, надклассы, поля, **ключевые_слова)
295
+ Поля([объект])
296
+ Упаковать(*перебираемые, проверить_длины = Нет)
297
+ Свёртка(функция, перебираемое, нач_знач = Пусто)
298
+ @Метод_получения
299
+ @Метод_установки
300
+ @Метод_удаления
301
+ __Подключить__(название, общие_сущности = Пусто, местные_сущности = Пусто, по_списку = 0, уровень = 0)
302
+ ```