snake-guice Binder Options
snake-guice provides a simple DSL to wire up an application's dependencies. The current version implements this with chained method calls like google-guice. An example from one of the unit tests:
binder.bind(ch.Person)\\
.with_annotation('evil')\\
.to(ch.EvilPerson)\\
.in_scope(scopes.CherryPyRequest)
After using this in a couple of trivial apps I am not so sure I like it. Long chains of method calls are usually regarded as a code smell and it just feels strange in Python. As a replacement syntax I was thinking something more like:
binder.bind(ch.Person,
annotated_with='evil',
to=ch.EvilPerson,
in_scope=scopes.CherryPyRequest)
The new syntax does feel better, but I still feel that something is missing. Either way I like the fact that both examples are in Python. That is a pretty strong requirement here.