qrange

A small, easy-to-use library for working with ranges.

Installation

This package can be installed with the command:

pip install qrange


How to use

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 an x that's between min_max[0] and min_max[1], and changes the limits to min_max_new[0] and min_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 an x value in a min_max range. Suppose you have a softness 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 an x value is between min_max[0] and min_max[1]. The limits of the range are closed by default, so if x is equal to one of them, the function returns True. However, you can choose between c and o (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 between min_max[0] and min_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 corresponding t value (between 0 and 1) of an x value between min_max[0] and min_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 limits min_max[0] and min_max[1].
var = clamp(var, [25, 75])


Changelog

Version 1.0.0

• 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. If you want to support me, please buy me a coffee here. Any amount is appreciated! :)

Project details

Uploaded source
Uploaded py3