changeset 78:d4184945f8a8

stub out python package creation
author Jeff Hammel <jhammel@mozilla.com>
date Sat, 08 Jan 2011 17:54:58 -0800
parents 059b02808efa
children 8c326f764cfe
files makeitso/python.py makeitso/python_package/README.txt makeitso/python_package/script.py makeitso/template.py templates/README.txt templates/script.py
diffstat 6 files changed, 67 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeitso/python.py	Sat Jan 08 17:54:58 2011 -0800
@@ -0,0 +1,48 @@
+#!/usr/bin/env python
+
+"""
+python package templates for makeitso
+
+Several components are included.
+[TODO] You may use these subtemplates in any combination.
+
+* README.txt : a README in restructured text
+* examples : examples for your package
+* setup.py : setup utility for the full package
+* ./main.py : CLI handler for your webapp
+* ./model.py : model of a persisted object
+* ./template.py : a MakeItSo template for project creation
+* ./tests : doctest suite for the package
+* ./web.py : a webob web handler
+"""
+
+import sys
+from cli import MakeItSoCLI
+from optparse import OptionParser
+from template import MakeItSoTemplate
+
+class PythonPackage(MakeItSoTemplate):
+  """
+  python package template
+  """
+  name = 'python-package'
+  templates = ['python_package']
+  look = True
+
+  # things that go in setup.py
+  dependencies = {'web.py': ['webob'],
+                  'template.py': ['MakeItSo']}
+  console_scripts = {'main.py': '{{project}}.main:main',
+                     'template.py': '{{project}}.template:main'
+                     }
+  
+  def __init__(self, **kw):
+    MakeItSoTemplate.__init__(self, **kw)
+
+def main(args=sys.argv[:]):
+  usage = '%prog [options]'
+  
+
+if __name__ == '__main__':
+  main()  
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeitso/python_package/README.txt	Sat Jan 08 17:54:58 2011 -0800
@@ -0,0 +1,1 @@
+Example single-file templates
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeitso/python_package/script.py	Sat Jan 08 17:54:58 2011 -0800
@@ -0,0 +1,16 @@
+#!/usr/bin/env python
+
+"""
+{{description}}
+"""
+
+import sys
+from optparse import OptionParser
+
+def main(args=sys.argv[:]):
+  usage = '%prog [options]'
+  parser = OptionParser(usage=usage, description=__doc__)
+  options, args = parser.parse_args(args)
+
+if __name__ == '__main__':
+  main()  
--- a/makeitso/template.py	Sat Jan 08 16:21:29 2011 -0800
+++ b/makeitso/template.py	Sat Jan 08 17:54:58 2011 -0800
@@ -96,6 +96,8 @@
         # boilerplate
         variables = variables or {}
         self.output = output
+        if not self.description and hasattr(self, '__doc__'):
+            self.description = self.__doc__
         self.interactive = interactive
         _file = sys.modules[self.__class__.__module__].__file__
         self.location = os.path.dirname(os.path.abspath(_file))
--- a/templates/README.txt	Sat Jan 08 16:21:29 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-Example single-file templates
--- a/templates/script.py	Sat Jan 08 16:21:29 2011 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-#!/usr/bin/env python
-
-"""
-{{description}}
-"""
-
-import sys
-from optparse import OptionParser
-
-def main(args=sys.argv[:]):
-  usage = '%prog [options]'
-  parser = OptionParser(usage=usage, description=__doc__)
-  options, args = parser.parse_args(args)
-
-if __name__ == '__main__':
-  main()