A small, easy-to-use library for working with ranges.
This package can be installed with the command:
pip install qrange
Use qrange in your project by adding the following line at the top of your file:
import qrange
This library provides a set of functions for making it easier to work with ranges:
set_min_max(x, min_max, min_max_new)
: Takes anx
that's betweenmin_max[0]
andmin_max[1]
, and changes the limits tomin_max_new[0]
andmin_max_new[1]
. Example usage:
color = [128, 0, 0]
color[0] = set_min_max(color[0], [0, 255], [0, 1]) #converts 0-255 color to 0-1 color range.
reverse_range(x, min_max)
: Reverses anx
value in amin_max
range. Suppose you have asoftness
variable, but you made the program so that the higher the softness is, the harder it gets.reverse_range
can fix that for you:
softness = reverse_range(softness, [0, 10])
# If the variable was 0, this function made it 10.
# similarly, if it had a value of 10, it is now 0.
is_in_range(x, min_max, limits = ['c', 'c'])
: Checks if anx
value is betweenmin_max[0]
andmin_max[1]
. The limits of the range are closed by default, so ifx
is equal to one of them, the function returnsTrue
. However, you can choose betweenc
ando
(closed/open) for each one of the two limits. An example:
isBetween = is_in_range(var, [25, 75])
range_lerp(min_max, t)
: Returns the linear interpolation betweenmin_max[0]
andmin_max[1]
. The following line prints the value halfway between 1 and 5:
print(range_lerp([1, 5], 0.5))
# outputs 3
find_lerp(x, min_max)
: returns the correspondingt
value (between 0 and 1) of anx
value betweenmin_max[0]
andmin_max[1]
. Consider the following examples:
print(find_lerp(5, [5, 10])) #outputs 0
print(find_lerp(10, [5, 10])) #outputs 1
print(find_lerp(8, [5, 10])) #outputs 0.6
clamp(x, min_max)
: Restricts the value to stay within the limitsmin_max[0]
andmin_max[1]
.
var = clamp(var, [25, 75])
- qrange has been created
Hi! I am a solo software developer. I created qrange as an open source library to simplify the process of using ranges in Python. Check out my other repositories as well.