]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/commitdiff
Start to use flask instead of pylons.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Thu, 27 Jul 2017 21:59:06 +0000 (21:59 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Thu, 27 Jul 2017 21:59:06 +0000 (21:59 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wradmin/trunk@2667 7aebc617-e5e2-0310-91dc-80fb5f6d2477

README.txt [deleted file]
development.ini [deleted file]
docs/index.txt [deleted file]
ez_setup.py [deleted file]
setup.cfg
setup.py
test.ini [deleted file]
wradmin/__init__.py
wradmin/templates/__init__.py [deleted file]
wradmin/test.cfg [new file with mode: 0644]
wradmin/websetup.py [deleted file]

diff --git a/README.txt b/README.txt
deleted file mode 100644 (file)
index 82c87a7..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-This file is for you to describe the wradmin application. Typically
-you would include information such as the information below:
-
-Installation and Setup
-======================
-
-Install ``wradmin`` using easy_install::
-
-    easy_install wradmin
-
-Make a config file as follows::
-
-    paster make-config wradmin config.ini
-
-Tweak the config file as appropriate and then setup the application::
-
-    paster setup-app config.ini
-
-Then you are ready to go.
diff --git a/development.ini b/development.ini
deleted file mode 100644 (file)
index ce35508..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# wradmin - Pylons development environment configuration
-#
-# The %(here)s variable will be replaced with the parent directory of this file
-#
-[DEFAULT]
-debug = true
-# address which should receive any error reports
-email_to = philipp.spitzer@winterrodeln.org
-smtp_server = localhost
-error_email_from = philipp.spitzer@winterrodeln.org
-
-[server:main]
-use = egg:Paste#http
-host = 127.0.0.1
-port = 5000
-
-[app:main]
-use = egg:wradmin
-full_stack = true
-static_files = true
-
-cache_dir = %(here)s/data
-beaker.session.key = wradmin
-beaker.session.secret = uZ7ttRbv4eWd9qMdiio
-
-authkit.setup.method = basic
-authkit.basic.realm = Winterrodeln Admin
-authkit.basic.authenticate.user.type = wradmin.lib.mediawiki:MediaWikiUsers
-authkit.basic.authenticate.user.data = 
-
-# If you'd like to fine-tune the individual locations of the cache data dirs
-# for the Cache data, or the Session saves, un-comment the desired settings
-# here:
-#beaker.cache.data_dir = %(here)s/data/cache
-#beaker.session.data_dir = %(here)s/data/sessions
-
-# SQLAlchemy database URL
-sqlalchemy.url = mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=0
-# If we would use "use_unicode=1" or omit the parameter (because its the default), sqlalchemy requests unicode strings from the MySQLdb backend (and does not do the conversion itself), however, since the tables are defined as 'varchar(x) binary' only binary strings are returned and not converted to unicode.
-
-# necessary for mySQL databases
-sqlalchemy.pool_recycle = 3600
-# sqlalchemy.echo_pool = 1
-# sqlalchemy.echo=true
-
-# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
-# Debug mode will enable the interactive debugging tool, allowing ANYONE to
-# execute malicious code after an exception is raised.
-#set debug = false
-
-
-# Logging configuration
-[loggers]
-keys = root, routes, wradmin
-
-[handlers]
-keys = console, file
-
-[formatters]
-keys = generic
-
-[logger_root]
-level = INFO
-# handlers = file
-handlers = console
-
-[logger_routes]
-level = INFO
-handlers =
-qualname = routes.middleware
-# "level = DEBUG" logs the route matched and routing variables.
-
-[logger_wradmin]
-level = DEBUG
-handlers =
-qualname = wradmin
-
-[handler_console]
-class = StreamHandler
-args = (sys.stderr,)
-level = NOTSET
-formatter = generic
-
-[handler_file]
-class = FileHandler
-args = ('/tmp/pylons_application.log', 'a')
-level = INFO
-formatter = generic
-
-[formatter_generic]
-format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s
-datefmt = %H:%M:%S
diff --git a/docs/index.txt b/docs/index.txt
deleted file mode 100644 (file)
index 84e0369..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-wradmin
-+++++++
-
-This is the main index page of your documentation. It should be written in
-`reStructuredText format <http://docutils.sourceforge.net/rst.html>`_.
-
-You can generate your documentation in HTML format by running this command::
-
-    setup.py pudge
-
-For this to work you will need to download and install `buildutils`_,
-`pudge`_, and `pygments`_.  The ``pudge`` command is disabled by
-default; to ativate it in your project, run::
-
-    setup.py addcommand -p buildutils.pudge_command
-
-.. _buildutils: http://pypi.python.org/pypi/buildutils
-.. _pudge: http://pudge.lesscode.org/
-.. _pygments: http://pygments.org/
diff --git a/ez_setup.py b/ez_setup.py
deleted file mode 100644 (file)
index d24e845..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-#!python
-"""Bootstrap setuptools installation
-
-If you want to use setuptools in your package's setup.py, just include this
-file in the same directory with it, and add this to the top of your setup.py::
-
-    from ez_setup import use_setuptools
-    use_setuptools()
-
-If you want to require a specific version of setuptools, set a download
-mirror, or use an alternate download directory, you can do so by supplying
-the appropriate options to ``use_setuptools()``.
-
-This file can also be run as a script to install or upgrade setuptools.
-"""
-import sys
-DEFAULT_VERSION = "0.6c9"
-DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
-
-md5_data = {
-    'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
-    'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
-    'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
-    'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
-    'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
-    'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
-    'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
-    'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
-    'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
-    'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
-    'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
-    'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
-    'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
-    'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
-    'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
-    'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
-    'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
-    'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
-    'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
-    'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
-    'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
-    'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
-    'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
-    'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
-    'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
-    'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
-    'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
-    'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
-    'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
-    'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
-    'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
-    'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
-    'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
-    'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
-}
-
-import sys, os
-try: from hashlib import md5
-except ImportError: from md5 import md5
-
-def _validate_md5(egg_name, data):
-    if egg_name in md5_data:
-        digest = md5(data).hexdigest()
-        if digest != md5_data[egg_name]:
-            print >>sys.stderr, (
-                "md5 validation of %s failed!  (Possible download problem?)"
-                % egg_name
-            )
-            sys.exit(2)
-    return data
-
-def use_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    download_delay=15
-):
-    """Automatically find/download setuptools and make it available on sys.path
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end with
-    a '/').  `to_dir` is the directory where setuptools will be downloaded, if
-    it is not already available.  If `download_delay` is specified, it should
-    be the number of seconds that will be paused before initiating a download,
-    should one be required.  If an older version of setuptools is installed,
-    this routine will print a message to ``sys.stderr`` and raise SystemExit in
-    an attempt to abort the calling script.
-    """
-    was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
-    def do_download():
-        egg = download_setuptools(version, download_base, to_dir, download_delay)
-        sys.path.insert(0, egg)
-        import setuptools; setuptools.bootstrap_install_from = egg
-    try:
-        import pkg_resources
-    except ImportError:
-        return do_download()       
-    try:
-        pkg_resources.require("setuptools>="+version); return
-    except pkg_resources.VersionConflict, e:
-        if was_imported:
-            print >>sys.stderr, (
-            "The required version of setuptools (>=%s) is not available, and\n"
-            "can't be installed while this script is running. Please install\n"
-            " a more recent version first, using 'easy_install -U setuptools'."
-            "\n\n(Currently using %r)"
-            ) % (version, e.args[0])
-            sys.exit(2)
-        else:
-            del pkg_resources, sys.modules['pkg_resources']    # reload ok
-            return do_download()
-    except pkg_resources.DistributionNotFound:
-        return do_download()
-
-def download_setuptools(
-    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
-    delay = 15
-):
-    """Download setuptools from a specified location and return its filename
-
-    `version` should be a valid setuptools version number that is available
-    as an egg for download under the `download_base` URL (which should end
-    with a '/'). `to_dir` is the directory where the egg will be downloaded.
-    `delay` is the number of seconds to pause before an actual download attempt.
-    """
-    import urllib2, shutil
-    egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
-    url = download_base + egg_name
-    saveto = os.path.join(to_dir, egg_name)
-    src = dst = None
-    if not os.path.exists(saveto):  # Avoid repeated downloads
-        try:
-            from distutils import log
-            if delay:
-                log.warn("""
----------------------------------------------------------------------------
-This script requires setuptools version %s to run (even to display
-help).  I will attempt to download it for you (from
-%s), but
-you may need to enable firewall access for this script first.
-I will start the download in %d seconds.
-
-(Note: if this machine does not have network access, please obtain the file
-
-   %s
-
-and place it in this directory before rerunning this script.)
----------------------------------------------------------------------------""",
-                    version, download_base, delay, url
-                ); from time import sleep; sleep(delay)
-            log.warn("Downloading %s", url)
-            src = urllib2.urlopen(url)
-            # Read/write all in one block, so we don't create a corrupt file
-            # if the download is interrupted.
-            data = _validate_md5(egg_name, src.read())
-            dst = open(saveto,"wb"); dst.write(data)
-        finally:
-            if src: src.close()
-            if dst: dst.close()
-    return os.path.realpath(saveto)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-def main(argv, version=DEFAULT_VERSION):
-    """Install or upgrade setuptools and EasyInstall"""
-    try:
-        import setuptools
-    except ImportError:
-        egg = None
-        try:
-            egg = download_setuptools(version, delay=0)
-            sys.path.insert(0,egg)
-            from setuptools.command.easy_install import main
-            return main(list(argv)+[egg])   # we're done here
-        finally:
-            if egg and os.path.exists(egg):
-                os.unlink(egg)
-    else:
-        if setuptools.__version__ == '0.0.1':
-            print >>sys.stderr, (
-            "You have an obsolete version of setuptools installed.  Please\n"
-            "remove it from your system entirely before rerunning this script."
-            )
-            sys.exit(2)
-
-    req = "setuptools>="+version
-    import pkg_resources
-    try:
-        pkg_resources.require(req)
-    except pkg_resources.VersionConflict:
-        try:
-            from setuptools.command.easy_install import main
-        except ImportError:
-            from easy_install import main
-        main(list(argv)+[download_setuptools(delay=0)])
-        sys.exit(0) # try to force an exit
-    else:
-        if argv:
-            from setuptools.command.easy_install import main
-            main(argv)
-        else:
-            print "Setuptools version",version,"or greater has been installed."
-            print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
-
-def update_md5(filenames):
-    """Update our built-in md5 registry"""
-
-    import re
-
-    for name in filenames:
-        base = os.path.basename(name)
-        f = open(name,'rb')
-        md5_data[base] = md5(f.read()).hexdigest()
-        f.close()
-
-    data = ["    %r: %r,\n" % it for it in md5_data.items()]
-    data.sort()
-    repl = "".join(data)
-
-    import inspect
-    srcfile = inspect.getsourcefile(sys.modules[__name__])
-    f = open(srcfile, 'rb'); src = f.read(); f.close()
-
-    match = re.search("\nmd5_data = {\n([^}]+)}", src)
-    if not match:
-        print >>sys.stderr, "Internal error!"
-        sys.exit(2)
-
-    src = src[:match.start(1)] + repl + src[match.end(1):]
-    f = open(srcfile,'w')
-    f.write(src)
-    f.close()
-
-
-if __name__=='__main__':
-    if len(sys.argv)>2 and sys.argv[1]=='--md5update':
-        update_md5(sys.argv[2:])
-    else:
-        main(sys.argv[1:])
-
-
-
-
-
-
index 06bc108fdc38b171dc9ff2596103d60969b7dd7b..cd3b5727ccc0b37fec581b798d0e413b3f407d54 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -2,12 +2,6 @@
 tag_build = dev
 tag_svn_revision = true
 
-[easy_install]
-find_links = http://www.pylonshq.com/download/
-
-[nosetests]
-with-pylons = test.ini
-
 # Babel configuration
 [compile_catalog]
 domain = wradmin
index 9d4576d5c2d206098fa6cb8edfed9129f07c87fc..faedb13a22657404f65fff865c477920d38b5cce 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,9 +1,4 @@
-try:
-    from setuptools import setup, find_packages
-except ImportError:
-    from ez_setup import use_setuptools
-    use_setuptools()
-    from setuptools import setup, find_packages
+from setuptools import setup, find_packages
 
 setup(
     name='wradmin',
@@ -13,33 +8,12 @@ setup(
     author_email='philipp.spitzer@winterrodeln.org',
     url='http://www.winterrodeln.org/',
     install_requires=[
-        "Pylons>=1.0.2",
         "SQLAlchemy>=0.5",
         "Genshi>=0.4",
-        # "MySQL-python>=1.2",
-        # "AuthKit>=0.4.3,<=0.4.99",
         "lxml>=2.2",
-        # "matplotlib>=0.9",
-        # "mapnik",
         "Babel>=0.9",
         "wrpylib>=0.6.0",
-        "webob",
     ],
-    setup_requires=["PasteScript>=1.6.3"],
-    packages=find_packages(exclude=['ez_setup']),
-    include_package_data=True,
-    test_suite='nose.collector',
     package_data={'wradmin': ['i18n/*/LC_MESSAGES/*.mo']},
-    #message_extractors={'wradmin': [
-    #        ('**.py', 'python', None),
-    #        ('public/**', 'ignore', None)]},
     zip_safe=False,
-    paster_plugins=['PasteScript', 'Pylons'],
-    entry_points="""
-    [paste.app_factory]
-    main = wradmin.config.middleware:make_app
-
-    [paste.app_install]
-    main = pylons.util:PylonsInstaller
-    """,
 )
diff --git a/test.ini b/test.ini
deleted file mode 100644 (file)
index ee27b6a..0000000
--- a/test.ini
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# wradmin - Pylons testing environment configuration
-#
-# The %(here)s variable will be replaced with the parent directory of this file
-#
-[DEFAULT]
-debug = true
-# Uncomment and replace with the address which should receive any error reports
-#email_to = you@yourdomain.com
-smtp_server = localhost
-error_email_from = paste@localhost
-
-[server:main]
-use = egg:Paste#http
-host = 127.0.0.1
-port = 5000
-
-[app:main]
-use = config:development.ini
-
-# Add additional test specific configuration options as necessary.
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8fa96e25e3c6f460f9c2a62f873bd3fe929b63cc 100644 (file)
@@ -0,0 +1,41 @@
+# http://flask.pocoo.org/
+# FLASK_APP=wradmin FLASK_DEBUG=1 WRADMIN_SETTINGS=development.cfg python3 -m flask run
+# FLASK_APP=wradmin WRADMIN_SETTINGS=production.cfg python3 -m flask run
+from flask import Flask, send_from_directory, abort, g
+from sqlalchemy.engine import create_engine
+
+
+app = Flask(__name__)
+app.config.from_envvar('WRADMIN_SETTINGS')
+
+
+def get_db():
+    """Opens a new database connection if there is none yet for the
+    current application context.
+    """
+    if not hasattr(g, 'db'):
+        g.db_engine = create_engine(app.config['DATABASE_URI'])
+        g.db = g.db_engine.connect()
+    return g.db
+
+
+@app.teardown_appcontext
+def close_db(error):
+    """Closes the database again at the end of the request."""
+    if hasattr(g, 'db'):
+        g.db.close()
+
+
+@app.route("/")
+def hello():
+    return send_from_directory('templates', 'index.html')
+
+
+@app.route("/rodelbahn/")
+def rodelbahn_list():
+    pass
+
+
+@app.route("/bericht/")
+def bericht_list():
+    pass
diff --git a/wradmin/templates/__init__.py b/wradmin/templates/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/wradmin/test.cfg b/wradmin/test.cfg
new file mode 100644 (file)
index 0000000..840b74b
--- /dev/null
@@ -0,0 +1,3 @@
+DEBUG = False
+SECRET_KEY = b'.\xe2{\xa4ns\xb7\xbb\x0cHR\xdf@}\xfa\x05;.K\x9bQ\xbc!='
+DATABASE_URI = 'mysql://philipp@localhost:3306/philipp_winterrodeln_wiki_wradmin_test?charset=utf8&use_unicode=1'
diff --git a/wradmin/websetup.py b/wradmin/websetup.py
deleted file mode 100644 (file)
index 4ccf624..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-"""Setup the wradmin application"""
-import logging
-import pylons.test
-
-from wradmin.config.environment import load_environment
-from wradmin.model import meta
-
-log = logging.getLogger(__name__)
-
-def setup_app(command, conf, vars):
-    """Place any commands to setup wradmin here"""
-    if not pylons.test.pylonsapp:
-        load_environment(conf.global_conf, conf.local_conf)
-
-    ## Create the tables if they don't already exist
-    # meta.metadata.create_all(bind=meta.engine)