Plummet
Methods for testing with pendulum timestamps.
The most useful method for testing is the frozen_time()
method which allows you to fix a moment in time so that all calls to
pendulum.now() return the provided timestamp.
It is also possible to freeze timestamps given by datetime.now() by
installing the time-machine extra dependency.
Methods
Here is a breakdown of the methods provided, what they do, and examples of how to use them
momentize()
This method is used to turn a variety of different timestamps into pendulum.DateTime instances in the UTC timezone.
Accepted types
- String timestamps (anything that pendulum can parse)
- datetime.datetime instances
- pendulum.DateTime instances (that might be in other timezones)
- None -- returns the current moment in UTC
Examples
Get the current time in UTC:
>>> momentize()
DateTime(2021, 11, 17, 21, 15, 0, 20728, tzinfo=Timezone('UTC'))
Convert a string timestamp:
>>> momentize("2021-11-17 21:29:00")
DateTime(2021, 11, 17, 21, 29, 0, tzinfo=Timezone('UTC'))
See pendulum's documentation for more info.
Convert a datetime.datetime:
>>> momentize(datetime.datetime(2021, 11, 17, 21, 29, 0))
DateTime(2021, 11, 17, 21, 29, 0, tzinfo=Timezone('UTC'))
If momentize cannot convert the provided object, it will raise an exception.
moments_match()
This method is used to compare two possibly different forms of timestamps to make sure they
are exactly equal. Under the hood, it is using momentize() to convert the arguments to
pendulum.DateTime instances and then compares the two.
Accepted types
- String timestamps (anything that pendulum can parse)
- datetime.datetime instances
- pendulum.DateTime instances (that might be in other timezones)
- None -- compares the current moment in UTC
Examples
Compare a string to a datetime.datetime:
>>> moments_match("2021-11-17 21:41:00", datetime.datetime(2021, 11, 17, 21, 41, 0))
True
Compare a pendulum.DateTime to a datetime.datetime in different timezones:
>>> moments_match(
... pendulum.datetime(
... 2021, 11, 17, 13, 44, 0,
... tz="America/Los_Angeles",
... ),
... datetime.datetime(
... 2021, 11, 17, 16, 44, 0,
... tzinfo=datetime.timezone(datetime.timedelta(hours=-4)),
... ),
... )
...
True
frozen_time()
The frozen_time method is the main functionality of this package. It allows you to freeze the
time returned by pendulum.now() (and it's relatives) to a given moment.
Accepted types
- String timestamps (anything that pendulum can parse)
- datetime.datetime instances
- pendulum.DateTime instances (that might be in other timezones)
- None -- freeze at the current moment in UTC
Examples
Freeze time at a specific moment:
>>> with frozen_time("2021-11-17 22:03:00"):
... now = pendulum.now("UTC")
... print(now)
...
2021-11-17T22:03:00+00:00
Freezing datetime.now()
By default, the frozen_time method only works for pendulum.now(). However, if you
install with the extra "time-machine", it is possible to make frozen_time work with
datetime.now() as well.
Installing the extra "time-machine" dependency
To install the extra dependency with pip:
$ pip install plummet[time-machine]
To install the extra dependency with poetry:
$ poetry add plummet[time-machine]
Now, plummet will freeze datetime.now() as well:
>>> with frozen_time("2021-11-17 22:03:00"):
... pendulum_now = pendulum.now("UTC")
... datetime_now = datetime.now(tz=timezone.utc)
... print(pendulum_now)
... print(datetime_now)
...
2021-11-17T22:03:00+00:00
2021-11-17 22:03:00+00:00
Testing
To run the testing suite:
$ make test
To run the full set of quality checks:
$ make qa
Metadata
Release files for plummet 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| plummet-1.2.1.tar.gz | 3.6 kB | Without provenance | Details for plummet-1.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| plummet-1.2.1-py3-none-any.whl | Python 3 | none | any | Details for plummet-1.2.1-py3-none-any.whl |
Total release size: 7.6 kB
Release files / plummet-1.2.1.tar.gz
| Download URL | plummet-1.2.1.tar.gz |
|---|---|
| Size | 3.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91fe3cb11e11b7acc56fbb1ef7c9af2489421e98c53c89c00a944be8ac6b008d
|
|
BLAKE2b-256 checksum How to use checksums |
5762c1aadf8361e29c7c4047238d7a0bab53a99f3772ab775b104e1955b47818
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.6.1 CPython/3.8.17 Linux/5.15.0-1041-azure
|
Release files / plummet-1.2.1-py3-none-any.whl
| Download URL | plummet-1.2.1-py3-none-any.whl |
|---|---|
| Size | 4.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
543f54a291f581e31b542ca6017d2fdfd456631e4d98997c8e385efcc4c0be9c
|
|
BLAKE2b-256 checksum How to use checksums |
0dc5137ea0d3a213102ef40619baffe44057a09be25ca4f54bd4449bbf7a2dab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.6.1 CPython/3.8.17 Linux/5.15.0-1041-azure
|
Security for plummet 1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.