cengal.time_management.relative_time.relativedelta.versions.v_0.relativedelta

 1#!/usr/bin/env python
 2# coding=utf-8
 3
 4# Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>
 5# 
 6# Licensed under the Apache License, Version 2.0 (the "License");
 7# you may not use this file except in compliance with the License.
 8# You may obtain a copy of the License at
 9# 
10#     http://www.apache.org/licenses/LICENSE-2.0
11# 
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17
18from datetime import timedelta
19from typing import Union
20import dateutil.relativedelta
21
22"""
23Module Docstring
24Docstrings: http://www.python.org/dev/peps/pep-0257/
25"""
26
27__author__ = "ButenkoMS <gtalk@butenkoms.space>"
28__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>"
29__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ]
30__license__ = "Apache License, Version 2.0"
31__version__ = "4.4.1"
32__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>"
33__email__ = "gtalk@butenkoms.space"
34# __status__ = "Prototype"
35__status__ = "Development"
36# __status__ = "Production"
37
38
39def seconds_to_relativedelta(seconds: Union[int, float]=0) -> dateutil.relativedelta.relativedelta:
40    return dateutil.relativedelta.relativedelta(seconds=seconds).normalized()
41
42
43def relativedelta_to_timedelta(delta: dateutil.relativedelta.relativedelta) -> timedelta:
44    delta = delta.normalized()
45    return timedelta(days=delta.days, minutes=delta.minutes, seconds=delta.seconds, microseconds=delta.microseconds)
46
47
48def relativedelta_to_seconds(delta: dateutil.relativedelta.relativedelta) -> float:
49    return relativedelta_to_timedelta(delta).total_seconds()
def seconds_to_relativedelta( seconds: typing.Union[int, float] = 0) -> dateutil.relativedelta.relativedelta:
40def seconds_to_relativedelta(seconds: Union[int, float]=0) -> dateutil.relativedelta.relativedelta:
41    return dateutil.relativedelta.relativedelta(seconds=seconds).normalized()
def relativedelta_to_timedelta(delta: dateutil.relativedelta.relativedelta) -> datetime.timedelta:
44def relativedelta_to_timedelta(delta: dateutil.relativedelta.relativedelta) -> timedelta:
45    delta = delta.normalized()
46    return timedelta(days=delta.days, minutes=delta.minutes, seconds=delta.seconds, microseconds=delta.microseconds)
def relativedelta_to_seconds(delta: dateutil.relativedelta.relativedelta) -> float:
49def relativedelta_to_seconds(delta: dateutil.relativedelta.relativedelta) -> float:
50    return relativedelta_to_timedelta(delta).total_seconds()