time related parser for argparse
Project description
Requirements
Python 2.7
Python 3.3 or later
Install
$ pip install typedate
Usage
you can use as follows:
#!/usr/bin/env python
from typedate import TypeDate, TypeDelta, TypeZone
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
# datetime parsing
parser.add_argument("--datetime1", type=TypeDate('%Y%m%d'))
parser.add_argument("--datetime2", type=TypeDate(timezone='Asia/Tokyo'))
parser.add_argument("--datetime3", type=TypeDate(timezone='+09:00'))
parser.add_argument("--datetime4", type=TypeDate(timedelta='1years -2months 3days 4hours 5minute 6seconds'))
# timezone parsing
parser.add_argument("--timezone1", type=TypeZone())
parser.add_argument("--timezone2", type=TypeZone())
# timedelta parsing
## if python-dateutil installed, used automatically dateutil.relativedelta.relativedelta else datetime.timedelta.
parser.add_argument("--defaultdelta", type=TypeDelta())
## it can be specified by cls argument.
from datetime import timedelta
from dateutil.relativedelta import relativedelta
parser.add_argument("--timedelta", type=TypeDelta(cls=timedelta))
parser.add_argument("--relativedelta", type=TypeDelta(cls=relativedelta))
args = parser.parse_args()
print('datetime1:\t', args.datetime1, type(args.datetime1))
print('datetime2:\t', args.datetime2, type(args.datetime2))
print('datetime3:\t', args.datetime3, type(args.datetime3))
print('datetime4:\t', args.datetime4, type(args.datetime4))
print('timezone1:\t', args.timezone1, type(args.timezone1))
print('timezone2:\t', args.timezone2, type(args.timezone2))
print('defaultdelta:\t', args.defaultdelta, type(args.defaultdelta))
print('timedelta:\t', args.timedelta, type(args.timedelta))
print('relativedelta:\t', args.relativedelta, type(args.relativedelta))
and,
$ python test_command.py \
--datetime1='19880522' \
--datetime2='2016-01-01' \
--datetime3='2016/01/01' \
--datetime4='01/01 00:00 2016' \
--timezone1='-0500' \
--timezone2='Asia/Tokyo' \
--defaultdelta='1years -2months 3days 4hours 5minutes 6seconds' \
--timedelta='3days 4hours 5minutes 6seconds' \
--relativedelta='1years -2months 3days 4hours 5minutes 6seconds'
datetime1: 1988-05-22 00:00:00 <class 'datetime.datetime'>
datetime2: 2016-01-01 00:00:00+09:00 <class 'datetime.datetime'>
datetime3: 2016-01-01 00:00:00+09:00 <class 'datetime.datetime'>
datetime4: 2016-11-04 04:05:06 <class 'datetime.datetime'>
timezone1: -05:00 <class 'typedate.type.zone.TzInfo'>
timezone2: Asia/Tokyo <class 'pytz.tzfile.Asia/Tokyo'>
defaultdelta: relativedelta(years=+1, months=-2, days=+3, hours=+4, minutes=+5, seconds=+6) <class 'dateutil.relativedelta.relativedelta'>
timedelta: 3 days, 4:05:06 <class 'datetime.timedelta'>
relativedelta: relativedelta(years=+1, months=-2, days=+3, hours=+4, minutes=+5, seconds=+6) <class 'dateutil.relativedelta.relativedelta'>
History
1.0.X
first release
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
typedate-1.0.0.tar.gz
(3.9 kB
view details)
File details
Details for the file typedate-1.0.0.tar.gz
.
File metadata
- Download URL: typedate-1.0.0.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5a13a81fb2c9c34fdd463020fe8f96920421d2b1db5dc817ee4c25f3d296c2a |
|
MD5 | a4a921d4e5fdbc998a5a04c131730e3f |
|
BLAKE2b-256 | 1ece041a6cd8e2f06a996570bfea356fc3a9d26cbc26019184293b1a8d910ef9 |