Remove backported rand func (Superseded)

This commit is contained in:
LoafyLemon 2023-01-03 20:04:11 +00:00
parent 7533b82331
commit 43d18f0de1
2 changed files with 1 additions and 40 deletions

View File

@ -59,7 +59,7 @@ init python:
@weather.setter @weather.setter
def weather(self, value): def weather(self, value):
if value == "random": if value == "random":
value = random_choices(self.weather_types, weights=self.weather_weights)[0] value = renpy.python.random.choices(self.weather_types, weights=self.weather_weights)[0]
if not value in self.weather_types: if not value in self.weather_types:
raise ValueError("Unsupported weather type: '{}'".format(value)) raise ValueError("Unsupported weather type: '{}'".format(value))

View File

@ -145,45 +145,6 @@ init -1 python:
"""Mutates the original list.""" """Mutates the original list."""
l[val1], l[val2] = l[val2], l[val1] l[val1], l[val2] = l[val2], l[val1]
def random_choices(population, weights=None, cum_weights=None, k=1):
"""Backported from python 3.6
Return a k sized list of population elements chosen with replacement.
If the relative weights or cumulative weights are not specified,
the selections are made with equal probability.
"""
def accumulate(iterable, func=_add, initial=None):
it = iter(iterable)
total = initial
if initial is None:
try:
total = next(it)
except StopIteration:
return
yield total
for element in it:
total = func(total, element)
yield total
random = renpy.random.random
if cum_weights is None:
if weights is None:
_int = int
total = len(population)
return [population[_int(random() * total)] for i in range(k)]
cum_weights = list(accumulate(weights))
elif weights is not None:
raise TypeError('Cannot specify both weights and cumulative weights')
if len(cum_weights) != len(population):
raise ValueError('The number of weights does not match the population')
#bisect = _bisect.bisect
total = cum_weights[-1]
hi = len(cum_weights) - 1
return [population[bisect(cum_weights, random() * total, 0, hi)] for i in range(k)]
def natsort_key(s, pattern=re.compile("([0-9]+)")): def natsort_key(s, pattern=re.compile("([0-9]+)")):
return [int(t) if t.isdigit() else t.lower() for t in pattern.split(str(s))] return [int(t) if t.isdigit() else t.lower() for t in pattern.split(str(s))]