{"library":"snaptime","title":"Snaptime","type":"library","description":"Snaptime is a Python package (version 0.2.4) designed for transforming timestamps using a simple Domain Specific Language (DSL), inspired by Splunk's relative time modifiers. It provides functions to easily truncate, snap to specific time units, and apply delta transformations to datetime objects. The library has a low release cadence, with the last update in 2017.","language":"python","status":"maintenance","last_verified":"Sun May 17","install":{"commands":["pip install snaptime"],"cli":null},"imports":["from snaptime import snap","from snaptime import snap_tz"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/zartstrom/snaptime","docs":null,"changelog":null,"pypi":"https://pypi.org/project/snaptime/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"from datetime import datetime\nfrom snaptime import snap, snap_tz\nimport pytz\n\n# Example 1: Basic snap and delta transformations\ndt = datetime(2018, 10, 28, 23, 0, 0)\nprint(f\"Original: {dt}\")\nprint(f\"Snap to day (@d): {snap(dt, '@d')}\") # 2018-10-28 00:00:00\nprint(f\"Add 3 hours (+3h): {snap(dt, '+3h')}\") # 2018-10-29 02:00:00\nprint(f\"Add 3 hours then snap to day (+3h@d): {snap(dt, '+3h@d')}\") # 2018-10-29 00:00:00\n\n# Example 2: Motivating example from docs (letter delivery time)\nt_harry_throws_letter = datetime(2024, 4, 15, 15, 0, 0) # Harry throws letter at 3 PM\nletter_delivery_time = snap(t_harry_throws_letter, \"+8h@d+1d+11h\")\nprint(f\"\\nLetter thrown: {t_harry_throws_letter}\")\nprint(f\"Letter delivered: {letter_delivery_time}\")\n\n# Example 3: Handling timezones with snap_tz\n# Requires 'pytz' library\nberlin_tz = pytz.timezone('Europe/Berlin')\ndt_tz_aware = berlin_tz.localize(datetime(2017, 3, 26, 3, 26, 6))\n\n# Using naive snap can lead to unexpected results during DST changes\nprint(f\"\\nTZ-aware original: {dt_tz_aware}\")\nprint(f\"snap(dt_tz_aware, '@d') (naive approach, potential DST issue): {snap(dt_tz_aware, '@d')}\")\n\n# Use snap_tz for correct timezone handling\nprint(f\"snap_tz(dt_tz_aware, '@d', berlin_tz) (correct DST handling): {snap_tz(dt_tz_aware, '@d', berlin_tz)}\")","lang":"python","description":"This quickstart demonstrates basic usage of `snap` for time manipulation and highlights the importance of `snap_tz` when dealing with timezone-aware datetimes, particularly around Daylight Saving Time (DST) changes. It includes a practical example of calculating a delivery time and showcases both naive and timezone-aware snapping.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.2.4","pypi_latest":"0.2.4","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.7,"avg_import_s":0.03,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"22.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.02,"mem_mb":1.5,"disk_size":"23M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.04,"mem_mb":1.5,"disk_size":"25.4M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.3,"import_time_s":0.03,"mem_mb":1.5,"disk_size":"26M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1,"disk_size":"15.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.3,"import_time_s":0.04,"mem_mb":1,"disk_size":"16M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.2,"disk_size":"15.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":0.03,"mem_mb":1.1,"disk_size":"16M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.03,"mem_mb":1.7,"disk_size":"22.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"snaptime","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":0.03,"mem_mb":1.7,"disk_size":"23M"}]}}