Skip to content

Instantly share code, notes, and snippets.

@chriskalmar
Forked from hamiltont/bex2csv.py
Last active August 29, 2015 14:20
Show Gist options
  • Save chriskalmar/30fc41d84c0fdf449d0b to your computer and use it in GitHub Desktop.
Save chriskalmar/30fc41d84c0fdf449d0b to your computer and use it in GitHub Desktop.
import csv
import glob
import plistlib
clientProject = 'My Project'
for filename in glob.glob("*.bex"):
root = plistlib.readPlist(filename)
with open(filename+'.csv', 'wb') as out:
out = csv.writer(out, delimiter='|')
out.writerow(['Slip', 'Start', 'End', 'Duration (minutes)'])
for slip in root.objects:
slip = dict(slip)
desc = slip.pop('name')
who = slip.pop('owner.name')
timeEntries = slip.pop('timeEntries')
print who, desc
print slip
tags = 'from_billings_app'
for te in timeEntries:
date = te.startDateTime.date()
# For newer versions of python, use this line
# delta = (te.endDateTime - te.startDateTime).total_seconds()
delta = (te.endDateTime - te.startDateTime).seconds
minutes = int(delta/60)
if minutes>=1:
out.writerow([desc, te.startDateTime, te.endDateTime, minutes])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment