123456789101112131415161718192021222324252627282930 |
- import math
- import re
- import os
- CPU_COUNT = os.cpu_count()
- NUMBER_REGEX = re.compile(r"^[1-9][0-9]$")
- FLOAT_REGEX = re.compile(r"^[0-9]+\.[0-9]+$")
- MILI_CPU_REGEX = re.compile(r"^[0-9]+m$")
- def transform_cpu(cpu) -> int:
- result = 2
- if NUMBER_REGEX.match(cpu):
- result = int(cpu)
- elif FLOAT_REGEX.match(cpu):
- result = int(math.ceil(float(cpu)))
- elif MILI_CPU_REGEX.match(cpu):
- num = int(cpu[:-1])
- num = num / 1000
- result = int(math.ceil(num))
- if CPU_COUNT is not None:
- # Do not exceed the actual CPU count
- result = min(result, CPU_COUNT)
- if int(result) == 0:
- result = CPU_COUNT if CPU_COUNT else 2
- return int(result)
|