Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Python: Python

ANN: visage (interfaces)

 

 

Python python RSS feed   Index | Next | Previous | View Threaded


james.pye at gmail

Jul 29, 2012, 10:18 PM

Post #1 of 7 (578 views)
Permalink
ANN: visage (interfaces)

Hi,

I just pushed this up to pypi/github, and I hoped to acquire some c.l.py opinions.
It's experimental at this point, and might get scrapped.

visage is a loosely coupled interface registry. weakrefs make it cake to implement.

Basically, zope.interface, but where the interfaces are referenced by an identifier instead of the defining Interface class. Also, ABC registration is performed when the Interface becomes available so that isinstance/issubclass checks can be performed on Implementation instances/classes.

FWICT, pyprotocols allows for something like this, but while introducing many "interesting concepts". (;

Currently, visage has no concept of adaption, but I'm suspecting that it could be built *on top* of the existing foundation.

Personally, I'd prefer to reference interfaces by an identifier. Notably, the idea of having to pull in a dependency in order to perform local tests that have no need for the formal Interface class is reason enough for me to use something like this instead of the existing solutions. Sure, to each their own.?

What's c.l.py's perspective on managing interfaces and implementations?

Fuck it, ship it? =)
--
http://mail.python.org/mailman/listinfo/python-list


james.pye at gmail

Jul 29, 2012, 10:32 PM

Post #2 of 7 (551 views)
Permalink
Re: ANN: visage (interfaces) [In reply to]

On Sunday, July 29, 2012 10:18:23 PM UTC-7, jwp wrote:
> I just pushed this up to pypi/github, and I hoped to acquire some c.l.py opinions.

http://github.com/jwp/py-visage
--
http://mail.python.org/mailman/listinfo/python-list


wuwei23 at gmail

Jul 30, 2012, 6:09 PM

Post #3 of 7 (549 views)
Permalink
Re: ANN: visage (interfaces) [In reply to]

On Jul 30, 3:18 pm, jwp <james....@gmail.com> wrote:
> What's c.l.py's perspective on managing interfaces and implementations?

I've been working with Plone for the past year and have become a big
fan of interfaces. I must admit I _do_ like zope.interface's
adaptation, but your's looks lighter in a way that could be handy for
a side project, so I may have some more concrete feedback soon :)

BTW I think if you rename the ReStructured Text docs to .rst github
will automatically render them.
--
http://mail.python.org/mailman/listinfo/python-list


james.pye at gmail

Jul 30, 2012, 6:41 PM

Post #4 of 7 (549 views)
Permalink
Re: ANN: visage (interfaces) [In reply to]

On Monday, July 30, 2012 6:09:10 PM UTC-7, alex23 wrote:
> a side project, so I may have some more concrete feedback soon :)

=)

> BTW I think if you rename the ReStructured Text docs to .rst github
>
> will automatically render them.

Did not know that. Gonna go do a lot of git mv's now.

Thanks.
--
http://mail.python.org/mailman/listinfo/python-list


steve+comp.lang.python at pearwood

Jul 30, 2012, 7:09 PM

Post #5 of 7 (547 views)
Permalink
Re: ANN: visage (interfaces) [In reply to]

On Mon, 30 Jul 2012 18:41:19 -0700, jwp wrote:

>> BTW I think if you rename the ReStructured Text docs to .rst github
>> will automatically render them.
>
> Did not know that. Gonna go do a lot of git mv's now.

Do *one* and see if github actually does render it. Then do the rest.


--
Steven
--
http://mail.python.org/mailman/listinfo/python-list


james.pye at gmail

Jul 30, 2012, 8:10 PM

Post #6 of 7 (550 views)
Permalink
Re: ANN: visage (interfaces) [In reply to]

On Monday, July 30, 2012 7:09:03 PM UTC-7, Steven D'Aprano wrote:
> Do *one* and see if github actually does render it. Then do the rest.

Did it for one project. It does render it. =)

Naturally, sphinx autodoc links don't work. =( Come-on github, use dat fundin'
--
http://mail.python.org/mailman/listinfo/python-list


james.pye at gmail

Aug 12, 2012, 4:07 PM

Post #7 of 7 (485 views)
Permalink
Re: ANN: visage (interfaces) [In reply to]

On Sunday, July 29, 2012 10:18:23 PM UTC-7, jwp wrote:
> What's c.l.py's perspective on managing interfaces and implementations?

I pushed another version with support for IID references, so you can refer to implementations in annotations. The ultimate point of this is to give registry queries the ability to check for implementations with particular features:

@visage.lib.implementation('foo')
class Imp(object):
def meth(self) -> visage.lib.reference('bar'):
...

Imp.meth making a statement that a 'bar' implementation will be returned.

That is, consider code that is not aware of the modules that "Imp" is stored in but wants a 'foo' implementation whose "meth" method returns a 'bar' instance. Registry queries pave the way for supporting IID based implementation resolution. There is also the potential that registry information could be extracted on package installation for the purpose of an implementation index. Implementations could be imported on demand by modules that have no knowledge of the implementation.
--
http://mail.python.org/mailman/listinfo/python-list

Python python RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.