[Checkins] SVN: bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_ create namespace packages (or not) automatically
Christophe Combelles
ccomb at free.fr
Sun Mar 28 21:41:24 EDT 2010
Log message for revision 110275:
create namespace packages (or not) automatically
Changed:
U bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/etc/site.zcml_tmpl
U bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/setup.py_tmpl
A bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+main_package+/
U bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+main_package+/tests/ftesting.zcml_tmpl
U bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+main_package+/tests/tests.py_tmpl
D bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+namespace_package+/+main_package+/
U bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/template.py
D bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_simple/
-=-
Modified: bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/etc/site.zcml_tmpl
===================================================================
--- bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/etc/site.zcml_tmpl 2010-03-29 01:27:47 UTC (rev 110274)
+++ bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/etc/site.zcml_tmpl 2010-03-29 01:41:23 UTC (rev 110275)
@@ -44,6 +44,6 @@
<include package="zope.traversing.browser" />
<include package="zope.app.pagetemplate" />
- <include package="${namespace_package}.${main_package}" />
+ <include package="${'.'.join(ns_packages)}${ns_packages and '.' or None}${main_package}" />
</configure>
Modified: bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/setup.py_tmpl
===================================================================
--- bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/setup.py_tmpl 2010-03-29 01:27:47 UTC (rev 110274)
+++ bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/setup.py_tmpl 2010-03-29 01:41:23 UTC (rev 110275)
@@ -15,7 +15,7 @@
license=${repr(license_name)|empty},
package_dir={'': 'src'},
packages=find_packages('src'),
- namespace_packages=[${repr(namespace_package)},],
+ ${ns_packages and 'namespace_packages=%s,' % repr(['.'.join(ns_packages[:i+1]) for i in range(len(ns_packages))]) or None}
include_package_data=True,
zip_safe=${repr(bool(zip_safe))|False},
install_requires=['setuptools',
@@ -57,9 +57,9 @@
],
entry_points = """
[paste.app_factory]
- main = ${namespace_package}.${main_package}.startup:application_factory
+ main = ${'.'.join(ns_packages)}${ns_packages and '.' or None}${main_package}.startup:application_factory
[paste.global_paster_command]
- shell = ${namespace_package}.${main_package}.debug:Shell
+ shell = ${'.'.join(ns_packages)}${ns_packages and '.' or None}${main_package}.debug:Shell
""",
)
Modified: bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+main_package+/tests/ftesting.zcml_tmpl
===================================================================
--- bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+namespace_package+/+main_package+/tests/ftesting.zcml_tmpl 2010-03-29 01:27:47 UTC (rev 110274)
+++ bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+main_package+/tests/ftesting.zcml_tmpl 2010-03-29 01:41:23 UTC (rev 110275)
@@ -48,6 +48,6 @@
<grantAll role="zope.Manager" />
<grant role="zope.Manager" principal="zope.mgr" />
- <include package="${namespace_package}.${main_package}" />
+ <include package="${'.'.join(ns_packages)}${ns_packages and '.' or None}${main_package}" />
</configure>
Modified: bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+main_package+/tests/tests.py_tmpl
===================================================================
--- bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+namespace_package+/+main_package+/tests/tests.py_tmpl 2010-03-29 01:27:47 UTC (rev 110274)
+++ bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/project_template/src/+main_package+/tests/tests.py_tmpl 2010-03-29 01:41:23 UTC (rev 110275)
@@ -1,3 +1,4 @@
import z3c.testsetup
-test_suite = z3c.testsetup.register_all_tests('${namespace_package}.${main_package}')
+test_suite =
+z3c.testsetup.register_all_tests('${'.'.join(ns_packages)}${ns_packages and '.' or None}${main_package}')
Modified: bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/template.py
===================================================================
--- bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/template.py 2010-03-29 01:27:47 UTC (rev 110274)
+++ bluebream/branches/ccomb-merge-templates/src/bluebream/bluebream_base/template.py 2010-03-29 01:41:23 UTC (rev 110275)
@@ -11,7 +11,7 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-import sys
+import os, sys, shutil
from paste.script import templates
from paste.script.templates import var
@@ -22,10 +22,10 @@
summary = "A BlueBream project, base template"
vars = [
- var('namespace_package', 'Namespace package name'),
- var('main_package',
- 'Main package name (under the namespace)',
- default='main'),
+# var('namespace_package', 'Namespace package name'),
+# var('main_package',
+# 'Main package name (under the namespace)',
+# default='main'),
var('interpreter',
'Name of custom Python interpreter',
default='breampy'),
@@ -43,7 +43,6 @@
]
def check_vars(self, vars, cmd):
-
if vars['package'] in ('bluebream', 'bream', 'zope'):
print
print "Error: The chosen project name results in an invalid " \
@@ -51,10 +50,36 @@
print "Please choose a different project name."
sys.exit(1)
+ # detect namespaces in the project name
+ vars['main_package'] = vars['project'].split('.')[-1]
+ self.ns_split = vars['project'].split('.')
+ vars['ns_packages'] = self.ns_split[:-1]
+ vars['packages'] = vars['project']
+
for var in self.vars:
if var.name == 'namespace_package':
var.default = vars['package']
- vars = templates.Template.check_vars(self, vars, cmd)
+ self._vars = vars = templates.Template.check_vars(self, vars, cmd)
return vars
+
+ def write_files(self, command, output_dir, vars):
+ """Add namespace packages and nest the main package in them"""
+ templates.Template.write_files(self, command, output_dir, vars)
+ if len(self.ns_split) > 1:
+ target_dir = os.path.join(output_dir, 'src',
+ os.path.join(*self.ns_split[:-1]))
+ os.makedirs(target_dir)
+ ns_declar = "__import__('pkg_resources').declare_namespace(__name__)"
+ for i, namespace_package in enumerate(self.ns_split[:-1]):
+ init_file = os.path.join(output_dir, 'src',
+ os.path.join(*self.ns_split[:i+1]),
+ '__init__.py')
+ open(init_file, 'w').write(ns_declar)
+ shutil.move(os.path.join(output_dir, 'src', vars['main_package']),
+ target_dir)
+
+
+
+
More information about the checkins
mailing list