All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Please use 3.0.3 going forward! 3.0.2 has a breaking bug.
- Fix: issue where version wasnt getting populated
- Fix: move version out of
VERSION.txt
and intodatemath/_version.py
directly - Fix: typos in CHANGELOG. Thank you @s00hyun!
- Feat: Complete typing with strict type-checking #43 Thank you @Avasam!
- Feat: Added
__version__
to verify the version of the module. - Feat: Added Dockerfile and relevant verify.py to help with local development and testing
- Chore: bumped modules in requirements.txt
- Fix: removed legacy-tests.py since we no longer support python2.x
- Fix: removed requirements-2.txt from manifest due to deprecation of python2 support
- Fix: renamed requirements-3.txt to requirements.txt to support python3 going forward
- also modifed to
release.yaml
andtests.yaml
workflows to support this
- also modifed to
- Fix: long_description should now show up in pypi #33
- Fix: move more pypi configurations to setup.cfg and out of setup.py
- Fix: Race condition in timezone tests: #36
- Fix: Updated arrow version: #32
- Fix: mypy type hint checking in tests: #31
- Fix: SyntaxWarning: invalid escape sequence in
re.match()
: #39 - Fix: Licence Classifier: #34
- Fix: Bump certifi to latest: #38
- Feat: Typehint support: #31
- Feat: Renamed CHANGELOG.md to keepachangelog.org format
- todo: Fix pypi: #33
- python 2.7 support. Python 3.8+ will only be supported going forward
- fix: Issue #28
datemath()
object now returns the expecteddatetime
object instead of anArrow
object- added tests to catch invalid object types of helpers
- skipped due to name conflict on pypi, all changes in this are from
1.5.3
- FIX: Issue #25 - Fixed an issue where if you provided an invalid timestamp, i.e.
datemath('2')
you would not get an DateMathException back. Also bumped dependencies.
- FIX: Issue #21 - Fixed an issue where if timezone offset was in a datetime string (ISO8601), the timezone of the returned datemath object would be UTC and not the timezone as specified in the datetime string.
- FIX: Issue #15 - Fixed issue with parser finding invalid timeunits and throwing correct errors
- Feat: Issue #16 - Added support for parser to accecpt a epoch/unix timestamp but throw an error on epoch milli's since arrow can't support that.
- Issue #12 - missing VERSION.txt. Added MANIFEST.in for sdist build
- PR #13 - Fix
BaseException
toException
inheritence, thank you for your contribution @yury-primer!
** PLEASE DO NOT USE THIS VERSION, use 1.5.0+
instead. This may not compile on your system due to a missing VERSION.txt which was fixed in 1.5.0+
**
- [FIX] Issue #9 && Issue #8 - Fixing deprecated arrow
replace()
function withshift()
. - [FIX] Arrow upgrade to
0.15.2
to fix the above mentioned issues - [FIX] Modifed
tests.py
to account for the timestamp change (tz is now+0000
, instead of-0000
) - [FIX] replaced
ts = ts.replace(tzinfo=tz.gettz(timezone))
withts = ts.replace(tzinfo=timezone)
indatemath.helpers.parseTime()
to fix Issue #7
- [NEW] Breakout of python2 and python3 requirements
- [NEW] Breakout of python2 and python3 specific CICD pipelines
- [NEW] Derecated the following python version (although they may still work, they are no longer supported) -
2.4
,2.6
,3.4
,3.5
** dont use this version **
- skipped due to name conflict on pypi, all changes are in
1.4.9
- [FIX] Fixed timezone for date strings: Issue #6
- [NEW] Added roundDown functionality. Allows user to specify the default rounding for expressions such as
/d
. - example - assuming the time is currently 2016-01-01 12:00:00, we should get the following
>>> # now = 2016-01-01 14:00:00+00:00
>>> dm('now+/d', roundDown=False)
<Arrow [2016-01-01T23:59:00+00:00]>
>>> dm('now/d')
<Arrow [2016-01-01T00:00:00+00:00]>
- [FIX] Fixed bug with expression logic and rounding: #2
[NEW] Floats are now supported for days, hours, and seconds units. Example now-2.5d
, now-3.2h
. Any other unit other than days, hours, or seconds that is a float will be converted to an int and floored due to the datetime() module not being able to handle them.