Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lann/harvest

Python API for getharvest.com
https://github.com/lann/harvest

Last synced: 20 days ago
JSON representation

Python API for getharvest.com

Awesome Lists containing this project

README

        

**This project is no longer actively maintained.**

This one is (as of this writing): `lionheart/python-harvest`_

.. _lionheart/python-harvest: https://github.com/lionheart/python-harvest

===================
Harvest API
===================

Example:

.. code:: python

from datetime import datetime, timedelta
from harvest import Harvest

h = Harvest( 'https://foo.harvestapp.com', '[email protected]', 'mypassword' )
user = h.find_user( 'John', 'Doe' )
if user:
print 'The user ID = %d' % user.id

start = datetime.today()
end = start + timedelta(7)

total = 0
for entry in user.entries( start, end ):
total += entry.hours

print 'Total hours worked = %f' % total

Example:

.. code:: python

import sys
from harvest import Harvest, HarvestError
from datetime import datetime, timedelta
import time

URI = 'https://foo.harvestapp.com'
EMAIL = '[email protected]'
PASS = 'xxxxxx'

h = Harvest(URI,EMAIL,PASS)

while True:
total = 0
dose = 0

start = datetime.today().replace( hour=0, minute=0, second=0 )
end = start + timedelta(1)
try:
for user in h.users():
for entry in user.entries( start, end ):
total += entry.hours

text = '%0.02f' % total
print text

except HarvestError:
print 'Retrying in 5 minutes...'

time.sleep(300)

Example:

.. code:: python

for project in h.projects:
print project
print project.client
for assignment in project.task_assignments:
print '\t',assignment
for entry in project.entries:
print '\t',entry
print '\t\ttask:',entry.task

Example:

.. code:: python

for client in h.clients:
print client
for contact in client.contacts:
print '\t',contact