Clipping values in a human-readable way.
Project description
clip_values
Clipping values in a human-readable way
Clipping numerical values to make sure they are within a lower and upper bound is a very common task.
For example, if you are dealing with RGB colours, you want each channel to be between 0 and 255, if you are dealing with shop sales, you need them to be between 0 and 1, or if you are writing a cool game, you want your character to stay inside the screen.
Now, if you have to do all this clipping, which alternative to clipping do you prefer?
Using clip_values.clip
clip
offers human-readable syntax to your clipping operations:
from clip_values import clip
colour_channel = clip(colour_channel).between_(0).and_(255)
discount = clip(discount).between_(0).and_(1)
player_x_pos = clip(player_x_pos).between_(0).and_(SCREEN_WIDTH)
The clip
alternative is the simplest and easiest to read!
Compare it with two other common alternatives:
Using an if: ... elif: ...
block is also easy to read, but takes up 4x more lines of code:
if colour_channel < 0:
colour_channel = 0
elif colour_channel > 255:
colour_channel = 255
if discount < 0:
discount = 0
elif discount > 1:
discount = 1
if player_x_pos < 0:
player_x_pos = 0
elif player_x_pos > SCREEN_WIDTH:
player_x_pos = SCREEN_WIDTH
Chaining min
with max
(or the other way around) is shorter, but this is much harder to read
and you have to spend a couple of minutes figuring out the interaction between the two consecutive
calls to min
/max
:
colour_channel = min(255, max(0, colour_channel))
discount = max(0, min(1, discount))
player_x_pos = min(SCREEN_WIDTH, max(0, player_x_pos))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file clip_values-1.0.tar.gz
.
File metadata
- Download URL: clip_values-1.0.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f210ffac019b8bfe3a01656dc00106d75086f546b6a3697f4627fe73f690db88 |
|
MD5 | 043fdb0204c807e6c2461af62a862be6 |
|
BLAKE2b-256 | daf25aa8463b297edf7eeeaadb27ca0e0881b37882506f36860570461223a214 |
File details
Details for the file clip_values-1.0-py3-none-any.whl
.
File metadata
- Download URL: clip_values-1.0-py3-none-any.whl
- Upload date:
- Size: 3.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2626f2f84bf3ff7d99515ba8f740ec0fe7208e071f790ef290581e2f6fb413cc |
|
MD5 | 57b98dc03c851e3913d5ae052600738f |
|
BLAKE2b-256 | 1e7b48b72bff4e34db87140721933323a0bfd120d69fc833f7c089539a18e99d |