[pypy-svn] r31701 - in pypy/dist/pypy/translator/js: . turbogears

ericvrp at codespeak.net ericvrp at codespeak.net
Sat Aug 26 23:29:51 CEST 2006


Author: ericvrp
Date: Sat Aug 26 23:29:50 2006
New Revision: 31701

Added:
   pypy/dist/pypy/translator/js/autopath.py
      - copied unchanged from r31700, pypy/dist/pypy/bin/autopath.py
   pypy/dist/pypy/translator/js/turbogears/commandjs.py   (contents, props changed)
Modified:
   pypy/dist/pypy/translator/js/main.py
   pypy/dist/pypy/translator/js/turbogears/setup.py
   pypy/dist/pypy/translator/js/turbogears/templateplugin.py
Log:
Added "tg-admin js modulename <function_names>" for TurboGears.
Added function 'main' as fallback when no function names are given.
Fixed import statements because of th refactoring to js/main.py.



Modified: pypy/dist/pypy/translator/js/main.py
==============================================================================
--- pypy/dist/pypy/translator/js/main.py	(original)
+++ pypy/dist/pypy/translator/js/main.py	Sat Aug 26 23:29:50 2006
@@ -1,7 +1,9 @@
 """Contains high level javascript compilation function
 """
 
-from pypy.translator.js.test.runtest import compile_function
+import autopath
+
+#from pypy.translator.js.test.runtest import compile_function
 #from pypy.translator.translator import TranslationContext
 from pypy.translator.driver import TranslationDriver
 from pypy.translator.js.js import JS
@@ -25,16 +27,21 @@
     return "(%s)" % ",".join(l)
 
 def rpython2javascript_main(argv):
-    if len(argv) < 2:
-        print __doc__
+    if len(argv) < 1:
+        print "usage: module <function_names>"
+        import sys
         sys.exit(0)
     module_name = argv[0]
+    if module_name.endswith('.py'):
+        module_name = module_name[:-3]
     function_names = argv[1:]
     mod = __import__(module_name, None, None, ["Module"])
     rpython2javascript(mod, function_names)
 
 def rpython2javascript(mod, function_names):
     module_name = mod.__name__
+    if not function_names and 'main' in mod.__dict__:
+        function_names.append('main')
     for func_name in function_names:
         if func_name not in mod.__dict__:
             raise FunctionNotFound("function %r was not found in module %r" % (func_name, module_name))

Added: pypy/dist/pypy/translator/js/turbogears/commandjs.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/translator/js/turbogears/commandjs.py	Sat Aug 26 23:29:50 2006
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+
+"""Command-line user interface for rpython2javascript."""
+
+import optparse
+
+from rpython2javascript.pypy.translator.js.main import rpython2javascript_main
+
+class JsCommand:
+    "Translate RPython code to Javascript via command-line interface."
+
+    desc = "Translate RPython to Javascript"
+
+    name = None
+    package = None
+    __version__ = "0.2"
+    __author__ = "Eric van Riet Paap"
+    __email__ = "eric at vanrietpaap.nl"
+    __copyright__ = "Copyright 2006 Eric van Riet Paap"
+    __license__ = "MIT"
+
+    def __init__(self, *args, **kwargs):
+        parser = optparse.OptionParser(usage="""
+%prog [options] <command>
+
+Available commands:
+  module <function names>  Translate RPython functions in a module to Javascript
+""", version="%prog " + self.__version__)
+        self.parser = parser
+
+    def run(self):
+        (options, args) = self.parser.parse_args()
+        if not args:
+            self.parser.error("No command specified")
+        #self.options = options
+        #command, args = args[0], args[1:]
+        #print 'JsCommand:', command, args
+        rpython2javascript_main(args)
+
+def main():
+    tool = JsCommand()
+    tool.run()
+
+if __name__ == '__main__':
+    main()

Modified: pypy/dist/pypy/translator/js/turbogears/setup.py
==============================================================================
--- pypy/dist/pypy/translator/js/turbogears/setup.py	(original)
+++ pypy/dist/pypy/translator/js/turbogears/setup.py	Sat Aug 26 23:29:50 2006
@@ -30,11 +30,16 @@
     packages=find_packages(),
     package_data=find_package_data(
                     where='rpython2javascript', package='rpython2javascript',
-                    only_in_packages=False, exclude=('*.pyc', '*~', '.*', '*.bak')),
+                    only_in_packages=False,
+                    exclude='*.pyc *~ .* *.bak *.png *.gif *.jpg *.dot *.pdf *.txt *.html *.log *.graffle *.dump *.rdf *.ttf'.split()),
 
     entry_points="""
+        [turbogears.command]
+        js = rpython2javascript.pypy.translator.js.turbogears.commandjs:JsCommand
+    
         [python.templating.engines]
-        asjavascript = rpython2javascript.pypy.translator.js.turbogears.templateplugin:TemplatePlugin""",
+        asjavascript = rpython2javascript.pypy.translator.js.turbogears.templateplugin:TemplatePlugin
+        """,
         
     #keywords = [
     #    # Use keywords if you'll be adding your package to the

Modified: pypy/dist/pypy/translator/js/turbogears/templateplugin.py
==============================================================================
--- pypy/dist/pypy/translator/js/turbogears/templateplugin.py	(original)
+++ pypy/dist/pypy/translator/js/turbogears/templateplugin.py	Sat Aug 26 23:29:50 2006
@@ -1,5 +1,5 @@
 import cherrypy
-from rpython2javascript import rpython2javascript
+from rpython2javascript.pypy.translator.js.main import rpython2javascript
 
 class TemplatePlugin:
 



More information about the Pypy-commit mailing list