Skip to main content

📄
Sizelib

sizelib is a lightweight, type-safe Python Library for working with and humanizing file sizes and time durations. It offers clean, type-preserving unit helpers (supporting both int and float) and loop-based human-readable string conversions.

🔗 PyPI Package  |  🆔 pip install sizelib or uv add sizelib


🐍 SDK

Installation

pip install sizelib
# or
uv add sizelib

Size Helper Functions

from sizelib import size

# Define constraints using binary (base 2 / 1024) or decimal (base 10 / 1000) helper methods
MAX_UPLOAD_SIZE = size.mib(10)   # 10 MiB (10485760 bytes)
CACHE_LIMIT = size.gib(2)        # 2 GiB (2147483648 bytes)
USER_QUOTA = size.gb(50)         # 50 GB (50000000000 bytes)

# Variables and expressions are fully supported
limit = 2
custom_limit = size.gib(limit)   # 2 GiB (2147483648 bytes)

print(MAX_UPLOAD_SIZE)           # Output: 10485760
print(type(MAX_UPLOAD_SIZE))     # Output: <class 'int'>

Time Helper Functions

from sizelib import time

TIMEOUT = time.s(30)          # 30 s
CACHE_TTL = time.min(15)      # 900 s
TOKEN_EXPIRY = time.hour(2)   # 7200 s
WORKER_WAIT = time.ms(500)    # 0.5 s

Humanize Byte Sizes (human_size)

from sizelib import human_size, size

# Default binary formatting (base 2 / 1024)
print(human_size(MAX_UPLOAD_SIZE))  # Output: 10 MiB
print(human_size(CACHE_LIMIT))      # Output: 2 GiB

# Decimal values are formatted up to 2 decimal places
TOTAL = CACHE_LIMIT + size.mib(500)
print(human_size(TOTAL))            # Output: 2.49 GiB

# Decimal formatting (base 10 / 1000)
print(human_size(USER_QUOTA, base=10))  # Output: 50 GB

Humanize Times (human_time)

from sizelib import human_time, time

print(human_time(0.005))        # Output: 5 ms
print(human_time(time.s(45)))   # Output: 45 s
print(human_time(time.min(90))) # Output: 1.50 hour
print(human_time(time.hour(2))) # Output: 2 hour
print(human_time(time.day(1)))  # Output: 1 day

Features

FEATURE DESCRIPTION
📏 Size Helpers Standardized functions for all major divisions (kb, mb, gb, tb, kib, mib, gib, tib)
Time Helpers Clean scaling for duration units (ms, s, min, hour, day, week)
🧪 Type Preservation Dynamically maintains input types (returns int/floats accordingly)
⚙️ Custom Bases Support for both binary (base=2 / 1024) and decimal (base=10 / 1000) formats
Ultra Minimalism Zero external dependencies with an optimized, lightweight iteration algorithm

🏗️ System Architecture

# COMPONENT DESCRIPTION STACK
1️⃣ Sizelib Size & Time The math factor constants and unit calculation helper functions Python
2️⃣ Sizelib Humanize The humanization formatting modules for size and time units Python

Made with 📄 by Saptarshi Roy

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sizelib-0.2.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sizelib-0.2.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file sizelib-0.2.0.tar.gz.

File metadata

  • Download URL: sizelib-0.2.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sizelib-0.2.0.tar.gz
Algorithm Hash digest
SHA256 138db6439257aa82c59b7110793bd5b0f28188766a9dd24a0dfc46ab24855286
MD5 343f2eb77c37cd45a0cd341c2778e797
BLAKE2b-256 e3b257fb955647d29f5088137ee0ba221dfab9d0f61533e0e34b9ef393a90f7e

See more details on using hashes here.

File details

Details for the file sizelib-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sizelib-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sizelib-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 516607aed25e35fa977bf6a54d6d199fafadd9f268308a0f0f93e1decd355e83
MD5 9a96c2d23fb73e9f35ca696b2f4fcd8a
BLAKE2b-256 adde5112bef7723d1c9119962081dafeca90d5b0c2aa83f9338a256e62277940

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page