iro.controller: adding docstrings devel
authorSandro Knauß <knauss@netzguerilla.net>
Thu, 29 Mar 2012 18:31:53 +0200
branchdevel
changeset 264 584b9c97ecfd
parent 263 52284710c0b4
child 265 f6c906b40cce
iro.controller: adding docstrings
iro/controller/pool.py
iro/controller/task.py
--- a/iro/controller/pool.py	Thu Mar 29 18:27:15 2012 +0200
+++ b/iro/controller/pool.py	Thu Mar 29 18:31:53 2012 +0200
@@ -2,30 +2,41 @@
 from twisted.internet import threads
 
 class Pool:
+    """wrapper class to handles a twisted threadpool"""
     def __init__(self,name,maxthreads):
+        """
+        :param string name: name of the threadpool
+        :param integer maxthreads: how many thread a allowed at maximum
+        """
         self.maxthreads = maxthreads
         self.pool =  ThreadPool(minthreads=1, maxthreads=maxthreads, name=name)
         self.reactor = None
 
     def start(self, reactor):
+        """stats the pool and adds the pool.stop function to the stop procedure.
+        
+        :param reactor: a valid twisted reactor
+        """
         self.pool.start()
         self.reactor = reactor
         self.reactor.addSystemEventTrigger('before', 'shutdown', self.pool.stop)
 
     def run(self,f,*args,**kwargs):
-        """To run a function in Twisted's thread pool"""
+        """run a function in Twisted's thread pool"""
         return threads.deferToThreadPool(self.reactor, self.pool, f, *args, **kwargs)
 
-#task Pool for sending
 taskPool = Pool('task',5)
+"""taskpool to handle sending data"""
 
-#db Pool to handle reqests to sqlalchemy
 dbPool = Pool('database',5)
+"""pool to handle database connection via sqlalchemy""" 
 
-# all pools in one list
 pools=[taskPool,dbPool]
+"""all available pools"""
 
 def startPool(reactor):
-    '''starting all pools'''
+    '''run start function for all items in :attr:`pools`'''
     for pool in pools:
         pool.start(reactor)
+
+__all__=["Pool", "startPool", "dbPool", "taskPool", "pools"]
--- a/iro/controller/task.py	Thu Mar 29 18:27:15 2012 +0200
+++ b/iro/controller/task.py	Thu Mar 29 18:31:53 2012 +0200
@@ -11,25 +11,34 @@
 from .pool  import taskPool
 
 class Task:
-    '''one single part of a job.
-    a task is one message to one recipient
+    '''A Task is one message to one recipient and is a part of one :class:`iro.model.job.ExJob`.
     '''
     def __init__(self, recipient, job):
+        """
+        :param recipient: a recipient
+        :param `iro.model.job.ExJob` job: connected job
+        """
         self.recipient = recipient
         self.job = job
         self.status = None
         self.error = False
 
     def setStatus(self,status):
+        """callback, to set status of task"""
         self.status = status
         return status
 
     def setError(self, error):
+        """errback to set error of task"""
         self.status = error
         self.error = True
         return error
 
     def start(self):
+        """Starting to send message to recipient.
+
+        :return: a defer, that is fired, when message is sended successfully over any offer.
+        """
         self.d = Deferred()
         self.d.addCallback(self.setStatus)
         self.d.addCallback(partial(self.job.setStatus,self))
@@ -39,6 +48,7 @@
         return self.d
 
     def _run(self):
+        """sends the message to recipient, tries all possible offers."""
         os= iter(self.job.offers)
         def n():
             try:
@@ -61,6 +71,14 @@
 
 @inlineCallbacks
 def createJob(user,recipients, msg, offers, info=None):
+    """Creates a :class:`iro.model.job.ExJob` and start for all recipients one task.
+    
+    :param `iro.model.schema.User` user: the sender 
+    :param `iro.model.message.Message` msg: the message
+    :param list offers: a list of possible offer and provider names, to try to send the message over. The first entry will be tried first.
+    :param string info: a bill group name
+    :return: the new :class:`iro.model.job.ExJob` object.
+    """
     job = yield exJobs.create(user, recipients, msg, offers, info)
     for r in recipients:
         task = Task(r,job)