whenever


Namewhenever JSON
Version 0.8.7 PyPI version JSON
download
home_pageNone
SummaryModern datetime library for Python
upload_time2025-07-18 19:14:08
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseMIT
keywords datetime typesafe rust date time timezone utc zoneinfo tzdata tzdb
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # ⏰ Whenever

[![](https://img.shields.io/pypi/v/whenever.svg?style=flat-square&color=blue)](https://pypi.python.org/pypi/whenever)
[![](https://img.shields.io/pypi/pyversions/whenever.svg?style=flat-square)](https://pypi.python.org/pypi/whenever)
[![](https://img.shields.io/pypi/l/whenever.svg?style=flat-square&color=blue)](https://pypi.python.org/pypi/whenever)
[![](https://img.shields.io/badge/mypy-strict-forestgreen?style=flat-square)](https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-strict)
[![](https://img.shields.io/github/actions/workflow/status/ariebovenberg/whenever/checks.yml?branch=main&style=flat-square)](https://github.com/ariebovenberg/whenever)
[![](https://img.shields.io/readthedocs/whenever.svg?style=flat-square)](http://whenever.readthedocs.io/)

**Typed and DST-safe datetimes for Python, available in Rust or pure Python.**

Do you cross your fingers every time you work with Python's datetime—hoping that you didn't mix naive and aware?
or that you avoided its [other pitfalls](https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/)?
There’s no way to be sure...

✨ Until now! ✨

*Whenever* helps you write **correct** and **type checked** datetime code,
using **well-established concepts** from [modern libraries](#acknowledgements) in other languages.
It's also **way faster** than other third-party libraries, and usually the standard library as well.
Don't buy the Rust hype?—don't worry: a **pure Python** version is available as well.

  <p align="center">
    <picture align="center">
        <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ariebovenberg/whenever/main/benchmarks/comparison/graph-dark.svg">
        <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/ariebovenberg/whenever/main/benchmarks/comparison/graph-light.svg">
        <img alt="Shows a bar chart with benchmark results." src="https://raw.githubusercontent.com/ariebovenberg/whenever/main/benchmarks/comparison/graph-light.svg">
    </picture>
  </p>

  <p align="center" style="font-size: 14px">
    <i>Parse, normalize, compare to now, shift, and change timezone (1M times)</i>
  </p>

<div align="center">


[📖 Docs](https://whenever.readthedocs.io) |
[🐍 PyPI](https://pypi.org/project/whenever/) |
[🐙 GitHub](https://github.com/ariebovenberg/whenever) |
[🚀 Changelog](https://whenever.readthedocs.io/en/latest/changelog.html) |
[❓ FAQ](https://whenever.readthedocs.io/en/latest/faq.html) |
[🗺️ Roadmap](#roadmap) |
[💬 Issues & feedback](https://github.com/ariebovenberg/whenever/issues)

</div>

> ⚠️ **Note**: A 1.0 release is expected this year. Until then, the API may change
> as we gather feedback and improve the library.
> Leave a ⭐️ on GitHub if you'd like to see how this project develops!

## Why not the standard library?

Over 20+ years, Python's `datetime` has grown
out of step with what you'd expect from a modern datetime library.
Two points stand out:

1. **It doesn't always account for Daylight Saving Time (DST)**.
   Here is a simple example:

   ```python
   bedtime = datetime(2023, 3, 25, 22, tzinfo=ZoneInfo("Europe/Paris"))
   full_rest = bedtime + timedelta(hours=8)
   # It returns 6am, but should be 7am—because we skipped an hour due to DST!
   ```

   Note this isn't a bug, but a design decision that DST is only considered
   when calculations involve *two* timezones.
   If you think this is surprising, you
   [are](https://github.com/python/cpython/issues/91618)
   [not](https://github.com/python/cpython/issues/116035)
   [alone](https://github.com/python/cpython/issues/112638).

2. **Typing can't distinguish between naive and aware datetimes**.
   Your code probably only works with one or the other,
   but there's no way to enforce this in the type system!

   ```python
   # Does this expect naive or aware? Can't tell!
   def schedule_meeting(at: datetime) -> None: ...
   ```

## Why not other libraries?

There are two other popular third-party libraries, but they don't (fully)
address these issues. Here's how they compare to *whenever* and the standard library:

<div align="center">

|                   | Whenever | datetime | Arrow | Pendulum |
|-------------------|:--------:|:--------:|:-----:|:--------:|
|      DST-safe     |     ✅    |     ❌    |   ❌   |     ⚠️    |
| Typed aware/naive |     ✅    |     ❌    |   ❌   |     ❌    |
|        Fast       |     ✅    |     ✅    |   ❌   |     ❌    |

</div>

[**Arrow**](https://pypi.org/project/arrow/)
is probably the most historically popular 3rd party datetime library.
It attempts to provide a more "friendly" API than the standard library,
but doesn't address the core issues:
it keeps the same footguns, and its decision to reduce the number
of types to just one (``arrow.Arrow``) means that it's even harder
for typecheckers to catch mistakes.

[**Pendulum**](https://pypi.org/project/pendulum/)
arrived on the scene in 2016, promising better DST-handling,
as well as improved performance.
However, it only fixes [*some* DST-related pitfalls](https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/#datetime-library-scorecard),
and its performance has significantly [degraded over time](https://github.com/sdispater/pendulum/issues/818).
Additionally, it's in a long maintenance slump with only two releases in the last four years,
while many serious and long-standing issues remain unaddressed.

## Why use whenever?

- 🌐 DST-safe arithmetic
- 🛡️ Typesafe API prevents common bugs
- ✅ Fixes issues [arrow/pendulum don't](https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/#datetime-library-scorecard)
- ⚖️  Based on proven and [familiar concepts](https://www.youtube.com/watch?v=saeKBuPewcU)
- ⚡️ Unmatched performance
- 💎 Thoroughly tested and documented
- 📆 Support for date arithmetic
- ⏱️ Nanosecond precision
- 🪃 Pydantic support (preview)
- 🦀 Rust!—but with a [pure-Python option](https://whenever.readthedocs.io/en/latest/faq.html#how-can-i-use-the-pure-python-version)
- 🚀 Supports per-interpreter GIL

## Quickstart

```python
>>> from whenever import (
...    # Explicit types for different use cases
...    Instant,
...    ZonedDateTime,
...    PlainDateTime,
... )

# Identify moments in time, without timezone/calendar complexity
>>> now = Instant.now()
Instant(2024-07-04 10:36:56Z)

# Simple, explicit conversions
>>> now.to_tz("Europe/Paris")
ZonedDateTime(2024-07-04 12:36:56+02:00[Europe/Paris])

# A 'naive' datetime can't accidentally mix with other types.
# You need to explicitly convert it and handle ambiguity.
>>> party_invite = PlainDateTime(2023, 10, 28, hour=22)
>>> party_invite.add(hours=6)
Traceback (most recent call last):
  ImplicitlyIgnoringDST: Adjusting a local datetime implicitly ignores DST [...]
>>> party_starts = party_invite.assume_tz("Europe/Amsterdam")
ZonedDateTime(2023-10-28 22:00:00+02:00[Europe/Amsterdam])

# DST-safe arithmetic
>>> party_starts.add(hours=6)
ZonedDateTime(2023-10-29 03:00:00+01:00[Europe/Amsterdam])

# Comparison and equality
>>> now > party_starts
True

# Rounding and truncation
>>> now.round("minute", increment=15)
Instant(2024-07-04 10:30:00Z)

# Formatting & parsing common formats (ISO8601, RFC3339, RFC2822)
>>> now.format_rfc2822()
"Thu, 04 Jul 2024 10:36:56 GMT"

# If you must: you can convert to/from the standard lib
>>> now.py_datetime()
datetime.datetime(2024, 7, 4, 10, 36, 56, tzinfo=datetime.timezone.utc)
```

Read more in the [feature overview](https://whenever.readthedocs.io/en/latest/overview.html)
or [API reference](https://whenever.readthedocs.io/en/latest/api.html).

## Roadmap

- 🧪 **0.x**: get to feature-parity, process feedback, and tweak the API:

  - ✅ Datetime classes
  - ✅ Deltas
  - ✅ Date and time of day (separate from datetime)
  - ✅ Implement Rust extension for performance
  - 🚧 Tweaks to the delta API
- 🔒 **1.0**: API stability and backwards compatibility
  - 🚧 Customizable parsing and formatting
  - 🚧 Intervals
  - 🚧 Ranges and recurring times
  - 🚧 Parsing leap seconds

## Limitations

- Supports the proleptic Gregorian calendar between 1 and 9999 AD
- Timezone offsets are limited to whole seconds (consistent with IANA TZ DB)
- No support for leap seconds (consistent with industry standards and other modern libraries)

## Versioning and compatibility policy

*Whenever* follows semantic versioning.
Until the 1.0 version, the API may change with minor releases.
Breaking changes will be meticulously explained in the changelog.
Since the API is fully typed, your typechecker and/or IDE
will help you adjust to any API changes.

## License

*Whenever* is licensed under the MIT License.
The binary wheels contain Rust dependencies which are licensed under
similarly permissive licenses (MIT, Apache-2.0, and others).
For more details, see the licenses included in the distribution.

## Acknowledgements

*Whenever* stands on the shoulders of giants:

- Its core datamodel takes big inspiration from [Noda Time](https://nodatime.org/),
  which in turn is inspired by the influential [Joda Time](https://www.joda.org/joda-time/).

- *Whenever* also takes a lot of inspiration from the [Temporal proposal for JavaScript](https://tc39.es/proposal-temporal/docs/).
  After years of design work and gathering feedback,
  TC39 has come up with an extraodrinarily well-specified API fit for a dynamic language.
  Whenever takes a lot of cues from Temporal for complex APIs such as handling
  ambiguity and rounding.

- *Whenever* gratefully makes use of ``datetime``'s
  robust and cross-platform handling of the system local timezone.

- The pure-Python version of *whenever* also makes extensive use of Python's ``datetime``
  and ``zoneinfo`` libraries internally.

- *Whenever* also borrows a few nifty ideas from [Jiff](https://github.com/BurntSushi/jiff):
  A modern datetime library in Rust which takes inspiration from Temporal.

- The benchmark comparison graph is adapted from the [Ruff](https://github.com/astral-sh/ruff) project.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "whenever",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Arie Bovenberg <a.c.bovenberg@gmail.com>",
    "keywords": "datetime, typesafe, rust, date, time, timezone, utc, zoneinfo, tzdata, tzdb",
    "author": null,
    "author_email": "Arie Bovenberg <a.c.bovenberg@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/fb/87/c7366bf83232f283fdb30aff0bf6b0d3e4f32458a4624c24438a239c5b36/whenever-0.8.7.tar.gz",
    "platform": null,
    "description": "# \u23f0 Whenever\n\n[![](https://img.shields.io/pypi/v/whenever.svg?style=flat-square&color=blue)](https://pypi.python.org/pypi/whenever)\n[![](https://img.shields.io/pypi/pyversions/whenever.svg?style=flat-square)](https://pypi.python.org/pypi/whenever)\n[![](https://img.shields.io/pypi/l/whenever.svg?style=flat-square&color=blue)](https://pypi.python.org/pypi/whenever)\n[![](https://img.shields.io/badge/mypy-strict-forestgreen?style=flat-square)](https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-strict)\n[![](https://img.shields.io/github/actions/workflow/status/ariebovenberg/whenever/checks.yml?branch=main&style=flat-square)](https://github.com/ariebovenberg/whenever)\n[![](https://img.shields.io/readthedocs/whenever.svg?style=flat-square)](http://whenever.readthedocs.io/)\n\n**Typed and DST-safe datetimes for Python, available in Rust or pure Python.**\n\nDo you cross your fingers every time you work with Python's datetime\u2014hoping that you didn't mix naive and aware?\nor that you avoided its [other pitfalls](https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/)?\nThere\u2019s no way to be sure...\n\n\u2728 Until now! \u2728\n\n*Whenever* helps you write **correct** and **type checked** datetime code,\nusing **well-established concepts** from [modern libraries](#acknowledgements) in other languages.\nIt's also **way faster** than other third-party libraries, and usually the standard library as well.\nDon't buy the Rust hype?\u2014don't worry: a **pure Python** version is available as well.\n\n  <p align=\"center\">\n    <picture align=\"center\">\n        <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/ariebovenberg/whenever/main/benchmarks/comparison/graph-dark.svg\">\n        <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/ariebovenberg/whenever/main/benchmarks/comparison/graph-light.svg\">\n        <img alt=\"Shows a bar chart with benchmark results.\" src=\"https://raw.githubusercontent.com/ariebovenberg/whenever/main/benchmarks/comparison/graph-light.svg\">\n    </picture>\n  </p>\n\n  <p align=\"center\" style=\"font-size: 14px\">\n    <i>Parse, normalize, compare to now, shift, and change timezone (1M times)</i>\n  </p>\n\n<div align=\"center\">\n\n\n[\ud83d\udcd6\u00a0Docs](https://whenever.readthedocs.io)\u00a0|\n[\ud83d\udc0d\u00a0PyPI](https://pypi.org/project/whenever/)\u00a0|\n[\ud83d\udc19\u00a0GitHub](https://github.com/ariebovenberg/whenever)\u00a0|\n[\ud83d\ude80\u00a0Changelog](https://whenever.readthedocs.io/en/latest/changelog.html)\u00a0|\n[\u2753\u00a0FAQ](https://whenever.readthedocs.io/en/latest/faq.html)\u00a0|\n[\ud83d\uddfa\ufe0f\u00a0Roadmap](#roadmap)\u00a0|\n[\ud83d\udcac\u00a0Issues\u00a0&\u00a0feedback](https://github.com/ariebovenberg/whenever/issues)\n\n</div>\n\n> \u26a0\ufe0f **Note**: A 1.0 release is expected this year. Until then, the API may change\n> as we gather feedback and improve the library.\n> Leave a \u2b50\ufe0f on GitHub if you'd like to see how this project develops!\n\n## Why not the standard library?\n\nOver 20+ years, Python's `datetime` has grown\nout of step with what you'd expect from a modern datetime library.\nTwo points stand out:\n\n1. **It doesn't always account for Daylight Saving Time (DST)**.\n   Here is a simple example:\n\n   ```python\n   bedtime = datetime(2023, 3, 25, 22, tzinfo=ZoneInfo(\"Europe/Paris\"))\n   full_rest = bedtime + timedelta(hours=8)\n   # It returns 6am, but should be 7am\u2014because we skipped an hour due to DST!\n   ```\n\n   Note this isn't a bug, but a design decision that DST is only considered\n   when calculations involve *two* timezones.\n   If you think this is surprising, you\n   [are](https://github.com/python/cpython/issues/91618)\n   [not](https://github.com/python/cpython/issues/116035)\n   [alone](https://github.com/python/cpython/issues/112638).\n\n2. **Typing can't distinguish between naive and aware datetimes**.\n   Your code probably only works with one or the other,\n   but there's no way to enforce this in the type system!\n\n   ```python\n   # Does this expect naive or aware? Can't tell!\n   def schedule_meeting(at: datetime) -> None: ...\n   ```\n\n## Why not other libraries?\n\nThere are two other popular third-party libraries, but they don't (fully)\naddress these issues. Here's how they compare to *whenever* and the standard library:\n\n<div align=\"center\">\n\n|                   | Whenever | datetime | Arrow | Pendulum |\n|-------------------|:--------:|:--------:|:-----:|:--------:|\n|      DST-safe     |     \u2705    |     \u274c    |   \u274c   |     \u26a0\ufe0f    |\n| Typed aware/naive |     \u2705    |     \u274c    |   \u274c   |     \u274c    |\n|        Fast       |     \u2705    |     \u2705    |   \u274c   |     \u274c    |\n\n</div>\n\n[**Arrow**](https://pypi.org/project/arrow/)\nis probably the most historically popular 3rd party datetime library.\nIt attempts to provide a more \"friendly\" API than the standard library,\nbut doesn't address the core issues:\nit keeps the same footguns, and its decision to reduce the number\nof types to just one (``arrow.Arrow``) means that it's even harder\nfor typecheckers to catch mistakes.\n\n[**Pendulum**](https://pypi.org/project/pendulum/)\narrived on the scene in 2016, promising better DST-handling,\nas well as improved performance.\nHowever, it only fixes [*some* DST-related pitfalls](https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/#datetime-library-scorecard),\nand its performance has significantly [degraded over time](https://github.com/sdispater/pendulum/issues/818).\nAdditionally, it's in a long maintenance slump with only two releases in the last four years,\nwhile many serious and long-standing issues remain unaddressed.\n\n## Why use whenever?\n\n- \ud83c\udf10 DST-safe arithmetic\n- \ud83d\udee1\ufe0f Typesafe API prevents common bugs\n- \u2705 Fixes issues [arrow/pendulum don't](https://dev.arie.bovenberg.net/blog/python-datetime-pitfalls/#datetime-library-scorecard)\n- \u2696\ufe0f  Based on proven and [familiar concepts](https://www.youtube.com/watch?v=saeKBuPewcU)\n- \u26a1\ufe0f Unmatched performance\n- \ud83d\udc8e Thoroughly tested and documented\n- \ud83d\udcc6 Support for date arithmetic\n- \u23f1\ufe0f Nanosecond precision\n- \ud83e\ude83 Pydantic support (preview)\n- \ud83e\udd80 Rust!\u2014but with a [pure-Python option](https://whenever.readthedocs.io/en/latest/faq.html#how-can-i-use-the-pure-python-version)\n- \ud83d\ude80 Supports per-interpreter GIL\n\n## Quickstart\n\n```python\n>>> from whenever import (\n...    # Explicit types for different use cases\n...    Instant,\n...    ZonedDateTime,\n...    PlainDateTime,\n... )\n\n# Identify moments in time, without timezone/calendar complexity\n>>> now = Instant.now()\nInstant(2024-07-04 10:36:56Z)\n\n# Simple, explicit conversions\n>>> now.to_tz(\"Europe/Paris\")\nZonedDateTime(2024-07-04 12:36:56+02:00[Europe/Paris])\n\n# A 'naive' datetime can't accidentally mix with other types.\n# You need to explicitly convert it and handle ambiguity.\n>>> party_invite = PlainDateTime(2023, 10, 28, hour=22)\n>>> party_invite.add(hours=6)\nTraceback (most recent call last):\n  ImplicitlyIgnoringDST: Adjusting a local datetime implicitly ignores DST [...]\n>>> party_starts = party_invite.assume_tz(\"Europe/Amsterdam\")\nZonedDateTime(2023-10-28 22:00:00+02:00[Europe/Amsterdam])\n\n# DST-safe arithmetic\n>>> party_starts.add(hours=6)\nZonedDateTime(2023-10-29 03:00:00+01:00[Europe/Amsterdam])\n\n# Comparison and equality\n>>> now > party_starts\nTrue\n\n# Rounding and truncation\n>>> now.round(\"minute\", increment=15)\nInstant(2024-07-04 10:30:00Z)\n\n# Formatting & parsing common formats (ISO8601, RFC3339, RFC2822)\n>>> now.format_rfc2822()\n\"Thu, 04 Jul 2024 10:36:56 GMT\"\n\n# If you must: you can convert to/from the standard lib\n>>> now.py_datetime()\ndatetime.datetime(2024, 7, 4, 10, 36, 56, tzinfo=datetime.timezone.utc)\n```\n\nRead more in the [feature overview](https://whenever.readthedocs.io/en/latest/overview.html)\nor [API reference](https://whenever.readthedocs.io/en/latest/api.html).\n\n## Roadmap\n\n- \ud83e\uddea **0.x**: get to feature-parity, process feedback, and tweak the API:\n\n  - \u2705 Datetime classes\n  - \u2705 Deltas\n  - \u2705 Date and time of day (separate from datetime)\n  - \u2705 Implement Rust extension for performance\n  - \ud83d\udea7 Tweaks to the delta API\n- \ud83d\udd12 **1.0**: API stability and backwards compatibility\n  - \ud83d\udea7 Customizable parsing and formatting\n  - \ud83d\udea7 Intervals\n  - \ud83d\udea7 Ranges and recurring times\n  - \ud83d\udea7 Parsing leap seconds\n\n## Limitations\n\n- Supports the proleptic Gregorian calendar between 1 and 9999 AD\n- Timezone offsets are limited to whole seconds (consistent with IANA TZ DB)\n- No support for leap seconds (consistent with industry standards and other modern libraries)\n\n## Versioning and compatibility policy\n\n*Whenever* follows semantic versioning.\nUntil the 1.0 version, the API may change with minor releases.\nBreaking changes will be meticulously explained in the changelog.\nSince the API is fully typed, your typechecker and/or IDE\nwill help you adjust to any API changes.\n\n## License\n\n*Whenever* is licensed under the MIT License.\nThe binary wheels contain Rust dependencies which are licensed under\nsimilarly permissive licenses (MIT, Apache-2.0, and others).\nFor more details, see the licenses included in the distribution.\n\n## Acknowledgements\n\n*Whenever* stands on the shoulders of giants:\n\n- Its core datamodel takes big inspiration from [Noda Time](https://nodatime.org/),\n  which in turn is inspired by the influential [Joda Time](https://www.joda.org/joda-time/).\n\n- *Whenever* also takes a lot of inspiration from the [Temporal proposal for JavaScript](https://tc39.es/proposal-temporal/docs/).\n  After years of design work and gathering feedback,\n  TC39 has come up with an extraodrinarily well-specified API fit for a dynamic language.\n  Whenever takes a lot of cues from Temporal for complex APIs such as handling\n  ambiguity and rounding.\n\n- *Whenever* gratefully makes use of ``datetime``'s\n  robust and cross-platform handling of the system local timezone.\n\n- The pure-Python version of *whenever* also makes extensive use of Python's ``datetime``\n  and ``zoneinfo`` libraries internally.\n\n- *Whenever* also borrows a few nifty ideas from [Jiff](https://github.com/BurntSushi/jiff):\n  A modern datetime library in Rust which takes inspiration from Temporal.\n\n- The benchmark comparison graph is adapted from the [Ruff](https://github.com/astral-sh/ruff) project.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Modern datetime library for Python",
    "version": "0.8.7",
    "project_urls": {
        "Changelog": "https://github.com/ariebovenberg/whenever/blob/main/CHANGELOG.md",
        "Documentation": "https://whenever.readthedocs.io",
        "Issues": "https://github.com/ariebovenberg/whenever/issues",
        "Repository": "https://github.com/ariebovenberg/whenever"
    },
    "split_keywords": [
        "datetime",
        " typesafe",
        " rust",
        " date",
        " time",
        " timezone",
        " utc",
        " zoneinfo",
        " tzdata",
        " tzdb"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b41239429d8de899156051c072c1524c470b461ce3f4904f0b49e77cbde7e6f6",
                "md5": "cb9cb37c8615a03b06b48d65ad5e10d3",
                "sha256": "ba915eda526088130f181b2fe41aa59b2f276c123ee08c6c6e289b30ca3b6821"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb9cb37c8615a03b06b48d65ad5e10d3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 390077,
            "upload_time": "2025-07-18T19:13:48",
            "upload_time_iso_8601": "2025-07-18T19:13:48.629731Z",
            "url": "https://files.pythonhosted.org/packages/b4/12/39429d8de899156051c072c1524c470b461ce3f4904f0b49e77cbde7e6f6/whenever-0.8.7-cp310-cp310-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "857b224500e1e9bb7d385c7ee9ca650d0410528ee376cd4cbd44a912ab8f788a",
                "md5": "ea57ff02b3f5c297d5baddd4dc93af48",
                "sha256": "3ab33c061e91f300bf9b8fc4020eac19ce9bc810d1a811a6f59d0e79d4a100e2"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ea57ff02b3f5c297d5baddd4dc93af48",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 374997,
            "upload_time": "2025-07-18T19:13:42",
            "upload_time_iso_8601": "2025-07-18T19:13:42.294866Z",
            "url": "https://files.pythonhosted.org/packages/85/7b/224500e1e9bb7d385c7ee9ca650d0410528ee376cd4cbd44a912ab8f788a/whenever-0.8.7-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dd44b56d359065d99fe9ec22bcab09d627b95fd1c13e14f8eb45e4848312c548",
                "md5": "4d7638cf14b4747ace3d46098d5cdc82",
                "sha256": "b4f06915307b7dc2d4731559eb70298edc03b97bda5a5aadaa85956ded99b6c1"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4d7638cf14b4747ace3d46098d5cdc82",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 397133,
            "upload_time": "2025-07-18T19:12:24",
            "upload_time_iso_8601": "2025-07-18T19:12:24.357027Z",
            "url": "https://files.pythonhosted.org/packages/dd/44/b56d359065d99fe9ec22bcab09d627b95fd1c13e14f8eb45e4848312c548/whenever-0.8.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cb6e1063e5e6d530b4cc590b5fa680023cb0f9b5f95e8d5958d337dca4653e54",
                "md5": "51d3f698a9d0dfc8269a0252fb31f636",
                "sha256": "8dae3984a21cf9845c0f0da11106efcb1bd836ebb4626c1c8a60b1c91ce3f1d6"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "51d3f698a9d0dfc8269a0252fb31f636",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 436697,
            "upload_time": "2025-07-18T19:12:46",
            "upload_time_iso_8601": "2025-07-18T19:12:46.285178Z",
            "url": "https://files.pythonhosted.org/packages/cb/6e/1063e5e6d530b4cc590b5fa680023cb0f9b5f95e8d5958d337dca4653e54/whenever-0.8.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c56f898d6b6ec084be05969b97023178bfb8d47c0ce51f54893d0669ce7f8664",
                "md5": "ac251f1347f20a7f56a174d0bd0f1f9a",
                "sha256": "6aadf0c8d838599b5139a03b20723b36145c9acd544bf3249ec26f35da83754e"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "ac251f1347f20a7f56a174d0bd0f1f9a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 430789,
            "upload_time": "2025-07-18T19:12:59",
            "upload_time_iso_8601": "2025-07-18T19:12:59.741706Z",
            "url": "https://files.pythonhosted.org/packages/c5/6f/898d6b6ec084be05969b97023178bfb8d47c0ce51f54893d0669ce7f8664/whenever-0.8.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "17aa85fea167f297a781ead4442b3974e030017905074a0f62340dd98e93b267",
                "md5": "b17e306614672cf1018acd2ac5e1097f",
                "sha256": "b3a7554ee3dc0fff56f9113ddb22cbe1626aad16f1642b0d9849dc5c1f55bc50"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "b17e306614672cf1018acd2ac5e1097f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 450825,
            "upload_time": "2025-07-18T19:13:06",
            "upload_time_iso_8601": "2025-07-18T19:13:06.423943Z",
            "url": "https://files.pythonhosted.org/packages/17/aa/85fea167f297a781ead4442b3974e030017905074a0f62340dd98e93b267/whenever-0.8.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8e184a48571aeee1235cb17d92a35b1042d74530f4c3be893486758b441e5919",
                "md5": "e1849a31cd0e3b57f410c1e508729e53",
                "sha256": "4d20eae9210875c62e688c3f1f5dcc2f7881fde0a376226883c6bb3065644eb3"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e1849a31cd0e3b57f410c1e508729e53",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 412021,
            "upload_time": "2025-07-18T19:13:27",
            "upload_time_iso_8601": "2025-07-18T19:13:27.475371Z",
            "url": "https://files.pythonhosted.org/packages/8e/18/4a48571aeee1235cb17d92a35b1042d74530f4c3be893486758b441e5919/whenever-0.8.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dc7b35b5bd42fa263095e9c6f81d54be60e3a0e5df207d0177859a18996a6f54",
                "md5": "dfab0277f88b7f3f89f9de542d4d9570",
                "sha256": "aca0614efe63b8ee91418ca6e60a7373f4b909bb109b8601160d0e6bee04cd42"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "dfab0277f88b7f3f89f9de542d4d9570",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 450905,
            "upload_time": "2025-07-18T19:13:12",
            "upload_time_iso_8601": "2025-07-18T19:13:12.751068Z",
            "url": "https://files.pythonhosted.org/packages/dc/7b/35b5bd42fa263095e9c6f81d54be60e3a0e5df207d0177859a18996a6f54/whenever-0.8.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aadae5724fa9d087edfd020c325ae105f26a0133e6e39509366574e772666a79",
                "md5": "fb5ed633ec9a676e00893f503e1ab2bd",
                "sha256": "93ea693bb0ec9c58c2e0d2721c2ff0963488663280ebc28db2de656b6874b5eb"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "fb5ed633ec9a676e00893f503e1ab2bd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 574934,
            "upload_time": "2025-07-18T19:12:39",
            "upload_time_iso_8601": "2025-07-18T19:12:39.775725Z",
            "url": "https://files.pythonhosted.org/packages/aa/da/e5724fa9d087edfd020c325ae105f26a0133e6e39509366574e772666a79/whenever-0.8.7-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0090277b802fbbea2acdb5df966261f29f53a3dc80cd1ee53928f98920b5d023",
                "md5": "03ee24d8cc999995d97aa4128df13d13",
                "sha256": "66f067dbaa318005c6e4363eef549a34c330d91e148118858674f04125518524"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-musllinux_1_2_armv7l.whl",
            "has_sig": false,
            "md5_digest": "03ee24d8cc999995d97aa4128df13d13",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 699988,
            "upload_time": "2025-07-18T19:12:52",
            "upload_time_iso_8601": "2025-07-18T19:12:52.998131Z",
            "url": "https://files.pythonhosted.org/packages/00/90/277b802fbbea2acdb5df966261f29f53a3dc80cd1ee53928f98920b5d023/whenever-0.8.7-cp310-cp310-musllinux_1_2_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5181f46fd48c641f108f005966b16eeebfe4e765149cc04ab0ea89c772ce33f9",
                "md5": "74e2dbef8fa5016d76bc844662abe7b1",
                "sha256": "36a5f1212b901263de0043847830bcdcb7d8e7afaa49af6b48c2afcf50ad6adf"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "74e2dbef8fa5016d76bc844662abe7b1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 625579,
            "upload_time": "2025-07-18T19:13:18",
            "upload_time_iso_8601": "2025-07-18T19:13:18.695550Z",
            "url": "https://files.pythonhosted.org/packages/51/81/f46fd48c641f108f005966b16eeebfe4e765149cc04ab0ea89c772ce33f9/whenever-0.8.7-cp310-cp310-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "34786cc4a654f0f39da79d9144bb5af07d38779c10f030e1ce1d86c3ef0c2caa",
                "md5": "3bf89d94685b37d25d3f61e4559ad244",
                "sha256": "79effc4cea893f049026bcdaa67415c7639b458aada7ee30b5e208f17905a0f9"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3bf89d94685b37d25d3f61e4559ad244",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 583298,
            "upload_time": "2025-07-18T19:13:34",
            "upload_time_iso_8601": "2025-07-18T19:13:34.319068Z",
            "url": "https://files.pythonhosted.org/packages/34/78/6cc4a654f0f39da79d9144bb5af07d38779c10f030e1ce1d86c3ef0c2caa/whenever-0.8.7-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5fa4c4f68ef98e543e4edd72bf8e801f51fa0aba66ece080e86f21ad89cfcf67",
                "md5": "21d00ececceffd1e24dc7fb9a64a4afa",
                "sha256": "72b8d23c50cd0c18c71c17fd3b0f82a7d433c7c6946c81f6ad408b0c94514b37"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "21d00ececceffd1e24dc7fb9a64a4afa",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 328329,
            "upload_time": "2025-07-18T19:13:55",
            "upload_time_iso_8601": "2025-07-18T19:13:55.083257Z",
            "url": "https://files.pythonhosted.org/packages/5f/a4/c4f68ef98e543e4edd72bf8e801f51fa0aba66ece080e86f21ad89cfcf67/whenever-0.8.7-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0bbb73f4af103e11f8d719dd661f9dff342bdb8057c5148b0eb333a145ca54e3",
                "md5": "45646986b209f3ffb12050c797eba014",
                "sha256": "f2bc12969ee77b04dadaa2fb01f6cd0d575a9b0f90ffe22c32a66e1d2f7a16c4"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "45646986b209f3ffb12050c797eba014",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 320919,
            "upload_time": "2025-07-18T19:14:02",
            "upload_time_iso_8601": "2025-07-18T19:14:02.202679Z",
            "url": "https://files.pythonhosted.org/packages/0b/bb/73f4af103e11f8d719dd661f9dff342bdb8057c5148b0eb333a145ca54e3/whenever-0.8.7-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4642848f01a4da3fe0c3dd8d2f5f436cdd2cf61131828a3f047aa71801cee21",
                "md5": "84eb6cff471604549308d9e1c968b1d6",
                "sha256": "bac7576f320949a3d95dd82f55c68161c93549565f6722d839a2a355fc98761f"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "84eb6cff471604549308d9e1c968b1d6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 390077,
            "upload_time": "2025-07-18T19:13:49",
            "upload_time_iso_8601": "2025-07-18T19:13:49.753444Z",
            "url": "https://files.pythonhosted.org/packages/c4/64/2848f01a4da3fe0c3dd8d2f5f436cdd2cf61131828a3f047aa71801cee21/whenever-0.8.7-cp311-cp311-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "773ff3199310a9cf86b3c2a7497171c9cb9b062ef39729a6ab85c9fc4919d656",
                "md5": "ca65751d03e6b39a0dea423b210f7315",
                "sha256": "49abf9498e09295f0786149c84f4d8429624daa4a0a381ecdfdc64b3a176cb69"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ca65751d03e6b39a0dea423b210f7315",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 374995,
            "upload_time": "2025-07-18T19:13:43",
            "upload_time_iso_8601": "2025-07-18T19:13:43.556105Z",
            "url": "https://files.pythonhosted.org/packages/77/3f/f3199310a9cf86b3c2a7497171c9cb9b062ef39729a6ab85c9fc4919d656/whenever-0.8.7-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "447d5b011ce8cbd562a8c21be25dd7697d2b9c8d945b18bf4120def4bb43af15",
                "md5": "df6240de3c57f91843cd41c0873b98b7",
                "sha256": "458fbe44a69f55d3ed1a1c73ec9754109ecbc284f87a3786559a493fe715b2c9"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "df6240de3c57f91843cd41c0873b98b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 397133,
            "upload_time": "2025-07-18T19:12:26",
            "upload_time_iso_8601": "2025-07-18T19:12:26.745267Z",
            "url": "https://files.pythonhosted.org/packages/44/7d/5b011ce8cbd562a8c21be25dd7697d2b9c8d945b18bf4120def4bb43af15/whenever-0.8.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98db059faf8f280a6cf39544fd168e243510d1b328a8f6af0daa00193c1c7946",
                "md5": "cdeeae846815551b7f29eddd2b42b841",
                "sha256": "46b233aef69f96863442b99683b63575dd22c6b5910f55349eac0f9aed6e5e33"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "cdeeae846815551b7f29eddd2b42b841",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 436696,
            "upload_time": "2025-07-18T19:12:47",
            "upload_time_iso_8601": "2025-07-18T19:12:47.400446Z",
            "url": "https://files.pythonhosted.org/packages/98/db/059faf8f280a6cf39544fd168e243510d1b328a8f6af0daa00193c1c7946/whenever-0.8.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6d318a8e45d1500f4391a576a893a866513a3c668dbaf3aad6cb199ee5e90cb5",
                "md5": "3ec1595b9106aae2d816ffc076919011",
                "sha256": "8fc9672af934c9b2a1cda28a0b034cf924fdc70395c5a96aae9e90c1770ef53c"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "3ec1595b9106aae2d816ffc076919011",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 430787,
            "upload_time": "2025-07-18T19:13:00",
            "upload_time_iso_8601": "2025-07-18T19:13:00.900802Z",
            "url": "https://files.pythonhosted.org/packages/6d/31/8a8e45d1500f4391a576a893a866513a3c668dbaf3aad6cb199ee5e90cb5/whenever-0.8.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2541f3ccf5dffc76c5c985ef87bf1cabe623ec5dcd49fb353c60579903e69ab9",
                "md5": "4678709054a408d71cad1f3696bf0c38",
                "sha256": "304e7d01f041ba87784e0bbec434099306baca8dba616e1810688cca9cfbc01e"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "4678709054a408d71cad1f3696bf0c38",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 450825,
            "upload_time": "2025-07-18T19:13:08",
            "upload_time_iso_8601": "2025-07-18T19:13:08.164527Z",
            "url": "https://files.pythonhosted.org/packages/25/41/f3ccf5dffc76c5c985ef87bf1cabe623ec5dcd49fb353c60579903e69ab9/whenever-0.8.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bbc7f925f87296edcaa721dbdc5d5a218e6af4e35e099d1b4d63a7f9c773caff",
                "md5": "d331eeaf259b741aa2377cf8c65211cb",
                "sha256": "8ff5e6d25415dcd7b629ee9c8b43ca95bec05bc49227d7ab55fccf7677157b8a"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d331eeaf259b741aa2377cf8c65211cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 412021,
            "upload_time": "2025-07-18T19:13:28",
            "upload_time_iso_8601": "2025-07-18T19:13:28.576893Z",
            "url": "https://files.pythonhosted.org/packages/bb/c7/f925f87296edcaa721dbdc5d5a218e6af4e35e099d1b4d63a7f9c773caff/whenever-0.8.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "92d2e199d06dd0e6b0abb8af5375737e8dd15a3758b9de4be4308fd27cfdb92d",
                "md5": "d1d097745a7d8dbe271a257a8e39c2cf",
                "sha256": "286ec3e4008368de324f0cd0ec63b7d11cf0b090616cb6685286ae968f8c0263"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "d1d097745a7d8dbe271a257a8e39c2cf",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 450905,
            "upload_time": "2025-07-18T19:13:13",
            "upload_time_iso_8601": "2025-07-18T19:13:13.912717Z",
            "url": "https://files.pythonhosted.org/packages/92/d2/e199d06dd0e6b0abb8af5375737e8dd15a3758b9de4be4308fd27cfdb92d/whenever-0.8.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "69518532e68209a5e1f139b29abcee737954184239d5f9acbc539228344b15af",
                "md5": "6f4d3e17ffb9f1fdb3573cb4817dfcac",
                "sha256": "2c9ab31ca3534c2643e1fc615ff297ae60906941004595cd7e88b42a91ae5639"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6f4d3e17ffb9f1fdb3573cb4817dfcac",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 574936,
            "upload_time": "2025-07-18T19:12:41",
            "upload_time_iso_8601": "2025-07-18T19:12:41.272386Z",
            "url": "https://files.pythonhosted.org/packages/69/51/8532e68209a5e1f139b29abcee737954184239d5f9acbc539228344b15af/whenever-0.8.7-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2067ef1a9f34068b7538b24f1f14ff8d5842fb067e03d8cff481508ddcdfd938",
                "md5": "9c7a88e60619cf95b0c7bc7370b2bca0",
                "sha256": "6dc45bf571901a62f692bf8563406fcec20f38349e482755c5e859053dcdecf0"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-musllinux_1_2_armv7l.whl",
            "has_sig": false,
            "md5_digest": "9c7a88e60619cf95b0c7bc7370b2bca0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 699990,
            "upload_time": "2025-07-18T19:12:54",
            "upload_time_iso_8601": "2025-07-18T19:12:54.282034Z",
            "url": "https://files.pythonhosted.org/packages/20/67/ef1a9f34068b7538b24f1f14ff8d5842fb067e03d8cff481508ddcdfd938/whenever-0.8.7-cp311-cp311-musllinux_1_2_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "656d2225b4ce192dd333432b3a393534d2cee75a0594b938f9b4b55160288b4b",
                "md5": "bf9d3a7fcdcb4cd23afe83e29ec57f49",
                "sha256": "c9cbf541e20129bf27436da5aae4996d925c112f1f33af30e7f38f41bcd7d6b7"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "bf9d3a7fcdcb4cd23afe83e29ec57f49",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 625583,
            "upload_time": "2025-07-18T19:13:20",
            "upload_time_iso_8601": "2025-07-18T19:13:20.644885Z",
            "url": "https://files.pythonhosted.org/packages/65/6d/2225b4ce192dd333432b3a393534d2cee75a0594b938f9b4b55160288b4b/whenever-0.8.7-cp311-cp311-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "39c54e9c5e30bad68f68ae16c60d958e3a1ed477539eb9308abc9eb55c67ff5b",
                "md5": "20a5efca50fc1770b96d5108174d0248",
                "sha256": "73bfb5487ec38ae1d664829dd668e0adecb07851ee3c6ede68ac32f5c4eb457b"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "20a5efca50fc1770b96d5108174d0248",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 583298,
            "upload_time": "2025-07-18T19:13:35",
            "upload_time_iso_8601": "2025-07-18T19:13:35.639940Z",
            "url": "https://files.pythonhosted.org/packages/39/c5/4e9c5e30bad68f68ae16c60d958e3a1ed477539eb9308abc9eb55c67ff5b/whenever-0.8.7-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3e1b144d6c235692ecb9b7dcfb0378546774a35539d25c45feaba15ac7e0ef0f",
                "md5": "125c95d653d0a65aa74c3fe4f392e8b4",
                "sha256": "4b48bf3306ac7c3fd0ca601610d3bf4bb735a409f1c75039b5afcdc748388779"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "125c95d653d0a65aa74c3fe4f392e8b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 328328,
            "upload_time": "2025-07-18T19:13:56",
            "upload_time_iso_8601": "2025-07-18T19:13:56.229666Z",
            "url": "https://files.pythonhosted.org/packages/3e/1b/144d6c235692ecb9b7dcfb0378546774a35539d25c45feaba15ac7e0ef0f/whenever-0.8.7-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f7707e644ec92ce44f309b437ca87456860da0cea61dc7f0e847453b8dd3ad70",
                "md5": "fd72298e1d90a7a212352a328798223d",
                "sha256": "112f87fad3efd7e8af83bd6104140ac2ef7d75baa912bf96fbb816d033dfcbd2"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fd72298e1d90a7a212352a328798223d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 320927,
            "upload_time": "2025-07-18T19:14:03",
            "upload_time_iso_8601": "2025-07-18T19:14:03.324901Z",
            "url": "https://files.pythonhosted.org/packages/f7/70/7e644ec92ce44f309b437ca87456860da0cea61dc7f0e847453b8dd3ad70/whenever-0.8.7-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d678b61a1d64309ee8feffb3c49e9331e35108ba3c96356eb394d43f33be39c5",
                "md5": "c561313c4479156857f2092148ae80f8",
                "sha256": "1afd365908b9709dde43373d08389b241f77247ba663550805e81b15865f8056"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c561313c4479156857f2092148ae80f8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 391260,
            "upload_time": "2025-07-18T19:13:50",
            "upload_time_iso_8601": "2025-07-18T19:13:50.916026Z",
            "url": "https://files.pythonhosted.org/packages/d6/78/b61a1d64309ee8feffb3c49e9331e35108ba3c96356eb394d43f33be39c5/whenever-0.8.7-cp312-cp312-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4dba9a5bfbf0240763cdf77296ee20b084973826caed697c435cfecf5a0b4cfa",
                "md5": "1d4f59dc8d80e851199c53258a4f388a",
                "sha256": "e2fc9d6610caf2e66cf8ca7cd0f463a82e930bc6d88763c6b4a83cb8ebfcae90"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1d4f59dc8d80e851199c53258a4f388a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 375136,
            "upload_time": "2025-07-18T19:13:44",
            "upload_time_iso_8601": "2025-07-18T19:13:44.910855Z",
            "url": "https://files.pythonhosted.org/packages/4d/ba/9a5bfbf0240763cdf77296ee20b084973826caed697c435cfecf5a0b4cfa/whenever-0.8.7-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "acaa1169cd68f419ae66adc3bde3c15170dfa8c988135d55b8176bfaaee87825",
                "md5": "e6e29479488d098389aec90293102a56",
                "sha256": "f7a20e6e7db3bdd8cb406501341f5e75583027ae63397696203ed4ab26b2ea9c"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e6e29479488d098389aec90293102a56",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 396812,
            "upload_time": "2025-07-18T19:12:27",
            "upload_time_iso_8601": "2025-07-18T19:12:27.925864Z",
            "url": "https://files.pythonhosted.org/packages/ac/aa/1169cd68f419ae66adc3bde3c15170dfa8c988135d55b8176bfaaee87825/whenever-0.8.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "70bc6fb0fb61f77e8a1505a350dd0a01d563712edaca19ffe08cc21800f90ec7",
                "md5": "df74cf67e5f84568f7ef4b5a534ac5bd",
                "sha256": "b8c8cf80d0ca717b35108055727511d143d1a1eacc6cc25d9d93c8e3b320025c"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "df74cf67e5f84568f7ef4b5a534ac5bd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 437314,
            "upload_time": "2025-07-18T19:12:48",
            "upload_time_iso_8601": "2025-07-18T19:12:48.610157Z",
            "url": "https://files.pythonhosted.org/packages/70/bc/6fb0fb61f77e8a1505a350dd0a01d563712edaca19ffe08cc21800f90ec7/whenever-0.8.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0d00efe379aecef57eef189eaf269cff9a81fbd38f2df19e83eba01ee73058de",
                "md5": "47eee090292eac5e2d4b040843841e0b",
                "sha256": "764a83985aa7ebe3724afca37ee61657afe0636930eba013f5519556f0035ee4"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "47eee090292eac5e2d4b040843841e0b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 432827,
            "upload_time": "2025-07-18T19:13:02",
            "upload_time_iso_8601": "2025-07-18T19:13:02.350842Z",
            "url": "https://files.pythonhosted.org/packages/0d/00/efe379aecef57eef189eaf269cff9a81fbd38f2df19e83eba01ee73058de/whenever-0.8.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bc7fbc1fa510fee4af7290f33c330ccf71f71cb6da5df7eca2db24ac3d9d2f8a",
                "md5": "c8f3b2d746dfbba3396949592af8efb6",
                "sha256": "b2ca2879c9d4483ee71588dfad41466c394dc6332ae5dd64fd89a16b1126ac2a"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "c8f3b2d746dfbba3396949592af8efb6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 451516,
            "upload_time": "2025-07-18T19:13:09",
            "upload_time_iso_8601": "2025-07-18T19:13:09.285682Z",
            "url": "https://files.pythonhosted.org/packages/bc/7f/bc1fa510fee4af7290f33c330ccf71f71cb6da5df7eca2db24ac3d9d2f8a/whenever-0.8.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e432ed8e33531becdf3ed24be98fc3f722e13c6cde9e3479c76a47626bdb495f",
                "md5": "b6dbba274e7c7142c0b61db67142a6b8",
                "sha256": "dd8b5d2d537ce256f8e0f665126b38ee5f19003433d2b16e6ae5634cc1c4b432"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b6dbba274e7c7142c0b61db67142a6b8",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 412851,
            "upload_time": "2025-07-18T19:13:30",
            "upload_time_iso_8601": "2025-07-18T19:13:30.170966Z",
            "url": "https://files.pythonhosted.org/packages/e4/32/ed8e33531becdf3ed24be98fc3f722e13c6cde9e3479c76a47626bdb495f/whenever-0.8.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a5c162e9dc85e898879a76a01d8c9cbdd45dd7985fb7a32f9076611588a29b45",
                "md5": "b482604849f3992e099e3c30dd67fb7a",
                "sha256": "680bf787a1fe87fb7f8520188a3d71ac0f78589c5e7e071d66b1fb835e463cf3"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "b482604849f3992e099e3c30dd67fb7a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 452091,
            "upload_time": "2025-07-18T19:13:15",
            "upload_time_iso_8601": "2025-07-18T19:13:15.086135Z",
            "url": "https://files.pythonhosted.org/packages/a5/c1/62e9dc85e898879a76a01d8c9cbdd45dd7985fb7a32f9076611588a29b45/whenever-0.8.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "df096c7d7aa31bb99e7f28babeddb0eff3fa7096bdfdb81f7c3f77848b889098",
                "md5": "b1e1c9dcb7589d745e37d2b7447bf7d0",
                "sha256": "2f71a086ead81e3f4f00213d69f0850be5c31932787fa784bd48bb02fe446cc7"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b1e1c9dcb7589d745e37d2b7447bf7d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 574701,
            "upload_time": "2025-07-18T19:12:42",
            "upload_time_iso_8601": "2025-07-18T19:12:42.386679Z",
            "url": "https://files.pythonhosted.org/packages/df/09/6c7d7aa31bb99e7f28babeddb0eff3fa7096bdfdb81f7c3f77848b889098/whenever-0.8.7-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "24159ac888df7287366957f0753fa9f9804654ea8200ee2c76ae2677b8a42a53",
                "md5": "4e7aaa22351d3d517129e79a5204c661",
                "sha256": "b28176c6bd8879c557a7a86fba4bd527aaafdc93a05f096cf5ee512d767f1055"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-musllinux_1_2_armv7l.whl",
            "has_sig": false,
            "md5_digest": "4e7aaa22351d3d517129e79a5204c661",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 700622,
            "upload_time": "2025-07-18T19:12:55",
            "upload_time_iso_8601": "2025-07-18T19:12:55.426351Z",
            "url": "https://files.pythonhosted.org/packages/24/15/9ac888df7287366957f0753fa9f9804654ea8200ee2c76ae2677b8a42a53/whenever-0.8.7-cp312-cp312-musllinux_1_2_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "08c103d67661679d462e3479414376846e24a86cd316aebbc6bbff28a343f9b0",
                "md5": "64cd35c33b829a6a55656b8d07b45918",
                "sha256": "cd44462d4350a01fb6c8f81fed35cacbc30945cbc97dfb3acaab3a01f6f7002e"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "64cd35c33b829a6a55656b8d07b45918",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 627131,
            "upload_time": "2025-07-18T19:13:22",
            "upload_time_iso_8601": "2025-07-18T19:13:22.479402Z",
            "url": "https://files.pythonhosted.org/packages/08/c1/03d67661679d462e3479414376846e24a86cd316aebbc6bbff28a343f9b0/whenever-0.8.7-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "569895240d2e8890739d23139eec4ee68c666cd5177efbff83bddf65569b940c",
                "md5": "a1bbc1bceba123a7bacff56492b1de22",
                "sha256": "702d7bf7a43e19ff94207e3c696672fd7b0a8dba2eb960fe89d6302218a011ff"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a1bbc1bceba123a7bacff56492b1de22",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 584196,
            "upload_time": "2025-07-18T19:13:37",
            "upload_time_iso_8601": "2025-07-18T19:13:37.784102Z",
            "url": "https://files.pythonhosted.org/packages/56/98/95240d2e8890739d23139eec4ee68c666cd5177efbff83bddf65569b940c/whenever-0.8.7-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6263feae3c6c0009cd4b45a4375042b5cb239c4ddf6287b395ad3578af359d5a",
                "md5": "de764e4d5cf1babacde050a542ab6767",
                "sha256": "5a02a6ac8b3336cc8c558ca955c4856975fd75c034c55d124ab4b02869dac59e"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "de764e4d5cf1babacde050a542ab6767",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 329951,
            "upload_time": "2025-07-18T19:13:57",
            "upload_time_iso_8601": "2025-07-18T19:13:57.406886Z",
            "url": "https://files.pythonhosted.org/packages/62/63/feae3c6c0009cd4b45a4375042b5cb239c4ddf6287b395ad3578af359d5a/whenever-0.8.7-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5357effdea12a7a8318859e995cd946752ce6c792653e2fb24ed4e087303dc20",
                "md5": "8decfdc5cbc0e19dfb8bdbd53431a389",
                "sha256": "b1a5618dc23a0cd8f171e2ea4a0453d86b6e439b33f4dbf08a7976593c5f3df3"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8decfdc5cbc0e19dfb8bdbd53431a389",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 322340,
            "upload_time": "2025-07-18T19:14:04",
            "upload_time_iso_8601": "2025-07-18T19:14:04.435260Z",
            "url": "https://files.pythonhosted.org/packages/53/57/effdea12a7a8318859e995cd946752ce6c792653e2fb24ed4e087303dc20/whenever-0.8.7-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e27a90f2330cb456db0a7b600d13058b04e7a47d5589255bab1284a4db7bce73",
                "md5": "041ecc2bb8739ac999b91eb8364533fd",
                "sha256": "66c63593c868a08e84d96a0f623663ad58c57e550f956820f2b05c2c05475cf7"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "041ecc2bb8739ac999b91eb8364533fd",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 391261,
            "upload_time": "2025-07-18T19:13:52",
            "upload_time_iso_8601": "2025-07-18T19:13:52.091019Z",
            "url": "https://files.pythonhosted.org/packages/e2/7a/90f2330cb456db0a7b600d13058b04e7a47d5589255bab1284a4db7bce73/whenever-0.8.7-cp313-cp313-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "03e226913c090a30d7e18977dbfdc044c32fd8c12e138a838e2c65bd91db9a83",
                "md5": "793329e05fb6802c304e33439bab237b",
                "sha256": "a1c649ab2fd4bc527e02110b686f5a56a1134ffe2f32b32968304b1362434807"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "793329e05fb6802c304e33439bab237b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 375143,
            "upload_time": "2025-07-18T19:13:46",
            "upload_time_iso_8601": "2025-07-18T19:13:46.023915Z",
            "url": "https://files.pythonhosted.org/packages/03/e2/26913c090a30d7e18977dbfdc044c32fd8c12e138a838e2c65bd91db9a83/whenever-0.8.7-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c957064fba27d6510650d3818ece6540da8cd7b7d0bb3373ee70c272176cff2e",
                "md5": "d5fed211b5b73b67933d10f786030985",
                "sha256": "48e3c6f5f75e18b124b0b595f3e821d3fe8ff7b17a1c1d3fff1b04c98fdfdb5b"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d5fed211b5b73b67933d10f786030985",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 396820,
            "upload_time": "2025-07-18T19:12:29",
            "upload_time_iso_8601": "2025-07-18T19:12:29.449126Z",
            "url": "https://files.pythonhosted.org/packages/c9/57/064fba27d6510650d3818ece6540da8cd7b7d0bb3373ee70c272176cff2e/whenever-0.8.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "32eca521029656ed2216e513f6d2a1bd4ab5dcb47eb6f8d6acb3824b1150be97",
                "md5": "7df779632e66ccbbe2896194a970637a",
                "sha256": "79024eb13c8b8be6262fd32ca8e0bfc8bc2cbd200309bd2dcde150b970422d4f"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "7df779632e66ccbbe2896194a970637a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 437326,
            "upload_time": "2025-07-18T19:12:50",
            "upload_time_iso_8601": "2025-07-18T19:12:50.213635Z",
            "url": "https://files.pythonhosted.org/packages/32/ec/a521029656ed2216e513f6d2a1bd4ab5dcb47eb6f8d6acb3824b1150be97/whenever-0.8.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e5ce5e1e7050f72e14fc979cbf7b1c6252ddf1570f385a1f225643115539a33",
                "md5": "310af7e6a67e64990de1003b85ffaf5a",
                "sha256": "c26d0a62282841d5fdea9ad1ede6634ba8d25eb958a98b6d82822c75dab84fc5"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "310af7e6a67e64990de1003b85ffaf5a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 432832,
            "upload_time": "2025-07-18T19:13:03",
            "upload_time_iso_8601": "2025-07-18T19:13:03.514948Z",
            "url": "https://files.pythonhosted.org/packages/9e/5c/e5e1e7050f72e14fc979cbf7b1c6252ddf1570f385a1f225643115539a33/whenever-0.8.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b8118ce6cb33d869fdd489de27aa52bfec64fc5171bf709e98e47ef84c482bbc",
                "md5": "21a95c0919255e52865f13d2fbce8d2d",
                "sha256": "9ffcd86a7b9ccfcc15b7d36dc2785a078719123bb08afb5ebd19d9e8546ed685"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "21a95c0919255e52865f13d2fbce8d2d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 451533,
            "upload_time": "2025-07-18T19:13:10",
            "upload_time_iso_8601": "2025-07-18T19:13:10.393988Z",
            "url": "https://files.pythonhosted.org/packages/b8/11/8ce6cb33d869fdd489de27aa52bfec64fc5171bf709e98e47ef84c482bbc/whenever-0.8.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "52bed11941fda9c1a58b20debadd0ff6f76bd82c186a1a454c66a9daef912203",
                "md5": "f09cab94a69e7096d3514a32650774c0",
                "sha256": "3a7466113e4c77139db8a54900194dc494aab3785ea7dc659e1ff97039bf11ff"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f09cab94a69e7096d3514a32650774c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 412846,
            "upload_time": "2025-07-18T19:13:31",
            "upload_time_iso_8601": "2025-07-18T19:13:31.709641Z",
            "url": "https://files.pythonhosted.org/packages/52/be/d11941fda9c1a58b20debadd0ff6f76bd82c186a1a454c66a9daef912203/whenever-0.8.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "436279c1f8c79086a6db9f3ad3ef50f32091c4912d325b2139bb65a35f0ddebd",
                "md5": "a0c4a2691ee09676634efbf963041aee",
                "sha256": "0780898c8e8ac0bfa093899dbc97dd2e153c8b1271243363937661f4ce25ba43"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "a0c4a2691ee09676634efbf963041aee",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 452100,
            "upload_time": "2025-07-18T19:13:16",
            "upload_time_iso_8601": "2025-07-18T19:13:16.202186Z",
            "url": "https://files.pythonhosted.org/packages/43/62/79c1f8c79086a6db9f3ad3ef50f32091c4912d325b2139bb65a35f0ddebd/whenever-0.8.7-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d2a3b49b51cc08d2d5e6af886740ad01a2d10f9cd0648c416fc008ad55ddf110",
                "md5": "f32c882a925dbfb6ea9cf3f3e6b8336d",
                "sha256": "0f53e7b4f7d90e607b4e3855bcf0643ff7306f789e4e274daf89f8f4b307b6f2"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f32c882a925dbfb6ea9cf3f3e6b8336d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 574697,
            "upload_time": "2025-07-18T19:12:43",
            "upload_time_iso_8601": "2025-07-18T19:12:43.540473Z",
            "url": "https://files.pythonhosted.org/packages/d2/a3/b49b51cc08d2d5e6af886740ad01a2d10f9cd0648c416fc008ad55ddf110/whenever-0.8.7-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d5f65110174e73f6e20c179ed98ddd3fa64b7893734e490337a80ac5e4e5acb9",
                "md5": "da80581fb23a10ab7dbda02ebadd3d29",
                "sha256": "98f0b0f0dd5db1067a522c85a5f865d6d0d725c7b1280d39fe83b0130029b30f"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-musllinux_1_2_armv7l.whl",
            "has_sig": false,
            "md5_digest": "da80581fb23a10ab7dbda02ebadd3d29",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 700634,
            "upload_time": "2025-07-18T19:12:56",
            "upload_time_iso_8601": "2025-07-18T19:12:56.724886Z",
            "url": "https://files.pythonhosted.org/packages/d5/f6/5110174e73f6e20c179ed98ddd3fa64b7893734e490337a80ac5e4e5acb9/whenever-0.8.7-cp313-cp313-musllinux_1_2_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cb9735c54d840855838222fc41f7e9eed3f00db0de36c527bb952f8fb644603a",
                "md5": "b6d02c7c92f4de8f209495a86ed65e38",
                "sha256": "c20fb57991b937f40ae8487fdb4c6aa844e6830d51bb4ac274c79410ea5e02c1"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "b6d02c7c92f4de8f209495a86ed65e38",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 627136,
            "upload_time": "2025-07-18T19:13:24",
            "upload_time_iso_8601": "2025-07-18T19:13:24.203567Z",
            "url": "https://files.pythonhosted.org/packages/cb/97/35c54d840855838222fc41f7e9eed3f00db0de36c527bb952f8fb644603a/whenever-0.8.7-cp313-cp313-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7c4e5c3a3007fa0ee02c5b38669ab26567f4c359a41cf668ce9c51cbafdfff58",
                "md5": "021192bc25a326b47b5e7f9760011cf5",
                "sha256": "64379e01b0380172b84d5934bc9fb991f245eb54058e784524ef3a0e8a7cbb3f"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "021192bc25a326b47b5e7f9760011cf5",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 584197,
            "upload_time": "2025-07-18T19:13:39",
            "upload_time_iso_8601": "2025-07-18T19:13:39.436950Z",
            "url": "https://files.pythonhosted.org/packages/7c/4e/5c3a3007fa0ee02c5b38669ab26567f4c359a41cf668ce9c51cbafdfff58/whenever-0.8.7-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3afef445e78854869ee3b7d75e2fa10949ad153a0969e84eeb89912be9058bdc",
                "md5": "b8d45f8fec5189c6008ec7c2c5ccfcfc",
                "sha256": "4ac30fc37a6fff217c7af8fcdd3c355893ca0925527622edcf9075c2724ea421"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "b8d45f8fec5189c6008ec7c2c5ccfcfc",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 329955,
            "upload_time": "2025-07-18T19:13:58",
            "upload_time_iso_8601": "2025-07-18T19:13:58.704855Z",
            "url": "https://files.pythonhosted.org/packages/3a/fe/f445e78854869ee3b7d75e2fa10949ad153a0969e84eeb89912be9058bdc/whenever-0.8.7-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d52c2166311059a1e8f0a6e1e86b6825e3395f8a882b78678fc0e641c8237575",
                "md5": "569b6b9f07c8e973fc6657d4d6cf14c4",
                "sha256": "544fcc9a3971f9e20bb4fddb5614503bc694680113fe1b103b2564bdc5f3653c"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "569b6b9f07c8e973fc6657d4d6cf14c4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 322351,
            "upload_time": "2025-07-18T19:14:05",
            "upload_time_iso_8601": "2025-07-18T19:14:05.744223Z",
            "url": "https://files.pythonhosted.org/packages/d5/2c/2166311059a1e8f0a6e1e86b6825e3395f8a882b78678fc0e641c8237575/whenever-0.8.7-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cda09cbe9254a759a6e0ef74ee98c2cfe6679a0cc36d774b20b6715561054e19",
                "md5": "f6bf8fee1ab693e0c2fec70a9a44ea40",
                "sha256": "2ad2757eca48ca153dce6ea15232403a0881f6f1695b7cd1d766c6f4dfebacdd"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f6bf8fee1ab693e0c2fec70a9a44ea40",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 390188,
            "upload_time": "2025-07-18T19:13:53",
            "upload_time_iso_8601": "2025-07-18T19:13:53.455894Z",
            "url": "https://files.pythonhosted.org/packages/cd/a0/9cbe9254a759a6e0ef74ee98c2cfe6679a0cc36d774b20b6715561054e19/whenever-0.8.7-cp39-cp39-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "11b3e29b1a83a1ecb5dbb875c52a644f09d6fe470f91aeeb3e78849fbb5301c5",
                "md5": "b1e3b2ab2821a809efdae76eb5fdd177",
                "sha256": "aae29437ada244c698e2354b07ec0c7e2ee24605e938084ff13ca7d949c6f880"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b1e3b2ab2821a809efdae76eb5fdd177",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 375190,
            "upload_time": "2025-07-18T19:13:47",
            "upload_time_iso_8601": "2025-07-18T19:13:47.176188Z",
            "url": "https://files.pythonhosted.org/packages/11/b3/e29b1a83a1ecb5dbb875c52a644f09d6fe470f91aeeb3e78849fbb5301c5/whenever-0.8.7-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "323529c9d73265bbe9a38042b12682a2b93cb31e06a9a779600ee7c46ea24314",
                "md5": "2bb1452eb65beefe6182aed2af494058",
                "sha256": "e215f57296b9bcda57a81b419b379d8abc8f4b3e69917badb593b047399cb556"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2bb1452eb65beefe6182aed2af494058",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 397323,
            "upload_time": "2025-07-18T19:12:30",
            "upload_time_iso_8601": "2025-07-18T19:12:30.836565Z",
            "url": "https://files.pythonhosted.org/packages/32/35/29c9d73265bbe9a38042b12682a2b93cb31e06a9a779600ee7c46ea24314/whenever-0.8.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "335323ffcaa832ad3e3a621ca0184f25456f0852d120e203afb8370f9e4a8b4a",
                "md5": "337d69c75d479f3ea417680bd23e5450",
                "sha256": "a9da4f294675c9ec92df5bbfc81b2239d3d5ee98e4cca8fbfab0a19b22888546"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "337d69c75d479f3ea417680bd23e5450",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 436868,
            "upload_time": "2025-07-18T19:12:51",
            "upload_time_iso_8601": "2025-07-18T19:12:51.793443Z",
            "url": "https://files.pythonhosted.org/packages/33/53/23ffcaa832ad3e3a621ca0184f25456f0852d120e203afb8370f9e4a8b4a/whenever-0.8.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "86ab333255be2d0d921ced8b9a8c2ad17f7499afdaaadf9c8249d73025a7c421",
                "md5": "aaa47a7cb15e21621d9e546c1f730d8d",
                "sha256": "a8d056e39610775653c0ebcd720c3e523abebca8770756ece4c936ca48b819ab"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "aaa47a7cb15e21621d9e546c1f730d8d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 430924,
            "upload_time": "2025-07-18T19:13:05",
            "upload_time_iso_8601": "2025-07-18T19:13:05.094366Z",
            "url": "https://files.pythonhosted.org/packages/86/ab/333255be2d0d921ced8b9a8c2ad17f7499afdaaadf9c8249d73025a7c421/whenever-0.8.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5d9a08992924df066c0cc8afbac5ea935455198e6cf33c789f4647e4f426bb60",
                "md5": "f4488965eb5f33cf8a28289ecf887cfe",
                "sha256": "95a7f44aaeaabf47c85dd4fde7037f90727410acdb36a109334b71a27db667fd"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "f4488965eb5f33cf8a28289ecf887cfe",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 451111,
            "upload_time": "2025-07-18T19:13:11",
            "upload_time_iso_8601": "2025-07-18T19:13:11.582355Z",
            "url": "https://files.pythonhosted.org/packages/5d/9a/08992924df066c0cc8afbac5ea935455198e6cf33c789f4647e4f426bb60/whenever-0.8.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "79c8b93fa5465670d5b817668e427ebeaacf65a0c573698ba244cabf32dec559",
                "md5": "953d4029e9d75b08358197c6e2dd1256",
                "sha256": "24d962758d182998876115089bb868e599031be0f58ea3bffb001e1c525e3a8f"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "953d4029e9d75b08358197c6e2dd1256",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 412138,
            "upload_time": "2025-07-18T19:13:33",
            "upload_time_iso_8601": "2025-07-18T19:13:33.202280Z",
            "url": "https://files.pythonhosted.org/packages/79/c8/b93fa5465670d5b817668e427ebeaacf65a0c573698ba244cabf32dec559/whenever-0.8.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e34e6fdb14beec62f9af418bb7eea0acd6c4ecf45d48d032b0263a0e483305a6",
                "md5": "2872549ece497fd5ce6d5a9efb122897",
                "sha256": "be529a12386eea5e35451b1a8cd2e356ee3b8bc1f4da010f87c0d8e55c86a010"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "2872549ece497fd5ce6d5a9efb122897",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 451112,
            "upload_time": "2025-07-18T19:13:17",
            "upload_time_iso_8601": "2025-07-18T19:13:17.420645Z",
            "url": "https://files.pythonhosted.org/packages/e3/4e/6fdb14beec62f9af418bb7eea0acd6c4ecf45d48d032b0263a0e483305a6/whenever-0.8.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1f2ba3613ee7f6e8131b432dca4fac40b1e50c1789933f23c508524df874153c",
                "md5": "994fb9416ab0be059d552daa4b336ae2",
                "sha256": "04b8630bbfef273f6eb6eb541229d4feebeb8eb4ad752b4d90e93b2a465eb00e"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "994fb9416ab0be059d552daa4b336ae2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 575007,
            "upload_time": "2025-07-18T19:12:44",
            "upload_time_iso_8601": "2025-07-18T19:12:44.688139Z",
            "url": "https://files.pythonhosted.org/packages/1f/2b/a3613ee7f6e8131b432dca4fac40b1e50c1789933f23c508524df874153c/whenever-0.8.7-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c389bba305f1f14a9295c998459d074de628deaf6e3edb408da60c152c4302cd",
                "md5": "a18e85e66caf917943b9acb9762c339a",
                "sha256": "cd4eb027daa5f1643920076878aed270ba2cc9b6d23ebcb3b5f29bc3b1319430"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-musllinux_1_2_armv7l.whl",
            "has_sig": false,
            "md5_digest": "a18e85e66caf917943b9acb9762c339a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 700136,
            "upload_time": "2025-07-18T19:12:58",
            "upload_time_iso_8601": "2025-07-18T19:12:58.143608Z",
            "url": "https://files.pythonhosted.org/packages/c3/89/bba305f1f14a9295c998459d074de628deaf6e3edb408da60c152c4302cd/whenever-0.8.7-cp39-cp39-musllinux_1_2_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2fc029f5d52c32c80107544e6dac32fac0286560b0547bf458a10584931bd64f",
                "md5": "f5f909bd6e1744919ac13af361fc03a9",
                "sha256": "2ff320d9dcb6c768d38d1fde17ca6ffe770e5b239eaca6f421b8008dd516d92e"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "f5f909bd6e1744919ac13af361fc03a9",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 625781,
            "upload_time": "2025-07-18T19:13:25",
            "upload_time_iso_8601": "2025-07-18T19:13:25.887728Z",
            "url": "https://files.pythonhosted.org/packages/2f/c0/29f5d52c32c80107544e6dac32fac0286560b0547bf458a10584931bd64f/whenever-0.8.7-cp39-cp39-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b57b3a6103dfe3dc61e8fc34fe188814fbab4fbc75bd41ad6d86f6bf83c3456c",
                "md5": "48131734513e831fce0a290805b5beee",
                "sha256": "fde3be163947cfbad25ea5242787f89f3db6a2b4dbc01cb96349e35cda4efd4b"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "48131734513e831fce0a290805b5beee",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 583428,
            "upload_time": "2025-07-18T19:13:40",
            "upload_time_iso_8601": "2025-07-18T19:13:40.575478Z",
            "url": "https://files.pythonhosted.org/packages/b5/7b/3a6103dfe3dc61e8fc34fe188814fbab4fbc75bd41ad6d86f6bf83c3456c/whenever-0.8.7-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9496acc0cd8ca96ff949d63c67cae96ae755a265f67b26f752a0d4f8c0023733",
                "md5": "f47d1e15512f27038efbe1fdea7ca569",
                "sha256": "e0b53832f794da0de832ca1ddcce71af6b546b2712a875645f56fa344da63c25"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "f47d1e15512f27038efbe1fdea7ca569",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 328484,
            "upload_time": "2025-07-18T19:14:00",
            "upload_time_iso_8601": "2025-07-18T19:14:00.436367Z",
            "url": "https://files.pythonhosted.org/packages/94/96/acc0cd8ca96ff949d63c67cae96ae755a265f67b26f752a0d4f8c0023733/whenever-0.8.7-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bc74ec4b68f65d14b26b895c6cc9accdddaf3a1a2b7dfa6e488715d116618c3d",
                "md5": "53e738e55dc2b10c2c81c94dc34ed85f",
                "sha256": "efadd6ce8eeb6c69cc4e8d18eb257b98ed337f01d4ed2b126a3c9284eceaa800"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "53e738e55dc2b10c2c81c94dc34ed85f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 321027,
            "upload_time": "2025-07-18T19:14:07",
            "upload_time_iso_8601": "2025-07-18T19:14:07.324042Z",
            "url": "https://files.pythonhosted.org/packages/bc/74/ec4b68f65d14b26b895c6cc9accdddaf3a1a2b7dfa6e488715d116618c3d/whenever-0.8.7-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fb87c7366bf83232f283fdb30aff0bf6b0d3e4f32458a4624c24438a239c5b36",
                "md5": "068ff06a629f66e8b18906b8e0710b4d",
                "sha256": "8b9d13a8e7ce5fa0b0fe1c5ba2fe5ee29a2d3718bceab66fc004f9e7dc8e8e45"
            },
            "downloads": -1,
            "filename": "whenever-0.8.7.tar.gz",
            "has_sig": false,
            "md5_digest": "068ff06a629f66e8b18906b8e0710b4d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 235505,
            "upload_time": "2025-07-18T19:14:08",
            "upload_time_iso_8601": "2025-07-18T19:14:08.544081Z",
            "url": "https://files.pythonhosted.org/packages/fb/87/c7366bf83232f283fdb30aff0bf6b0d3e4f32458a4624c24438a239c5b36/whenever-0.8.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-18 19:14:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ariebovenberg",
    "github_project": "whenever",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "whenever"
}
        
Elapsed time: 0.97895s