Seems like I constantly need some kind of date functions that aren't found (or aren't found easily enough anyway) in the standard library or in 3rd party packages that I use regularly. This library attempts to remedy that so I know where to add the functions when I build them and know where to look for them when I need them.
There are no dependancies to install. You just need to:
pip install datefns
or:
git clone [email protected]:ktr/datefns.git cd datefns python setup.py install
Once installed, you can iterate through the entire file without using much memory by doing the following:
import datefns, datetime
d1 = datetime.date(2018, 7, 10)
d2 = datetime.date(2018, 12, 31)
we = datefns.week_ending(d1, week_ends_on='Sun')
ds = datefns.date_table(d1, d2)
me = datefns.eomonth(d1, 5) # datetime.date(2018, 12, 31)
ts = datefns.time_table()
datefns.date_table_to_csv(ds, '/path/to/date-file.csv', overwrite=True)
datefns.time_table_to_csv(ts, '/path/to/time-file.csv', overwrite=True)
import sqlite3
conn = sqlite3.connect(':memory:')
datefns.load_date_table(conn, datefns.date_table(start_date=d1, end_date=d2))
datefns.load_time_table(conn, ts)
ds = datefns.date_range(d1, d2, datefns.by_month)
To run tests:
python -m tests.test_datefns
The project is licensed under the MIT License - see the LICENSE.md file for details