Carlos, great, thanks for the corrections. They appear to be working now :)


On Sun, Feb 17, 2013 at 10:54 PM, Carlos de la Guardia <
carlos.delaguar...@gmail.com> wrote:

> Hi,
>
> there were some problems with the code snippets in the book. I updated
> them here:
>
> http://zodb.readthedocs.org/en/latest/transactions.html#before-commit-hooks
>
> For some reason I could only get synch to work using classmethod.
>
> Carlos de la Guardia
>
> On Sat, Feb 16, 2013 at 3:56 AM, Siddhartha Kasivajhula
> <countvajh...@gmail.com> wrote:
> > Hi there,
> > I'm not able to get before/after commit hooks or synchronizers to work,
> hope
> > someone here can explain what I'm doing wrong (or please point me at the
> > relevant list). I'm following the tutorial here:
> >
> > http://www.zodb.org/zodbbook/transactions.html
> >
> > .. and got the PickleDataManager working. But when I add the before- and
> > after-commit hooks verbatim from the tutorial, I get the following error:
> >
> > Traceback (most recent call last):
> >   File "pickledm.py", line 145, in <module>
> >     transaction.commit()
> >   File
> >
> "/Users/siddhartha/.virtualenvs/pyramid/lib/python2.7/site-packages/transaction/_manager.py",
> > line 107, in commit
> >     return self.get().commit()
> >   File
> >
> "/Users/siddhartha/.virtualenvs/pyramid/lib/python2.7/site-packages/transaction/_transaction.py",
> > line 339, in commit
> >     self._callBeforeCommitHooks()
> >   File
> >
> "/Users/siddhartha/.virtualenvs/pyramid/lib/python2.7/site-packages/transaction/_transaction.py",
> > line 413, in _callBeforeCommitHooks
> >     hook(*args, **kws)
> > TypeError: before_commit() got an unexpected keyword argument 'a'
> >
> > When I pass in a blank dict instead of the {'a':1} from the tutorial, I
> get
> > this error:
> >
> >   File "pickledm.py", line 17, in before_commit
> >     for arg in args:
> > TypeError: 'int' object is not iterable
> >
> > ... and I find that, in fact, printing 'args' inside the hook function
> shows
> > that it is equal to 1, and not the tuple (1,2) that was passed.
> >
> > I also tried adding a synchronizer, and initially got this error:
> >
> > TypeError: unbound method beforeCompletion() must be called with synch
> > instance as first argument (got Transaction instance instead)
> >
> > It looked like this may have been due to a typo in the tutorial, I
> changed:
> >
> > transaction.manager.registerSynch(sync)
> >
> > to:
> >
> > transaction.manager.registerSynch(sync())
> >
> > ...to pass an instance instead of a class and the error goes away.
> > Unfortunately the synchronizer methods don't seem to be called when the
> > transaction is executed, and I don't see the output from those functions.
> >
> > Could someone point me in the right direction here on how to get these to
> > work? Here is my full code if anyone wants to take a look:
> > https://gist.github.com/countvajhula/4966286
> >
> > Thanks,
> > -Sid
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "pylons-devel" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to pylons-devel+unsubscr...@googlegroups.com.
> > To post to this group, send email to pylons-devel@googlegroups.com.
> > Visit this group at http://groups.google.com/group/pylons-devel?hl=en.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pylons-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to pylons-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/pylons-devel?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-devel+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/pylons-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to