cengal.parallel_execution.asyncio.timed_yield.versions.v_0.timed_yield
Module Docstring Docstrings: http://www.python.org/dev/peps/pep-0257/
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 18""" 19Module Docstring 20Docstrings: http://www.python.org/dev/peps/pep-0257/ 21""" 22 23__author__ = "ButenkoMS <gtalk@butenkoms.space>" 24__copyright__ = "Copyright © 2012-2024 ButenkoMS. All rights reserved. Contacts: <gtalk@butenkoms.space>" 25__credits__ = ["ButenkoMS <gtalk@butenkoms.space>", ] 26__license__ = "Apache License, Version 2.0" 27__version__ = "4.4.1" 28__maintainer__ = "ButenkoMS <gtalk@butenkoms.space>" 29__email__ = "gtalk@butenkoms.space" 30# __status__ = "Prototype" 31__status__ = "Development" 32# __status__ = "Production" 33 34 35from cengal.time_management.cpu_clock_cycles import perf_counter 36import asyncio 37from typing import Any 38 39 40class TimedYield: 41 def __init__(self, yield_each: float) -> None: 42 self.yield_each: float = yield_each 43 self.last_yield_time: float = perf_counter() 44 45 async def __call__(self) -> Any: 46 if self.yield_each <= (perf_counter() - self.last_yield_time): 47 await asyncio.sleep(0) 48 self.last_yield_time = perf_counter()
class
TimedYield:
41class TimedYield: 42 def __init__(self, yield_each: float) -> None: 43 self.yield_each: float = yield_each 44 self.last_yield_time: float = perf_counter() 45 46 async def __call__(self) -> Any: 47 if self.yield_each <= (perf_counter() - self.last_yield_time): 48 await asyncio.sleep(0) 49 self.last_yield_time = perf_counter()