diff --git a/Makefile b/Makefile index a57ce0bb..dcc47d2c 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ update: echo "remember that pymysql was tweaked" src: ### Use semantic versioning - echo 'Version 2.6.0-development+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION + echo 'Version 2.6.1-stable+timestamp.'`date +%Y.%m.%d.%H.%M.%S` > VERSION ### rm -f all junk files make clean ### clean up baisc apps diff --git a/VERSION b/VERSION index 57f223ce..3ae9ba00 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.6.0-development+timestamp.2013.09.12.16.30.52 +Version 2.6.1-stable+timestamp.2013.09.12.17.08.08 diff --git a/gluon/admin.py b/gluon/admin.py index b4c93758..f22c64f0 100644 --- a/gluon/admin.py +++ b/gluon/admin.py @@ -12,12 +12,12 @@ import traceback import zipfile import urllib from shutil import rmtree -from utils import web2py_uuid -from fileutils import w2p_pack, w2p_unpack, w2p_pack_plugin, w2p_unpack_plugin -from fileutils import up, fix_newlines, abspath, recursive_unlink -from fileutils import read_file, write_file, parse_version -from restricted import RestrictedError -from settings import global_settings +from gluon.utils import web2py_uuid +from gluon.fileutils import w2p_pack, w2p_unpack, w2p_pack_plugin, w2p_unpack_plugin +from gluon.fileutils import up, fix_newlines, abspath, recursive_unlink +from gluon.fileutils import read_file, write_file, parse_version +from gluon.restricted import RestrictedError +from gluon.settings import global_settings if not global_settings.web2py_runtime_gae: diff --git a/gluon/cache.py b/gluon/cache.py index 221f1989..1cf9b175 100644 --- a/gluon/cache.py +++ b/gluon/cache.py @@ -30,7 +30,7 @@ import re import hashlib import datetime try: - import settings + from gluon import settings have_settings = True except ImportError: have_settings = False @@ -423,7 +423,7 @@ class Cache(object): """ # GAE will have a special caching if have_settings and settings.global_settings.web2py_runtime_gae: - from contrib.gae_memcache import MemcacheClient + from gluon.contrib.gae_memcache import MemcacheClient self.ram = self.disk = MemcacheClient(request) else: # Otherwise use ram (and try also disk) diff --git a/gluon/cfs.py b/gluon/cfs.py index 6e610d49..8c7ca075 100644 --- a/gluon/cfs.py +++ b/gluon/cfs.py @@ -15,7 +15,7 @@ FOR INTERNAL USE ONLY from os import stat import thread import logging -from fileutils import read_file +from gluon.fileutils import read_file cfs = {} # for speed-up cfs_lock = thread.allocate_lock() # and thread safety diff --git a/gluon/compileapp.py b/gluon/compileapp.py index 89365fe2..bede5c9e 100644 --- a/gluon/compileapp.py +++ b/gluon/compileapp.py @@ -18,27 +18,27 @@ import os import copy import random import __builtin__ -from storage import Storage, List -from template import parse_template -from restricted import restricted, compile2 -from fileutils import mktree, listdir, read_file, write_file -from myregex import regex_expose -from languages import translator -from dal import BaseAdapter, SQLDB, SQLField, DAL, Field -from sqlhtml import SQLFORM, SQLTABLE -from cache import Cache -from globals import current, Response -import settings -from cfs import getcfs -import html -import validators -from http import HTTP, redirect +from gluon.storage import Storage, List +from gluon.template import parse_template +from gluon.restricted import restricted, compile2 +from gluon.fileutils import mktree, listdir, read_file, write_file +from gluon.myregex import regex_expose +from gluon.languages import translator +from gluon.dal import BaseAdapter, SQLDB, SQLField, DAL, Field +from gluon.sqlhtml import SQLFORM, SQLTABLE +from gluon.cache import Cache +from gluon.globals import current, Response +from gluon import settings +from gluon.cfs import getcfs +from gluon import html +from gluon import validators +from gluon.http import HTTP, redirect import marshal import shutil import imp import logging logger = logging.getLogger("web2py") -import rewrite +from gluon import rewrite from custom_import import custom_import_install try: diff --git a/gluon/dal.py b/gluon/dal.py index b189167d..42123993 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -210,7 +210,7 @@ pjoin = os.path.join # following checks allow the use of dal without web2py, as a standalone module ################################################################################### try: - from utils import web2py_uuid + from gluon.utils import web2py_uuid except (ImportError, SystemError): import uuid def web2py_uuid(): return str(uuid.uuid4()) @@ -222,7 +222,7 @@ except ImportError: have_portalocker = False try: - import serializers + from gluon import serializers have_serializers = True except ImportError: have_serializers = False @@ -235,7 +235,7 @@ except ImportError: simplejson = None try: - import validators + from gluon import validators have_validators = True except (ImportError, SyntaxError): have_validators = False @@ -298,7 +298,7 @@ if not 'google' in DRIVERS: try: # first try contrib driver, then from site-packages (if installed) try: - import contrib.pymysql as pymysql + import gluon.contrib.pymysql as pymysql # monkeypatch pymysql because they havent fixed the bug: # https://github.com/petehunt/PyMySQL/issues/86 pymysql.ESCAPE_REGEX = re.compile("'") @@ -327,7 +327,7 @@ if not 'google' in DRIVERS: try: # first try contrib driver, then from site-packages (if installed) try: - import contrib.pg8000.dbapi as pg8000 + import gluon.contrib.pg8000.dbapi as pg8000 except ImportError: import pg8000.dbapi as pg8000 DRIVERS.append('PostgreSQL(pg8000)') @@ -345,7 +345,7 @@ if not 'google' in DRIVERS: import pyodbc except ImportError: try: - import contrib.pypyodbc as pyodbc + import gluon.contrib.pypyodbc as pyodbc except Exception, e: raise ImportError(str(e)) DRIVERS.append('MSSQL(pyodbc)') diff --git a/gluon/globals.py b/gluon/globals.py index b387336b..a69ad893 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -14,17 +14,17 @@ Contains the classes for the global used variables: """ -from storage import Storage, List -from streamer import streamer, stream_file_or_304_or_206, DEFAULT_CHUNK_SIZE -from xmlrpc import handler -from contenttype import contenttype -from html import xmlescape, TABLE, TR, PRE, URL -from http import HTTP, redirect -from fileutils import up -from serializers import json, custom_json -import settings -from utils import web2py_uuid, secure_dumps, secure_loads -from settings import global_settings +from gluon.storage import Storage, List +from gluon.streamer import streamer, stream_file_or_304_or_206, DEFAULT_CHUNK_SIZE +from gluon.xmlrpc import handler +from gluon.contenttype import contenttype +from gluon.html import xmlescape, TABLE, TR, PRE, URL +from gluon.http import HTTP, redirect +from gluon.fileutils import up +from gluon.serializers import json, custom_json +import gluon.settings as settings +from gluon.utils import web2py_uuid, secure_dumps, secure_loads +from gluon.settings import global_settings import hashlib import portalocker import cPickle @@ -41,8 +41,8 @@ import threading import cgi import copy import tempfile -from cache import CacheInRam -from fileutils import copystream +from gluon.cache import CacheInRam +from gluon.fileutils import copystream FMT = '%a, %d-%b-%Y %H:%M:%S PST' PAST = 'Sat, 1-Jan-1971 00:00:00' @@ -60,7 +60,7 @@ except: try: import json as sj #standard installed library except: - import contrib.simplejson as sj #pure python library + import gluon.contrib.simplejson as sj #pure python library regex_session_id = re.compile('^([\w\-]+/)?[\w\-\.]+$') diff --git a/gluon/html.py b/gluon/html.py index 23977a88..b48a77fa 100644 --- a/gluon/html.py +++ b/gluon/html.py @@ -24,9 +24,9 @@ import marshal from HTMLParser import HTMLParser from htmlentitydefs import name2codepoint -from storage import Storage -from utils import web2py_uuid, simple_hash, compare -from highlight import highlight +from gluon.storage import Storage +from gluon.utils import web2py_uuid, simple_hash, compare +from gluon.highlight import highlight regex_crlf = re.compile('\r|\n') @@ -2713,7 +2713,7 @@ class MARKMIN(XmlComponent): """ calls the gluon.contrib.markmin render function to convert the wiki syntax """ - from contrib.markmin.markmin2html import render + from gluon.contrib.markmin.markmin2html import render return render(self.text, extra=self.extra, allowed=self.allowed, sep=self.sep, latex=self.latex, URL=self.url, environment=self.environment, diff --git a/gluon/languages.py b/gluon/languages.py index c8b746c6..d377d34e 100644 --- a/gluon/languages.py +++ b/gluon/languages.py @@ -23,14 +23,14 @@ try: except ImportError: import copy_reg # python 2 -from portalocker import read_locked, LockedFile +from gluon.portalocker import read_locked, LockedFile from utf8 import Utf8 -from fileutils import listdir -import settings -from cfs import getcfs -from html import XML, xmlescape -from contrib.markmin.markmin2html import render, markmin_escape +from gluon.fileutils import listdir +import gluon.settings as settings +from gluon.cfs import getcfs +from gluon.html import XML, xmlescape +from gluon.contrib.markmin.markmin2html import render, markmin_escape from string import maketrans __all__ = ['translator', 'findT', 'update_all_languages'] @@ -178,7 +178,7 @@ def read_possible_plural_rules(): """ plurals = {} try: - import contrib.plural_rules as package + import gluon.contrib.plural_rules as package for importer, modname, ispkg in pkgutil.iter_modules(package.__path__): if len(modname) == 2: module = __import__(package.__name__ + '.' + modname, diff --git a/gluon/main.py b/gluon/main.py index 7d513864..75ea6e10 100644 --- a/gluon/main.py +++ b/gluon/main.py @@ -34,15 +34,15 @@ except: try: import json as sj #standard installed library except: - import contrib.simplejson as sj #pure python library + import gluon.contrib.simplejson as sj #pure python library from thread import allocate_lock -from fileutils import abspath, write_file -from settings import global_settings -from utils import web2py_uuid -from admin import add_path_first, create_missing_folders, create_missing_app_folders -from globals import current +from gluon.fileutils import abspath, write_file +from gluon.settings import global_settings +from gluon.utils import web2py_uuid +from gluon.admin import add_path_first, create_missing_folders, create_missing_app_folders +from gluon.globals import current # Remarks: # calling script has inserted path to script directory into sys.path @@ -89,19 +89,19 @@ else: logging.basicConfig() logger = logging.getLogger("web2py") -from restricted import RestrictedError -from http import HTTP, redirect -from globals import Request, Response, Session -from compileapp import build_environment, run_models_in, \ +from gluon.restricted import RestrictedError +from gluon.http import HTTP, redirect +from gluon.globals import Request, Response, Session +from gluon.compileapp import build_environment, run_models_in, \ run_controller_in, run_view_in -from contenttype import contenttype -from dal import BaseAdapter -from validators import CRYPT -from html import URL, xmlescape -from utils import is_valid_ip_address, getipaddrinfo -from rewrite import load, url_in, THREAD_LOCAL as rwthread, \ +from gluon.contenttype import contenttype +from gluon.dal import BaseAdapter +from gluon.validators import CRYPT +from gluon.html import URL, xmlescape +from gluon.utils import is_valid_ip_address, getipaddrinfo +from gluon.rewrite import load, url_in, THREAD_LOCAL as rwthread, \ try_rewrite_on_error, fixup_missing_path_info -import newcron +from gluon import newcron __all__ = ['wsgibase', 'save_password', 'appfactory', 'HttpServer'] @@ -123,7 +123,7 @@ except: raise RuntimeError("Cannot determine web2py version") try: - import rocket + from gluon import rocket except: if not global_settings.web2py_runtime_gae: logger.warn('unable to import Rocket') diff --git a/gluon/newcron.py b/gluon/newcron.py index 00d5e549..c9853ddd 100644 --- a/gluon/newcron.py +++ b/gluon/newcron.py @@ -18,7 +18,7 @@ import platform import portalocker import fileutils import cPickle -from settings import global_settings +from gluon.settings import global_settings logger = logging.getLogger("web2py.cron") _cron_stopping = False diff --git a/gluon/rewrite.py b/gluon/rewrite.py index a96c4302..b4f2712e 100644 --- a/gluon/rewrite.py +++ b/gluon/rewrite.py @@ -22,10 +22,10 @@ import logging import traceback import threading import urllib -from storage import Storage, List -from http import HTTP -from fileutils import abspath, read_file -from settings import global_settings +from gluon.storage import Storage, List +from gluon.http import HTTP +from gluon.fileutils import abspath, read_file +from gluon.settings import global_settings isdir = os.path.isdir isfile = os.path.isfile diff --git a/gluon/serializers.py b/gluon/serializers.py index cf31fd0b..0323aa80 100644 --- a/gluon/serializers.py +++ b/gluon/serializers.py @@ -5,11 +5,10 @@ License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html) """ import datetime import decimal -from storage import Storage -from html import TAG, XmlComponent -from html import xmlescape -from languages import lazyT -import contrib.rss2 as rss2 +from gluon.storage import Storage +from gluon.html import TAG, XmlComponent, xmlescape +from gluon.languages import lazyT +import gluon.contrib.rss2 as rss2 try: import simplejson as json_parser # try external module @@ -17,7 +16,7 @@ except ImportError: try: import json as json_parser # try stdlib (Python >= 2.6) except: - import contrib.simplejson as json_parser # fallback to pure-Python module + import gluon.contrib.simplejson as json_parser # fallback to pure-Python module have_yaml = True try: diff --git a/gluon/settings.py b/gluon/settings.py index 0e87ef9d..a8c434d9 100644 --- a/gluon/settings.py +++ b/gluon/settings.py @@ -7,7 +7,7 @@ License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html) import os import sys import platform -from storage import Storage +from gluon.storage import Storage global_settings = Storage() settings = global_settings # legacy compatibility diff --git a/gluon/shell.py b/gluon/shell.py index c1d080be..b41a27c3 100644 --- a/gluon/shell.py +++ b/gluon/shell.py @@ -18,15 +18,15 @@ import re import optparse import glob import traceback -import fileutils -from settings import global_settings -from utils import web2py_uuid -from compileapp import build_environment, read_pyc, run_models_in -from restricted import RestrictedError -from globals import Request, Response, Session -from storage import Storage, List -from admin import w2p_unpack -from dal import BaseAdapter +import gluon.fileutils as fileutils +from gluon.settings import global_settings +from gluon.utils import web2py_uuid +from gluon.compileapp import build_environment, read_pyc, run_models_in +from gluon.restricted import RestrictedError +from gluon.globals import Request, Response, Session +from gluon.storage import Storage, List +from gluon.admin import w2p_unpack +from gluon.dal import BaseAdapter logger = logging.getLogger("web2py") diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index b53bb8c7..15045d2c 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -14,30 +14,30 @@ Holds: """ import os -from http import HTTP -from html import XmlComponent -from html import XML, SPAN, TAG, A, DIV, CAT, UL, LI, TEXTAREA, BR, IMG, SCRIPT -from html import FORM, INPUT, LABEL, OPTION, SELECT -from html import TABLE, THEAD, TBODY, TR, TD, TH, STYLE -from html import URL, truncate_string, FIELDSET -from dal import DAL, Field, Table, Row, CALLABLETYPES, smart_query, \ +from gluon.http import HTTP +from gluon.html import XmlComponent +from gluon.html import XML, SPAN, TAG, A, DIV, CAT, UL, LI, TEXTAREA, BR, IMG, SCRIPT +from gluon.html import FORM, INPUT, LABEL, OPTION, SELECT +from gluon.html import TABLE, THEAD, TBODY, TR, TD, TH, STYLE +from gluon.html import URL, truncate_string, FIELDSET +from gluon.dal import DAL, Field, Table, Row, CALLABLETYPES, smart_query, \ bar_encode, Reference, REGEX_TABLE_DOT_FIELD, Expression -from storage import Storage -from utils import md5_hash -from validators import IS_EMPTY_OR, IS_NOT_EMPTY, IS_LIST_OF, IS_DATE, \ +from gluon.storage import Storage +from gluon.utils import md5_hash +from gluon.validators import IS_EMPTY_OR, IS_NOT_EMPTY, IS_LIST_OF, IS_DATE, \ IS_DATETIME, IS_INT_IN_RANGE, IS_FLOAT_IN_RANGE, IS_STRONG -import serializers +import gluon.serializers as serializers import datetime import urllib import re import cStringIO -from globals import current -from http import redirect +from gluon.globals import current +from gluon.http import redirect import inspect try: - import settings + import gluon.settings as settings is_gae = settings.global_settings.web2py_runtime_gae except ImportError: is_gae = False # this is an assumption (if settings missing) diff --git a/gluon/storage.py b/gluon/storage.py index 5622ad2f..f78df86f 100644 --- a/gluon/storage.py +++ b/gluon/storage.py @@ -13,7 +13,7 @@ Provides: """ import cPickle -import portalocker +import gluon.portalocker as portalocker __all__ = ['List', 'Storage', 'Settings', 'Messages', 'StorageList', 'load_storage', 'save_storage'] diff --git a/gluon/streamer.py b/gluon/streamer.py index f2194715..25fb8034 100644 --- a/gluon/streamer.py +++ b/gluon/streamer.py @@ -13,8 +13,8 @@ import time import re import errno import rewrite -from http import HTTP -from contenttype import contenttype +from gluon.http import HTTP +from gluon.contenttype import contenttype regex_start_range = re.compile('\d+(?=\-)') diff --git a/gluon/template.py b/gluon/template.py index 096d5247..03190913 100644 --- a/gluon/template.py +++ b/gluon/template.py @@ -25,8 +25,8 @@ except: try: # have web2py - from restricted import RestrictedError - from globals import current + from gluon.restricted import RestrictedError + from gluon.globals import current except ImportError: # do not have web2py current = None diff --git a/gluon/tests/test_router.py b/gluon/tests/test_router.py index 8b9709b4..81c8baff 100644 --- a/gluon/tests/test_router.py +++ b/gluon/tests/test_router.py @@ -10,17 +10,17 @@ import tempfile import logging if os.path.isdir('gluon'): - sys.path.append(os.path.realpath('gluon')) # running from web2py base + sys.path.insert(0,os.path.realpath('gluon')) # running from web2py base else: - sys.path.append(os.path.realpath('../')) # running from gluon/tests/ + sys.path.insert(0,os.path.realpath('../')) # running from gluon/tests/ os.environ['web2py_path'] = os.path.realpath('../../') # for settings -from rewrite import load, filter_url, filter_err, get_effective_router, map_url_out -from html import URL -from fileutils import abspath -from settings import global_settings -from http import HTTP -from storage import Storage +from gluon.rewrite import load, filter_url, filter_err, get_effective_router, map_url_out +from gluon.html import URL +from gluon.fileutils import abspath +from gluon.settings import global_settings +from gluon.http import HTTP +from gluon.storage import Storage logger = None oldcwd = None diff --git a/gluon/tests/test_routes.py b/gluon/tests/test_routes.py index 3a278659..c64da073 100644 --- a/gluon/tests/test_routes.py +++ b/gluon/tests/test_routes.py @@ -10,17 +10,17 @@ import tempfile import logging if os.path.isdir('gluon'): - sys.path.append(os.path.realpath('gluon')) # running from web2py base + sys.path.insert(0,os.path.realpath('gluon')) # running from web2py base else: - sys.path.append(os.path.realpath('../')) # running from gluon/tests/ + sys.path.insert(0,os.path.realpath('../')) # running from gluon/tests/ os.environ['web2py_path'] = os.path.realpath('../../') # for settings -from rewrite import load, filter_url, filter_err, get_effective_router, regex_filter_out, regex_select -from html import URL -from fileutils import abspath -from settings import global_settings -from http import HTTP -from storage import Storage +from gluon.rewrite import load, filter_url, filter_err, get_effective_router, regex_filter_out, regex_select +from gluon.html import URL +from gluon.fileutils import abspath +from gluon.settings import global_settings +from gluon.http import HTTP +from gluon.storage import Storage logger = None oldcwd = None diff --git a/gluon/tools.py b/gluon/tools.py index 9e8f1fd9..bb9a4004 100644 --- a/gluon/tools.py +++ b/gluon/tools.py @@ -46,7 +46,7 @@ except ImportError: import simplejson as json_parser except: # fallback to pure-Python module - import contrib.simplejson as json_parser + import gluon.contrib.simplejson as json_parser __all__ = ['Mail', 'Auth', 'Recaptcha', 'Crud', 'Service', 'Wiki', 'PluginManager', 'fetch', 'geocode', 'prettydate'] @@ -1028,7 +1028,7 @@ class Auth(object): Authentication Example: - from contrib.utils import * + from gluon.contrib.utils import * mail=Mail() mail.settings.server='smtp.gmail.com:587' mail.settings.sender='you@somewhere.com' @@ -4772,7 +4772,7 @@ class Service(object): def serve_soap(self, version="1.1"): try: - from contrib.pysimplesoap.server import SoapDispatcher + from gluon.contrib.pysimplesoap.server import SoapDispatcher except: return "pysimplesoap not installed in contrib" request = current.request diff --git a/gluon/utf8.py b/gluon/utf8.py index 111327aa..e68cd354 100644 --- a/gluon/utf8.py +++ b/gluon/utf8.py @@ -45,7 +45,7 @@ def sort_key(s): """ global sort_key try: - from contrib.pyuca import unicode_collator + from gluon.contrib.pyuca import unicode_collator unicode_sort_key = unicode_collator.sort_key sort_key = lambda s: unicode_sort_key( unicode(s, 'utf-8') if isinstance(s, str) else s) diff --git a/gluon/utils.py b/gluon/utils.py index 289ec0ae..68742248 100644 --- a/gluon/utils.py +++ b/gluon/utils.py @@ -37,15 +37,15 @@ from hashlib import md5, sha1, sha224, sha256, sha384, sha512 try: from Crypto.Cipher import AES except ImportError: - import contrib.aes as AES + import gluon.contrib.aes as AES import hmac try: try: - from contrib.pbkdf2_ctypes import pbkdf2_hex + from gluon.contrib.pbkdf2_ctypes import pbkdf2_hex except (ImportError, AttributeError): - from contrib.pbkdf2 import pbkdf2_hex + from gluon.contrib.pbkdf2 import pbkdf2_hex HAVE_PBKDF2 = True except ImportError: try: diff --git a/gluon/validators.py b/gluon/validators.py index 7b4294f1..7e11fbbd 100644 --- a/gluon/validators.py +++ b/gluon/validators.py @@ -19,8 +19,8 @@ import struct import decimal import unicodedata from cStringIO import StringIO -from utils import simple_hash, web2py_uuid, DIGEST_ALG_BY_SIZE -from dal import FieldVirtual, FieldMethod +from gluon.utils import simple_hash, web2py_uuid, DIGEST_ALG_BY_SIZE +from gluon.dal import FieldVirtual, FieldMethod JSONErrors = (NameError, TypeError, ValueError, AttributeError, KeyError) @@ -3523,7 +3523,7 @@ class IS_IPV6(Validator): try: import ipaddress except ImportError: - from contrib import ipaddr as ipaddress + from gluon.contrib import ipaddr as ipaddress try: ip = ipaddress.IPv6Address(value) @@ -3746,7 +3746,7 @@ class IS_IPADDRESS(Validator): try: import ipaddress except ImportError: - from contrib import ipaddr as ipaddress + from gluon.contrib import ipaddr as ipaddress try: ip = ipaddress.ip_address(value) diff --git a/gluon/widget.py b/gluon/widget.py index e719b073..3f2b1fd1 100644 --- a/gluon/widget.py +++ b/gluon/widget.py @@ -22,12 +22,12 @@ import math import logging import newcron import getpass -import main +import gluon.main as main -from fileutils import read_file, write_file, create_welcome_w2p -from settings import global_settings -from shell import run, test -from utils import is_valid_ip_address, is_loopback_ip_address, getipaddrinfo +from gluon.fileutils import read_file, write_file, create_welcome_w2p +from gluon.settings import global_settings +from gluon.shell import run, test +from gluon.utils import is_valid_ip_address, is_loopback_ip_address, getipaddrinfo ProgramName = 'web2py Web Framework' @@ -319,7 +319,7 @@ class web2pyDialog(object): self.button_stop.configure(state='disabled') if options.taskbar: - import contrib.taskbar_widget + import gluon.contrib.taskbar_widget self.tb = contrib.taskbar_widget.TaskBarIcon() self.checkTaskBar() diff --git a/gluon/winservice.py b/gluon/winservice.py index 36cb75df..0c46bcd0 100644 --- a/gluon/winservice.py +++ b/gluon/winservice.py @@ -26,7 +26,7 @@ except: print "Warning, winservice is unable to install the Mark Hammond Win32 extensions" import servicemanager import _winreg -from fileutils import up +from gluon.fileutils import up __all__ = ['web2py_windows_service_handler'] @@ -125,7 +125,7 @@ class Web2pyService(Service): options.minthreads = None if not hasattr(options, 'maxthreads'): options.maxthreads = None - import main + from gluon import main self.server = main.HttpServer( ip=options.ip, port=options.port, @@ -146,7 +146,7 @@ class Web2pyService(Service): interfaces=options.interfaces ) try: - from rewrite import load + from gluon.rewrite import load load() self.server.start() except: @@ -170,11 +170,11 @@ class Web2pyCronService(Web2pyService): _exe_args_ = 'options' def start(self): - import newcron + from gluon import newcron import logging import logging.config - from settings import global_settings - from fileutils import abspath + from gluon.settings import global_settings + from gluon.fileutils import abspath from os.path import exists, join self.log('web2py Cron service starting')