[Checkins] SVN: Sandbox/trollfot/grokcore.messages/ Added grokcore.messages first version to the sandbox.
Souheil CHELFOUH
souheil at chelfouh.com
Sat Feb 27 13:15:01 EST 2010
Log message for revision 109486:
Added grokcore.messages first version to the sandbox.
Changed:
A Sandbox/trollfot/grokcore.messages/
A Sandbox/trollfot/grokcore.messages/CHANGES.txt
A Sandbox/trollfot/grokcore.messages/README.txt
A Sandbox/trollfot/grokcore.messages/bootstrap.py
A Sandbox/trollfot/grokcore.messages/buildout.cfg
A Sandbox/trollfot/grokcore.messages/setup.py
A Sandbox/trollfot/grokcore.messages/src/
A Sandbox/trollfot/grokcore.messages/src/grokcore/
A Sandbox/trollfot/grokcore.messages/src/grokcore/__init__.py
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/README.txt
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/__init__.py
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/ram.zcml
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/receiver.zcml
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/session.zcml
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/sources.py
A Sandbox/trollfot/grokcore.messages/src/grokcore/messages/utils.py
-=-
Added: Sandbox/trollfot/grokcore.messages/README.txt
===================================================================
--- Sandbox/trollfot/grokcore.messages/README.txt (rev 0)
+++ Sandbox/trollfot/grokcore.messages/README.txt 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,4 @@
+Introduction
+============
+
+
Added: Sandbox/trollfot/grokcore.messages/bootstrap.py
===================================================================
--- Sandbox/trollfot/grokcore.messages/bootstrap.py (rev 0)
+++ Sandbox/trollfot/grokcore.messages/bootstrap.py 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,77 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id: bootstrap.py 90478 2008-08-27 22:44:46Z georgyberdyshev $
+"""
+
+import os, shutil, sys, tempfile, urllib2
+
+tmpeggs = tempfile.mkdtemp()
+
+is_jython = sys.platform.startswith('java')
+
+try:
+ import pkg_resources
+except ImportError:
+ ez = {}
+ exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+ import pkg_resources
+
+if sys.platform == 'win32':
+ def quote(c):
+ if ' ' in c:
+ return '"%s"' % c # work around spawn lamosity on windows
+ else:
+ return c
+else:
+ def quote (c):
+ return c
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+ws = pkg_resources.working_set
+
+if is_jython:
+ import subprocess
+
+ assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',
+ quote(tmpeggs), 'zc.buildout'],
+ env=dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse('setuptools')).location
+ ),
+ ).wait() == 0
+
+else:
+ assert os.spawnle(
+ os.P_WAIT, sys.executable, quote (sys.executable),
+ '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout',
+ dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse('setuptools')).location
+ ),
+ ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout')
+import zc.buildout.buildout
+zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
+shutil.rmtree(tmpeggs)
Added: Sandbox/trollfot/grokcore.messages/buildout.cfg
===================================================================
--- Sandbox/trollfot/grokcore.messages/buildout.cfg (rev 0)
+++ Sandbox/trollfot/grokcore.messages/buildout.cfg 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,17 @@
+[buildout]
+develop = .
+parts = interpreter test
+extends = http://grok.zope.org/releaseinfo/grok-1.1rc1.cfg
+versions = versions
+
+
+[interpreter]
+recipe = zc.recipe.egg
+eggs = grokcore.messages
+interpreter = python
+
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = grokcore.messages [test]
+defaults = ['--tests-pattern', '^f?tests$', '-v', '-c']
Added: Sandbox/trollfot/grokcore.messages/setup.py
===================================================================
--- Sandbox/trollfot/grokcore.messages/setup.py (rev 0)
+++ Sandbox/trollfot/grokcore.messages/setup.py 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,45 @@
+from setuptools import setup, find_packages
+import os
+
+version = '0.1'
+
+readme = open(os.join('src', 'grokcore', 'messages', 'README.txt')).read()
+changes = open("CHANGES.txt").read()
+
+setup(name='grokcore.messages',
+ version=version,
+ description="Grok messaging machinery",
+ long_description="%s\n\n%s\n" % (readme + changes),
+ keywords='Grok Messages',
+ author='Souheil Chelfouh',
+ author_email='souheil at chelfouh.com',
+ url='',
+ license='ZPL 2.1',
+ namespace_packages=['grokcore'],
+ packages=find_packages('src'),
+ package_dir={'': 'src'},
+ include_package_data=True,
+ zip_safe=False,
+ install_requires=[
+ 'setuptools',
+ 'z3c.flashmessage',
+ 'grokcore.component',
+ ],
+ extras_require = dict(test=[
+ 'zope.testing',
+ ]),
+ classifiers=[
+ 'Development Status :: 3 - Alpha',
+ 'Environment :: Web Environment',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: Zope Public License',
+ 'Programming Language :: Python',
+ 'Natural Language :: English',
+ 'Operating System :: OS Independent',
+ 'Topic :: Internet :: WWW/HTTP',
+ 'Framework :: Zope3',
+ ],
+ entry_points="""
+ # -*- Entry points: -*-
+ """,
+ )
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/__init__.py
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/__init__.py (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/__init__.py 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/messages/README.txt
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/messages/README.txt (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/messages/README.txt 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,5 @@
+=================
+grokcore.messages
+=================
+
+TODO.
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/messages/__init__.py
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/messages/__init__.py (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/messages/__init__.py 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+
+from z3c.flashmessage.interfaces import (
+ IMessage, IMessageSource, IMessageReceiver)
+from z3c.flashmessage.receiver import GlobalMessageReceiver
+from z3c.flashmessage.message import Message, PersistentMessage
+from z3c.flashmessage.sources import SessionMessageSource, RAMMessageSource
+from grokcore.messages.sources import UniqueMessageSource
+from grokcore.messages.utils import send, receive, get_from_source
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/messages/ram.zcml
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/messages/ram.zcml (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/messages/ram.zcml 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,4 @@
+<configure xmlns="http://namespaces.zope.org/zope">
+ <include package="zope.component" file="meta.zcml" />
+ <utility factory=".RAMMessageSource" name="ram" />
+</configure>
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/messages/receiver.zcml
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/messages/receiver.zcml (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/messages/receiver.zcml 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,4 @@
+<configure xmlns="http://namespaces.zope.org/zope">
+ <include package="zope.component" file="meta.zcml" />
+ <utility factory=".GlobalMessageReceiver" />
+</configure>
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/messages/session.zcml
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/messages/session.zcml (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/messages/session.zcml 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,4 @@
+<configure xmlns="http://namespaces.zope.org/zope">
+ <include package="zope.component" file="meta.zcml" />
+ <utility factory=".SessionMessageSource" name="session" />
+</configure>
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/messages/sources.py
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/messages/sources.py (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/messages/sources.py 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+
+import grokcore.component as grok
+from grokcore.messages import IMessageSource, PersistentMessage
+
+
+class UniqueMessageSource(grok.GlobalUtility):
+ """A source that handles a unique message.
+ """
+ grok.baseclass()
+ grok.implements(IMessageSource)
+
+ def send(self, message, type):
+ self.message = PersistentMessage(message, type)
+
+ def list(self, type=None):
+ if self.message is None:
+ return
+ if type is None or self.message.type == type:
+ yield self.message
+
+ def delete(self, message):
+ if message is self.message:
+ self.message = None
+ else:
+ raise KeyError(message)
Added: Sandbox/trollfot/grokcore.messages/src/grokcore/messages/utils.py
===================================================================
--- Sandbox/trollfot/grokcore.messages/src/grokcore/messages/utils.py (rev 0)
+++ Sandbox/trollfot/grokcore.messages/src/grokcore/messages/utils.py 2010-02-27 18:15:01 UTC (rev 109486)
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+
+from zope.component import queryUtility
+from grokcore.messages import IMessageSource, IMessageReceiver
+
+
+def send(message, type='message'):
+ """Adds a short message to a given source.
+
+ If the message has been sent with success, True is returned.
+ Otherwise, False is returned.
+ """
+ source = queryUtility(IMessageSource, name='session')
+ if source is None:
+ return False
+ source.send(message, type)
+ return True
+
+
+def get_from_source(name=''):
+ """List messages from a given source.
+
+ If the received has been found with success, a list
+ of messages is returned. Otherwise, False is returned.
+ """
+ source = queryUtility(IMessageSource, name=name)
+ if source is None:
+ return None
+ return source.list()
+
+ receiver = queryUtility(IMessageReceiver, name=name)
+ if receiver is None:
+ return False
+ return receiver.receive()
+
+
+def receive(name=''):
+ """Receives messages from a given receiver.
+
+ If the received has been found with success, an iterable
+ of messages is returned. Otherwise, None is returned.
+ """
+ receiver = queryUtility(IMessageReceiver, name=name)
+ if receiver is None:
+ return None
+ return receiver.receive()
More information about the checkins
mailing list