From 81094235eb8e71664f8dd5cd0db6be4368901baf Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 12 May 2011 13:58:05 -0400 Subject: rename 'paster_templates' to 'scaffolds', adjust references --- pyramid/paster.py | 39 ---------- .../alchemy/+package+/__init__.py_tmpl | 21 ------ .../paster_templates/alchemy/+package+/models.py | 84 --------------------- .../alchemy/+package+/static/favicon.ico | Bin 1406 -> 0 bytes .../alchemy/+package+/static/footerbg.png | Bin 333 -> 0 bytes .../alchemy/+package+/static/headerbg.png | Bin 203 -> 0 bytes .../alchemy/+package+/static/ie6.css | 8 -- .../alchemy/+package+/static/middlebg.png | Bin 2797 -> 0 bytes .../alchemy/+package+/static/pylons.css | 65 ---------------- .../alchemy/+package+/static/pyramid-small.png | Bin 7044 -> 0 bytes .../alchemy/+package+/static/pyramid.png | Bin 33055 -> 0 bytes .../alchemy/+package+/static/transparent.gif | Bin 49 -> 0 bytes .../alchemy/+package+/templates/model.pt_tmpl | 82 -------------------- .../alchemy/+package+/templates/root.pt_tmpl | 80 -------------------- .../alchemy/+package+/tests.py_tmpl | 60 --------------- .../alchemy/+package+/views.py_tmpl | 5 -- pyramid/paster_templates/alchemy/CHANGES.txt_tmpl | 4 - pyramid/paster_templates/alchemy/MANIFEST.in_tmpl | 2 - pyramid/paster_templates/alchemy/README.txt_tmpl | 4 - .../paster_templates/alchemy/development.ini_tmpl | 63 ---------------- .../paster_templates/alchemy/production.ini_tmpl | 77 ------------------- pyramid/paster_templates/alchemy/setup.cfg_tmpl | 27 ------- pyramid/paster_templates/alchemy/setup.py_tmpl | 47 ------------ .../routesalchemy/+package+/__init__.py_tmpl | 18 ----- .../routesalchemy/+package+/models.py | 42 ----------- .../routesalchemy/+package+/static/favicon.ico | Bin 1406 -> 0 bytes .../routesalchemy/+package+/static/footerbg.png | Bin 333 -> 0 bytes .../routesalchemy/+package+/static/headerbg.png | Bin 203 -> 0 bytes .../routesalchemy/+package+/static/ie6.css | 8 -- .../routesalchemy/+package+/static/middlebg.png | Bin 2797 -> 0 bytes .../routesalchemy/+package+/static/pylons.css | 65 ---------------- .../+package+/static/pyramid-small.png | Bin 7044 -> 0 bytes .../routesalchemy/+package+/static/pyramid.png | Bin 33055 -> 0 bytes .../routesalchemy/+package+/static/transparent.gif | Bin 49 -> 0 bytes .../+package+/templates/mytemplate.pt_tmpl | 76 ------------------- .../routesalchemy/+package+/tests.py_tmpl | 24 ------ .../routesalchemy/+package+/views.py_tmpl | 7 -- .../routesalchemy/CHANGES.txt_tmpl | 4 - .../routesalchemy/MANIFEST.in_tmpl | 2 - .../paster_templates/routesalchemy/README.txt_tmpl | 4 - .../routesalchemy/development.ini_tmpl | 63 ---------------- .../routesalchemy/production.ini_tmpl | 77 ------------------- .../paster_templates/routesalchemy/setup.cfg_tmpl | 27 ------- .../paster_templates/routesalchemy/setup.py_tmpl | 47 ------------ .../starter/+package+/__init__.py_tmpl | 13 ---- .../starter/+package+/resources.py | 3 - .../starter/+package+/static/favicon.ico | Bin 1406 -> 0 bytes .../starter/+package+/static/footerbg.png | Bin 333 -> 0 bytes .../starter/+package+/static/headerbg.png | Bin 203 -> 0 bytes .../starter/+package+/static/ie6.css | 8 -- .../starter/+package+/static/middlebg.png | Bin 2797 -> 0 bytes .../starter/+package+/static/pylons.css | 65 ---------------- .../starter/+package+/static/pyramid-small.png | Bin 7044 -> 0 bytes .../starter/+package+/static/pyramid.png | Bin 33055 -> 0 bytes .../starter/+package+/static/transparent.gif | Bin 49 -> 0 bytes .../starter/+package+/templates/mytemplate.pt_tmpl | 76 ------------------- .../starter/+package+/tests.py_tmpl | 16 ---- .../starter/+package+/views.py_tmpl | 2 - pyramid/paster_templates/starter/CHANGES.txt_tmpl | 4 - pyramid/paster_templates/starter/MANIFEST.in_tmpl | 2 - pyramid/paster_templates/starter/README.txt_tmpl | 4 - .../paster_templates/starter/development.ini_tmpl | 49 ------------ .../paster_templates/starter/production.ini_tmpl | 63 ---------------- pyramid/paster_templates/starter/setup.cfg_tmpl | 27 ------- pyramid/paster_templates/starter/setup.py_tmpl | 37 --------- .../zodb/+package+/__init__.py_tmpl | 18 ----- pyramid/paster_templates/zodb/+package+/models.py | 12 --- .../zodb/+package+/static/favicon.ico | Bin 1406 -> 0 bytes .../zodb/+package+/static/footerbg.png | Bin 333 -> 0 bytes .../zodb/+package+/static/headerbg.png | Bin 203 -> 0 bytes .../paster_templates/zodb/+package+/static/ie6.css | 8 -- .../zodb/+package+/static/middlebg.png | Bin 2797 -> 0 bytes .../zodb/+package+/static/pylons.css | 65 ---------------- .../zodb/+package+/static/pyramid-small.png | Bin 7044 -> 0 bytes .../zodb/+package+/static/pyramid.png | Bin 33055 -> 0 bytes .../zodb/+package+/static/transparent.gif | Bin 49 -> 0 bytes .../zodb/+package+/templates/mytemplate.pt_tmpl | 76 ------------------- .../paster_templates/zodb/+package+/tests.py_tmpl | 17 ----- .../paster_templates/zodb/+package+/views.py_tmpl | 6 -- pyramid/paster_templates/zodb/CHANGES.txt_tmpl | 4 - pyramid/paster_templates/zodb/MANIFEST.in_tmpl | 2 - pyramid/paster_templates/zodb/README.txt_tmpl | 4 - pyramid/paster_templates/zodb/development.ini_tmpl | 57 -------------- pyramid/paster_templates/zodb/production.ini_tmpl | 71 ----------------- pyramid/paster_templates/zodb/setup.cfg_tmpl | 27 ------- pyramid/paster_templates/zodb/setup.py_tmpl | 44 ----------- pyramid/scaffolds/__init__.py | 42 +++++++++++ .../scaffolds/alchemy/+package+/__init__.py_tmpl | 21 ++++++ pyramid/scaffolds/alchemy/+package+/models.py | 84 +++++++++++++++++++++ .../scaffolds/alchemy/+package+/static/favicon.ico | Bin 0 -> 1406 bytes .../alchemy/+package+/static/footerbg.png | Bin 0 -> 333 bytes .../alchemy/+package+/static/headerbg.png | Bin 0 -> 203 bytes pyramid/scaffolds/alchemy/+package+/static/ie6.css | 8 ++ .../alchemy/+package+/static/middlebg.png | Bin 0 -> 2797 bytes .../scaffolds/alchemy/+package+/static/pylons.css | 65 ++++++++++++++++ .../alchemy/+package+/static/pyramid-small.png | Bin 0 -> 7044 bytes .../scaffolds/alchemy/+package+/static/pyramid.png | Bin 0 -> 33055 bytes .../alchemy/+package+/static/transparent.gif | Bin 0 -> 49 bytes .../alchemy/+package+/templates/model.pt_tmpl | 82 ++++++++++++++++++++ .../alchemy/+package+/templates/root.pt_tmpl | 80 ++++++++++++++++++++ pyramid/scaffolds/alchemy/+package+/tests.py_tmpl | 60 +++++++++++++++ pyramid/scaffolds/alchemy/+package+/views.py_tmpl | 5 ++ pyramid/scaffolds/alchemy/CHANGES.txt_tmpl | 4 + pyramid/scaffolds/alchemy/MANIFEST.in_tmpl | 2 + pyramid/scaffolds/alchemy/README.txt_tmpl | 4 + pyramid/scaffolds/alchemy/development.ini_tmpl | 63 ++++++++++++++++ pyramid/scaffolds/alchemy/production.ini_tmpl | 77 +++++++++++++++++++ pyramid/scaffolds/alchemy/setup.cfg_tmpl | 27 +++++++ pyramid/scaffolds/alchemy/setup.py_tmpl | 47 ++++++++++++ .../routesalchemy/+package+/__init__.py_tmpl | 18 +++++ .../scaffolds/routesalchemy/+package+/models.py | 42 +++++++++++ .../routesalchemy/+package+/static/favicon.ico | Bin 0 -> 1406 bytes .../routesalchemy/+package+/static/footerbg.png | Bin 0 -> 333 bytes .../routesalchemy/+package+/static/headerbg.png | Bin 0 -> 203 bytes .../routesalchemy/+package+/static/ie6.css | 8 ++ .../routesalchemy/+package+/static/middlebg.png | Bin 0 -> 2797 bytes .../routesalchemy/+package+/static/pylons.css | 65 ++++++++++++++++ .../+package+/static/pyramid-small.png | Bin 0 -> 7044 bytes .../routesalchemy/+package+/static/pyramid.png | Bin 0 -> 33055 bytes .../routesalchemy/+package+/static/transparent.gif | Bin 0 -> 49 bytes .../+package+/templates/mytemplate.pt_tmpl | 76 +++++++++++++++++++ .../routesalchemy/+package+/tests.py_tmpl | 24 ++++++ .../routesalchemy/+package+/views.py_tmpl | 7 ++ pyramid/scaffolds/routesalchemy/CHANGES.txt_tmpl | 4 + pyramid/scaffolds/routesalchemy/MANIFEST.in_tmpl | 2 + pyramid/scaffolds/routesalchemy/README.txt_tmpl | 4 + .../scaffolds/routesalchemy/development.ini_tmpl | 63 ++++++++++++++++ .../scaffolds/routesalchemy/production.ini_tmpl | 77 +++++++++++++++++++ pyramid/scaffolds/routesalchemy/setup.cfg_tmpl | 27 +++++++ pyramid/scaffolds/routesalchemy/setup.py_tmpl | 47 ++++++++++++ .../scaffolds/starter/+package+/__init__.py_tmpl | 13 ++++ pyramid/scaffolds/starter/+package+/resources.py | 3 + .../scaffolds/starter/+package+/static/favicon.ico | Bin 0 -> 1406 bytes .../starter/+package+/static/footerbg.png | Bin 0 -> 333 bytes .../starter/+package+/static/headerbg.png | Bin 0 -> 203 bytes pyramid/scaffolds/starter/+package+/static/ie6.css | 8 ++ .../starter/+package+/static/middlebg.png | Bin 0 -> 2797 bytes .../scaffolds/starter/+package+/static/pylons.css | 65 ++++++++++++++++ .../starter/+package+/static/pyramid-small.png | Bin 0 -> 7044 bytes .../scaffolds/starter/+package+/static/pyramid.png | Bin 0 -> 33055 bytes .../starter/+package+/static/transparent.gif | Bin 0 -> 49 bytes .../starter/+package+/templates/mytemplate.pt_tmpl | 76 +++++++++++++++++++ pyramid/scaffolds/starter/+package+/tests.py_tmpl | 16 ++++ pyramid/scaffolds/starter/+package+/views.py_tmpl | 2 + pyramid/scaffolds/starter/CHANGES.txt_tmpl | 4 + pyramid/scaffolds/starter/MANIFEST.in_tmpl | 2 + pyramid/scaffolds/starter/README.txt_tmpl | 4 + pyramid/scaffolds/starter/development.ini_tmpl | 49 ++++++++++++ pyramid/scaffolds/starter/production.ini_tmpl | 63 ++++++++++++++++ pyramid/scaffolds/starter/setup.cfg_tmpl | 27 +++++++ pyramid/scaffolds/starter/setup.py_tmpl | 37 +++++++++ pyramid/scaffolds/tests.py | 79 +++++++++++++++++++ pyramid/scaffolds/zodb/+package+/__init__.py_tmpl | 18 +++++ pyramid/scaffolds/zodb/+package+/models.py | 12 +++ .../scaffolds/zodb/+package+/static/favicon.ico | Bin 0 -> 1406 bytes .../scaffolds/zodb/+package+/static/footerbg.png | Bin 0 -> 333 bytes .../scaffolds/zodb/+package+/static/headerbg.png | Bin 0 -> 203 bytes pyramid/scaffolds/zodb/+package+/static/ie6.css | 8 ++ .../scaffolds/zodb/+package+/static/middlebg.png | Bin 0 -> 2797 bytes pyramid/scaffolds/zodb/+package+/static/pylons.css | 65 ++++++++++++++++ .../zodb/+package+/static/pyramid-small.png | Bin 0 -> 7044 bytes .../scaffolds/zodb/+package+/static/pyramid.png | Bin 0 -> 33055 bytes .../zodb/+package+/static/transparent.gif | Bin 0 -> 49 bytes .../zodb/+package+/templates/mytemplate.pt_tmpl | 76 +++++++++++++++++++ pyramid/scaffolds/zodb/+package+/tests.py_tmpl | 17 +++++ pyramid/scaffolds/zodb/+package+/views.py_tmpl | 6 ++ pyramid/scaffolds/zodb/CHANGES.txt_tmpl | 4 + pyramid/scaffolds/zodb/MANIFEST.in_tmpl | 2 + pyramid/scaffolds/zodb/README.txt_tmpl | 4 + pyramid/scaffolds/zodb/development.ini_tmpl | 57 ++++++++++++++ pyramid/scaffolds/zodb/production.ini_tmpl | 71 +++++++++++++++++ pyramid/scaffolds/zodb/setup.cfg_tmpl | 27 +++++++ pyramid/scaffolds/zodb/setup.py_tmpl | 44 +++++++++++ pyramid/tests/test_paster.py | 34 --------- pyramid/tests/test_scaffolds.py | 36 +++++++++ setup.py | 8 +- template_tests.py | 79 ------------------- 177 files changed, 2034 insertions(+), 2029 deletions(-) delete mode 100755 pyramid/paster_templates/alchemy/+package+/__init__.py_tmpl delete mode 100755 pyramid/paster_templates/alchemy/+package+/models.py delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/favicon.ico delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/footerbg.png delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/headerbg.png delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/ie6.css delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/middlebg.png delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/pylons.css delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/pyramid-small.png delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/pyramid.png delete mode 100644 pyramid/paster_templates/alchemy/+package+/static/transparent.gif delete mode 100644 pyramid/paster_templates/alchemy/+package+/templates/model.pt_tmpl delete mode 100644 pyramid/paster_templates/alchemy/+package+/templates/root.pt_tmpl delete mode 100644 pyramid/paster_templates/alchemy/+package+/tests.py_tmpl delete mode 100644 pyramid/paster_templates/alchemy/+package+/views.py_tmpl delete mode 100644 pyramid/paster_templates/alchemy/CHANGES.txt_tmpl delete mode 100644 pyramid/paster_templates/alchemy/MANIFEST.in_tmpl delete mode 100644 pyramid/paster_templates/alchemy/README.txt_tmpl delete mode 100644 pyramid/paster_templates/alchemy/development.ini_tmpl delete mode 100644 pyramid/paster_templates/alchemy/production.ini_tmpl delete mode 100644 pyramid/paster_templates/alchemy/setup.cfg_tmpl delete mode 100644 pyramid/paster_templates/alchemy/setup.py_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/__init__.py_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/models.py delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/favicon.ico delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/footerbg.png delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/headerbg.png delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/ie6.css delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/middlebg.png delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/pylons.css delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/pyramid-small.png delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/pyramid.png delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/static/transparent.gif delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/templates/mytemplate.pt_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/tests.py_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/+package+/views.py_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/CHANGES.txt_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/MANIFEST.in_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/README.txt_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/development.ini_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/production.ini_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/setup.cfg_tmpl delete mode 100644 pyramid/paster_templates/routesalchemy/setup.py_tmpl delete mode 100644 pyramid/paster_templates/starter/+package+/__init__.py_tmpl delete mode 100644 pyramid/paster_templates/starter/+package+/resources.py delete mode 100644 pyramid/paster_templates/starter/+package+/static/favicon.ico delete mode 100644 pyramid/paster_templates/starter/+package+/static/footerbg.png delete mode 100644 pyramid/paster_templates/starter/+package+/static/headerbg.png delete mode 100644 pyramid/paster_templates/starter/+package+/static/ie6.css delete mode 100644 pyramid/paster_templates/starter/+package+/static/middlebg.png delete mode 100644 pyramid/paster_templates/starter/+package+/static/pylons.css delete mode 100644 pyramid/paster_templates/starter/+package+/static/pyramid-small.png delete mode 100644 pyramid/paster_templates/starter/+package+/static/pyramid.png delete mode 100644 pyramid/paster_templates/starter/+package+/static/transparent.gif delete mode 100644 pyramid/paster_templates/starter/+package+/templates/mytemplate.pt_tmpl delete mode 100644 pyramid/paster_templates/starter/+package+/tests.py_tmpl delete mode 100644 pyramid/paster_templates/starter/+package+/views.py_tmpl delete mode 100644 pyramid/paster_templates/starter/CHANGES.txt_tmpl delete mode 100644 pyramid/paster_templates/starter/MANIFEST.in_tmpl delete mode 100644 pyramid/paster_templates/starter/README.txt_tmpl delete mode 100644 pyramid/paster_templates/starter/development.ini_tmpl delete mode 100644 pyramid/paster_templates/starter/production.ini_tmpl delete mode 100644 pyramid/paster_templates/starter/setup.cfg_tmpl delete mode 100644 pyramid/paster_templates/starter/setup.py_tmpl delete mode 100644 pyramid/paster_templates/zodb/+package+/__init__.py_tmpl delete mode 100644 pyramid/paster_templates/zodb/+package+/models.py delete mode 100644 pyramid/paster_templates/zodb/+package+/static/favicon.ico delete mode 100644 pyramid/paster_templates/zodb/+package+/static/footerbg.png delete mode 100644 pyramid/paster_templates/zodb/+package+/static/headerbg.png delete mode 100644 pyramid/paster_templates/zodb/+package+/static/ie6.css delete mode 100644 pyramid/paster_templates/zodb/+package+/static/middlebg.png delete mode 100644 pyramid/paster_templates/zodb/+package+/static/pylons.css delete mode 100644 pyramid/paster_templates/zodb/+package+/static/pyramid-small.png delete mode 100644 pyramid/paster_templates/zodb/+package+/static/pyramid.png delete mode 100644 pyramid/paster_templates/zodb/+package+/static/transparent.gif delete mode 100644 pyramid/paster_templates/zodb/+package+/templates/mytemplate.pt_tmpl delete mode 100644 pyramid/paster_templates/zodb/+package+/tests.py_tmpl delete mode 100644 pyramid/paster_templates/zodb/+package+/views.py_tmpl delete mode 100644 pyramid/paster_templates/zodb/CHANGES.txt_tmpl delete mode 100644 pyramid/paster_templates/zodb/MANIFEST.in_tmpl delete mode 100644 pyramid/paster_templates/zodb/README.txt_tmpl delete mode 100644 pyramid/paster_templates/zodb/development.ini_tmpl delete mode 100644 pyramid/paster_templates/zodb/production.ini_tmpl delete mode 100644 pyramid/paster_templates/zodb/setup.cfg_tmpl delete mode 100644 pyramid/paster_templates/zodb/setup.py_tmpl create mode 100644 pyramid/scaffolds/__init__.py create mode 100755 pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl create mode 100755 pyramid/scaffolds/alchemy/+package+/models.py create mode 100644 pyramid/scaffolds/alchemy/+package+/static/favicon.ico create mode 100644 pyramid/scaffolds/alchemy/+package+/static/footerbg.png create mode 100644 pyramid/scaffolds/alchemy/+package+/static/headerbg.png create mode 100644 pyramid/scaffolds/alchemy/+package+/static/ie6.css create mode 100644 pyramid/scaffolds/alchemy/+package+/static/middlebg.png create mode 100644 pyramid/scaffolds/alchemy/+package+/static/pylons.css create mode 100644 pyramid/scaffolds/alchemy/+package+/static/pyramid-small.png create mode 100644 pyramid/scaffolds/alchemy/+package+/static/pyramid.png create mode 100644 pyramid/scaffolds/alchemy/+package+/static/transparent.gif create mode 100644 pyramid/scaffolds/alchemy/+package+/templates/model.pt_tmpl create mode 100644 pyramid/scaffolds/alchemy/+package+/templates/root.pt_tmpl create mode 100644 pyramid/scaffolds/alchemy/+package+/tests.py_tmpl create mode 100644 pyramid/scaffolds/alchemy/+package+/views.py_tmpl create mode 100644 pyramid/scaffolds/alchemy/CHANGES.txt_tmpl create mode 100644 pyramid/scaffolds/alchemy/MANIFEST.in_tmpl create mode 100644 pyramid/scaffolds/alchemy/README.txt_tmpl create mode 100644 pyramid/scaffolds/alchemy/development.ini_tmpl create mode 100644 pyramid/scaffolds/alchemy/production.ini_tmpl create mode 100644 pyramid/scaffolds/alchemy/setup.cfg_tmpl create mode 100644 pyramid/scaffolds/alchemy/setup.py_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/+package+/models.py create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/favicon.ico create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/footerbg.png create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/headerbg.png create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/ie6.css create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/middlebg.png create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/pylons.css create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/pyramid-small.png create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/pyramid.png create mode 100644 pyramid/scaffolds/routesalchemy/+package+/static/transparent.gif create mode 100644 pyramid/scaffolds/routesalchemy/+package+/templates/mytemplate.pt_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/+package+/tests.py_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/+package+/views.py_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/CHANGES.txt_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/MANIFEST.in_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/README.txt_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/development.ini_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/production.ini_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/setup.cfg_tmpl create mode 100644 pyramid/scaffolds/routesalchemy/setup.py_tmpl create mode 100644 pyramid/scaffolds/starter/+package+/__init__.py_tmpl create mode 100644 pyramid/scaffolds/starter/+package+/resources.py create mode 100644 pyramid/scaffolds/starter/+package+/static/favicon.ico create mode 100644 pyramid/scaffolds/starter/+package+/static/footerbg.png create mode 100644 pyramid/scaffolds/starter/+package+/static/headerbg.png create mode 100644 pyramid/scaffolds/starter/+package+/static/ie6.css create mode 100644 pyramid/scaffolds/starter/+package+/static/middlebg.png create mode 100644 pyramid/scaffolds/starter/+package+/static/pylons.css create mode 100644 pyramid/scaffolds/starter/+package+/static/pyramid-small.png create mode 100644 pyramid/scaffolds/starter/+package+/static/pyramid.png create mode 100644 pyramid/scaffolds/starter/+package+/static/transparent.gif create mode 100644 pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl create mode 100644 pyramid/scaffolds/starter/+package+/tests.py_tmpl create mode 100644 pyramid/scaffolds/starter/+package+/views.py_tmpl create mode 100644 pyramid/scaffolds/starter/CHANGES.txt_tmpl create mode 100644 pyramid/scaffolds/starter/MANIFEST.in_tmpl create mode 100644 pyramid/scaffolds/starter/README.txt_tmpl create mode 100644 pyramid/scaffolds/starter/development.ini_tmpl create mode 100644 pyramid/scaffolds/starter/production.ini_tmpl create mode 100644 pyramid/scaffolds/starter/setup.cfg_tmpl create mode 100644 pyramid/scaffolds/starter/setup.py_tmpl create mode 100644 pyramid/scaffolds/tests.py create mode 100644 pyramid/scaffolds/zodb/+package+/__init__.py_tmpl create mode 100644 pyramid/scaffolds/zodb/+package+/models.py create mode 100644 pyramid/scaffolds/zodb/+package+/static/favicon.ico create mode 100644 pyramid/scaffolds/zodb/+package+/static/footerbg.png create mode 100644 pyramid/scaffolds/zodb/+package+/static/headerbg.png create mode 100644 pyramid/scaffolds/zodb/+package+/static/ie6.css create mode 100644 pyramid/scaffolds/zodb/+package+/static/middlebg.png create mode 100644 pyramid/scaffolds/zodb/+package+/static/pylons.css create mode 100644 pyramid/scaffolds/zodb/+package+/static/pyramid-small.png create mode 100644 pyramid/scaffolds/zodb/+package+/static/pyramid.png create mode 100644 pyramid/scaffolds/zodb/+package+/static/transparent.gif create mode 100644 pyramid/scaffolds/zodb/+package+/templates/mytemplate.pt_tmpl create mode 100644 pyramid/scaffolds/zodb/+package+/tests.py_tmpl create mode 100644 pyramid/scaffolds/zodb/+package+/views.py_tmpl create mode 100644 pyramid/scaffolds/zodb/CHANGES.txt_tmpl create mode 100644 pyramid/scaffolds/zodb/MANIFEST.in_tmpl create mode 100644 pyramid/scaffolds/zodb/README.txt_tmpl create mode 100644 pyramid/scaffolds/zodb/development.ini_tmpl create mode 100644 pyramid/scaffolds/zodb/production.ini_tmpl create mode 100644 pyramid/scaffolds/zodb/setup.cfg_tmpl create mode 100644 pyramid/scaffolds/zodb/setup.py_tmpl create mode 100644 pyramid/tests/test_scaffolds.py delete mode 100644 template_tests.py diff --git a/pyramid/paster.py b/pyramid/paster.py index f82246fea..28d3535df 100644 --- a/pyramid/paster.py +++ b/pyramid/paster.py @@ -4,48 +4,9 @@ from code import interact from paste.deploy import loadapp from paste.script.command import Command -from paste.script.templates import Template -from paste.util.template import paste_script_template_renderer from pyramid.scripting import get_root -class PyramidTemplate(Template): - def pre(self, command, output_dir, vars): - vars['random_string'] = os.urandom(20).encode('hex') - package_logger = vars['package'] - if package_logger == 'root': - # Rename the app logger in the rare case a project is named 'root' - package_logger = 'app' - vars['package_logger'] = package_logger - return Template.pre(self, command, output_dir, vars) - - def post(self, command, output_dir, vars): - self.out('Welcome to Pyramid. Sorry for the convenience.') - return Template.post(self, command, output_dir, vars) - - def out(self, msg): # pragma: no cover (replaceable testing hook) - print msg - -class StarterProjectTemplate(PyramidTemplate): - _template_dir = 'paster_templates/starter' - summary = 'pyramid starter project' - template_renderer = staticmethod(paste_script_template_renderer) - -class ZODBProjectTemplate(PyramidTemplate): - _template_dir = 'paster_templates/zodb' - summary = 'pyramid ZODB starter project' - template_renderer = staticmethod(paste_script_template_renderer) - -class RoutesAlchemyProjectTemplate(PyramidTemplate): - _template_dir = 'paster_templates/routesalchemy' - summary = 'pyramid SQLAlchemy project using url dispatch (no traversal)' - template_renderer = staticmethod(paste_script_template_renderer) - -class AlchemyProjectTemplate(PyramidTemplate): - _template_dir = 'paster_templates/alchemy' - summary = 'pyramid SQLAlchemy project using traversal' - template_renderer = staticmethod(paste_script_template_renderer) - def get_app(config_file, name, loadapp=loadapp): """ Return the WSGI application named ``name`` in the PasteDeploy config file ``config_file``""" diff --git a/pyramid/paster_templates/alchemy/+package+/__init__.py_tmpl b/pyramid/paster_templates/alchemy/+package+/__init__.py_tmpl deleted file mode 100755 index 8dfb3bf0a..000000000 --- a/pyramid/paster_templates/alchemy/+package+/__init__.py_tmpl +++ /dev/null @@ -1,21 +0,0 @@ -from pyramid.config import Configurator -from sqlalchemy import engine_from_config - -from {{package}}.models import appmaker - -def main(global_config, **settings): - """ This function returns a WSGI application. - """ - engine = engine_from_config(settings, 'sqlalchemy.') - get_root = appmaker(engine) - config = Configurator(settings=settings, root_factory=get_root) - config.add_static_view('static', '{{package}}:static') - config.add_view('{{package}}.views.view_root', - context='{{package}}.models.MyRoot', - renderer="templates/root.pt") - config.add_view('{{package}}.views.view_model', - context='{{package}}.models.MyModel', - renderer="templates/model.pt") - return config.make_wsgi_app() - - diff --git a/pyramid/paster_templates/alchemy/+package+/models.py b/pyramid/paster_templates/alchemy/+package+/models.py deleted file mode 100755 index f1b47f98c..000000000 --- a/pyramid/paster_templates/alchemy/+package+/models.py +++ /dev/null @@ -1,84 +0,0 @@ -import transaction - -from sqlalchemy.orm import scoped_session -from sqlalchemy.orm import sessionmaker - -from sqlalchemy.ext.declarative import declarative_base - -from sqlalchemy.exc import IntegrityError - -from sqlalchemy import Integer -from sqlalchemy import Unicode -from sqlalchemy import Column - -from zope.sqlalchemy import ZopeTransactionExtension - -DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) -Base = declarative_base() - -class MyModel(Base): - __tablename__ = 'models' - id = Column(Integer, primary_key=True) - name = Column(Unicode(255), unique=True) - value = Column(Integer) - - def __init__(self, name, value): - self.name = name - self.value = value - -class MyRoot(object): - __name__ = None - __parent__ = None - - def __getitem__(self, key): - session= DBSession() - try: - id = int(key) - except (ValueError, TypeError): - raise KeyError(key) - - item = session.query(MyModel).get(id) - if item is None: - raise KeyError(key) - - item.__parent__ = self - item.__name__ = key - return item - - def get(self, key, default=None): - try: - item = self.__getitem__(key) - except KeyError: - item = default - return item - - def __iter__(self): - session= DBSession() - query = session.query(MyModel) - return iter(query) - -root = MyRoot() - -def root_factory(request): - return root - -def populate(): - session = DBSession() - model = MyModel(name=u'test name', value=55) - session.add(model) - session.flush() - transaction.commit() - -def initialize_sql(engine): - DBSession.configure(bind=engine) - Base.metadata.bind = engine - Base.metadata.create_all(engine) - try: - populate() - except IntegrityError: - DBSession.rollback() - return DBSession - -def appmaker(engine): - initialize_sql(engine) - return root_factory diff --git a/pyramid/paster_templates/alchemy/+package+/static/favicon.ico b/pyramid/paster_templates/alchemy/+package+/static/favicon.ico deleted file mode 100644 index 71f837c9e..000000000 Binary files a/pyramid/paster_templates/alchemy/+package+/static/favicon.ico and /dev/null differ diff --git a/pyramid/paster_templates/alchemy/+package+/static/footerbg.png b/pyramid/paster_templates/alchemy/+package+/static/footerbg.png deleted file mode 100644 index 1fbc873da..000000000 Binary files a/pyramid/paster_templates/alchemy/+package+/static/footerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/alchemy/+package+/static/headerbg.png b/pyramid/paster_templates/alchemy/+package+/static/headerbg.png deleted file mode 100644 index 0596f2020..000000000 Binary files a/pyramid/paster_templates/alchemy/+package+/static/headerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/alchemy/+package+/static/ie6.css b/pyramid/paster_templates/alchemy/+package+/static/ie6.css deleted file mode 100644 index b7c8493d8..000000000 --- a/pyramid/paster_templates/alchemy/+package+/static/ie6.css +++ /dev/null @@ -1,8 +0,0 @@ -* html img, -* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", -this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", -this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) -);} -#wrap{display:table;height:100%} diff --git a/pyramid/paster_templates/alchemy/+package+/static/middlebg.png b/pyramid/paster_templates/alchemy/+package+/static/middlebg.png deleted file mode 100644 index 2369cfb7d..000000000 Binary files a/pyramid/paster_templates/alchemy/+package+/static/middlebg.png and /dev/null differ diff --git a/pyramid/paster_templates/alchemy/+package+/static/pylons.css b/pyramid/paster_templates/alchemy/+package+/static/pylons.css deleted file mode 100644 index d952fb42e..000000000 --- a/pyramid/paster_templates/alchemy/+package+/static/pylons.css +++ /dev/null @@ -1,65 +0,0 @@ -html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ -vertical-align:baseline;background:transparent;} -body{line-height:1;} -ol,ul{list-style:none;} -blockquote,q{quotes:none;} -blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} -:focus{outline:0;} -ins{text-decoration:none;} -del{text-decoration:line-through;} -table{border-collapse:collapse;border-spacing:0;} -sub{vertical-align:sub;font-size:smaller;line-height:normal;} -sup{vertical-align:super;font-size:smaller;line-height:normal;} -ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} -ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} -li{display:list-item;} -ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} -ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} -ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} -.hidden{display:none;} -p{line-height:1.5em;} -h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} -h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} -h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} -h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} -html,body{width:100%;height:100%;} -body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} -a{color:#1b61d6;text-decoration:none;} -a:hover{color:#e88f00;text-decoration:underline;} -body h1, -body h2, -body h3, -body h4, -body h5, -body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} -#wrap{min-height:100%;} -#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} -#header{background:#000000;top:0;font-size:14px;} -#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} -.header,.footer{width:750px;margin-right:auto;margin-left:auto;} -.wrapper{width:100%} -#top,#top-small,#bottom{width:100%;} -#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#bottom{color:#222;background-color:#ffffff;} -.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} -.top{padding-top:40px;} -.top-small{padding-top:10px;} -#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} -.app-welcome{margin-top:25px;} -.app-name{color:#000000;font-weight:bold;} -.bottom{padding-top:50px;} -#left{width:350px;float:left;padding-right:25px;} -#right{width:350px;float:right;padding-left:25px;} -.align-left{text-align:left;} -.align-right{text-align:right;} -.align-center{text-align:center;} -ul.links{margin:0;padding:0;} -ul.links li{list-style-type:none;font-size:14px;} -form{border-style:none;} -fieldset{border-style:none;} -input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} -input[type=text],input[type=password]{width:205px;} -input[type=submit]{background-color:#ddd;font-weight:bold;} -/*Opera Fix*/ -body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/paster_templates/alchemy/+package+/static/pyramid-small.png b/pyramid/paster_templates/alchemy/+package+/static/pyramid-small.png deleted file mode 100644 index a5bc0ade7..000000000 Binary files a/pyramid/paster_templates/alchemy/+package+/static/pyramid-small.png and /dev/null differ diff --git a/pyramid/paster_templates/alchemy/+package+/static/pyramid.png b/pyramid/paster_templates/alchemy/+package+/static/pyramid.png deleted file mode 100644 index 347e05549..000000000 Binary files a/pyramid/paster_templates/alchemy/+package+/static/pyramid.png and /dev/null differ diff --git a/pyramid/paster_templates/alchemy/+package+/static/transparent.gif b/pyramid/paster_templates/alchemy/+package+/static/transparent.gif deleted file mode 100644 index 0341802e5..000000000 Binary files a/pyramid/paster_templates/alchemy/+package+/static/transparent.gif and /dev/null differ diff --git a/pyramid/paster_templates/alchemy/+package+/templates/model.pt_tmpl b/pyramid/paster_templates/alchemy/+package+/templates/model.pt_tmpl deleted file mode 100644 index 9302326f5..000000000 --- a/pyramid/paster_templates/alchemy/+package+/templates/model.pt_tmpl +++ /dev/null @@ -1,82 +0,0 @@ - - - - The Pyramid Web Application Development Framework - - - - - - - - - - -
-
-
-
pyramid
-
-
-
-
-

- Welcome to ${project}, an application generated by
- the Pyramid web application development framework. -

-
-
-
-
-
-

Search documentation

-
- - -
-
-

- Id: ${item.id}
- Name: ${item.name}
- Value: ${item.value} -

-
- -
-
-
- - - diff --git a/pyramid/paster_templates/alchemy/+package+/templates/root.pt_tmpl b/pyramid/paster_templates/alchemy/+package+/templates/root.pt_tmpl deleted file mode 100644 index b0ed476cc..000000000 --- a/pyramid/paster_templates/alchemy/+package+/templates/root.pt_tmpl +++ /dev/null @@ -1,80 +0,0 @@ - - - - The Pyramid Web Application Development Framework - - - - - - - - - - -
-
-
-
pyramid
-
-
-
-
-

- Welcome to ${project}, an application generated by
- the Pyramid web application development framework. -

-
-
-
-
-
-

Search documentation

-
- - -
-
-

- ${item.name} -

-
- -
-
-
- - - diff --git a/pyramid/paster_templates/alchemy/+package+/tests.py_tmpl b/pyramid/paster_templates/alchemy/+package+/tests.py_tmpl deleted file mode 100644 index c073bfc88..000000000 --- a/pyramid/paster_templates/alchemy/+package+/tests.py_tmpl +++ /dev/null @@ -1,60 +0,0 @@ -import unittest - -from pyramid import testing - -def _initTestingDB(): - from sqlalchemy import create_engine - from {{package}}.models import initialize_sql - session = initialize_sql(create_engine('sqlite://')) - return session - -class TestMyRoot(unittest.TestCase): - def setUp(self): - self.config = testing.setUp() - self.session = _initTestingDB() - - def tearDown(self): - testing.tearDown() - self.session.remove() - - def _makeOne(self): - from {{package}}.models import MyRoot - return MyRoot() - - def test___getitem__hit(self): - from {{package}}.models import MyModel - root = self._makeOne() - first = root['1'] - self.assertEqual(first.__class__, MyModel) - self.assertEqual(first.__parent__, root) - self.assertEqual(first.__name__, '1') - - def test___getitem__miss(self): - root = self._makeOne() - self.assertRaises(KeyError, root.__getitem__, '100') - - def test___getitem__notint(self): - root = self._makeOne() - self.assertRaises(KeyError, root.__getitem__, 'notint') - - def test_get_hit(self): - from {{package}}.models import MyModel - root = self._makeOne() - first = root.get('1') - self.assertEqual(first.__class__, MyModel) - self.assertEqual(first.__parent__, root) - self.assertEqual(first.__name__, '1') - - def test_get_miss(self): - root = self._makeOne() - self.assertEqual(root.get('100', 'default'), 'default') - self.assertEqual(root.get('100'), None) - - def test___iter__(self): - root = self._makeOne() - iterable = iter(root) - result = list(iterable) - self.assertEqual(len(result), 1) - model = result[0] - self.assertEqual(model.id, 1) - diff --git a/pyramid/paster_templates/alchemy/+package+/views.py_tmpl b/pyramid/paster_templates/alchemy/+package+/views.py_tmpl deleted file mode 100644 index 12bce138e..000000000 --- a/pyramid/paster_templates/alchemy/+package+/views.py_tmpl +++ /dev/null @@ -1,5 +0,0 @@ -def view_root(context, request): - return {'items':list(context), 'project':'{{project}}'} - -def view_model(context, request): - return {'item':context, 'project':'{{project}}'} diff --git a/pyramid/paster_templates/alchemy/CHANGES.txt_tmpl b/pyramid/paster_templates/alchemy/CHANGES.txt_tmpl deleted file mode 100644 index 5b34f7803..000000000 --- a/pyramid/paster_templates/alchemy/CHANGES.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -0.1 ---- - -- Initial version diff --git a/pyramid/paster_templates/alchemy/MANIFEST.in_tmpl b/pyramid/paster_templates/alchemy/MANIFEST.in_tmpl deleted file mode 100644 index 0ff6eb7a0..000000000 --- a/pyramid/paster_templates/alchemy/MANIFEST.in_tmpl +++ /dev/null @@ -1,2 +0,0 @@ -include *.txt *.ini *.cfg *.rst -recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/paster_templates/alchemy/README.txt_tmpl b/pyramid/paster_templates/alchemy/README.txt_tmpl deleted file mode 100644 index 0ddebfc3e..000000000 --- a/pyramid/paster_templates/alchemy/README.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -{{project}} README - - - diff --git a/pyramid/paster_templates/alchemy/development.ini_tmpl b/pyramid/paster_templates/alchemy/development.ini_tmpl deleted file mode 100644 index accec1718..000000000 --- a/pyramid/paster_templates/alchemy/development.ini_tmpl +++ /dev/null @@ -1,63 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = true -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = true -default_locale_name = en -sqlalchemy.url = sqlite:///%(here)s/{{project}}.db - -[pipeline:main] -pipeline = - egg:WebError#evalerror - tm - {{project}} - -[filter:tm] -use = egg:repoze.tm2#tm -commit_veto = repoze.tm:default_commit_veto - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}}, sqlalchemy - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = INFO -handlers = console - -[logger_{{package_logger}}] -level = DEBUG -handlers = -qualname = {{package}} - -[logger_sqlalchemy] -level = INFO -handlers = -qualname = sqlalchemy.engine -# "level = INFO" logs SQL queries. -# "level = DEBUG" logs SQL queries and results. -# "level = WARN" logs neither. (Recommended for production systems.) - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/alchemy/production.ini_tmpl b/pyramid/paster_templates/alchemy/production.ini_tmpl deleted file mode 100644 index 0deb1dd5f..000000000 --- a/pyramid/paster_templates/alchemy/production.ini_tmpl +++ /dev/null @@ -1,77 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = false -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = false -default_locale_name = en -sqlalchemy.url = sqlite:///%(here)s/{{project}}.db - -[filter:weberror] -use = egg:WebError#error_catcher -debug = false -;error_log = -;show_exceptions_in_wsgi_errors = true -;smtp_server = localhost -;error_email = janitor@example.com -;smtp_username = janitor -;smtp_password = "janitor's password" -;from_address = paste@localhost -;error_subject_prefix = "Pyramid Error" -;smtp_use_tls = -;error_message = - -[filter:tm] -use = egg:repoze.tm2#tm -commit_veto = repoze.tm:default_commit_veto - -[pipeline:main] -pipeline = - weberror - tm - {{project}} - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}}, sqlalchemy - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console - -[logger_{{package_logger}}] -level = WARN -handlers = -qualname = {{package}} - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine -# "level = INFO" logs SQL queries. -# "level = DEBUG" logs SQL queries and results. -# "level = WARN" logs neither. (Recommended for production systems.) - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/alchemy/setup.cfg_tmpl b/pyramid/paster_templates/alchemy/setup.cfg_tmpl deleted file mode 100644 index 5bec29823..000000000 --- a/pyramid/paster_templates/alchemy/setup.cfg_tmpl +++ /dev/null @@ -1,27 +0,0 @@ -[nosetests] -match=^test -nocapture=1 -cover-package={{package}} -with-coverage=1 -cover-erase=1 - -[compile_catalog] -directory = {{package}}/locale -domain = {{project}} -statistics = true - -[extract_messages] -add_comments = TRANSLATORS: -output_file = {{package}}/locale/{{project}}.pot -width = 80 - -[init_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale - -[update_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale -previous = true diff --git a/pyramid/paster_templates/alchemy/setup.py_tmpl b/pyramid/paster_templates/alchemy/setup.py_tmpl deleted file mode 100644 index 8e9da9755..000000000 --- a/pyramid/paster_templates/alchemy/setup.py_tmpl +++ /dev/null @@ -1,47 +0,0 @@ -import os -import sys - -from setuptools import setup, find_packages - -here = os.path.abspath(os.path.dirname(__file__)) -README = open(os.path.join(here, 'README.txt')).read() -CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() - -requires = [ - 'pyramid', - 'repoze.tm2>=1.0b1', # default_commit_veto - 'sqlalchemy', - 'zope.sqlalchemy', - 'WebError', - ] - -if sys.version_info[:3] < (2,5,0): - requires.append('pysqlite') - -setup(name='{{project}}', - version='0.0', - description='{{project}}', - long_description=README + '\n\n' + CHANGES, - classifiers=[ - "Programming Language :: Python", - "Framework :: Pylons", - "Topic :: Internet :: WWW/HTTP", - "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", - ], - author='', - author_email='', - url='', - keywords='web pylons pyramid', - packages=find_packages(), - include_package_data=True, - zip_safe=False, - install_requires = requires, - tests_require = requires, - test_suite="{{package}}", - entry_points = """\ - [paste.app_factory] - main = {{package}}:main - """, - paster_plugins=['pyramid'], - ) - diff --git a/pyramid/paster_templates/routesalchemy/+package+/__init__.py_tmpl b/pyramid/paster_templates/routesalchemy/+package+/__init__.py_tmpl deleted file mode 100644 index f5e3a0630..000000000 --- a/pyramid/paster_templates/routesalchemy/+package+/__init__.py_tmpl +++ /dev/null @@ -1,18 +0,0 @@ -from pyramid.config import Configurator -from sqlalchemy import engine_from_config - -from {{package}}.models import initialize_sql - -def main(global_config, **settings): - """ This function returns a Pyramid WSGI application. - """ - engine = engine_from_config(settings, 'sqlalchemy.') - initialize_sql(engine) - config = Configurator(settings=settings) - config.add_static_view('static', '{{package}}:static') - config.add_route('home', '/') - config.add_view('{{package}}.views.my_view', - route_name='home', - renderer='templates/mytemplate.pt') - return config.make_wsgi_app() - diff --git a/pyramid/paster_templates/routesalchemy/+package+/models.py b/pyramid/paster_templates/routesalchemy/+package+/models.py deleted file mode 100644 index a036e8c91..000000000 --- a/pyramid/paster_templates/routesalchemy/+package+/models.py +++ /dev/null @@ -1,42 +0,0 @@ -import transaction - -from sqlalchemy import Column -from sqlalchemy import Integer -from sqlalchemy import Unicode - -from sqlalchemy.exc import IntegrityError -from sqlalchemy.ext.declarative import declarative_base - -from sqlalchemy.orm import scoped_session -from sqlalchemy.orm import sessionmaker - -from zope.sqlalchemy import ZopeTransactionExtension - -DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) -Base = declarative_base() - -class MyModel(Base): - __tablename__ = 'models' - id = Column(Integer, primary_key=True) - name = Column(Unicode(255), unique=True) - value = Column(Integer) - - def __init__(self, name, value): - self.name = name - self.value = value - -def populate(): - session = DBSession() - model = MyModel(name=u'root', value=55) - session.add(model) - session.flush() - transaction.commit() - -def initialize_sql(engine): - DBSession.configure(bind=engine) - Base.metadata.bind = engine - Base.metadata.create_all(engine) - try: - populate() - except IntegrityError: - DBSession.rollback() diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/favicon.ico b/pyramid/paster_templates/routesalchemy/+package+/static/favicon.ico deleted file mode 100644 index 71f837c9e..000000000 Binary files a/pyramid/paster_templates/routesalchemy/+package+/static/favicon.ico and /dev/null differ diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/footerbg.png b/pyramid/paster_templates/routesalchemy/+package+/static/footerbg.png deleted file mode 100644 index 1fbc873da..000000000 Binary files a/pyramid/paster_templates/routesalchemy/+package+/static/footerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/headerbg.png b/pyramid/paster_templates/routesalchemy/+package+/static/headerbg.png deleted file mode 100644 index 0596f2020..000000000 Binary files a/pyramid/paster_templates/routesalchemy/+package+/static/headerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/ie6.css b/pyramid/paster_templates/routesalchemy/+package+/static/ie6.css deleted file mode 100644 index b7c8493d8..000000000 --- a/pyramid/paster_templates/routesalchemy/+package+/static/ie6.css +++ /dev/null @@ -1,8 +0,0 @@ -* html img, -* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", -this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", -this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) -);} -#wrap{display:table;height:100%} diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/middlebg.png b/pyramid/paster_templates/routesalchemy/+package+/static/middlebg.png deleted file mode 100644 index 2369cfb7d..000000000 Binary files a/pyramid/paster_templates/routesalchemy/+package+/static/middlebg.png and /dev/null differ diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/pylons.css b/pyramid/paster_templates/routesalchemy/+package+/static/pylons.css deleted file mode 100644 index d952fb42e..000000000 --- a/pyramid/paster_templates/routesalchemy/+package+/static/pylons.css +++ /dev/null @@ -1,65 +0,0 @@ -html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ -vertical-align:baseline;background:transparent;} -body{line-height:1;} -ol,ul{list-style:none;} -blockquote,q{quotes:none;} -blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} -:focus{outline:0;} -ins{text-decoration:none;} -del{text-decoration:line-through;} -table{border-collapse:collapse;border-spacing:0;} -sub{vertical-align:sub;font-size:smaller;line-height:normal;} -sup{vertical-align:super;font-size:smaller;line-height:normal;} -ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} -ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} -li{display:list-item;} -ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} -ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} -ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} -.hidden{display:none;} -p{line-height:1.5em;} -h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} -h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} -h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} -h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} -html,body{width:100%;height:100%;} -body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} -a{color:#1b61d6;text-decoration:none;} -a:hover{color:#e88f00;text-decoration:underline;} -body h1, -body h2, -body h3, -body h4, -body h5, -body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} -#wrap{min-height:100%;} -#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} -#header{background:#000000;top:0;font-size:14px;} -#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} -.header,.footer{width:750px;margin-right:auto;margin-left:auto;} -.wrapper{width:100%} -#top,#top-small,#bottom{width:100%;} -#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#bottom{color:#222;background-color:#ffffff;} -.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} -.top{padding-top:40px;} -.top-small{padding-top:10px;} -#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} -.app-welcome{margin-top:25px;} -.app-name{color:#000000;font-weight:bold;} -.bottom{padding-top:50px;} -#left{width:350px;float:left;padding-right:25px;} -#right{width:350px;float:right;padding-left:25px;} -.align-left{text-align:left;} -.align-right{text-align:right;} -.align-center{text-align:center;} -ul.links{margin:0;padding:0;} -ul.links li{list-style-type:none;font-size:14px;} -form{border-style:none;} -fieldset{border-style:none;} -input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} -input[type=text],input[type=password]{width:205px;} -input[type=submit]{background-color:#ddd;font-weight:bold;} -/*Opera Fix*/ -body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/pyramid-small.png b/pyramid/paster_templates/routesalchemy/+package+/static/pyramid-small.png deleted file mode 100644 index a5bc0ade7..000000000 Binary files a/pyramid/paster_templates/routesalchemy/+package+/static/pyramid-small.png and /dev/null differ diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/pyramid.png b/pyramid/paster_templates/routesalchemy/+package+/static/pyramid.png deleted file mode 100644 index 347e05549..000000000 Binary files a/pyramid/paster_templates/routesalchemy/+package+/static/pyramid.png and /dev/null differ diff --git a/pyramid/paster_templates/routesalchemy/+package+/static/transparent.gif b/pyramid/paster_templates/routesalchemy/+package+/static/transparent.gif deleted file mode 100644 index 0341802e5..000000000 Binary files a/pyramid/paster_templates/routesalchemy/+package+/static/transparent.gif and /dev/null differ diff --git a/pyramid/paster_templates/routesalchemy/+package+/templates/mytemplate.pt_tmpl b/pyramid/paster_templates/routesalchemy/+package+/templates/mytemplate.pt_tmpl deleted file mode 100644 index 4fbc554e9..000000000 --- a/pyramid/paster_templates/routesalchemy/+package+/templates/mytemplate.pt_tmpl +++ /dev/null @@ -1,76 +0,0 @@ - - - - The Pyramid Web Application Development Framework - - - - - - - - - - -
-
-
-
pyramid
-
-
-
-
-

- Welcome to ${project}, an application generated by
- the Pyramid web application development framework. -

-
-
-
-
-
-

Search documentation

-
- - -
-
- -
-
-
- - - diff --git a/pyramid/paster_templates/routesalchemy/+package+/tests.py_tmpl b/pyramid/paster_templates/routesalchemy/+package+/tests.py_tmpl deleted file mode 100644 index 29aea7258..000000000 --- a/pyramid/paster_templates/routesalchemy/+package+/tests.py_tmpl +++ /dev/null @@ -1,24 +0,0 @@ -import unittest -from pyramid.config import Configurator -from pyramid import testing - -def _initTestingDB(): - from sqlalchemy import create_engine - from {{package}}.models import initialize_sql - session = initialize_sql(create_engine('sqlite://')) - return session - -class TestMyView(unittest.TestCase): - def setUp(self): - self.config = testing.setUp() - _initTestingDB() - - def tearDown(self): - testing.tearDown() - - def test_it(self): - from {{package}}.views import my_view - request = testing.DummyRequest() - info = my_view(request) - self.assertEqual(info['root'].name, 'root') - self.assertEqual(info['project'], '{{project}}') diff --git a/pyramid/paster_templates/routesalchemy/+package+/views.py_tmpl b/pyramid/paster_templates/routesalchemy/+package+/views.py_tmpl deleted file mode 100644 index 86cc02e41..000000000 --- a/pyramid/paster_templates/routesalchemy/+package+/views.py_tmpl +++ /dev/null @@ -1,7 +0,0 @@ -from {{package}}.models import DBSession -from {{package}}.models import MyModel - -def my_view(request): - dbsession = DBSession() - root = dbsession.query(MyModel).filter(MyModel.name==u'root').first() - return {'root':root, 'project':'{{project}}'} diff --git a/pyramid/paster_templates/routesalchemy/CHANGES.txt_tmpl b/pyramid/paster_templates/routesalchemy/CHANGES.txt_tmpl deleted file mode 100644 index 35a34f332..000000000 --- a/pyramid/paster_templates/routesalchemy/CHANGES.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -0.0 ---- - -- Initial version diff --git a/pyramid/paster_templates/routesalchemy/MANIFEST.in_tmpl b/pyramid/paster_templates/routesalchemy/MANIFEST.in_tmpl deleted file mode 100644 index 0ff6eb7a0..000000000 --- a/pyramid/paster_templates/routesalchemy/MANIFEST.in_tmpl +++ /dev/null @@ -1,2 +0,0 @@ -include *.txt *.ini *.cfg *.rst -recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/paster_templates/routesalchemy/README.txt_tmpl b/pyramid/paster_templates/routesalchemy/README.txt_tmpl deleted file mode 100644 index 0ddebfc3e..000000000 --- a/pyramid/paster_templates/routesalchemy/README.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -{{project}} README - - - diff --git a/pyramid/paster_templates/routesalchemy/development.ini_tmpl b/pyramid/paster_templates/routesalchemy/development.ini_tmpl deleted file mode 100644 index accec1718..000000000 --- a/pyramid/paster_templates/routesalchemy/development.ini_tmpl +++ /dev/null @@ -1,63 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = true -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = true -default_locale_name = en -sqlalchemy.url = sqlite:///%(here)s/{{project}}.db - -[pipeline:main] -pipeline = - egg:WebError#evalerror - tm - {{project}} - -[filter:tm] -use = egg:repoze.tm2#tm -commit_veto = repoze.tm:default_commit_veto - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}}, sqlalchemy - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = INFO -handlers = console - -[logger_{{package_logger}}] -level = DEBUG -handlers = -qualname = {{package}} - -[logger_sqlalchemy] -level = INFO -handlers = -qualname = sqlalchemy.engine -# "level = INFO" logs SQL queries. -# "level = DEBUG" logs SQL queries and results. -# "level = WARN" logs neither. (Recommended for production systems.) - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/routesalchemy/production.ini_tmpl b/pyramid/paster_templates/routesalchemy/production.ini_tmpl deleted file mode 100644 index 0deb1dd5f..000000000 --- a/pyramid/paster_templates/routesalchemy/production.ini_tmpl +++ /dev/null @@ -1,77 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = false -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = false -default_locale_name = en -sqlalchemy.url = sqlite:///%(here)s/{{project}}.db - -[filter:weberror] -use = egg:WebError#error_catcher -debug = false -;error_log = -;show_exceptions_in_wsgi_errors = true -;smtp_server = localhost -;error_email = janitor@example.com -;smtp_username = janitor -;smtp_password = "janitor's password" -;from_address = paste@localhost -;error_subject_prefix = "Pyramid Error" -;smtp_use_tls = -;error_message = - -[filter:tm] -use = egg:repoze.tm2#tm -commit_veto = repoze.tm:default_commit_veto - -[pipeline:main] -pipeline = - weberror - tm - {{project}} - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}}, sqlalchemy - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console - -[logger_{{package_logger}}] -level = WARN -handlers = -qualname = {{package}} - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine -# "level = INFO" logs SQL queries. -# "level = DEBUG" logs SQL queries and results. -# "level = WARN" logs neither. (Recommended for production systems.) - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/routesalchemy/setup.cfg_tmpl b/pyramid/paster_templates/routesalchemy/setup.cfg_tmpl deleted file mode 100644 index 5bec29823..000000000 --- a/pyramid/paster_templates/routesalchemy/setup.cfg_tmpl +++ /dev/null @@ -1,27 +0,0 @@ -[nosetests] -match=^test -nocapture=1 -cover-package={{package}} -with-coverage=1 -cover-erase=1 - -[compile_catalog] -directory = {{package}}/locale -domain = {{project}} -statistics = true - -[extract_messages] -add_comments = TRANSLATORS: -output_file = {{package}}/locale/{{project}}.pot -width = 80 - -[init_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale - -[update_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale -previous = true diff --git a/pyramid/paster_templates/routesalchemy/setup.py_tmpl b/pyramid/paster_templates/routesalchemy/setup.py_tmpl deleted file mode 100644 index 936a5dde0..000000000 --- a/pyramid/paster_templates/routesalchemy/setup.py_tmpl +++ /dev/null @@ -1,47 +0,0 @@ -import os -import sys - -from setuptools import setup, find_packages - -here = os.path.abspath(os.path.dirname(__file__)) -README = open(os.path.join(here, 'README.txt')).read() -CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() - -requires = [ - 'pyramid', - 'SQLAlchemy', - 'transaction', - 'repoze.tm2>=1.0b1', # default_commit_veto - 'zope.sqlalchemy', - 'WebError', - ] - -if sys.version_info[:3] < (2,5,0): - requires.append('pysqlite') - -setup(name='{{project}}', - version='0.0', - description='{{project}}', - long_description=README + '\n\n' + CHANGES, - classifiers=[ - "Programming Language :: Python", - "Framework :: Pylons", - "Topic :: Internet :: WWW/HTTP", - "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", - ], - author='', - author_email='', - url='', - keywords='web wsgi bfg pylons pyramid', - packages=find_packages(), - include_package_data=True, - zip_safe=False, - test_suite='{{package}}', - install_requires = requires, - entry_points = """\ - [paste.app_factory] - main = {{package}}:main - """, - paster_plugins=['pyramid'], - ) - diff --git a/pyramid/paster_templates/starter/+package+/__init__.py_tmpl b/pyramid/paster_templates/starter/+package+/__init__.py_tmpl deleted file mode 100644 index 3cfaa63a2..000000000 --- a/pyramid/paster_templates/starter/+package+/__init__.py_tmpl +++ /dev/null @@ -1,13 +0,0 @@ -from pyramid.config import Configurator -from {{package}}.resources import Root - -def main(global_config, **settings): - """ This function returns a Pyramid WSGI application. - """ - config = Configurator(root_factory=Root, settings=settings) - config.add_view('{{package}}.views.my_view', - context='{{package}}:resources.Root', - renderer='{{package}}:templates/mytemplate.pt') - config.add_static_view('static', '{{package}}:static') - return config.make_wsgi_app() - diff --git a/pyramid/paster_templates/starter/+package+/resources.py b/pyramid/paster_templates/starter/+package+/resources.py deleted file mode 100644 index 3d811895c..000000000 --- a/pyramid/paster_templates/starter/+package+/resources.py +++ /dev/null @@ -1,3 +0,0 @@ -class Root(object): - def __init__(self, request): - self.request = request diff --git a/pyramid/paster_templates/starter/+package+/static/favicon.ico b/pyramid/paster_templates/starter/+package+/static/favicon.ico deleted file mode 100644 index 71f837c9e..000000000 Binary files a/pyramid/paster_templates/starter/+package+/static/favicon.ico and /dev/null differ diff --git a/pyramid/paster_templates/starter/+package+/static/footerbg.png b/pyramid/paster_templates/starter/+package+/static/footerbg.png deleted file mode 100644 index 1fbc873da..000000000 Binary files a/pyramid/paster_templates/starter/+package+/static/footerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/starter/+package+/static/headerbg.png b/pyramid/paster_templates/starter/+package+/static/headerbg.png deleted file mode 100644 index 0596f2020..000000000 Binary files a/pyramid/paster_templates/starter/+package+/static/headerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/starter/+package+/static/ie6.css b/pyramid/paster_templates/starter/+package+/static/ie6.css deleted file mode 100644 index b7c8493d8..000000000 --- a/pyramid/paster_templates/starter/+package+/static/ie6.css +++ /dev/null @@ -1,8 +0,0 @@ -* html img, -* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", -this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", -this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) -);} -#wrap{display:table;height:100%} diff --git a/pyramid/paster_templates/starter/+package+/static/middlebg.png b/pyramid/paster_templates/starter/+package+/static/middlebg.png deleted file mode 100644 index 2369cfb7d..000000000 Binary files a/pyramid/paster_templates/starter/+package+/static/middlebg.png and /dev/null differ diff --git a/pyramid/paster_templates/starter/+package+/static/pylons.css b/pyramid/paster_templates/starter/+package+/static/pylons.css deleted file mode 100644 index d952fb42e..000000000 --- a/pyramid/paster_templates/starter/+package+/static/pylons.css +++ /dev/null @@ -1,65 +0,0 @@ -html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ -vertical-align:baseline;background:transparent;} -body{line-height:1;} -ol,ul{list-style:none;} -blockquote,q{quotes:none;} -blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} -:focus{outline:0;} -ins{text-decoration:none;} -del{text-decoration:line-through;} -table{border-collapse:collapse;border-spacing:0;} -sub{vertical-align:sub;font-size:smaller;line-height:normal;} -sup{vertical-align:super;font-size:smaller;line-height:normal;} -ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} -ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} -li{display:list-item;} -ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} -ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} -ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} -.hidden{display:none;} -p{line-height:1.5em;} -h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} -h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} -h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} -h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} -html,body{width:100%;height:100%;} -body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} -a{color:#1b61d6;text-decoration:none;} -a:hover{color:#e88f00;text-decoration:underline;} -body h1, -body h2, -body h3, -body h4, -body h5, -body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} -#wrap{min-height:100%;} -#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} -#header{background:#000000;top:0;font-size:14px;} -#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} -.header,.footer{width:750px;margin-right:auto;margin-left:auto;} -.wrapper{width:100%} -#top,#top-small,#bottom{width:100%;} -#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#bottom{color:#222;background-color:#ffffff;} -.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} -.top{padding-top:40px;} -.top-small{padding-top:10px;} -#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} -.app-welcome{margin-top:25px;} -.app-name{color:#000000;font-weight:bold;} -.bottom{padding-top:50px;} -#left{width:350px;float:left;padding-right:25px;} -#right{width:350px;float:right;padding-left:25px;} -.align-left{text-align:left;} -.align-right{text-align:right;} -.align-center{text-align:center;} -ul.links{margin:0;padding:0;} -ul.links li{list-style-type:none;font-size:14px;} -form{border-style:none;} -fieldset{border-style:none;} -input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} -input[type=text],input[type=password]{width:205px;} -input[type=submit]{background-color:#ddd;font-weight:bold;} -/*Opera Fix*/ -body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/paster_templates/starter/+package+/static/pyramid-small.png b/pyramid/paster_templates/starter/+package+/static/pyramid-small.png deleted file mode 100644 index a5bc0ade7..000000000 Binary files a/pyramid/paster_templates/starter/+package+/static/pyramid-small.png and /dev/null differ diff --git a/pyramid/paster_templates/starter/+package+/static/pyramid.png b/pyramid/paster_templates/starter/+package+/static/pyramid.png deleted file mode 100644 index 347e05549..000000000 Binary files a/pyramid/paster_templates/starter/+package+/static/pyramid.png and /dev/null differ diff --git a/pyramid/paster_templates/starter/+package+/static/transparent.gif b/pyramid/paster_templates/starter/+package+/static/transparent.gif deleted file mode 100644 index 0341802e5..000000000 Binary files a/pyramid/paster_templates/starter/+package+/static/transparent.gif and /dev/null differ diff --git a/pyramid/paster_templates/starter/+package+/templates/mytemplate.pt_tmpl b/pyramid/paster_templates/starter/+package+/templates/mytemplate.pt_tmpl deleted file mode 100644 index 4fbc554e9..000000000 --- a/pyramid/paster_templates/starter/+package+/templates/mytemplate.pt_tmpl +++ /dev/null @@ -1,76 +0,0 @@ - - - - The Pyramid Web Application Development Framework - - - - - - - - - - -
-
-
-
pyramid
-
-
-
-
-

- Welcome to ${project}, an application generated by
- the Pyramid web application development framework. -

-
-
-
-
-
-

Search documentation

-
- - -
-
- -
-
-
- - - diff --git a/pyramid/paster_templates/starter/+package+/tests.py_tmpl b/pyramid/paster_templates/starter/+package+/tests.py_tmpl deleted file mode 100644 index 1627bf015..000000000 --- a/pyramid/paster_templates/starter/+package+/tests.py_tmpl +++ /dev/null @@ -1,16 +0,0 @@ -import unittest - -from pyramid import testing - -class ViewTests(unittest.TestCase): - def setUp(self): - self.config = testing.setUp() - - def tearDown(self): - testing.tearDown() - - def test_my_view(self): - from {{package}}.views import my_view - request = testing.DummyRequest() - info = my_view(request) - self.assertEqual(info['project'], '{{project}}') diff --git a/pyramid/paster_templates/starter/+package+/views.py_tmpl b/pyramid/paster_templates/starter/+package+/views.py_tmpl deleted file mode 100644 index 12ed8832d..000000000 --- a/pyramid/paster_templates/starter/+package+/views.py_tmpl +++ /dev/null @@ -1,2 +0,0 @@ -def my_view(request): - return {'project':'{{project}}'} diff --git a/pyramid/paster_templates/starter/CHANGES.txt_tmpl b/pyramid/paster_templates/starter/CHANGES.txt_tmpl deleted file mode 100644 index 35a34f332..000000000 --- a/pyramid/paster_templates/starter/CHANGES.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -0.0 ---- - -- Initial version diff --git a/pyramid/paster_templates/starter/MANIFEST.in_tmpl b/pyramid/paster_templates/starter/MANIFEST.in_tmpl deleted file mode 100644 index 0ff6eb7a0..000000000 --- a/pyramid/paster_templates/starter/MANIFEST.in_tmpl +++ /dev/null @@ -1,2 +0,0 @@ -include *.txt *.ini *.cfg *.rst -recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/paster_templates/starter/README.txt_tmpl b/pyramid/paster_templates/starter/README.txt_tmpl deleted file mode 100644 index 0ddebfc3e..000000000 --- a/pyramid/paster_templates/starter/README.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -{{project}} README - - - diff --git a/pyramid/paster_templates/starter/development.ini_tmpl b/pyramid/paster_templates/starter/development.ini_tmpl deleted file mode 100644 index 60e52da57..000000000 --- a/pyramid/paster_templates/starter/development.ini_tmpl +++ /dev/null @@ -1,49 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = true -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = true -default_locale_name = en - -[pipeline:main] -pipeline = - egg:WebError#evalerror - {{project}} - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}} - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = INFO -handlers = console - -[logger_{{package_logger}}] -level = DEBUG -handlers = -qualname = {{package}} - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/starter/production.ini_tmpl b/pyramid/paster_templates/starter/production.ini_tmpl deleted file mode 100644 index dea0ef2c6..000000000 --- a/pyramid/paster_templates/starter/production.ini_tmpl +++ /dev/null @@ -1,63 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = false -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = false -default_locale_name = en - -[filter:weberror] -use = egg:WebError#error_catcher -debug = false -;error_log = -;show_exceptions_in_wsgi_errors = true -;smtp_server = localhost -;error_email = janitor@example.com -;smtp_username = janitor -;smtp_password = "janitor's password" -;from_address = paste@localhost -;error_subject_prefix = "Pyramid Error" -;smtp_use_tls = -;error_message = - -[pipeline:main] -pipeline = - weberror - {{project}} - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}} - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console - -[logger_{{package_logger}}] -level = WARN -handlers = -qualname = {{package}} - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/starter/setup.cfg_tmpl b/pyramid/paster_templates/starter/setup.cfg_tmpl deleted file mode 100644 index 04c738049..000000000 --- a/pyramid/paster_templates/starter/setup.cfg_tmpl +++ /dev/null @@ -1,27 +0,0 @@ -[nosetests] -match = ^test -nocapture = 1 -cover-package = {{package}} -with-coverage = 1 -cover-erase = 1 - -[compile_catalog] -directory = {{package}}/locale -domain = {{project}} -statistics = true - -[extract_messages] -add_comments = TRANSLATORS: -output_file = {{package}}/locale/{{project}}.pot -width = 80 - -[init_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale - -[update_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale -previous = true diff --git a/pyramid/paster_templates/starter/setup.py_tmpl b/pyramid/paster_templates/starter/setup.py_tmpl deleted file mode 100644 index bd2642627..000000000 --- a/pyramid/paster_templates/starter/setup.py_tmpl +++ /dev/null @@ -1,37 +0,0 @@ -import os - -from setuptools import setup, find_packages - -here = os.path.abspath(os.path.dirname(__file__)) -README = open(os.path.join(here, 'README.txt')).read() -CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() - -requires = ['pyramid', 'WebError'] - -setup(name='{{project}}', - version='0.0', - description='{{project}}', - long_description=README + '\n\n' + CHANGES, - classifiers=[ - "Programming Language :: Python", - "Framework :: Pylons", - "Topic :: Internet :: WWW/HTTP", - "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", - ], - author='', - author_email='', - url='', - keywords='web pyramid pylons', - packages=find_packages(), - include_package_data=True, - zip_safe=False, - install_requires=requires, - tests_require=requires, - test_suite="{{package}}", - entry_points = """\ - [paste.app_factory] - main = {{package}}:main - """, - paster_plugins=['pyramid'], - ) - diff --git a/pyramid/paster_templates/zodb/+package+/__init__.py_tmpl b/pyramid/paster_templates/zodb/+package+/__init__.py_tmpl deleted file mode 100644 index 2fe3496aa..000000000 --- a/pyramid/paster_templates/zodb/+package+/__init__.py_tmpl +++ /dev/null @@ -1,18 +0,0 @@ -from pyramid.config import Configurator -from repoze.zodbconn.finder import PersistentApplicationFinder -from {{package}}.models import appmaker - -def main(global_config, **settings): - """ This function returns a Pyramid WSGI application. - """ - zodb_uri = settings.get('zodb_uri') - if zodb_uri is None: - raise ValueError("No 'zodb_uri' in application configuration.") - - finder = PersistentApplicationFinder(zodb_uri, appmaker) - def get_root(request): - return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings) - config.add_static_view('static', '{{package}}:static') - config.scan('{{package}}') - return config.make_wsgi_app() diff --git a/pyramid/paster_templates/zodb/+package+/models.py b/pyramid/paster_templates/zodb/+package+/models.py deleted file mode 100644 index 8dd0f5a49..000000000 --- a/pyramid/paster_templates/zodb/+package+/models.py +++ /dev/null @@ -1,12 +0,0 @@ -from persistent.mapping import PersistentMapping - -class MyModel(PersistentMapping): - __parent__ = __name__ = None - -def appmaker(zodb_root): - if not 'app_root' in zodb_root: - app_root = MyModel() - zodb_root['app_root'] = app_root - import transaction - transaction.commit() - return zodb_root['app_root'] diff --git a/pyramid/paster_templates/zodb/+package+/static/favicon.ico b/pyramid/paster_templates/zodb/+package+/static/favicon.ico deleted file mode 100644 index 71f837c9e..000000000 Binary files a/pyramid/paster_templates/zodb/+package+/static/favicon.ico and /dev/null differ diff --git a/pyramid/paster_templates/zodb/+package+/static/footerbg.png b/pyramid/paster_templates/zodb/+package+/static/footerbg.png deleted file mode 100644 index 1fbc873da..000000000 Binary files a/pyramid/paster_templates/zodb/+package+/static/footerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/zodb/+package+/static/headerbg.png b/pyramid/paster_templates/zodb/+package+/static/headerbg.png deleted file mode 100644 index 0596f2020..000000000 Binary files a/pyramid/paster_templates/zodb/+package+/static/headerbg.png and /dev/null differ diff --git a/pyramid/paster_templates/zodb/+package+/static/ie6.css b/pyramid/paster_templates/zodb/+package+/static/ie6.css deleted file mode 100644 index b7c8493d8..000000000 --- a/pyramid/paster_templates/zodb/+package+/static/ie6.css +++ /dev/null @@ -1,8 +0,0 @@ -* html img, -* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", -this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), -this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", -this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) -);} -#wrap{display:table;height:100%} diff --git a/pyramid/paster_templates/zodb/+package+/static/middlebg.png b/pyramid/paster_templates/zodb/+package+/static/middlebg.png deleted file mode 100644 index 2369cfb7d..000000000 Binary files a/pyramid/paster_templates/zodb/+package+/static/middlebg.png and /dev/null differ diff --git a/pyramid/paster_templates/zodb/+package+/static/pylons.css b/pyramid/paster_templates/zodb/+package+/static/pylons.css deleted file mode 100644 index d952fb42e..000000000 --- a/pyramid/paster_templates/zodb/+package+/static/pylons.css +++ /dev/null @@ -1,65 +0,0 @@ -html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ -vertical-align:baseline;background:transparent;} -body{line-height:1;} -ol,ul{list-style:none;} -blockquote,q{quotes:none;} -blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} -:focus{outline:0;} -ins{text-decoration:none;} -del{text-decoration:line-through;} -table{border-collapse:collapse;border-spacing:0;} -sub{vertical-align:sub;font-size:smaller;line-height:normal;} -sup{vertical-align:super;font-size:smaller;line-height:normal;} -ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} -ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} -li{display:list-item;} -ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} -ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} -ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} -.hidden{display:none;} -p{line-height:1.5em;} -h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} -h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} -h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} -h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} -html,body{width:100%;height:100%;} -body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} -a{color:#1b61d6;text-decoration:none;} -a:hover{color:#e88f00;text-decoration:underline;} -body h1, -body h2, -body h3, -body h4, -body h5, -body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} -#wrap{min-height:100%;} -#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} -#header{background:#000000;top:0;font-size:14px;} -#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} -.header,.footer{width:750px;margin-right:auto;margin-left:auto;} -.wrapper{width:100%} -#top,#top-small,#bottom{width:100%;} -#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} -#bottom{color:#222;background-color:#ffffff;} -.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} -.top{padding-top:40px;} -.top-small{padding-top:10px;} -#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} -.app-welcome{margin-top:25px;} -.app-name{color:#000000;font-weight:bold;} -.bottom{padding-top:50px;} -#left{width:350px;float:left;padding-right:25px;} -#right{width:350px;float:right;padding-left:25px;} -.align-left{text-align:left;} -.align-right{text-align:right;} -.align-center{text-align:center;} -ul.links{margin:0;padding:0;} -ul.links li{list-style-type:none;font-size:14px;} -form{border-style:none;} -fieldset{border-style:none;} -input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} -input[type=text],input[type=password]{width:205px;} -input[type=submit]{background-color:#ddd;font-weight:bold;} -/*Opera Fix*/ -body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/paster_templates/zodb/+package+/static/pyramid-small.png b/pyramid/paster_templates/zodb/+package+/static/pyramid-small.png deleted file mode 100644 index a5bc0ade7..000000000 Binary files a/pyramid/paster_templates/zodb/+package+/static/pyramid-small.png and /dev/null differ diff --git a/pyramid/paster_templates/zodb/+package+/static/pyramid.png b/pyramid/paster_templates/zodb/+package+/static/pyramid.png deleted file mode 100644 index 347e05549..000000000 Binary files a/pyramid/paster_templates/zodb/+package+/static/pyramid.png and /dev/null differ diff --git a/pyramid/paster_templates/zodb/+package+/static/transparent.gif b/pyramid/paster_templates/zodb/+package+/static/transparent.gif deleted file mode 100644 index 0341802e5..000000000 Binary files a/pyramid/paster_templates/zodb/+package+/static/transparent.gif and /dev/null differ diff --git a/pyramid/paster_templates/zodb/+package+/templates/mytemplate.pt_tmpl b/pyramid/paster_templates/zodb/+package+/templates/mytemplate.pt_tmpl deleted file mode 100644 index 4fbc554e9..000000000 --- a/pyramid/paster_templates/zodb/+package+/templates/mytemplate.pt_tmpl +++ /dev/null @@ -1,76 +0,0 @@ - - - - The Pyramid Web Application Development Framework - - - - - - - - - - -
-
-
-
pyramid
-
-
-
-
-

- Welcome to ${project}, an application generated by
- the Pyramid web application development framework. -

-
-
-
-
-
-

Search documentation

-
- - -
-
- -
-
-
- - - diff --git a/pyramid/paster_templates/zodb/+package+/tests.py_tmpl b/pyramid/paster_templates/zodb/+package+/tests.py_tmpl deleted file mode 100644 index b0cbe33ad..000000000 --- a/pyramid/paster_templates/zodb/+package+/tests.py_tmpl +++ /dev/null @@ -1,17 +0,0 @@ -import unittest - -from pyramid import testing - -class ViewTests(unittest.TestCase): - def setUp(self): - self.config = testing.setUp() - - def tearDown(self): - testing.tearDown() - - def test_my_view(self): - from {{package}}.views import my_view - request = testing.DummyRequest() - info = my_view(request) - self.assertEqual(info['project'], '{{project}}') - diff --git a/pyramid/paster_templates/zodb/+package+/views.py_tmpl b/pyramid/paster_templates/zodb/+package+/views.py_tmpl deleted file mode 100644 index d4a1147c6..000000000 --- a/pyramid/paster_templates/zodb/+package+/views.py_tmpl +++ /dev/null @@ -1,6 +0,0 @@ -from pyramid.view import view_config -from {{package}}.models import MyModel - -@view_config(context=MyModel, renderer='{{package}}:templates/mytemplate.pt') -def my_view(request): - return {'project':'{{project}}'} diff --git a/pyramid/paster_templates/zodb/CHANGES.txt_tmpl b/pyramid/paster_templates/zodb/CHANGES.txt_tmpl deleted file mode 100644 index 35a34f332..000000000 --- a/pyramid/paster_templates/zodb/CHANGES.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -0.0 ---- - -- Initial version diff --git a/pyramid/paster_templates/zodb/MANIFEST.in_tmpl b/pyramid/paster_templates/zodb/MANIFEST.in_tmpl deleted file mode 100644 index 0ff6eb7a0..000000000 --- a/pyramid/paster_templates/zodb/MANIFEST.in_tmpl +++ /dev/null @@ -1,2 +0,0 @@ -include *.txt *.ini *.cfg *.rst -recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/paster_templates/zodb/README.txt_tmpl b/pyramid/paster_templates/zodb/README.txt_tmpl deleted file mode 100644 index 0ddebfc3e..000000000 --- a/pyramid/paster_templates/zodb/README.txt_tmpl +++ /dev/null @@ -1,4 +0,0 @@ -{{project}} README - - - diff --git a/pyramid/paster_templates/zodb/development.ini_tmpl b/pyramid/paster_templates/zodb/development.ini_tmpl deleted file mode 100644 index ae9584690..000000000 --- a/pyramid/paster_templates/zodb/development.ini_tmpl +++ /dev/null @@ -1,57 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = true -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = true -default_locale_name = en -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 - -[pipeline:main] -pipeline = - egg:WebError#evalerror - egg:repoze.zodbconn#closer - egg:repoze.retry#retry - tm - {{project}} - -[filter:tm] -use = egg:repoze.tm2#tm -commit_veto = repoze.tm:default_commit_veto - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}} - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = INFO -handlers = console - -[logger_{{package_logger}}] -level = DEBUG -handlers = -qualname = {{package}} - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/zodb/production.ini_tmpl b/pyramid/paster_templates/zodb/production.ini_tmpl deleted file mode 100644 index ff52a0585..000000000 --- a/pyramid/paster_templates/zodb/production.ini_tmpl +++ /dev/null @@ -1,71 +0,0 @@ -[app:{{project}}] -use = egg:{{project}} -reload_templates = false -debug_authorization = false -debug_notfound = false -debug_routematch = false -debug_templates = false -default_locale_name = en -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 - -[filter:weberror] -use = egg:WebError#error_catcher -debug = false -;error_log = -;show_exceptions_in_wsgi_errors = true -;smtp_server = localhost -;error_email = janitor@example.com -;smtp_username = janitor -;smtp_password = "janitor's password" -;from_address = paste@localhost -;error_subject_prefix = "Pyramid Error" -;smtp_use_tls = -;error_message = - -[filter:tm] -use = egg:repoze.tm2#tm -commit_veto = repoze.tm:default_commit_veto - -[pipeline:main] -pipeline = - weberror - egg:repoze.zodbconn#closer - egg:repoze.retry#retry - tm - {{project}} - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 - -# Begin logging configuration - -[loggers] -keys = root, {{package_logger}} - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console - -[logger_{{package_logger}}] -level = WARN -handlers = -qualname = {{package}} - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s - -# End logging configuration diff --git a/pyramid/paster_templates/zodb/setup.cfg_tmpl b/pyramid/paster_templates/zodb/setup.cfg_tmpl deleted file mode 100644 index 5bec29823..000000000 --- a/pyramid/paster_templates/zodb/setup.cfg_tmpl +++ /dev/null @@ -1,27 +0,0 @@ -[nosetests] -match=^test -nocapture=1 -cover-package={{package}} -with-coverage=1 -cover-erase=1 - -[compile_catalog] -directory = {{package}}/locale -domain = {{project}} -statistics = true - -[extract_messages] -add_comments = TRANSLATORS: -output_file = {{package}}/locale/{{project}}.pot -width = 80 - -[init_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale - -[update_catalog] -domain = {{project}} -input_file = {{package}}/locale/{{project}}.pot -output_dir = {{package}}/locale -previous = true diff --git a/pyramid/paster_templates/zodb/setup.py_tmpl b/pyramid/paster_templates/zodb/setup.py_tmpl deleted file mode 100644 index 46759b514..000000000 --- a/pyramid/paster_templates/zodb/setup.py_tmpl +++ /dev/null @@ -1,44 +0,0 @@ -import os - -from setuptools import setup, find_packages - -here = os.path.abspath(os.path.dirname(__file__)) -README = open(os.path.join(here, 'README.txt')).read() -CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() - -requires = [ - 'pyramid', - 'repoze.zodbconn', - 'repoze.tm2>=1.0b1', # default_commit_veto - 'repoze.retry', - 'ZODB3', - 'WebError', - ] - -setup(name='{{project}}', - version='0.0', - description='{{project}}', - long_description=README + '\n\n' + CHANGES, - classifiers=[ - "Programming Language :: Python", - "Framework :: Pylons", - "Topic :: Internet :: WWW/HTTP", - "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", - ], - author='', - author_email='', - url='', - keywords='web pylons pyramid', - packages=find_packages(), - include_package_data=True, - zip_safe=False, - install_requires = requires, - tests_require= requires, - test_suite="{{package}}", - entry_points = """\ - [paste.app_factory] - main = {{package}}:main - """, - paster_plugins=['pyramid'], - ) - diff --git a/pyramid/scaffolds/__init__.py b/pyramid/scaffolds/__init__.py new file mode 100644 index 000000000..a49bbd9f6 --- /dev/null +++ b/pyramid/scaffolds/__init__.py @@ -0,0 +1,42 @@ +import os + +from paste.script.templates import Template +from paste.util.template import paste_script_template_renderer + +class PyramidTemplate(Template): + def pre(self, command, output_dir, vars): + vars['random_string'] = os.urandom(20).encode('hex') + package_logger = vars['package'] + if package_logger == 'root': + # Rename the app logger in the rare case a project is named 'root' + package_logger = 'app' + vars['package_logger'] = package_logger + return Template.pre(self, command, output_dir, vars) + + def post(self, command, output_dir, vars): + self.out('Welcome to Pyramid. Sorry for the convenience.') + return Template.post(self, command, output_dir, vars) + + def out(self, msg): # pragma: no cover (replaceable testing hook) + print msg + +class StarterProjectTemplate(PyramidTemplate): + _template_dir = 'starter' + summary = 'pyramid starter project' + template_renderer = staticmethod(paste_script_template_renderer) + +class ZODBProjectTemplate(PyramidTemplate): + _template_dir = 'zodb' + summary = 'pyramid ZODB starter project' + template_renderer = staticmethod(paste_script_template_renderer) + +class RoutesAlchemyProjectTemplate(PyramidTemplate): + _template_dir = 'routesalchemy' + summary = 'pyramid SQLAlchemy project using url dispatch (no traversal)' + template_renderer = staticmethod(paste_script_template_renderer) + +class AlchemyProjectTemplate(PyramidTemplate): + _template_dir = 'alchemy' + summary = 'pyramid SQLAlchemy project using traversal' + template_renderer = staticmethod(paste_script_template_renderer) + diff --git a/pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl b/pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl new file mode 100755 index 000000000..8dfb3bf0a --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/__init__.py_tmpl @@ -0,0 +1,21 @@ +from pyramid.config import Configurator +from sqlalchemy import engine_from_config + +from {{package}}.models import appmaker + +def main(global_config, **settings): + """ This function returns a WSGI application. + """ + engine = engine_from_config(settings, 'sqlalchemy.') + get_root = appmaker(engine) + config = Configurator(settings=settings, root_factory=get_root) + config.add_static_view('static', '{{package}}:static') + config.add_view('{{package}}.views.view_root', + context='{{package}}.models.MyRoot', + renderer="templates/root.pt") + config.add_view('{{package}}.views.view_model', + context='{{package}}.models.MyModel', + renderer="templates/model.pt") + return config.make_wsgi_app() + + diff --git a/pyramid/scaffolds/alchemy/+package+/models.py b/pyramid/scaffolds/alchemy/+package+/models.py new file mode 100755 index 000000000..f1b47f98c --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/models.py @@ -0,0 +1,84 @@ +import transaction + +from sqlalchemy.orm import scoped_session +from sqlalchemy.orm import sessionmaker + +from sqlalchemy.ext.declarative import declarative_base + +from sqlalchemy.exc import IntegrityError + +from sqlalchemy import Integer +from sqlalchemy import Unicode +from sqlalchemy import Column + +from zope.sqlalchemy import ZopeTransactionExtension + +DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) +Base = declarative_base() + +class MyModel(Base): + __tablename__ = 'models' + id = Column(Integer, primary_key=True) + name = Column(Unicode(255), unique=True) + value = Column(Integer) + + def __init__(self, name, value): + self.name = name + self.value = value + +class MyRoot(object): + __name__ = None + __parent__ = None + + def __getitem__(self, key): + session= DBSession() + try: + id = int(key) + except (ValueError, TypeError): + raise KeyError(key) + + item = session.query(MyModel).get(id) + if item is None: + raise KeyError(key) + + item.__parent__ = self + item.__name__ = key + return item + + def get(self, key, default=None): + try: + item = self.__getitem__(key) + except KeyError: + item = default + return item + + def __iter__(self): + session= DBSession() + query = session.query(MyModel) + return iter(query) + +root = MyRoot() + +def root_factory(request): + return root + +def populate(): + session = DBSession() + model = MyModel(name=u'test name', value=55) + session.add(model) + session.flush() + transaction.commit() + +def initialize_sql(engine): + DBSession.configure(bind=engine) + Base.metadata.bind = engine + Base.metadata.create_all(engine) + try: + populate() + except IntegrityError: + DBSession.rollback() + return DBSession + +def appmaker(engine): + initialize_sql(engine) + return root_factory diff --git a/pyramid/scaffolds/alchemy/+package+/static/favicon.ico b/pyramid/scaffolds/alchemy/+package+/static/favicon.ico new file mode 100644 index 000000000..71f837c9e Binary files /dev/null and b/pyramid/scaffolds/alchemy/+package+/static/favicon.ico differ diff --git a/pyramid/scaffolds/alchemy/+package+/static/footerbg.png b/pyramid/scaffolds/alchemy/+package+/static/footerbg.png new file mode 100644 index 000000000..1fbc873da Binary files /dev/null and b/pyramid/scaffolds/alchemy/+package+/static/footerbg.png differ diff --git a/pyramid/scaffolds/alchemy/+package+/static/headerbg.png b/pyramid/scaffolds/alchemy/+package+/static/headerbg.png new file mode 100644 index 000000000..0596f2020 Binary files /dev/null and b/pyramid/scaffolds/alchemy/+package+/static/headerbg.png differ diff --git a/pyramid/scaffolds/alchemy/+package+/static/ie6.css b/pyramid/scaffolds/alchemy/+package+/static/ie6.css new file mode 100644 index 000000000..b7c8493d8 --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/static/ie6.css @@ -0,0 +1,8 @@ +* html img, +* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", +this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", +this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) +);} +#wrap{display:table;height:100%} diff --git a/pyramid/scaffolds/alchemy/+package+/static/middlebg.png b/pyramid/scaffolds/alchemy/+package+/static/middlebg.png new file mode 100644 index 000000000..2369cfb7d Binary files /dev/null and b/pyramid/scaffolds/alchemy/+package+/static/middlebg.png differ diff --git a/pyramid/scaffolds/alchemy/+package+/static/pylons.css b/pyramid/scaffolds/alchemy/+package+/static/pylons.css new file mode 100644 index 000000000..d952fb42e --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/static/pylons.css @@ -0,0 +1,65 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ +vertical-align:baseline;background:transparent;} +body{line-height:1;} +ol,ul{list-style:none;} +blockquote,q{quotes:none;} +blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} +:focus{outline:0;} +ins{text-decoration:none;} +del{text-decoration:line-through;} +table{border-collapse:collapse;border-spacing:0;} +sub{vertical-align:sub;font-size:smaller;line-height:normal;} +sup{vertical-align:super;font-size:smaller;line-height:normal;} +ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} +ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} +li{display:list-item;} +ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} +ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} +ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} +.hidden{display:none;} +p{line-height:1.5em;} +h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} +h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} +h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} +h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} +html,body{width:100%;height:100%;} +body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} +a{color:#1b61d6;text-decoration:none;} +a:hover{color:#e88f00;text-decoration:underline;} +body h1, +body h2, +body h3, +body h4, +body h5, +body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} +#wrap{min-height:100%;} +#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} +#header{background:#000000;top:0;font-size:14px;} +#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} +.header,.footer{width:750px;margin-right:auto;margin-left:auto;} +.wrapper{width:100%} +#top,#top-small,#bottom{width:100%;} +#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#bottom{color:#222;background-color:#ffffff;} +.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} +.top{padding-top:40px;} +.top-small{padding-top:10px;} +#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} +.app-welcome{margin-top:25px;} +.app-name{color:#000000;font-weight:bold;} +.bottom{padding-top:50px;} +#left{width:350px;float:left;padding-right:25px;} +#right{width:350px;float:right;padding-left:25px;} +.align-left{text-align:left;} +.align-right{text-align:right;} +.align-center{text-align:center;} +ul.links{margin:0;padding:0;} +ul.links li{list-style-type:none;font-size:14px;} +form{border-style:none;} +fieldset{border-style:none;} +input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} +input[type=text],input[type=password]{width:205px;} +input[type=submit]{background-color:#ddd;font-weight:bold;} +/*Opera Fix*/ +body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/scaffolds/alchemy/+package+/static/pyramid-small.png b/pyramid/scaffolds/alchemy/+package+/static/pyramid-small.png new file mode 100644 index 000000000..a5bc0ade7 Binary files /dev/null and b/pyramid/scaffolds/alchemy/+package+/static/pyramid-small.png differ diff --git a/pyramid/scaffolds/alchemy/+package+/static/pyramid.png b/pyramid/scaffolds/alchemy/+package+/static/pyramid.png new file mode 100644 index 000000000..347e05549 Binary files /dev/null and b/pyramid/scaffolds/alchemy/+package+/static/pyramid.png differ diff --git a/pyramid/scaffolds/alchemy/+package+/static/transparent.gif b/pyramid/scaffolds/alchemy/+package+/static/transparent.gif new file mode 100644 index 000000000..0341802e5 Binary files /dev/null and b/pyramid/scaffolds/alchemy/+package+/static/transparent.gif differ diff --git a/pyramid/scaffolds/alchemy/+package+/templates/model.pt_tmpl b/pyramid/scaffolds/alchemy/+package+/templates/model.pt_tmpl new file mode 100644 index 000000000..9302326f5 --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/templates/model.pt_tmpl @@ -0,0 +1,82 @@ + + + + The Pyramid Web Application Development Framework + + + + + + + + + + +
+
+
+
pyramid
+
+
+
+
+

+ Welcome to ${project}, an application generated by
+ the Pyramid web application development framework. +

+
+
+
+
+
+

Search documentation

+
+ + +
+
+

+ Id: ${item.id}
+ Name: ${item.name}
+ Value: ${item.value} +

+
+ +
+
+
+ + + diff --git a/pyramid/scaffolds/alchemy/+package+/templates/root.pt_tmpl b/pyramid/scaffolds/alchemy/+package+/templates/root.pt_tmpl new file mode 100644 index 000000000..b0ed476cc --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/templates/root.pt_tmpl @@ -0,0 +1,80 @@ + + + + The Pyramid Web Application Development Framework + + + + + + + + + + +
+
+
+
pyramid
+
+
+
+
+

+ Welcome to ${project}, an application generated by
+ the Pyramid web application development framework. +

+
+
+
+
+
+

Search documentation

+
+ + +
+
+

+ ${item.name} +

+
+ +
+
+
+ + + diff --git a/pyramid/scaffolds/alchemy/+package+/tests.py_tmpl b/pyramid/scaffolds/alchemy/+package+/tests.py_tmpl new file mode 100644 index 000000000..c073bfc88 --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/tests.py_tmpl @@ -0,0 +1,60 @@ +import unittest + +from pyramid import testing + +def _initTestingDB(): + from sqlalchemy import create_engine + from {{package}}.models import initialize_sql + session = initialize_sql(create_engine('sqlite://')) + return session + +class TestMyRoot(unittest.TestCase): + def setUp(self): + self.config = testing.setUp() + self.session = _initTestingDB() + + def tearDown(self): + testing.tearDown() + self.session.remove() + + def _makeOne(self): + from {{package}}.models import MyRoot + return MyRoot() + + def test___getitem__hit(self): + from {{package}}.models import MyModel + root = self._makeOne() + first = root['1'] + self.assertEqual(first.__class__, MyModel) + self.assertEqual(first.__parent__, root) + self.assertEqual(first.__name__, '1') + + def test___getitem__miss(self): + root = self._makeOne() + self.assertRaises(KeyError, root.__getitem__, '100') + + def test___getitem__notint(self): + root = self._makeOne() + self.assertRaises(KeyError, root.__getitem__, 'notint') + + def test_get_hit(self): + from {{package}}.models import MyModel + root = self._makeOne() + first = root.get('1') + self.assertEqual(first.__class__, MyModel) + self.assertEqual(first.__parent__, root) + self.assertEqual(first.__name__, '1') + + def test_get_miss(self): + root = self._makeOne() + self.assertEqual(root.get('100', 'default'), 'default') + self.assertEqual(root.get('100'), None) + + def test___iter__(self): + root = self._makeOne() + iterable = iter(root) + result = list(iterable) + self.assertEqual(len(result), 1) + model = result[0] + self.assertEqual(model.id, 1) + diff --git a/pyramid/scaffolds/alchemy/+package+/views.py_tmpl b/pyramid/scaffolds/alchemy/+package+/views.py_tmpl new file mode 100644 index 000000000..12bce138e --- /dev/null +++ b/pyramid/scaffolds/alchemy/+package+/views.py_tmpl @@ -0,0 +1,5 @@ +def view_root(context, request): + return {'items':list(context), 'project':'{{project}}'} + +def view_model(context, request): + return {'item':context, 'project':'{{project}}'} diff --git a/pyramid/scaffolds/alchemy/CHANGES.txt_tmpl b/pyramid/scaffolds/alchemy/CHANGES.txt_tmpl new file mode 100644 index 000000000..5b34f7803 --- /dev/null +++ b/pyramid/scaffolds/alchemy/CHANGES.txt_tmpl @@ -0,0 +1,4 @@ +0.1 +--- + +- Initial version diff --git a/pyramid/scaffolds/alchemy/MANIFEST.in_tmpl b/pyramid/scaffolds/alchemy/MANIFEST.in_tmpl new file mode 100644 index 000000000..0ff6eb7a0 --- /dev/null +++ b/pyramid/scaffolds/alchemy/MANIFEST.in_tmpl @@ -0,0 +1,2 @@ +include *.txt *.ini *.cfg *.rst +recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/scaffolds/alchemy/README.txt_tmpl b/pyramid/scaffolds/alchemy/README.txt_tmpl new file mode 100644 index 000000000..0ddebfc3e --- /dev/null +++ b/pyramid/scaffolds/alchemy/README.txt_tmpl @@ -0,0 +1,4 @@ +{{project}} README + + + diff --git a/pyramid/scaffolds/alchemy/development.ini_tmpl b/pyramid/scaffolds/alchemy/development.ini_tmpl new file mode 100644 index 000000000..accec1718 --- /dev/null +++ b/pyramid/scaffolds/alchemy/development.ini_tmpl @@ -0,0 +1,63 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = true +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = true +default_locale_name = en +sqlalchemy.url = sqlite:///%(here)s/{{project}}.db + +[pipeline:main] +pipeline = + egg:WebError#evalerror + tm + {{project}} + +[filter:tm] +use = egg:repoze.tm2#tm +commit_veto = repoze.tm:default_commit_veto + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}}, sqlalchemy + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[logger_{{package_logger}}] +level = DEBUG +handlers = +qualname = {{package}} + +[logger_sqlalchemy] +level = INFO +handlers = +qualname = sqlalchemy.engine +# "level = INFO" logs SQL queries. +# "level = DEBUG" logs SQL queries and results. +# "level = WARN" logs neither. (Recommended for production systems.) + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/alchemy/production.ini_tmpl b/pyramid/scaffolds/alchemy/production.ini_tmpl new file mode 100644 index 000000000..0deb1dd5f --- /dev/null +++ b/pyramid/scaffolds/alchemy/production.ini_tmpl @@ -0,0 +1,77 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = false +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = false +default_locale_name = en +sqlalchemy.url = sqlite:///%(here)s/{{project}}.db + +[filter:weberror] +use = egg:WebError#error_catcher +debug = false +;error_log = +;show_exceptions_in_wsgi_errors = true +;smtp_server = localhost +;error_email = janitor@example.com +;smtp_username = janitor +;smtp_password = "janitor's password" +;from_address = paste@localhost +;error_subject_prefix = "Pyramid Error" +;smtp_use_tls = +;error_message = + +[filter:tm] +use = egg:repoze.tm2#tm +commit_veto = repoze.tm:default_commit_veto + +[pipeline:main] +pipeline = + weberror + tm + {{project}} + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}}, sqlalchemy + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console + +[logger_{{package_logger}}] +level = WARN +handlers = +qualname = {{package}} + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine +# "level = INFO" logs SQL queries. +# "level = DEBUG" logs SQL queries and results. +# "level = WARN" logs neither. (Recommended for production systems.) + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/alchemy/setup.cfg_tmpl b/pyramid/scaffolds/alchemy/setup.cfg_tmpl new file mode 100644 index 000000000..5bec29823 --- /dev/null +++ b/pyramid/scaffolds/alchemy/setup.cfg_tmpl @@ -0,0 +1,27 @@ +[nosetests] +match=^test +nocapture=1 +cover-package={{package}} +with-coverage=1 +cover-erase=1 + +[compile_catalog] +directory = {{package}}/locale +domain = {{project}} +statistics = true + +[extract_messages] +add_comments = TRANSLATORS: +output_file = {{package}}/locale/{{project}}.pot +width = 80 + +[init_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale + +[update_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale +previous = true diff --git a/pyramid/scaffolds/alchemy/setup.py_tmpl b/pyramid/scaffolds/alchemy/setup.py_tmpl new file mode 100644 index 000000000..8e9da9755 --- /dev/null +++ b/pyramid/scaffolds/alchemy/setup.py_tmpl @@ -0,0 +1,47 @@ +import os +import sys + +from setuptools import setup, find_packages + +here = os.path.abspath(os.path.dirname(__file__)) +README = open(os.path.join(here, 'README.txt')).read() +CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() + +requires = [ + 'pyramid', + 'repoze.tm2>=1.0b1', # default_commit_veto + 'sqlalchemy', + 'zope.sqlalchemy', + 'WebError', + ] + +if sys.version_info[:3] < (2,5,0): + requires.append('pysqlite') + +setup(name='{{project}}', + version='0.0', + description='{{project}}', + long_description=README + '\n\n' + CHANGES, + classifiers=[ + "Programming Language :: Python", + "Framework :: Pylons", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", + ], + author='', + author_email='', + url='', + keywords='web pylons pyramid', + packages=find_packages(), + include_package_data=True, + zip_safe=False, + install_requires = requires, + tests_require = requires, + test_suite="{{package}}", + entry_points = """\ + [paste.app_factory] + main = {{package}}:main + """, + paster_plugins=['pyramid'], + ) + diff --git a/pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl b/pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl new file mode 100644 index 000000000..f5e3a0630 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/+package+/__init__.py_tmpl @@ -0,0 +1,18 @@ +from pyramid.config import Configurator +from sqlalchemy import engine_from_config + +from {{package}}.models import initialize_sql + +def main(global_config, **settings): + """ This function returns a Pyramid WSGI application. + """ + engine = engine_from_config(settings, 'sqlalchemy.') + initialize_sql(engine) + config = Configurator(settings=settings) + config.add_static_view('static', '{{package}}:static') + config.add_route('home', '/') + config.add_view('{{package}}.views.my_view', + route_name='home', + renderer='templates/mytemplate.pt') + return config.make_wsgi_app() + diff --git a/pyramid/scaffolds/routesalchemy/+package+/models.py b/pyramid/scaffolds/routesalchemy/+package+/models.py new file mode 100644 index 000000000..a036e8c91 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/+package+/models.py @@ -0,0 +1,42 @@ +import transaction + +from sqlalchemy import Column +from sqlalchemy import Integer +from sqlalchemy import Unicode + +from sqlalchemy.exc import IntegrityError +from sqlalchemy.ext.declarative import declarative_base + +from sqlalchemy.orm import scoped_session +from sqlalchemy.orm import sessionmaker + +from zope.sqlalchemy import ZopeTransactionExtension + +DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) +Base = declarative_base() + +class MyModel(Base): + __tablename__ = 'models' + id = Column(Integer, primary_key=True) + name = Column(Unicode(255), unique=True) + value = Column(Integer) + + def __init__(self, name, value): + self.name = name + self.value = value + +def populate(): + session = DBSession() + model = MyModel(name=u'root', value=55) + session.add(model) + session.flush() + transaction.commit() + +def initialize_sql(engine): + DBSession.configure(bind=engine) + Base.metadata.bind = engine + Base.metadata.create_all(engine) + try: + populate() + except IntegrityError: + DBSession.rollback() diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/favicon.ico b/pyramid/scaffolds/routesalchemy/+package+/static/favicon.ico new file mode 100644 index 000000000..71f837c9e Binary files /dev/null and b/pyramid/scaffolds/routesalchemy/+package+/static/favicon.ico differ diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/footerbg.png b/pyramid/scaffolds/routesalchemy/+package+/static/footerbg.png new file mode 100644 index 000000000..1fbc873da Binary files /dev/null and b/pyramid/scaffolds/routesalchemy/+package+/static/footerbg.png differ diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/headerbg.png b/pyramid/scaffolds/routesalchemy/+package+/static/headerbg.png new file mode 100644 index 000000000..0596f2020 Binary files /dev/null and b/pyramid/scaffolds/routesalchemy/+package+/static/headerbg.png differ diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/ie6.css b/pyramid/scaffolds/routesalchemy/+package+/static/ie6.css new file mode 100644 index 000000000..b7c8493d8 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/+package+/static/ie6.css @@ -0,0 +1,8 @@ +* html img, +* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", +this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", +this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) +);} +#wrap{display:table;height:100%} diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/middlebg.png b/pyramid/scaffolds/routesalchemy/+package+/static/middlebg.png new file mode 100644 index 000000000..2369cfb7d Binary files /dev/null and b/pyramid/scaffolds/routesalchemy/+package+/static/middlebg.png differ diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/pylons.css b/pyramid/scaffolds/routesalchemy/+package+/static/pylons.css new file mode 100644 index 000000000..d952fb42e --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/+package+/static/pylons.css @@ -0,0 +1,65 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ +vertical-align:baseline;background:transparent;} +body{line-height:1;} +ol,ul{list-style:none;} +blockquote,q{quotes:none;} +blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} +:focus{outline:0;} +ins{text-decoration:none;} +del{text-decoration:line-through;} +table{border-collapse:collapse;border-spacing:0;} +sub{vertical-align:sub;font-size:smaller;line-height:normal;} +sup{vertical-align:super;font-size:smaller;line-height:normal;} +ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} +ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} +li{display:list-item;} +ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} +ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} +ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} +.hidden{display:none;} +p{line-height:1.5em;} +h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} +h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} +h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} +h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} +html,body{width:100%;height:100%;} +body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} +a{color:#1b61d6;text-decoration:none;} +a:hover{color:#e88f00;text-decoration:underline;} +body h1, +body h2, +body h3, +body h4, +body h5, +body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} +#wrap{min-height:100%;} +#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} +#header{background:#000000;top:0;font-size:14px;} +#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} +.header,.footer{width:750px;margin-right:auto;margin-left:auto;} +.wrapper{width:100%} +#top,#top-small,#bottom{width:100%;} +#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#bottom{color:#222;background-color:#ffffff;} +.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} +.top{padding-top:40px;} +.top-small{padding-top:10px;} +#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} +.app-welcome{margin-top:25px;} +.app-name{color:#000000;font-weight:bold;} +.bottom{padding-top:50px;} +#left{width:350px;float:left;padding-right:25px;} +#right{width:350px;float:right;padding-left:25px;} +.align-left{text-align:left;} +.align-right{text-align:right;} +.align-center{text-align:center;} +ul.links{margin:0;padding:0;} +ul.links li{list-style-type:none;font-size:14px;} +form{border-style:none;} +fieldset{border-style:none;} +input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} +input[type=text],input[type=password]{width:205px;} +input[type=submit]{background-color:#ddd;font-weight:bold;} +/*Opera Fix*/ +body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/pyramid-small.png b/pyramid/scaffolds/routesalchemy/+package+/static/pyramid-small.png new file mode 100644 index 000000000..a5bc0ade7 Binary files /dev/null and b/pyramid/scaffolds/routesalchemy/+package+/static/pyramid-small.png differ diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/pyramid.png b/pyramid/scaffolds/routesalchemy/+package+/static/pyramid.png new file mode 100644 index 000000000..347e05549 Binary files /dev/null and b/pyramid/scaffolds/routesalchemy/+package+/static/pyramid.png differ diff --git a/pyramid/scaffolds/routesalchemy/+package+/static/transparent.gif b/pyramid/scaffolds/routesalchemy/+package+/static/transparent.gif new file mode 100644 index 000000000..0341802e5 Binary files /dev/null and b/pyramid/scaffolds/routesalchemy/+package+/static/transparent.gif differ diff --git a/pyramid/scaffolds/routesalchemy/+package+/templates/mytemplate.pt_tmpl b/pyramid/scaffolds/routesalchemy/+package+/templates/mytemplate.pt_tmpl new file mode 100644 index 000000000..4fbc554e9 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/+package+/templates/mytemplate.pt_tmpl @@ -0,0 +1,76 @@ + + + + The Pyramid Web Application Development Framework + + + + + + + + + + +
+
+
+
pyramid
+
+
+
+
+

+ Welcome to ${project}, an application generated by
+ the Pyramid web application development framework. +

+
+
+
+
+
+

Search documentation

+
+ + +
+
+ +
+
+
+ + + diff --git a/pyramid/scaffolds/routesalchemy/+package+/tests.py_tmpl b/pyramid/scaffolds/routesalchemy/+package+/tests.py_tmpl new file mode 100644 index 000000000..29aea7258 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/+package+/tests.py_tmpl @@ -0,0 +1,24 @@ +import unittest +from pyramid.config import Configurator +from pyramid import testing + +def _initTestingDB(): + from sqlalchemy import create_engine + from {{package}}.models import initialize_sql + session = initialize_sql(create_engine('sqlite://')) + return session + +class TestMyView(unittest.TestCase): + def setUp(self): + self.config = testing.setUp() + _initTestingDB() + + def tearDown(self): + testing.tearDown() + + def test_it(self): + from {{package}}.views import my_view + request = testing.DummyRequest() + info = my_view(request) + self.assertEqual(info['root'].name, 'root') + self.assertEqual(info['project'], '{{project}}') diff --git a/pyramid/scaffolds/routesalchemy/+package+/views.py_tmpl b/pyramid/scaffolds/routesalchemy/+package+/views.py_tmpl new file mode 100644 index 000000000..86cc02e41 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/+package+/views.py_tmpl @@ -0,0 +1,7 @@ +from {{package}}.models import DBSession +from {{package}}.models import MyModel + +def my_view(request): + dbsession = DBSession() + root = dbsession.query(MyModel).filter(MyModel.name==u'root').first() + return {'root':root, 'project':'{{project}}'} diff --git a/pyramid/scaffolds/routesalchemy/CHANGES.txt_tmpl b/pyramid/scaffolds/routesalchemy/CHANGES.txt_tmpl new file mode 100644 index 000000000..35a34f332 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/CHANGES.txt_tmpl @@ -0,0 +1,4 @@ +0.0 +--- + +- Initial version diff --git a/pyramid/scaffolds/routesalchemy/MANIFEST.in_tmpl b/pyramid/scaffolds/routesalchemy/MANIFEST.in_tmpl new file mode 100644 index 000000000..0ff6eb7a0 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/MANIFEST.in_tmpl @@ -0,0 +1,2 @@ +include *.txt *.ini *.cfg *.rst +recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/scaffolds/routesalchemy/README.txt_tmpl b/pyramid/scaffolds/routesalchemy/README.txt_tmpl new file mode 100644 index 000000000..0ddebfc3e --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/README.txt_tmpl @@ -0,0 +1,4 @@ +{{project}} README + + + diff --git a/pyramid/scaffolds/routesalchemy/development.ini_tmpl b/pyramid/scaffolds/routesalchemy/development.ini_tmpl new file mode 100644 index 000000000..accec1718 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/development.ini_tmpl @@ -0,0 +1,63 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = true +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = true +default_locale_name = en +sqlalchemy.url = sqlite:///%(here)s/{{project}}.db + +[pipeline:main] +pipeline = + egg:WebError#evalerror + tm + {{project}} + +[filter:tm] +use = egg:repoze.tm2#tm +commit_veto = repoze.tm:default_commit_veto + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}}, sqlalchemy + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[logger_{{package_logger}}] +level = DEBUG +handlers = +qualname = {{package}} + +[logger_sqlalchemy] +level = INFO +handlers = +qualname = sqlalchemy.engine +# "level = INFO" logs SQL queries. +# "level = DEBUG" logs SQL queries and results. +# "level = WARN" logs neither. (Recommended for production systems.) + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/routesalchemy/production.ini_tmpl b/pyramid/scaffolds/routesalchemy/production.ini_tmpl new file mode 100644 index 000000000..0deb1dd5f --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/production.ini_tmpl @@ -0,0 +1,77 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = false +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = false +default_locale_name = en +sqlalchemy.url = sqlite:///%(here)s/{{project}}.db + +[filter:weberror] +use = egg:WebError#error_catcher +debug = false +;error_log = +;show_exceptions_in_wsgi_errors = true +;smtp_server = localhost +;error_email = janitor@example.com +;smtp_username = janitor +;smtp_password = "janitor's password" +;from_address = paste@localhost +;error_subject_prefix = "Pyramid Error" +;smtp_use_tls = +;error_message = + +[filter:tm] +use = egg:repoze.tm2#tm +commit_veto = repoze.tm:default_commit_veto + +[pipeline:main] +pipeline = + weberror + tm + {{project}} + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}}, sqlalchemy + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console + +[logger_{{package_logger}}] +level = WARN +handlers = +qualname = {{package}} + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine +# "level = INFO" logs SQL queries. +# "level = DEBUG" logs SQL queries and results. +# "level = WARN" logs neither. (Recommended for production systems.) + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/routesalchemy/setup.cfg_tmpl b/pyramid/scaffolds/routesalchemy/setup.cfg_tmpl new file mode 100644 index 000000000..5bec29823 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/setup.cfg_tmpl @@ -0,0 +1,27 @@ +[nosetests] +match=^test +nocapture=1 +cover-package={{package}} +with-coverage=1 +cover-erase=1 + +[compile_catalog] +directory = {{package}}/locale +domain = {{project}} +statistics = true + +[extract_messages] +add_comments = TRANSLATORS: +output_file = {{package}}/locale/{{project}}.pot +width = 80 + +[init_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale + +[update_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale +previous = true diff --git a/pyramid/scaffolds/routesalchemy/setup.py_tmpl b/pyramid/scaffolds/routesalchemy/setup.py_tmpl new file mode 100644 index 000000000..936a5dde0 --- /dev/null +++ b/pyramid/scaffolds/routesalchemy/setup.py_tmpl @@ -0,0 +1,47 @@ +import os +import sys + +from setuptools import setup, find_packages + +here = os.path.abspath(os.path.dirname(__file__)) +README = open(os.path.join(here, 'README.txt')).read() +CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() + +requires = [ + 'pyramid', + 'SQLAlchemy', + 'transaction', + 'repoze.tm2>=1.0b1', # default_commit_veto + 'zope.sqlalchemy', + 'WebError', + ] + +if sys.version_info[:3] < (2,5,0): + requires.append('pysqlite') + +setup(name='{{project}}', + version='0.0', + description='{{project}}', + long_description=README + '\n\n' + CHANGES, + classifiers=[ + "Programming Language :: Python", + "Framework :: Pylons", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", + ], + author='', + author_email='', + url='', + keywords='web wsgi bfg pylons pyramid', + packages=find_packages(), + include_package_data=True, + zip_safe=False, + test_suite='{{package}}', + install_requires = requires, + entry_points = """\ + [paste.app_factory] + main = {{package}}:main + """, + paster_plugins=['pyramid'], + ) + diff --git a/pyramid/scaffolds/starter/+package+/__init__.py_tmpl b/pyramid/scaffolds/starter/+package+/__init__.py_tmpl new file mode 100644 index 000000000..3cfaa63a2 --- /dev/null +++ b/pyramid/scaffolds/starter/+package+/__init__.py_tmpl @@ -0,0 +1,13 @@ +from pyramid.config import Configurator +from {{package}}.resources import Root + +def main(global_config, **settings): + """ This function returns a Pyramid WSGI application. + """ + config = Configurator(root_factory=Root, settings=settings) + config.add_view('{{package}}.views.my_view', + context='{{package}}:resources.Root', + renderer='{{package}}:templates/mytemplate.pt') + config.add_static_view('static', '{{package}}:static') + return config.make_wsgi_app() + diff --git a/pyramid/scaffolds/starter/+package+/resources.py b/pyramid/scaffolds/starter/+package+/resources.py new file mode 100644 index 000000000..3d811895c --- /dev/null +++ b/pyramid/scaffolds/starter/+package+/resources.py @@ -0,0 +1,3 @@ +class Root(object): + def __init__(self, request): + self.request = request diff --git a/pyramid/scaffolds/starter/+package+/static/favicon.ico b/pyramid/scaffolds/starter/+package+/static/favicon.ico new file mode 100644 index 000000000..71f837c9e Binary files /dev/null and b/pyramid/scaffolds/starter/+package+/static/favicon.ico differ diff --git a/pyramid/scaffolds/starter/+package+/static/footerbg.png b/pyramid/scaffolds/starter/+package+/static/footerbg.png new file mode 100644 index 000000000..1fbc873da Binary files /dev/null and b/pyramid/scaffolds/starter/+package+/static/footerbg.png differ diff --git a/pyramid/scaffolds/starter/+package+/static/headerbg.png b/pyramid/scaffolds/starter/+package+/static/headerbg.png new file mode 100644 index 000000000..0596f2020 Binary files /dev/null and b/pyramid/scaffolds/starter/+package+/static/headerbg.png differ diff --git a/pyramid/scaffolds/starter/+package+/static/ie6.css b/pyramid/scaffolds/starter/+package+/static/ie6.css new file mode 100644 index 000000000..b7c8493d8 --- /dev/null +++ b/pyramid/scaffolds/starter/+package+/static/ie6.css @@ -0,0 +1,8 @@ +* html img, +* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", +this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", +this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) +);} +#wrap{display:table;height:100%} diff --git a/pyramid/scaffolds/starter/+package+/static/middlebg.png b/pyramid/scaffolds/starter/+package+/static/middlebg.png new file mode 100644 index 000000000..2369cfb7d Binary files /dev/null and b/pyramid/scaffolds/starter/+package+/static/middlebg.png differ diff --git a/pyramid/scaffolds/starter/+package+/static/pylons.css b/pyramid/scaffolds/starter/+package+/static/pylons.css new file mode 100644 index 000000000..d952fb42e --- /dev/null +++ b/pyramid/scaffolds/starter/+package+/static/pylons.css @@ -0,0 +1,65 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ +vertical-align:baseline;background:transparent;} +body{line-height:1;} +ol,ul{list-style:none;} +blockquote,q{quotes:none;} +blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} +:focus{outline:0;} +ins{text-decoration:none;} +del{text-decoration:line-through;} +table{border-collapse:collapse;border-spacing:0;} +sub{vertical-align:sub;font-size:smaller;line-height:normal;} +sup{vertical-align:super;font-size:smaller;line-height:normal;} +ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} +ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} +li{display:list-item;} +ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} +ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} +ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} +.hidden{display:none;} +p{line-height:1.5em;} +h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} +h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} +h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} +h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} +html,body{width:100%;height:100%;} +body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} +a{color:#1b61d6;text-decoration:none;} +a:hover{color:#e88f00;text-decoration:underline;} +body h1, +body h2, +body h3, +body h4, +body h5, +body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} +#wrap{min-height:100%;} +#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} +#header{background:#000000;top:0;font-size:14px;} +#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} +.header,.footer{width:750px;margin-right:auto;margin-left:auto;} +.wrapper{width:100%} +#top,#top-small,#bottom{width:100%;} +#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#bottom{color:#222;background-color:#ffffff;} +.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} +.top{padding-top:40px;} +.top-small{padding-top:10px;} +#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} +.app-welcome{margin-top:25px;} +.app-name{color:#000000;font-weight:bold;} +.bottom{padding-top:50px;} +#left{width:350px;float:left;padding-right:25px;} +#right{width:350px;float:right;padding-left:25px;} +.align-left{text-align:left;} +.align-right{text-align:right;} +.align-center{text-align:center;} +ul.links{margin:0;padding:0;} +ul.links li{list-style-type:none;font-size:14px;} +form{border-style:none;} +fieldset{border-style:none;} +input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} +input[type=text],input[type=password]{width:205px;} +input[type=submit]{background-color:#ddd;font-weight:bold;} +/*Opera Fix*/ +body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/scaffolds/starter/+package+/static/pyramid-small.png b/pyramid/scaffolds/starter/+package+/static/pyramid-small.png new file mode 100644 index 000000000..a5bc0ade7 Binary files /dev/null and b/pyramid/scaffolds/starter/+package+/static/pyramid-small.png differ diff --git a/pyramid/scaffolds/starter/+package+/static/pyramid.png b/pyramid/scaffolds/starter/+package+/static/pyramid.png new file mode 100644 index 000000000..347e05549 Binary files /dev/null and b/pyramid/scaffolds/starter/+package+/static/pyramid.png differ diff --git a/pyramid/scaffolds/starter/+package+/static/transparent.gif b/pyramid/scaffolds/starter/+package+/static/transparent.gif new file mode 100644 index 000000000..0341802e5 Binary files /dev/null and b/pyramid/scaffolds/starter/+package+/static/transparent.gif differ diff --git a/pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl b/pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl new file mode 100644 index 000000000..4fbc554e9 --- /dev/null +++ b/pyramid/scaffolds/starter/+package+/templates/mytemplate.pt_tmpl @@ -0,0 +1,76 @@ + + + + The Pyramid Web Application Development Framework + + + + + + + + + + +
+
+
+
pyramid
+
+
+
+
+

+ Welcome to ${project}, an application generated by
+ the Pyramid web application development framework. +

+
+
+
+
+
+

Search documentation

+
+ + +
+
+ +
+
+
+ + + diff --git a/pyramid/scaffolds/starter/+package+/tests.py_tmpl b/pyramid/scaffolds/starter/+package+/tests.py_tmpl new file mode 100644 index 000000000..1627bf015 --- /dev/null +++ b/pyramid/scaffolds/starter/+package+/tests.py_tmpl @@ -0,0 +1,16 @@ +import unittest + +from pyramid import testing + +class ViewTests(unittest.TestCase): + def setUp(self): + self.config = testing.setUp() + + def tearDown(self): + testing.tearDown() + + def test_my_view(self): + from {{package}}.views import my_view + request = testing.DummyRequest() + info = my_view(request) + self.assertEqual(info['project'], '{{project}}') diff --git a/pyramid/scaffolds/starter/+package+/views.py_tmpl b/pyramid/scaffolds/starter/+package+/views.py_tmpl new file mode 100644 index 000000000..12ed8832d --- /dev/null +++ b/pyramid/scaffolds/starter/+package+/views.py_tmpl @@ -0,0 +1,2 @@ +def my_view(request): + return {'project':'{{project}}'} diff --git a/pyramid/scaffolds/starter/CHANGES.txt_tmpl b/pyramid/scaffolds/starter/CHANGES.txt_tmpl new file mode 100644 index 000000000..35a34f332 --- /dev/null +++ b/pyramid/scaffolds/starter/CHANGES.txt_tmpl @@ -0,0 +1,4 @@ +0.0 +--- + +- Initial version diff --git a/pyramid/scaffolds/starter/MANIFEST.in_tmpl b/pyramid/scaffolds/starter/MANIFEST.in_tmpl new file mode 100644 index 000000000..0ff6eb7a0 --- /dev/null +++ b/pyramid/scaffolds/starter/MANIFEST.in_tmpl @@ -0,0 +1,2 @@ +include *.txt *.ini *.cfg *.rst +recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/scaffolds/starter/README.txt_tmpl b/pyramid/scaffolds/starter/README.txt_tmpl new file mode 100644 index 000000000..0ddebfc3e --- /dev/null +++ b/pyramid/scaffolds/starter/README.txt_tmpl @@ -0,0 +1,4 @@ +{{project}} README + + + diff --git a/pyramid/scaffolds/starter/development.ini_tmpl b/pyramid/scaffolds/starter/development.ini_tmpl new file mode 100644 index 000000000..60e52da57 --- /dev/null +++ b/pyramid/scaffolds/starter/development.ini_tmpl @@ -0,0 +1,49 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = true +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = true +default_locale_name = en + +[pipeline:main] +pipeline = + egg:WebError#evalerror + {{project}} + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}} + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[logger_{{package_logger}}] +level = DEBUG +handlers = +qualname = {{package}} + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/starter/production.ini_tmpl b/pyramid/scaffolds/starter/production.ini_tmpl new file mode 100644 index 000000000..dea0ef2c6 --- /dev/null +++ b/pyramid/scaffolds/starter/production.ini_tmpl @@ -0,0 +1,63 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = false +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = false +default_locale_name = en + +[filter:weberror] +use = egg:WebError#error_catcher +debug = false +;error_log = +;show_exceptions_in_wsgi_errors = true +;smtp_server = localhost +;error_email = janitor@example.com +;smtp_username = janitor +;smtp_password = "janitor's password" +;from_address = paste@localhost +;error_subject_prefix = "Pyramid Error" +;smtp_use_tls = +;error_message = + +[pipeline:main] +pipeline = + weberror + {{project}} + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}} + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console + +[logger_{{package_logger}}] +level = WARN +handlers = +qualname = {{package}} + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/starter/setup.cfg_tmpl b/pyramid/scaffolds/starter/setup.cfg_tmpl new file mode 100644 index 000000000..04c738049 --- /dev/null +++ b/pyramid/scaffolds/starter/setup.cfg_tmpl @@ -0,0 +1,27 @@ +[nosetests] +match = ^test +nocapture = 1 +cover-package = {{package}} +with-coverage = 1 +cover-erase = 1 + +[compile_catalog] +directory = {{package}}/locale +domain = {{project}} +statistics = true + +[extract_messages] +add_comments = TRANSLATORS: +output_file = {{package}}/locale/{{project}}.pot +width = 80 + +[init_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale + +[update_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale +previous = true diff --git a/pyramid/scaffolds/starter/setup.py_tmpl b/pyramid/scaffolds/starter/setup.py_tmpl new file mode 100644 index 000000000..bd2642627 --- /dev/null +++ b/pyramid/scaffolds/starter/setup.py_tmpl @@ -0,0 +1,37 @@ +import os + +from setuptools import setup, find_packages + +here = os.path.abspath(os.path.dirname(__file__)) +README = open(os.path.join(here, 'README.txt')).read() +CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() + +requires = ['pyramid', 'WebError'] + +setup(name='{{project}}', + version='0.0', + description='{{project}}', + long_description=README + '\n\n' + CHANGES, + classifiers=[ + "Programming Language :: Python", + "Framework :: Pylons", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", + ], + author='', + author_email='', + url='', + keywords='web pyramid pylons', + packages=find_packages(), + include_package_data=True, + zip_safe=False, + install_requires=requires, + tests_require=requires, + test_suite="{{package}}", + entry_points = """\ + [paste.app_factory] + main = {{package}}:main + """, + paster_plugins=['pyramid'], + ) + diff --git a/pyramid/scaffolds/tests.py b/pyramid/scaffolds/tests.py new file mode 100644 index 000000000..e36943465 --- /dev/null +++ b/pyramid/scaffolds/tests.py @@ -0,0 +1,79 @@ +import sys +import httplib +import os +import pkg_resources +import shutil +import subprocess +import tempfile +import time +import signal + +class TemplateTest(object): + def make_venv(self, directory): # pragma: no cover + import virtualenv + import sys + from virtualenv import Logger + logger = Logger([(Logger.level_for_integer(2), sys.stdout)]) + virtualenv.logger = logger + virtualenv.create_environment(directory, + site_packages=False, + clear=False, + unzip_setuptools=True, + use_distribute=False) + def install(self, tmpl_name): # pragma: no cover + try: + self.old_cwd = os.getcwd() + self.directory = tempfile.mkdtemp() + self.make_venv(self.directory) + os.chdir(pkg_resources.get_distribution('pyramid').location) + subprocess.check_call( + [os.path.join(self.directory, 'bin', 'python'), + 'setup.py', 'develop']) + os.chdir(self.directory) + + subprocess.check_call(['bin/paster', 'create', '-t', tmpl_name, + 'Dingle']) + os.chdir('Dingle') + py = os.path.join(self.directory, 'bin', 'python') + subprocess.check_call([py, 'setup.py', 'install']) + subprocess.check_call([py, 'setup.py', 'test']) + paster = os.path.join(self.directory, 'bin', 'paster') + proc = subprocess.Popen([paster, 'serve', 'development.ini']) + try: + time.sleep(5) + proc.poll() + if proc.returncode is not None: + raise RuntimeError('didnt start') + conn = httplib.HTTPConnection('localhost:6543') + conn.request('GET', '/') + resp = conn.getresponse() + assert(resp.status == 200) + finally: + if hasattr(proc, 'terminate'): + # 2.6+ + proc.terminate() + else: + # 2.5 + os.kill(proc.pid, signal.SIGTERM) + finally: + shutil.rmtree(self.directory) + os.chdir(self.old_cwd) + +if __name__ == '__main__': # pragma: no cover + if not hasattr(subprocess, 'check_call'): + # 2.4 + def check_call(*arg, **kw): + returncode = subprocess.call(*arg, **kw) + if returncode: + raise ValueError(returncode) + subprocess.check_call = check_call + + templates = ['pyramid_starter', 'pyramid_alchemy', 'pyramid_routesalchemy',] + + if sys.version_info >= (2, 5): + templates.append('pyramid_zodb') + + for name in templates: + test = TemplateTest() + test.install(name) + diff --git a/pyramid/scaffolds/zodb/+package+/__init__.py_tmpl b/pyramid/scaffolds/zodb/+package+/__init__.py_tmpl new file mode 100644 index 000000000..2fe3496aa --- /dev/null +++ b/pyramid/scaffolds/zodb/+package+/__init__.py_tmpl @@ -0,0 +1,18 @@ +from pyramid.config import Configurator +from repoze.zodbconn.finder import PersistentApplicationFinder +from {{package}}.models import appmaker + +def main(global_config, **settings): + """ This function returns a Pyramid WSGI application. + """ + zodb_uri = settings.get('zodb_uri') + if zodb_uri is None: + raise ValueError("No 'zodb_uri' in application configuration.") + + finder = PersistentApplicationFinder(zodb_uri, appmaker) + def get_root(request): + return finder(request.environ) + config = Configurator(root_factory=get_root, settings=settings) + config.add_static_view('static', '{{package}}:static') + config.scan('{{package}}') + return config.make_wsgi_app() diff --git a/pyramid/scaffolds/zodb/+package+/models.py b/pyramid/scaffolds/zodb/+package+/models.py new file mode 100644 index 000000000..8dd0f5a49 --- /dev/null +++ b/pyramid/scaffolds/zodb/+package+/models.py @@ -0,0 +1,12 @@ +from persistent.mapping import PersistentMapping + +class MyModel(PersistentMapping): + __parent__ = __name__ = None + +def appmaker(zodb_root): + if not 'app_root' in zodb_root: + app_root = MyModel() + zodb_root['app_root'] = app_root + import transaction + transaction.commit() + return zodb_root['app_root'] diff --git a/pyramid/scaffolds/zodb/+package+/static/favicon.ico b/pyramid/scaffolds/zodb/+package+/static/favicon.ico new file mode 100644 index 000000000..71f837c9e Binary files /dev/null and b/pyramid/scaffolds/zodb/+package+/static/favicon.ico differ diff --git a/pyramid/scaffolds/zodb/+package+/static/footerbg.png b/pyramid/scaffolds/zodb/+package+/static/footerbg.png new file mode 100644 index 000000000..1fbc873da Binary files /dev/null and b/pyramid/scaffolds/zodb/+package+/static/footerbg.png differ diff --git a/pyramid/scaffolds/zodb/+package+/static/headerbg.png b/pyramid/scaffolds/zodb/+package+/static/headerbg.png new file mode 100644 index 000000000..0596f2020 Binary files /dev/null and b/pyramid/scaffolds/zodb/+package+/static/headerbg.png differ diff --git a/pyramid/scaffolds/zodb/+package+/static/ie6.css b/pyramid/scaffolds/zodb/+package+/static/ie6.css new file mode 100644 index 000000000..b7c8493d8 --- /dev/null +++ b/pyramid/scaffolds/zodb/+package+/static/ie6.css @@ -0,0 +1,8 @@ +* html img, +* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", +this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", +this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) +);} +#wrap{display:table;height:100%} diff --git a/pyramid/scaffolds/zodb/+package+/static/middlebg.png b/pyramid/scaffolds/zodb/+package+/static/middlebg.png new file mode 100644 index 000000000..2369cfb7d Binary files /dev/null and b/pyramid/scaffolds/zodb/+package+/static/middlebg.png differ diff --git a/pyramid/scaffolds/zodb/+package+/static/pylons.css b/pyramid/scaffolds/zodb/+package+/static/pylons.css new file mode 100644 index 000000000..d952fb42e --- /dev/null +++ b/pyramid/scaffolds/zodb/+package+/static/pylons.css @@ -0,0 +1,65 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ +vertical-align:baseline;background:transparent;} +body{line-height:1;} +ol,ul{list-style:none;} +blockquote,q{quotes:none;} +blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} +:focus{outline:0;} +ins{text-decoration:none;} +del{text-decoration:line-through;} +table{border-collapse:collapse;border-spacing:0;} +sub{vertical-align:sub;font-size:smaller;line-height:normal;} +sup{vertical-align:super;font-size:smaller;line-height:normal;} +ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} +ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} +li{display:list-item;} +ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} +ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} +ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} +.hidden{display:none;} +p{line-height:1.5em;} +h1{font-size:1.75em;line-height:1.7em;font-family:helvetica,verdana;} +h2{font-size:1.5em;line-height:1.7em;font-family:helvetica,verdana;} +h3{font-size:1.25em;line-height:1.7em;font-family:helvetica,verdana;} +h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} +html,body{width:100%;height:100%;} +body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} +a{color:#1b61d6;text-decoration:none;} +a:hover{color:#e88f00;text-decoration:underline;} +body h1, +body h2, +body h3, +body h4, +body h5, +body h6{font-family:"NeutonRegular","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#373839;font-style:normal;} +#wrap{min-height:100%;} +#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;vertical-align:middle;} +#header{background:#000000;top:0;font-size:14px;} +#footer{bottom:0;background:#000000 url(footerbg.png) repeat-x 0 top;position:relative;margin-top:-40px;clear:both;} +.header,.footer{width:750px;margin-right:auto;margin-left:auto;} +.wrapper{width:100%} +#top,#top-small,#bottom{width:100%;} +#top{color:#000000;height:230px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#top-small{color:#000000;height:60px;background:#ffffff url(headerbg.png) repeat-x 0 top;position:relative;} +#bottom{color:#222;background-color:#ffffff;} +.top,.top-small,.middle,.bottom{width:750px;margin-right:auto;margin-left:auto;} +.top{padding-top:40px;} +.top-small{padding-top:10px;} +#middle{width:100%;height:100px;background:url(middlebg.png) repeat-x;border-top:2px solid #ffffff;border-bottom:2px solid #b2b2b2;} +.app-welcome{margin-top:25px;} +.app-name{color:#000000;font-weight:bold;} +.bottom{padding-top:50px;} +#left{width:350px;float:left;padding-right:25px;} +#right{width:350px;float:right;padding-left:25px;} +.align-left{text-align:left;} +.align-right{text-align:right;} +.align-center{text-align:center;} +ul.links{margin:0;padding:0;} +ul.links li{list-style-type:none;font-size:14px;} +form{border-style:none;} +fieldset{border-style:none;} +input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} +input[type=text],input[type=password]{width:205px;} +input[type=submit]{background-color:#ddd;font-weight:bold;} +/*Opera Fix*/ +body:before{content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/pyramid/scaffolds/zodb/+package+/static/pyramid-small.png b/pyramid/scaffolds/zodb/+package+/static/pyramid-small.png new file mode 100644 index 000000000..a5bc0ade7 Binary files /dev/null and b/pyramid/scaffolds/zodb/+package+/static/pyramid-small.png differ diff --git a/pyramid/scaffolds/zodb/+package+/static/pyramid.png b/pyramid/scaffolds/zodb/+package+/static/pyramid.png new file mode 100644 index 000000000..347e05549 Binary files /dev/null and b/pyramid/scaffolds/zodb/+package+/static/pyramid.png differ diff --git a/pyramid/scaffolds/zodb/+package+/static/transparent.gif b/pyramid/scaffolds/zodb/+package+/static/transparent.gif new file mode 100644 index 000000000..0341802e5 Binary files /dev/null and b/pyramid/scaffolds/zodb/+package+/static/transparent.gif differ diff --git a/pyramid/scaffolds/zodb/+package+/templates/mytemplate.pt_tmpl b/pyramid/scaffolds/zodb/+package+/templates/mytemplate.pt_tmpl new file mode 100644 index 000000000..4fbc554e9 --- /dev/null +++ b/pyramid/scaffolds/zodb/+package+/templates/mytemplate.pt_tmpl @@ -0,0 +1,76 @@ + + + + The Pyramid Web Application Development Framework + + + + + + + + + + +
+
+
+
pyramid
+
+
+
+
+

+ Welcome to ${project}, an application generated by
+ the Pyramid web application development framework. +

+
+
+
+
+
+

Search documentation

+
+ + +
+
+ +
+
+
+ + + diff --git a/pyramid/scaffolds/zodb/+package+/tests.py_tmpl b/pyramid/scaffolds/zodb/+package+/tests.py_tmpl new file mode 100644 index 000000000..b0cbe33ad --- /dev/null +++ b/pyramid/scaffolds/zodb/+package+/tests.py_tmpl @@ -0,0 +1,17 @@ +import unittest + +from pyramid import testing + +class ViewTests(unittest.TestCase): + def setUp(self): + self.config = testing.setUp() + + def tearDown(self): + testing.tearDown() + + def test_my_view(self): + from {{package}}.views import my_view + request = testing.DummyRequest() + info = my_view(request) + self.assertEqual(info['project'], '{{project}}') + diff --git a/pyramid/scaffolds/zodb/+package+/views.py_tmpl b/pyramid/scaffolds/zodb/+package+/views.py_tmpl new file mode 100644 index 000000000..d4a1147c6 --- /dev/null +++ b/pyramid/scaffolds/zodb/+package+/views.py_tmpl @@ -0,0 +1,6 @@ +from pyramid.view import view_config +from {{package}}.models import MyModel + +@view_config(context=MyModel, renderer='{{package}}:templates/mytemplate.pt') +def my_view(request): + return {'project':'{{project}}'} diff --git a/pyramid/scaffolds/zodb/CHANGES.txt_tmpl b/pyramid/scaffolds/zodb/CHANGES.txt_tmpl new file mode 100644 index 000000000..35a34f332 --- /dev/null +++ b/pyramid/scaffolds/zodb/CHANGES.txt_tmpl @@ -0,0 +1,4 @@ +0.0 +--- + +- Initial version diff --git a/pyramid/scaffolds/zodb/MANIFEST.in_tmpl b/pyramid/scaffolds/zodb/MANIFEST.in_tmpl new file mode 100644 index 000000000..0ff6eb7a0 --- /dev/null +++ b/pyramid/scaffolds/zodb/MANIFEST.in_tmpl @@ -0,0 +1,2 @@ +include *.txt *.ini *.cfg *.rst +recursive-include {{package}} *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml diff --git a/pyramid/scaffolds/zodb/README.txt_tmpl b/pyramid/scaffolds/zodb/README.txt_tmpl new file mode 100644 index 000000000..0ddebfc3e --- /dev/null +++ b/pyramid/scaffolds/zodb/README.txt_tmpl @@ -0,0 +1,4 @@ +{{project}} README + + + diff --git a/pyramid/scaffolds/zodb/development.ini_tmpl b/pyramid/scaffolds/zodb/development.ini_tmpl new file mode 100644 index 000000000..ae9584690 --- /dev/null +++ b/pyramid/scaffolds/zodb/development.ini_tmpl @@ -0,0 +1,57 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = true +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = true +default_locale_name = en +zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 + +[pipeline:main] +pipeline = + egg:WebError#evalerror + egg:repoze.zodbconn#closer + egg:repoze.retry#retry + tm + {{project}} + +[filter:tm] +use = egg:repoze.tm2#tm +commit_veto = repoze.tm:default_commit_veto + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}} + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[logger_{{package_logger}}] +level = DEBUG +handlers = +qualname = {{package}} + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/zodb/production.ini_tmpl b/pyramid/scaffolds/zodb/production.ini_tmpl new file mode 100644 index 000000000..ff52a0585 --- /dev/null +++ b/pyramid/scaffolds/zodb/production.ini_tmpl @@ -0,0 +1,71 @@ +[app:{{project}}] +use = egg:{{project}} +reload_templates = false +debug_authorization = false +debug_notfound = false +debug_routematch = false +debug_templates = false +default_locale_name = en +zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 + +[filter:weberror] +use = egg:WebError#error_catcher +debug = false +;error_log = +;show_exceptions_in_wsgi_errors = true +;smtp_server = localhost +;error_email = janitor@example.com +;smtp_username = janitor +;smtp_password = "janitor's password" +;from_address = paste@localhost +;error_subject_prefix = "Pyramid Error" +;smtp_use_tls = +;error_message = + +[filter:tm] +use = egg:repoze.tm2#tm +commit_veto = repoze.tm:default_commit_veto + +[pipeline:main] +pipeline = + weberror + egg:repoze.zodbconn#closer + egg:repoze.retry#retry + tm + {{project}} + +[server:main] +use = egg:Paste#http +host = 0.0.0.0 +port = 6543 + +# Begin logging configuration + +[loggers] +keys = root, {{package_logger}} + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console + +[logger_{{package_logger}}] +level = WARN +handlers = +qualname = {{package}} + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/pyramid/scaffolds/zodb/setup.cfg_tmpl b/pyramid/scaffolds/zodb/setup.cfg_tmpl new file mode 100644 index 000000000..5bec29823 --- /dev/null +++ b/pyramid/scaffolds/zodb/setup.cfg_tmpl @@ -0,0 +1,27 @@ +[nosetests] +match=^test +nocapture=1 +cover-package={{package}} +with-coverage=1 +cover-erase=1 + +[compile_catalog] +directory = {{package}}/locale +domain = {{project}} +statistics = true + +[extract_messages] +add_comments = TRANSLATORS: +output_file = {{package}}/locale/{{project}}.pot +width = 80 + +[init_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale + +[update_catalog] +domain = {{project}} +input_file = {{package}}/locale/{{project}}.pot +output_dir = {{package}}/locale +previous = true diff --git a/pyramid/scaffolds/zodb/setup.py_tmpl b/pyramid/scaffolds/zodb/setup.py_tmpl new file mode 100644 index 000000000..46759b514 --- /dev/null +++ b/pyramid/scaffolds/zodb/setup.py_tmpl @@ -0,0 +1,44 @@ +import os + +from setuptools import setup, find_packages + +here = os.path.abspath(os.path.dirname(__file__)) +README = open(os.path.join(here, 'README.txt')).read() +CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() + +requires = [ + 'pyramid', + 'repoze.zodbconn', + 'repoze.tm2>=1.0b1', # default_commit_veto + 'repoze.retry', + 'ZODB3', + 'WebError', + ] + +setup(name='{{project}}', + version='0.0', + description='{{project}}', + long_description=README + '\n\n' + CHANGES, + classifiers=[ + "Programming Language :: Python", + "Framework :: Pylons", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", + ], + author='', + author_email='', + url='', + keywords='web pylons pyramid', + packages=find_packages(), + include_package_data=True, + zip_safe=False, + install_requires = requires, + tests_require= requires, + test_suite="{{package}}", + entry_points = """\ + [paste.app_factory] + main = {{package}}:main + """, + paster_plugins=['pyramid'], + ) + diff --git a/pyramid/tests/test_paster.py b/pyramid/tests/test_paster.py index 89b023852..cf0b38a80 100644 --- a/pyramid/tests/test_paster.py +++ b/pyramid/tests/test_paster.py @@ -1,39 +1,5 @@ import unittest -class TestPyramidTemplate(unittest.TestCase): - def _getTargetClass(self): - from pyramid.paster import PyramidTemplate - return PyramidTemplate - - def _makeOne(self, name): - cls = self._getTargetClass() - return cls(name) - - def test_pre_logger_eq_root(self): - tmpl = self._makeOne('name') - vars = {'package':'root'} - result = tmpl.pre(None, None, vars) - self.assertEqual(result, None) - self.assertEqual(vars['package_logger'], 'app') - self.assertTrue(len(vars['random_string']) == 40) - - def test_pre_logger_noteq_root(self): - tmpl = self._makeOne('name') - vars = {'package':'notroot'} - result = tmpl.pre(None, None, vars) - self.assertEqual(result, None) - self.assertEqual(vars['package_logger'], 'notroot') - self.assertTrue(len(vars['random_string']) == 40) - - def test_post(self): - tmpl = self._makeOne('name') - vars = {'package':'root'} - L = [] - tmpl.out = lambda msg: L.append(msg) - result = tmpl.post(None, None, vars) - self.assertEqual(result, None) - self.assertEqual(L, ['Welcome to Pyramid. Sorry for the convenience.']) - class TestPShellCommand(unittest.TestCase): def _getTargetClass(self): from pyramid.paster import PShellCommand diff --git a/pyramid/tests/test_scaffolds.py b/pyramid/tests/test_scaffolds.py new file mode 100644 index 000000000..ed2c5a993 --- /dev/null +++ b/pyramid/tests/test_scaffolds.py @@ -0,0 +1,36 @@ +import unittest + +class TestPyramidTemplate(unittest.TestCase): + def _getTargetClass(self): + from pyramid.scaffolds import PyramidTemplate + return PyramidTemplate + + def _makeOne(self, name): + cls = self._getTargetClass() + return cls(name) + + def test_pre_logger_eq_root(self): + tmpl = self._makeOne('name') + vars = {'package':'root'} + result = tmpl.pre(None, None, vars) + self.assertEqual(result, None) + self.assertEqual(vars['package_logger'], 'app') + self.assertTrue(len(vars['random_string']) == 40) + + def test_pre_logger_noteq_root(self): + tmpl = self._makeOne('name') + vars = {'package':'notroot'} + result = tmpl.pre(None, None, vars) + self.assertEqual(result, None) + self.assertEqual(vars['package_logger'], 'notroot') + self.assertTrue(len(vars['random_string']) == 40) + + def test_post(self): + tmpl = self._makeOne('name') + vars = {'package':'root'} + L = [] + tmpl.out = lambda msg: L.append(msg) + result = tmpl.post(None, None, vars) + self.assertEqual(result, None) + self.assertEqual(L, ['Welcome to Pyramid. Sorry for the convenience.']) + diff --git a/setup.py b/setup.py index f965353ed..6f3fb4eea 100644 --- a/setup.py +++ b/setup.py @@ -78,10 +78,10 @@ setup(name='pyramid', test_suite="pyramid.tests", entry_points = """\ [paste.paster_create_template] - pyramid_starter=pyramid.paster:StarterProjectTemplate - pyramid_zodb=pyramid.paster:ZODBProjectTemplate - pyramid_routesalchemy=pyramid.paster:RoutesAlchemyProjectTemplate - pyramid_alchemy=pyramid.paster:AlchemyProjectTemplate + pyramid_starter=pyramid.scaffolds:StarterProjectTemplate + pyramid_zodb=pyramid.scaffolds:ZODBProjectTemplate + pyramid_routesalchemy=pyramid.scaffolds:RoutesAlchemyProjectTemplate + pyramid_alchemy=pyramid.scaffolds:AlchemyProjectTemplate [paste.paster_command] pshell=pyramid.paster:PShellCommand proutes=pyramid.paster:PRoutesCommand diff --git a/template_tests.py b/template_tests.py deleted file mode 100644 index 8e70e7eb3..000000000 --- a/template_tests.py +++ /dev/null @@ -1,79 +0,0 @@ -import sys -import httplib -import os -import pkg_resources -import shutil -import subprocess -import tempfile -import time -import signal - -if not hasattr(subprocess, 'check_call'): - # 2.4 - def check_call(*arg, **kw): - returncode = subprocess.call(*arg, **kw) - if returncode: - raise ValueError(returncode) - subprocess.check_call = check_call - -class TemplateTest(object): - def make_venv(self, directory): - import virtualenv - import sys - from virtualenv import Logger - logger = Logger([(Logger.level_for_integer(2), sys.stdout)]) - virtualenv.logger = logger - virtualenv.create_environment(directory, - site_packages=False, - clear=False, - unzip_setuptools=True, - use_distribute=False) - def install(self, tmpl_name): - try: - self.old_cwd = os.getcwd() - self.directory = tempfile.mkdtemp() - self.make_venv(self.directory) - os.chdir(pkg_resources.get_distribution('pyramid').location) - subprocess.check_call( - [os.path.join(self.directory, 'bin', 'python'), - 'setup.py', 'develop']) - os.chdir(self.directory) - - subprocess.check_call(['bin/paster', 'create', '-t', tmpl_name, - 'Dingle']) - os.chdir('Dingle') - py = os.path.join(self.directory, 'bin', 'python') - subprocess.check_call([py, 'setup.py', 'install']) - subprocess.check_call([py, 'setup.py', 'test']) - paster = os.path.join(self.directory, 'bin', 'paster') - proc = subprocess.Popen([paster, 'serve', 'development.ini']) - try: - time.sleep(5) - proc.poll() - if proc.returncode is not None: - raise RuntimeError('didnt start') - conn = httplib.HTTPConnection('localhost:6543') - conn.request('GET', '/') - resp = conn.getresponse() - assert(resp.status == 200) - finally: - if hasattr(proc, 'terminate'): - # 2.6+ - proc.terminate() - else: - # 2.5 - os.kill(proc.pid, signal.SIGTERM) - finally: - shutil.rmtree(self.directory) - os.chdir(self.old_cwd) - -templates = ['pyramid_starter', 'pyramid_alchemy', 'pyramid_routesalchemy',] - -if sys.version_info >= (2, 5): - templates.append('pyramid_zodb') - -if __name__ == '__main__': - for name in templates: - test = TemplateTest() - test.install(name) - -- cgit v1.2.3