Define version constants etc in __init__.py

Move central constant definitions into __init__.py.  This does away
with version.py which contained nothing else and __init__.py is where
things like __VERSION__ are usually defined.

This commit also changes code to use offlineimap.__version__ rather
than offlineimap.version.__version__ as was before. Cleaned up some
duplicate or unneeded imports while touching those, formatting import
statements per PEP8 (one import per row).

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
Sebastian Spaeth 2010-12-22 12:35:41 +01:00 committed by Nicolas Sebrecht
parent 229bcca491
commit 0b5b38d298
7 changed files with 59 additions and 69 deletions

View File

@ -1,5 +1,23 @@
__all__ = ['OfflineImap']
__productname__ = 'OfflineIMAP'
__version__ = "6.3.1"
__copyright__ = "Copyright (C) 2002 - 2010 John Goerzen"
__author__ = "John Goerzen"
__author_email__= "john@complete.org"
__description__ = "Disconnected Universal IMAP Mail Synchronization/Reader Support"
__bigcopyright__ = """%(__productname__)s %(__version__)s
%(__copyright__)s <%(__author_email__)s>""" % locals()
banner = __bigcopyright__ + """
This software comes with ABSOLUTELY NO WARRANTY; see the file
COPYING for details. This is free software, and you are welcome
to distribute it under the conditions laid out in COPYING."""
__homepage__ = "http://github.com/nicolas33/offlineimap"
__license__ = "Licensed under the GNU GPL v2+ (v2 or any later version)."
# put this last, so we don't run into circular dependencies using
# e.g. offlineimap.__version__.
from offlineimap.init import OfflineImap
__all__ = ['ui', 'folder', 'repository', 'mbnames', 'threadutil', 'init']

View File

@ -16,16 +16,18 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from Base import BaseFolder
import imaplib
from offlineimap import imaputil, imaplibutil
from offlineimap.ui import UIBase
from offlineimap.version import versionstr
import rfc822, time, string, random, binascii, re
import rfc822
import string
import random
import binascii
import re
from StringIO import StringIO
from copy import copy
import time
from Base import BaseFolder
from offlineimap import imaputil, imaplibutil, __version__
from offlineimap.ui import UIBase
class IMAPFolder(BaseFolder):
def __init__(self, imapserver, name, visiblename, accountname, repository):
@ -226,7 +228,7 @@ class IMAPFolder(BaseFolder):
headervalue += binascii.hexlify(self.getname())
headervalue += '-%d-' % long(time.time())
headervalue += str(self.randomgenerator.random()).replace('.', '')
headervalue += '-v' + versionstr
headervalue += '-v' + offlineimap.__version__
return (headername, headervalue)
def savemessage_addheader(self, content, headername, headervalue):

View File

@ -59,7 +59,10 @@ class OfflineImap:
def run(self):
"""Parse the commandline and invoke everything"""
parser = OptionParser()
parser = OptionParser(version=offlineimap.banner,
description="%s.\n\n%s" %
(offlineimap.__copyright__,
offlineimap.__license__))
parser.add_option("-1",
action="store_true", dest="singlethreading",
default=False,
@ -90,7 +93,7 @@ class OfflineImap:
parser.add_option("-c", dest="configfile", metavar="FILE",
default="~/.offlineimaprc",
help="Specifies a configuration file to use in lieu of "
"the default, ~/.offlineimaprc.")
"%default.")
parser.add_option("-d", dest="debugtype", metavar="type1,[type2...]",
help=

View File

@ -16,21 +16,23 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from threading import Lock, Event
import time
import sys
import os
import signal
import curses, curses.panel, curses.textpad, curses.wrapper
from Blinkenlights import BlinkenBase
from UIBase import UIBase
from threading import *
import thread, time, sys, os, signal, time
from offlineimap import version, threadutil
from offlineimap.threadutil import MultiLock
import offlineimap
import curses, curses.panel, curses.textpad, curses.wrapper
acctkeys = '1234567890abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-=;/.,'
class CursesUtil:
def __init__(self):
self.pairlock = Lock()
self.iolock = MultiLock()
self.iolock = offlineimap.threadutil.MultiLock()
self.start()
def initpairs(self):
@ -251,7 +253,7 @@ class InputHandler:
s.startthread()
def startthread(s):
s.thread = threadutil.ExitNotifyThread(target = s.bgreaderloop,
s.thread = offlineimap.threadutil.ExitNotifyThread(target = s.bgreaderloop,
name = "InputHandler loop")
s.thread.setDaemon(1)
s.thread.start()
@ -321,7 +323,7 @@ class Blinkenlights(BlinkenBase, UIBase):
s.setupwindows()
s.inputhandler = InputHandler(s.c)
s.gettf().setcolor('red')
s._msg(version.banner)
s._msg(offlineimap.banner)
s.inputhandler.set_bgchar(s.keypress)
signal.signal(signal.SIGWINCH, s.resizehandler)
s.resizelock = Lock()
@ -454,10 +456,10 @@ class Blinkenlights(BlinkenBase, UIBase):
else:
color = curses.A_REVERSE
s.bannerwindow.bkgd(' ', color) # Fill background with that color
s.bannerwindow.addstr("%s %s" % (version.productname,
version.versionstr))
s.bannerwindow.addstr(0, s.bannerwindow.getmaxyx()[1] - len(version.copyright) - 1,
version.copyright)
s.bannerwindow.addstr("%s %s" % (offlineimap.__productname__,
offlineimap.__version__))
s.bannerwindow.addstr(0, s.bannerwindow.getmaxyx()[1] - len(offlineimap.__copyright__) - 1,
offlineimap.__copyright__)
s.bannerwindow.noutrefresh()

View File

@ -61,8 +61,8 @@ class UIBase:
def setlogfd(s, logfd):
s.logfile = logfd
logfd.write("This is %s %s\n" % \
(offlineimap.version.productname,
offlineimap.version.versionstr))
(offlineimap.__productname__,
offlineimap.__version__))
logfd.write("Python: %s\n" % sys.version)
logfd.write("Platform: %s\n" % sys.platform)
logfd.write("Args: %s\n" % sys.argv)
@ -174,7 +174,7 @@ class UIBase:
where the UI should do its setup -- TK, for instance, would
create the application window here."""
if s.verbose >= 0:
s._msg(offlineimap.version.banner)
s._msg(offlineimap.banner)
def connecting(s, hostname, port):
if s.verbose < 0:

View File

@ -1,35 +0,0 @@
productname = 'OfflineIMAP'
versionstr = "6.3.1"
versionlist = versionstr.split(".")
major = versionlist[0]
minor = versionlist[1]
patch = versionlist[2]
copyright = "Copyright (C) 2002 - 2009 John Goerzen"
author = "John Goerzen"
author_email = "jgoerzen@complete.org"
description = "Disconnected Universal IMAP Mail Synchronization/Reader Support"
bigcopyright = """%(productname)s %(versionstr)s
%(copyright)s <%(author_email)s>""" % locals()
banner = bigcopyright + """
This software comes with ABSOLUTELY NO WARRANTY; see the file
COPYING for details. This is free software, and you are welcome
to distribute it under the conditions laid out in COPYING."""
homepage = "http://software.complete.org/offlineimap/"
license = """Copyright (C) 2002 - 2009 John Goerzen <jgoerzen@complete.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA"""

View File

@ -27,15 +27,15 @@ from distutils.core import setup
import offlineimap.version
setup(name = "offlineimap",
version = offlineimap.version.versionstr,
description = offlineimap.version.description,
author = offlineimap.version.author,
author_email = offlineimap.version.author_email,
url = offlineimap.version.homepage,
version = offlineimap.__version__,
description = offlineimap.__description__,
author = offlineimap.__author__,
author_email = offlineimap.__author_email__,
url = offlineimap.__homepage__,
packages = ['offlineimap', 'offlineimap.folder',
'offlineimap.repository', 'offlineimap.ui'],
scripts = ['bin/offlineimap'],
license = offlineimap.version.copyright + \
license = offlineimap.__copyright__ + \
", Licensed under the GPL version 2"
)