After more than 300 commits and 21 beta releases, pendulum finally reaches its first stable version.
What does that mean? Well, the API is now stable, so no backwards compatibility breaking
changes will be introduced in any 1.x
releases (pendulum
will follow Semantic Versioning).
So, you can safely use pendulum
in production without worrying about things breaking.
As for the changes specific to this version you can refer to the Change Log or read a more explanatory list below.
Changes
Using the PRE_TRANSITION
rule no longer produces a time in a DST gap.
Before this change, pendulum
could produce times in a DST gap when the PRE_TRANSITION
rule was used:
>>> import pendulum
>>> pendulum.set_transition_rule(pendulum.PRE_TRANSITION)
>>> dt = pendulum.create(2013, 3, 31, 2, 30, tz='Europe/Paris')
>>> dt.isoformat()
'2013-03-31T02:30:00+01:00'
But this time does not exist and therefore is incorrect. So now, pendulum
will always
return a correct time when using PRE_TRANSITION
by going back in time.
>>> import pendulum
>>> pendulum.set_transition_rule(pendulum.PRE_TRANSITION)
>>> dt = pendulum.create(2013, 3, 31, 2, 30, tz='Europe/Paris')
>>> dt.isoformat()
'2013-03-31T01:30:00+01:00'
Improved parsing of ISO 8601 strings.
While ISO 8601 week number date format was supported (2012-W05-5
or 2012-W05
),
it would not be parsed if it was associated with a time definition: 2012-W05-5T09
.
It now works properly:
>>> import pendulum
>>> dt = pendulum.parse('2012-W05-5T09')
>>> print(dt)
'2012-02-03T09:00:00+00:00'
Removed deprecated methods
All previously deprecated methods and properties have now been removed. Here is the list:
timestamp
is now a method just like in the standarddatetime
class.Interval
properties and methods related to years and months.Interval.days_exclude_weeks
(replaced byremaining_days
).with_date()
andwith_time()
(replaced byon()
andat()
).create_from_date()
andcreate_from_time()
. Usecreate()
instead.