rupython 1.2.3__py3-none-any.whl → 1.2.4__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/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 +90 -15
- {rupython-1.2.3.dist-info → rupython-1.2.4.dist-info}/METADATA +1 -1
- {rupython-1.2.3.dist-info → rupython-1.2.4.dist-info}/RECORD +6 -6
- {rupython-1.2.3.dist-info → rupython-1.2.4.dist-info}/LICENSE +0 -0
- {rupython-1.2.3.dist-info → rupython-1.2.4.dist-info}/WHEEL +0 -0
- {rupython-1.2.3.dist-info → rupython-1.2.4.dist-info}/top_level.txt +0 -0
@@ -31,6 +31,28 @@ from rupython import __Общие_функции__
|
|
31
31
|
'минут': 'minutes', 'часов': 'hours', 'недель': 'weeks'
|
32
32
|
}
|
33
33
|
|
34
|
+
Месяцы_родительный = {
|
35
|
+
1: 'января', 2: 'февраля', 3: 'марта', 4: 'апреля',
|
36
|
+
5: 'мая', 6: 'июня', 7: 'июля', 8: 'августа',
|
37
|
+
9: 'сентября', 10: 'октября', 11: 'ноября', 12: 'декабря'
|
38
|
+
}
|
39
|
+
|
40
|
+
Дни_недели_полные = {
|
41
|
+
1: 'понедельник', 2: 'вторник', 3: 'среда', 4: 'четверг',
|
42
|
+
5: 'пятница', 6: 'суббота', 7: 'воскресенье'
|
43
|
+
}
|
44
|
+
|
45
|
+
Дни_недели_краткие = {
|
46
|
+
1: 'Пн', 2: 'Вт', 3: 'Ср', 4: 'Чт',
|
47
|
+
5: 'Пт', 6: 'Сб', 7: 'Вс'
|
48
|
+
}
|
49
|
+
|
50
|
+
def Склонение_после_числительного(число, слова):
|
51
|
+
return str(число) + ' ' + \
|
52
|
+
(слова[2] if число % 100 >= 5 and число % 100 <= 20 else \
|
53
|
+
(слова[0] if число % 10 == 1 else \
|
54
|
+
(слова[1] if число % 10 >= 2 and число % 10 <= 4 else слова[2])))
|
55
|
+
|
34
56
|
def Перевести_формат(формат):
|
35
57
|
for русский, питоновский in Словарь_спецификаторов.items():
|
36
58
|
формат = формат.replace(русский, питоновский)
|
@@ -49,29 +71,41 @@ class Дата_и_время:
|
|
49
71
|
def Сейчас(часовой_пояс=None):
|
50
72
|
return Дата_и_время(datetime.datetime.now(часовой_пояс))
|
51
73
|
|
52
|
-
@staticmethod
|
53
|
-
def До_сейчас():
|
54
|
-
return Дата_и_время(datetime.datetime.utcnow())
|
55
|
-
|
56
74
|
@staticmethod
|
57
75
|
def Из_метки_времени(метка_времени, часовой_пояс=None):
|
58
76
|
return Дата_и_время(datetime.datetime.fromtimestamp(метка_времени, часовой_пояс))
|
59
77
|
|
60
78
|
@staticmethod
|
61
|
-
def Из_
|
62
|
-
return Дата_и_
|
79
|
+
def Из_строки(строка):
|
80
|
+
return Дата_и_время.Разобрать(строка, Формат_даты_и_времени)
|
63
81
|
|
64
82
|
@staticmethod
|
65
83
|
def Разобрать(строка, формат):
|
66
84
|
формат = Перевести_формат(формат)
|
67
85
|
return Дата_и_время(datetime.datetime.strptime(строка, формат))
|
68
86
|
|
69
|
-
def
|
87
|
+
def В_формат(здесь, формат):
|
70
88
|
формат = Перевести_формат(формат)
|
71
89
|
return здесь._дата_время.strftime(формат)
|
72
90
|
|
73
|
-
def
|
74
|
-
|
91
|
+
def __str__(строка):
|
92
|
+
формат = Перевести_формат(Формат_даты_и_времени)
|
93
|
+
return здесь._дата_время.strftime(формат)
|
94
|
+
|
95
|
+
def Словами(здесь, формат='полный'):
|
96
|
+
день_недели = здесь.Номер_дня_недели()
|
97
|
+
if формат == 'полный':
|
98
|
+
return f"{Дни_недели_полные[день_недели]}, {здесь.День} {Месяцы_родительный[здесь.Месяц]} {здесь.Год} года, {здесь.Часов:02d}:{здесь.Минут:02d}"
|
99
|
+
elif формат == 'краткий':
|
100
|
+
return f"{Дни_недели_краткие[день_недели]}, {здесь.День} {Месяцы_родительный[здесь.Месяц]} {здесь.Год} г."
|
101
|
+
elif формат == 'дата':
|
102
|
+
return f"{здесь.День} {Месяцы_родительный[здесь.Месяц]} {здесь.Год} года"
|
103
|
+
elif формат == 'время':
|
104
|
+
return f"{здесь.Часов:02d}:{здесь.Минут:02d}"
|
105
|
+
elif формат == 'день_недели':
|
106
|
+
return Дни_недели_полные[день_недели]
|
107
|
+
else:
|
108
|
+
raise ValueError("Неподдерживаемый формат")
|
75
109
|
|
76
110
|
def В_метку_времени(здесь):
|
77
111
|
return здесь._дата_время.timestamp()
|
@@ -177,12 +211,16 @@ class Дата:
|
|
177
211
|
def От_даты(порядковый_номер):
|
178
212
|
return Дата(datetime.date.fromordinal(порядковый_номер))
|
179
213
|
|
180
|
-
def
|
214
|
+
def В_формат(здесь, формат):
|
181
215
|
формат = Перевести_формат(формат)
|
182
216
|
return здесь._дата.strftime(формат)
|
183
217
|
|
184
|
-
def
|
185
|
-
|
218
|
+
def __str__(здесь):
|
219
|
+
формат = Перевести_формат(Формат_даты)
|
220
|
+
return здесь._дата.strftime(формат)
|
221
|
+
|
222
|
+
def Из_строки(строка):
|
223
|
+
return Время(Дата_и_время.Разобрать(строка, Формат_времени)._дата_время.time())
|
186
224
|
|
187
225
|
def День_недели(здесь):
|
188
226
|
return здесь._дата.isoweekday()
|
@@ -249,12 +287,13 @@ class Время:
|
|
249
287
|
)
|
250
288
|
здесь._время = datetime.time(*ПА, **ИА)
|
251
289
|
|
252
|
-
def
|
290
|
+
def В_формат(здесь, формат):
|
253
291
|
формат = Перевести_формат(формат)
|
254
292
|
return здесь._время.strftime(формат)
|
255
293
|
|
256
|
-
def
|
257
|
-
|
294
|
+
def __str__(здесь):
|
295
|
+
формат = Перевести_формат(Формат_времени)
|
296
|
+
return здесь._время.strftime(формат)
|
258
297
|
|
259
298
|
def Заменить(здесь, **ИА):
|
260
299
|
ИА = __Общие_функции__.Заменить_ключи_в_словаре(
|
@@ -347,6 +386,42 @@ class Интервал:
|
|
347
386
|
def Вычесть(здесь, другой):
|
348
387
|
return Интервал(дней=(здесь._интервал - другой._интервал).days, секунд=(здесь._интервал - другой._интервал).seconds, микросекунд=(здесь._интервал - другой._интервал).microseconds)
|
349
388
|
|
389
|
+
def __str__(здесь):
|
390
|
+
части = []
|
391
|
+
if здесь.Дней:
|
392
|
+
части.append(Склонение_после_числительного(здесь.Дней, ['день', 'дня', 'дней']))
|
393
|
+
секунд = здесь.Секунд
|
394
|
+
if секунд >= 3600:
|
395
|
+
часов = секунд // 3600
|
396
|
+
части.append(Склонение_после_числительного(часов, ['час', 'часа', 'часов']))
|
397
|
+
секунд %= 3600
|
398
|
+
if секунд >= 60:
|
399
|
+
минут = секунд // 60
|
400
|
+
части.append(Склонение_после_числительного(минут, ['минута', 'минуты', 'минут']))
|
401
|
+
секунд %= 60
|
402
|
+
if секунд:
|
403
|
+
части.append(Склонение_после_числительного(секунд, ['секунда', 'секунды', 'секунд']))
|
404
|
+
return ' '.join(части) or '0 секунд'
|
405
|
+
|
406
|
+
@staticmethod
|
407
|
+
def Из_строки(строка):
|
408
|
+
части = строка.split()
|
409
|
+
ИА = {}
|
410
|
+
i = 0
|
411
|
+
while i < len(части):
|
412
|
+
число = int(части[i])
|
413
|
+
единица = части[i + 1]
|
414
|
+
if 'день' in единица or 'дня' in единица or 'дней' in единица:
|
415
|
+
ИА['дней'] = число
|
416
|
+
elif 'час' in единица:
|
417
|
+
ИА['часов'] = число
|
418
|
+
elif 'минут' in единица:
|
419
|
+
ИА['минут'] = число
|
420
|
+
elif 'секунд' in единица:
|
421
|
+
ИА['секунд'] = число
|
422
|
+
i += 2
|
423
|
+
return Интервал(**ИА)
|
424
|
+
|
350
425
|
def __add__(здесь, другой):
|
351
426
|
if isinstance(другой, Интервал):
|
352
427
|
return здесь.Добавить(другой)
|
@@ -3,12 +3,12 @@ rupython/__Заголовочный_код__.py,sha256=VWghfQc6dv9lwIeQvJotpdOlB
|
|
3
3
|
rupython/__Общие_функции__.py,sha256=FLbN5hhnnXXqAwqRRNJ2Y_0fXAAYCC_7Pn06_DZjX3w,826
|
4
4
|
rupython/Преобразователь.py,sha256=-0oxZb63T3s50sT-0jiH3cA4KqRs3qVpaGsfSyAb8TY,47550
|
5
5
|
rupython/Модули/БД.py,sha256=ypjYa-9s0wO1Y_nXRiyiS80F_TStRlsSHRpisBWMT4g,23957
|
6
|
-
rupython/Модули/ДатаВремя.py,sha256=
|
6
|
+
rupython/Модули/ДатаВремя.py,sha256=YdpACxtHXt57zV7uYpZJZeH3T4bMd6orud-Y34DqWTI,25087
|
7
7
|
rupython/Модули/Матем.py,sha256=d8ekm7GJreu7LJ9KmAKcTOciIUQ-VBI567BfK_QeLSc,3587
|
8
8
|
rupython/Модули/РегВыр.py,sha256=T3yxVP-B5AwAzbUTjWpog3HCzRTGLZ58CEQpfA-0dsY,6341
|
9
9
|
rupython/Модули/Случ.py,sha256=foIuQo2QZ5z0iyxp9fn4NaunSx96vYzC2pRjwaT2FD8,2723
|
10
|
-
rupython-1.2.
|
11
|
-
rupython-1.2.
|
12
|
-
rupython-1.2.
|
13
|
-
rupython-1.2.
|
14
|
-
rupython-1.2.
|
10
|
+
rupython-1.2.4.dist-info/LICENSE,sha256=iWzdt1wyTlK8qNSu7TzK8pjjIcCvLvWHycp7ACRcWEc,59
|
11
|
+
rupython-1.2.4.dist-info/METADATA,sha256=ENvZ7Aqr11YPad-tvpwOXT_TL5Q4rsaQ2v2FurUIM5M,27473
|
12
|
+
rupython-1.2.4.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
13
|
+
rupython-1.2.4.dist-info/top_level.txt,sha256=GtXaS8JTsBm5hpQxxtQlrxK6rExvSAK_Cp44FrY4210,9
|
14
|
+
rupython-1.2.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|