Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

initial commit

  • Loading branch information...
commit a5aedc14f20d77a74e7a1364fa354f10d4212c2d 0 parents
@toutpt authored
Showing with 603 additions and 0 deletions.
  1. +23 −0 .gitignore
  2. +2 −0  MANIFEST.in
  3. +6 −0 README.rst
  4. +6 −0 README.txt
  5. +262 −0 bootstrap.py
  6. +11 −0 buildout.cfg
  7. +1 −0  collective.linguaanalytics-configure.zcml
  8. +6 −0 collective/__init__.py
  9. 0  collective/linguaanalytics/__init__.py
  10. +27 −0 collective/linguaanalytics/configure.zcml
  11. +5 −0 collective/linguaanalytics/interfaces.py
  12. +16 −0 collective/linguaanalytics/locales/collective.linguaanalytics.pot
  13. +16 −0 collective/linguaanalytics/locales/en/LC_MESSAGES/collective.linguaanalytics.po
  14. +18 −0 collective/linguaanalytics/locales/fr/LC_MESSAGES/collective.linguaanalytics.po
  15. +4 −0 collective/linguaanalytics/profiles/default/browserlayer.xml
  16. +7 −0 collective/linguaanalytics/profiles/default/metadata.xml
  17. +9 −0 collective/linguaanalytics/rebuild_i18n.sh
  18. +17 −0 collective/linguaanalytics/testing.py
  19. 0  collective/linguaanalytics/tests/__init__.py
  20. +32 −0 collective/linguaanalytics/tests/base.py
  21. +13 −0 collective/linguaanalytics/tests/test_setup.py
  22. +1 −0  collective/linguaanalytics/upgrades/__init__.py
  23. +14 −0 collective/linguaanalytics/upgrades/configure.zcml
  24. +7 −0 collective/linguaanalytics/upgrades/v1000_to_1001.py
  25. 0  collective/linguaanalytics/viewlets/__init__.py
  26. +15 −0 collective/linguaanalytics/viewlets/configure.zcml
  27. +12 −0 collective/linguaanalytics/viewlets/tracking.py
  28. +7 −0 docs/HISTORY.txt
  29. +23 −0 gitignore
  30. +43 −0 setup.py
23 .gitignore
@@ -0,0 +1,23 @@
+*.mo
+*.egg-info
+*.egg
+*.EGG
+*.EGG-INFO
+bin
+build
+develop-eggs
+downloads
+eggs
+fake-eggs
+parts
+dist
+var
+.installed.cfg
+.mr.developer.cfg
+.hg
+.bzr
+.svn
+*.pyc
+*.pyo
+*.tmp*
+
2  MANIFEST.in
@@ -0,0 +1,2 @@
+recursive-include collective *
+global-exclude *pyc
6 README.rst
@@ -0,0 +1,6 @@
+Introduction
+============
+
+
+
+This product may contain traces of nuts.
6 README.txt
@@ -0,0 +1,6 @@
+Introduction
+============
+
+
+
+This product may contain traces of nuts.
262 bootstrap.py
@@ -0,0 +1,262 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Foundation 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.
+"""
+
+import os, shutil, sys, tempfile, urllib, urllib2, subprocess
+from optparse import OptionParser
+
+if sys.platform == 'win32':
+ def quote(c):
+ if ' ' in c:
+ return '"%s"' % c # work around spawn lamosity on windows
+ else:
+ return c
+else:
+ quote = str
+
+# See zc.buildout.easy_install._has_broken_dash_S for motivation and comments.
+stdout, stderr = subprocess.Popen(
+ [sys.executable, '-Sc',
+ 'try:\n'
+ ' import ConfigParser\n'
+ 'except ImportError:\n'
+ ' print 1\n'
+ 'else:\n'
+ ' print 0\n'],
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
+has_broken_dash_S = bool(int(stdout.strip()))
+
+# In order to be more robust in the face of system Pythons, we want to
+# run without site-packages loaded. This is somewhat tricky, in
+# particular because Python 2.6's distutils imports site, so starting
+# with the -S flag is not sufficient. However, we'll start with that:
+if not has_broken_dash_S and 'site' in sys.modules:
+ # We will restart with python -S.
+ args = sys.argv[:]
+ args[0:0] = [sys.executable, '-S']
+ args = map(quote, args)
+ os.execv(sys.executable, args)
+# Now we are running with -S. We'll get the clean sys.path, import site
+# because distutils will do it later, and then reset the path and clean
+# out any namespace packages from site-packages that might have been
+# loaded by .pth files.
+clean_path = sys.path[:]
+import site # imported because of its side effects
+sys.path[:] = clean_path
+for k, v in sys.modules.items():
+ if k in ('setuptools', 'pkg_resources') or (
+ hasattr(v, '__path__') and
+ len(v.__path__) == 1 and
+ not os.path.exists(os.path.join(v.__path__[0], '__init__.py'))):
+ # This is a namespace package. Remove it.
+ sys.modules.pop(k)
+
+is_jython = sys.platform.startswith('java')
+
+setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py'
+distribute_source = 'http://python-distribute.org/distribute_setup.py'
+
+
+# parsing arguments
+def normalize_to_url(option, opt_str, value, parser):
+ if value:
+ if '://' not in value: # It doesn't smell like a URL.
+ value = 'file://%s' % (
+ urllib.pathname2url(
+ os.path.abspath(os.path.expanduser(value))),)
+ if opt_str == '--download-base' and not value.endswith('/'):
+ # Download base needs a trailing slash to make the world happy.
+ value += '/'
+ else:
+ value = None
+ name = opt_str[2:].replace('-', '_')
+ setattr(parser.values, name, value)
+
+usage = '''\
+[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options]
+
+Bootstraps a buildout-based project.
+
+Simply run this script in a directory containing a buildout.cfg, using the
+Python that you want bin/buildout to use.
+
+Note that by using --setup-source and --download-base to point to
+local resources, you can keep this script from going over the network.
+'''
+
+parser = OptionParser(usage=usage)
+parser.add_option("-v", "--version", dest="version",
+ help="use a specific zc.buildout version")
+parser.add_option("-d", "--distribute",
+ action="store_true", dest="use_distribute", default=False,
+ help="Use Distribute rather than Setuptools.")
+parser.add_option("--setup-source", action="callback", dest="setup_source",
+ callback=normalize_to_url, nargs=1, type="string",
+ help=("Specify a URL or file location for the setup file. "
+ "If you use Setuptools, this will default to " +
+ setuptools_source + "; if you use Distribute, this "
+ "will default to " + distribute_source + "."))
+parser.add_option("--download-base", action="callback", dest="download_base",
+ callback=normalize_to_url, nargs=1, type="string",
+ help=("Specify a URL or directory for downloading "
+ "zc.buildout and either Setuptools or Distribute. "
+ "Defaults to PyPI."))
+parser.add_option("--eggs",
+ help=("Specify a directory for storing eggs. Defaults to "
+ "a temporary directory that is deleted when the "
+ "bootstrap script completes."))
+parser.add_option("-t", "--accept-buildout-test-releases",
+ dest='accept_buildout_test_releases',
+ action="store_true", default=False,
+ help=("Normally, if you do not specify a --version, the "
+ "bootstrap script and buildout gets the newest "
+ "*final* versions of zc.buildout and its recipes and "
+ "extensions for you. If you use this flag, "
+ "bootstrap and buildout will get the newest releases "
+ "even if they are alphas or betas."))
+parser.add_option("-c", None, action="store", dest="config_file",
+ help=("Specify the path to the buildout configuration "
+ "file to be used."))
+
+options, args = parser.parse_args()
+
+# if -c was provided, we push it back into args for buildout's main function
+if options.config_file is not None:
+ args += ['-c', options.config_file]
+
+if options.eggs:
+ eggs_dir = os.path.abspath(os.path.expanduser(options.eggs))
+else:
+ eggs_dir = tempfile.mkdtemp()
+
+if options.setup_source is None:
+ if options.use_distribute:
+ options.setup_source = distribute_source
+ else:
+ options.setup_source = setuptools_source
+
+if options.accept_buildout_test_releases:
+ args.append('buildout:accept-buildout-test-releases=true')
+args.append('bootstrap')
+
+try:
+ import pkg_resources
+ import setuptools # A flag. Sometimes pkg_resources is installed alone.
+ if not hasattr(pkg_resources, '_distribute'):
+ raise ImportError
+except ImportError:
+ ez_code = urllib2.urlopen(
+ options.setup_source).read().replace('\r\n', '\n')
+ ez = {}
+ exec ez_code in ez
+ setup_args = dict(to_dir=eggs_dir, download_delay=0)
+ if options.download_base:
+ setup_args['download_base'] = options.download_base
+ if options.use_distribute:
+ setup_args['no_fake'] = True
+ ez['use_setuptools'](**setup_args)
+ if 'pkg_resources' in sys.modules:
+ reload(sys.modules['pkg_resources'])
+ import pkg_resources
+ # This does not (always?) update the default working set. We will
+ # do it.
+ for path in sys.path:
+ if path not in pkg_resources.working_set.entries:
+ pkg_resources.working_set.add_entry(path)
+
+cmd = [quote(sys.executable),
+ '-c',
+ quote('from setuptools.command.easy_install import main; main()'),
+ '-mqNxd',
+ quote(eggs_dir)]
+
+if not has_broken_dash_S:
+ cmd.insert(1, '-S')
+
+find_links = options.download_base
+if not find_links:
+ find_links = os.environ.get('bootstrap-testing-find-links')
+if find_links:
+ cmd.extend(['-f', quote(find_links)])
+
+if options.use_distribute:
+ setup_requirement = 'distribute'
+else:
+ setup_requirement = 'setuptools'
+ws = pkg_resources.working_set
+setup_requirement_path = ws.find(
+ pkg_resources.Requirement.parse(setup_requirement)).location
+env = dict(
+ os.environ,
+ PYTHONPATH=setup_requirement_path)
+
+requirement = 'zc.buildout'
+version = options.version
+if version is None and not options.accept_buildout_test_releases:
+ # Figure out the most recent final version of zc.buildout.
+ import setuptools.package_index
+ _final_parts = '*final-', '*final'
+
+ def _final_version(parsed_version):
+ for part in parsed_version:
+ if (part[:1] == '*') and (part not in _final_parts):
+ return False
+ return True
+ index = setuptools.package_index.PackageIndex(
+ search_path=[setup_requirement_path])
+ if find_links:
+ index.add_find_links((find_links,))
+ req = pkg_resources.Requirement.parse(requirement)
+ if index.obtain(req) is not None:
+ best = []
+ bestv = None
+ for dist in index[req.project_name]:
+ distv = dist.parsed_version
+ if _final_version(distv):
+ if bestv is None or distv > bestv:
+ best = [dist]
+ bestv = distv
+ elif distv == bestv:
+ best.append(dist)
+ if best:
+ best.sort()
+ version = best[-1].version
+if version:
+ requirement = '=='.join((requirement, version))
+cmd.append(requirement)
+
+if is_jython:
+ import subprocess
+ exitcode = subprocess.Popen(cmd, env=env).wait()
+else: # Windows prefers this, apparently; otherwise we would prefer subprocess
+ exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env]))
+if exitcode != 0:
+ sys.stdout.flush()
+ sys.stderr.flush()
+ print ("An error occurred when trying to install zc.buildout. "
+ "Look above this message for any errors that "
+ "were output by easy_install.")
+ sys.exit(exitcode)
+
+ws.add_entry(eggs_dir)
+ws.require(requirement)
+import zc.buildout.buildout
+zc.buildout.buildout.main(args)
+if not options.eggs: # clean up temporary egg directory
+ shutil.rmtree(eggs_dir)
11 buildout.cfg
@@ -0,0 +1,11 @@
+[buildout]
+extends =
+ http://svn.plone.org/svn/collective/buildout/plonetest/test-4.1.x.cfg
+package-name = collective.linguaanalytics
+package-extras = [tests]
+
+parts+=omelette
+
+[omelette]
+recipe=collective.recipe.omelette
+eggs=${instance:eggs}
1  collective.linguaanalytics-configure.zcml
@@ -0,0 +1 @@
+<include package="collective.linguaanalytics" />
6 collective/__init__.py
@@ -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__)
0  collective/linguaanalytics/__init__.py
No changes.
27 collective/linguaanalytics/configure.zcml
@@ -0,0 +1,27 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:five="http://namespaces.zope.org/five"
+ xmlns:cmf="http://namespaces.zope.org/cmf"
+ xmlns:i18n="http://namespaces.zope.org/i18n"
+ xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
+ xmlns:plone="http://namespaces.plone.org/plone"
+ i18n_domain="collective.linguaanalytics">
+
+ <include package="collective.googleanalytics" />
+ <i18n:registerTranslations directory="locales" />
+
+ <genericsetup:registerProfile
+ name="default"
+ title="collective.linguaanalytics"
+ directory="profiles/default"
+ description='Extension profile'
+ provides="Products.GenericSetup.interfaces.EXTENSION"
+ />
+ <interface
+ interface=".interfaces.ILayer"
+ name="collective.linguaanalytics"
+ />
+ <include package=".viewlets"/>
+ <include package=".upgrades" />
+
+</configure>
5 collective/linguaanalytics/interfaces.py
@@ -0,0 +1,5 @@
+from zope import interface
+from collective.googleanalytics.interfaces.browserlayer import IAnalyticsLayer
+
+class ILayer(IAnalyticsLayer):
+ """Marker interface that defines a Zope 3 browser layer."""
16 collective/linguaanalytics/locales/collective.linguaanalytics.pot
@@ -0,0 +1,16 @@
+# Gettext Message File for collective.linguaanalytics
+msgid ""
+msgstr ""
+"Project-Id-Version: collective.linguaanalytics\n"
+"POT-Creation-Date: 2010-11-10 11:05+0000\n"
+"PO-Revision-Date: 2008-02-04 18:00+0000\n"
+"Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
+"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-Code: en\n"
+"Language-Name: English\n"
+"Preferred-Encodings: utf-8 latin1\n"
+"Domain: collective.linguaanalytics\n"
16 collective/linguaanalytics/locales/en/LC_MESSAGES/collective.linguaanalytics.po
@@ -0,0 +1,16 @@
+# Gettext Message File for collective.linguaanalytics
+msgid ""
+msgstr ""
+"Project-Id-Version: collective.linguaanalytics\n"
+"POT-Creation-Date: 2010-11-10 11:05+0000\n"
+"PO-Revision-Date: 2008-02-04 18:00+0000\n"
+"Last-Translator: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
+"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"Language-Code: en\n"
+"Language-Name: English\n"
+"Preferred-Encodings: utf-8 latin1\n"
+"Domain: collective.linguaanalytics\n"
18 collective/linguaanalytics/locales/fr/LC_MESSAGES/collective.linguaanalytics.po
@@ -0,0 +1,18 @@
+# Translation of collective.linguaanalytics.pot to French
+# French Translation Team "plone-fr" <plone-fr@lists.plone.org>, 2003-2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: collective.linguaanalytics\n"
+"POT-Creation-Date: 2010-11-10 11:05+0000\n"
+"PO-Revision-Date: 2010-11-13 11:07+0100\n"
+"Last-Translator: YOURNAME <name@email.com>\n"
+"Language-Team: French <plone-fr@lists.plone.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"Language-Code: fr\n"
+"Language-Name: French\n"
+"Preferred-Encodings: utf-8 latin1\n"
+"Domain: collective.linguaanalytics\n"
+"X-Is-Fallback-For: fr-be fr-ca fr-lu fr-mc fr-ch fr-fr\n"
4 collective/linguaanalytics/profiles/default/browserlayer.xml
@@ -0,0 +1,4 @@
+<layers>
+ <layer name="collective.linguaanalytics"
+ interface="collective.linguaanalytics.interfaces.ILayer" />
+</layers>
7 collective/linguaanalytics/profiles/default/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<metadata>
+ <version>1000</version>
+ <dependencies>
+ <dependency>profile-collective.googleanalytics:default</dependency>
+ </dependencies>
+</metadata>
9 collective/linguaanalytics/rebuild_i18n.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+PRODUCTNAME='collective.linguaanalytics'
+I18NDOMAIN=$PRODUCTNAME
+
+# Synchronise the .pot with the templates.
+i18ndude rebuild-pot --pot locales/${PRODUCTNAME}.pot --create ${I18NDOMAIN} .
+
+# Synchronise the resulting .pot with the .po files
+i18ndude sync --pot locales/${PRODUCTNAME}.pot locales/*/LC_MESSAGES/${PRODUCTNAME}.po
17 collective/linguaanalytics/testing.py
@@ -0,0 +1,17 @@
+from plone.testing import z2
+
+from plone.app.testing import *
+import collective.linguaanalytics
+
+FIXTURE = PloneWithPackageLayer(zcml_filename="configure.zcml",
+ zcml_package=collective.linguaanalytics,
+ additional_z2_products=[],
+ gs_profile_id='collective.linguaanalytics:default',
+ name="collective.linguaanalytics:FIXTURE")
+
+INTEGRATION = IntegrationTesting(bases=(FIXTURE,),
+ name="collective.linguaanalytics:Integration")
+
+FUNCTIONAL = FunctionalTesting(bases=(FIXTURE,),
+ name="collective.linguaanalytics:Functional")
+
0  collective/linguaanalytics/tests/__init__.py
No changes.
32 collective/linguaanalytics/tests/base.py
@@ -0,0 +1,32 @@
+import transaction
+import unittest2 as unittest
+from zope import interface
+from plone.app import testing
+from collective.linguaanalytics import testing
+from collective.linguaanalytics.tests import utils
+
+class UnitTestCase(unittest.TestCase):
+
+ def setUp(self):
+ pass
+
+class IntegrationTestCase(unittest.TestCase):
+
+ layer = layer.INTEGRATION
+
+ def setUp(self):
+ super(TestCase, self).setUp()
+ self.portal = self.layer['portal']
+ testing.setRoles(self.portal, testing.TEST_USER_ID, ['Manager'])
+ self.portal.invokeFactory('Folder', 'test-folder')
+ testing.setRoles(self.portal, testing.TEST_USER_ID, ['Member'])
+ self.folder = self.portal['test-folder']
+
+
+class FunctionalTestCase(IntegrationTestCase):
+
+ layer = layer.FUNCTIONAL
+
+ def setUp(self):
+ #we must commit the transaction
+ transaction.commit()
13 collective/linguaanalytics/tests/test_setup.py
@@ -0,0 +1,13 @@
+import unittest2 as unittest
+from collective.linguaanalytics.tests import base
+
+class TestSetup(base.IntegrationTestCase):
+ """We tests the setup (install) of the addons. You should check all
+ stuff in profile are well activated (browserlayer, js, content types, ...)
+ """
+
+ def test_xxx(self):
+ self.assertTrue(False)
+
+def test_suite():
+ return unittest.defaultTestLoader.loadTestsFromName(__name__)
1  collective/linguaanalytics/upgrades/__init__.py
@@ -0,0 +1 @@
+#
14 collective/linguaanalytics/upgrades/configure.zcml
@@ -0,0 +1,14 @@
+<configure
+ xmlns="http://namespaces.zope.org/genericsetup"
+ i18n_domain="collective.linguaanalytics">
+
+ <upgradeStep
+ source="1000"
+ destination="1001"
+ title="Upgrade"
+ description=""
+ profile="collective.linguaanalytics:default"
+ handler=".v1000_to_1001.upgrade_1000_to_1001"
+ />
+
+</configure>
7 collective/linguaanalytics/upgrades/v1000_to_1001.py
@@ -0,0 +1,7 @@
+from Products.CMFCore.utils import getToolByName
+
+def upgrade_1000_to_1001(context):
+ setup = getToolByName(context, 'portal_setup')
+# setup.runImportStepFromProfile('profile-collective.linguaanalytics:default',
+# 'jsregistry', run_dependencies=False,
+# purge_old=False)
0  collective/linguaanalytics/viewlets/__init__.py
No changes.
15 collective/linguaanalytics/viewlets/configure.zcml
@@ -0,0 +1,15 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser"
+ i18n_domain="collective.googleanalytics">
+
+ <browser:viewlet
+ name="collective.googleanalytics.tracking"
+ manager="plone.app.layout.viewlets.interfaces.IHtmlHeadLinks"
+ class=".tracking.AnalyticsTrackingViewlet"
+ layer="..interfaces.ILayer"
+ permission="zope2.View"
+ />
+
+</configure>
+
12 collective/linguaanalytics/viewlets/tracking.py
@@ -0,0 +1,12 @@
+from collective.googleanalytics.viewlets.tracking import AnalyticsTrackingViewlet
+
+class AnalyticsViewlet(AnalyticsTrackingViewlet):
+ """Override this one"""
+
+ def getTrackingWebProperty(self):
+ """
+ Returns the Google web property ID for the selected tracking profile,
+ or an empty string if no tracking profile is selected.
+ """
+ import pdb;pdb.set_trace()
+ return getattr(self.analytics_tool, 'tracking_web_property', None)
7 docs/HISTORY.txt
@@ -0,0 +1,7 @@
+Changelog
+=========
+
+1.0dev (unreleased)
+-------------------
+
+- Initial release
23 gitignore
@@ -0,0 +1,23 @@
+*.mo
+*.egg-info
+*.egg
+*.EGG
+*.EGG-INFO
+bin
+build
+develop-eggs
+downloads
+eggs
+fake-eggs
+parts
+dist
+var
+.installed.cfg
+.mr.developer.cfg
+.hg
+.bzr
+.svn
+*.pyc
+*.pyo
+*.tmp*
+
43 setup.py
@@ -0,0 +1,43 @@
+from setuptools import setup, find_packages
+import os
+
+version = '1.0'
+
+setup(name='collective.linguaanalytics',
+ version=version,
+ description="Google Analytics specialized for MultiLanguage sites",
+ long_description=open("README.rst").read() + "\n" +
+ open(os.path.join("docs", "HISTORY.txt")).read(),
+ # Get more strings from
+ # http://pypi.python.org/pypi?:action=list_classifiers
+ classifiers=[
+ "Programming Language :: Python",
+ "Framework :: Plone",
+ "Framework :: Plone :: 4.0",
+ "Framework :: Plone :: 4.1",
+ "Framework :: Plone :: 4.2",
+ ],
+ keywords='',
+ author='',
+ author_email='',
+ url='http://svn.plone.org/svn/collective/',
+ license='GPL',
+ packages=find_packages(exclude=['ez_setup']),
+ namespace_packages=['collective'],
+ include_package_data=True,
+ zip_safe=False,
+ install_requires=[
+ 'setuptools',
+ 'Products.LinguaPlone',
+ 'collective.googleanalytics',
+ # -*- Extra requirements: -*-
+ ],
+ extras_require = dict(
+ tests=['plone.app.testing'],
+ ),
+ entry_points="""
+ # -*- Entry points: -*-
+ [z3c.autoinclude.plugin]
+ target = plone
+ """,
+ )
Please sign in to comment.
Something went wrong with that request. Please try again.