From b8be0f81492a9a045b29e30d8dbe291ec998baf2 Mon Sep 17 00:00:00 2001 From: Michael Spang Date: Thu, 13 Dec 2007 03:39:05 -0500 Subject: [PATCH] Reorganize namespace There were too many packages with only a couple of modules in them. It took minimum four tab completes to find an interesting file. This halves that. --- bin/ceo | 4 ++-- bin/ceoquery | 2 +- bin/csc-chfn | 4 ++-- bin/csc-chsh | 4 ++-- ceo/__init__.py | 1 + {pylib/csc/common => ceo}/conf.py | 0 {pylib/csc/common => ceo}/excep.py | 0 {pylib/csc/backends => ceo}/ldapi.py | 0 {pylib/csc/adm => ceo}/members.py | 5 ++--- {pylib/csc/adm => ceo}/terms.py | 2 +- {pylib/csc/common => ceo}/test.py | 0 ceo/urwid/__init__.py | 1 + {pylib/csc/apps => ceo}/urwid/groups.py | 13 ++++++------- {pylib/csc/apps => ceo}/urwid/info.py | 10 ++++------ {pylib/csc/apps => ceo}/urwid/ldapfilter.py | 0 {pylib/csc/apps => ceo}/urwid/main.py | 17 +++++------------ {pylib/csc/apps => ceo}/urwid/newmember.py | 9 ++++----- {pylib/csc/apps => ceo}/urwid/positions.py | 9 ++++----- {pylib/csc/apps => ceo}/urwid/renew.py | 8 +++----- {pylib/csc/apps => ceo}/urwid/search.py | 10 ++++------ {pylib/csc/apps => ceo}/urwid/widgets.py | 4 ++-- {pylib/csc/apps => ceo}/urwid/window.py | 0 pylib/csc/__init__.py | 5 ----- pylib/csc/adm/__init__.py | 8 -------- pylib/csc/apps/__init__.py | 8 -------- pylib/csc/apps/urwid/__init__.py | 3 --- pylib/csc/backends/__init__.py | 7 ------- pylib/csc/common/__init__.py | 7 ------- setup.py | 3 +-- 29 files changed, 45 insertions(+), 99 deletions(-) create mode 100644 ceo/__init__.py rename {pylib/csc/common => ceo}/conf.py (100%) rename {pylib/csc/common => ceo}/excep.py (100%) rename {pylib/csc/backends => ceo}/ldapi.py (100%) rename {pylib/csc/adm => ceo}/members.py (99%) rename {pylib/csc/adm => ceo}/terms.py (99%) rename {pylib/csc/common => ceo}/test.py (100%) create mode 100644 ceo/urwid/__init__.py rename {pylib/csc/apps => ceo}/urwid/groups.py (95%) rename {pylib/csc/apps => ceo}/urwid/info.py (87%) rename {pylib/csc/apps => ceo}/urwid/ldapfilter.py (100%) rename {pylib/csc/apps => ceo}/urwid/main.py (92%) rename {pylib/csc/apps => ceo}/urwid/newmember.py (97%) rename {pylib/csc/apps => ceo}/urwid/positions.py (95%) rename {pylib/csc/apps => ceo}/urwid/renew.py (97%) rename {pylib/csc/apps => ceo}/urwid/search.py (93%) rename {pylib/csc/apps => ceo}/urwid/widgets.py (97%) rename {pylib/csc/apps => ceo}/urwid/window.py (100%) delete mode 100644 pylib/csc/__init__.py delete mode 100644 pylib/csc/adm/__init__.py delete mode 100644 pylib/csc/apps/__init__.py delete mode 100644 pylib/csc/apps/urwid/__init__.py delete mode 100644 pylib/csc/backends/__init__.py delete mode 100644 pylib/csc/common/__init__.py diff --git a/bin/ceo b/bin/ceo index fd6a1139e..727f97411 100755 --- a/bin/ceo +++ b/bin/ceo @@ -1,3 +1,3 @@ #!/usr/bin/python -import csc.apps.urwid.main -csc.apps.urwid.main.start() +import ceo.urwid.main +ceo.urwid.main.start() diff --git a/bin/ceoquery b/bin/ceoquery index 046c25f83..9e35964d2 100755 --- a/bin/ceoquery +++ b/bin/ceoquery @@ -3,7 +3,7 @@ ceoquery - a script to lookup member and account information """ import os, sys -from csc.adm import members, terms +from ceo import members, terms try: members.connect() diff --git a/bin/csc-chfn b/bin/csc-chfn index 70fff1c1f..1f2e2d686 100755 --- a/bin/csc-chfn +++ b/bin/csc-chfn @@ -9,8 +9,8 @@ When run from an unprivileged account, authentication will be performed before the account information is changed. """ import os, sys, pwd, getopt, PAM -from csc.common.excep import InvalidArgument -from csc.adm import accounts +from ceo import accounts +from ceo.excep import InvalidArgument progname = os.path.basename(sys.argv[0]) diff --git a/bin/csc-chsh b/bin/csc-chsh index 5d18e2a56..4ec779009 100755 --- a/bin/csc-chsh +++ b/bin/csc-chsh @@ -9,8 +9,8 @@ When run from an unprivileged account, authentication will be performed before the shell is changed, and the new shell must be listed in /etc/shells. """ import os, sys, pwd, getopt, PAM -from csc.common.excep import InvalidArgument -from csc.adm import accounts +from ceo import accounts +from ceo.excep import InvalidArgument progname = os.path.basename(sys.argv[0]) diff --git a/ceo/__init__.py b/ceo/__init__.py new file mode 100644 index 000000000..c6f4cceec --- /dev/null +++ b/ceo/__init__.py @@ -0,0 +1 @@ +"""CSC Electronic Office""" diff --git a/pylib/csc/common/conf.py b/ceo/conf.py similarity index 100% rename from pylib/csc/common/conf.py rename to ceo/conf.py diff --git a/pylib/csc/common/excep.py b/ceo/excep.py similarity index 100% rename from pylib/csc/common/excep.py rename to ceo/excep.py diff --git a/pylib/csc/backends/ldapi.py b/ceo/ldapi.py similarity index 100% rename from pylib/csc/backends/ldapi.py rename to ceo/ldapi.py diff --git a/pylib/csc/adm/members.py b/ceo/members.py similarity index 99% rename from pylib/csc/adm/members.py rename to ceo/members.py index bdf5bac32..9da1e6170 100644 --- a/pylib/csc/adm/members.py +++ b/ceo/members.py @@ -10,9 +10,8 @@ Future changes to the members database that need to be atomic must also be moved into this module. """ import re, subprocess, ldap -from csc.common import conf -from csc.common.excep import InvalidArgument -from csc.backends import ldapi +from ceo import conf, excep, ldapi +from ceo.excep import InvalidArgument ### Configuration ### diff --git a/pylib/csc/adm/terms.py b/ceo/terms.py similarity index 99% rename from pylib/csc/adm/terms.py rename to ceo/terms.py index e70d1900c..63b9bb55f 100644 --- a/pylib/csc/adm/terms.py +++ b/ceo/terms.py @@ -233,7 +233,7 @@ def next_unregistered(registered): if __name__ == '__main__': - from csc.common.test import * + from ceo.test import test, assert_equal, success test(parse); assert_equal(110, parse('f2006')); success() test(generate); assert_equal('f2006', generate(110)); success() diff --git a/pylib/csc/common/test.py b/ceo/test.py similarity index 100% rename from pylib/csc/common/test.py rename to ceo/test.py diff --git a/ceo/urwid/__init__.py b/ceo/urwid/__init__.py new file mode 100644 index 000000000..c868e931d --- /dev/null +++ b/ceo/urwid/__init__.py @@ -0,0 +1 @@ +"""Urwid User Interface""" diff --git a/pylib/csc/apps/urwid/groups.py b/ceo/urwid/groups.py similarity index 95% rename from pylib/csc/apps/urwid/groups.py rename to ceo/urwid/groups.py index 5bc19b35e..e8fa66aa2 100644 --- a/pylib/csc/apps/urwid/groups.py +++ b/ceo/urwid/groups.py @@ -1,10 +1,9 @@ -import urwid, pwd, grp -from csc.apps.urwid.widgets import * -from csc.apps.urwid.window import * -import csc.apps.urwid.search as search - -from csc.adm import members -from csc.common.excep import InvalidArgument +import urwid +from ceo import members +from ceo.excep import InvalidArgument +from ceo.urwid import search +from ceo.urwid.widgets import * +from ceo.urwid.window import * def menu_items(items): return [ urwid.AttrWrap( ButtonText( cb, data, txt ), 'menu', 'selected') for (txt, cb, data) in items ] diff --git a/pylib/csc/apps/urwid/info.py b/ceo/urwid/info.py similarity index 87% rename from pylib/csc/apps/urwid/info.py rename to ceo/urwid/info.py index be156830e..3dab4ac78 100644 --- a/pylib/csc/apps/urwid/info.py +++ b/ceo/urwid/info.py @@ -1,10 +1,8 @@ import urwid - -from csc.apps.urwid.widgets import * -from csc.apps.urwid.window import * - -from csc.adm import members -from csc.common.excep import InvalidArgument +from ceo import members +from ceo.excep import InvalidArgument +from ceo.urwid.widgets import * +from ceo.urwid.window import * class InfoPage(WizardPanel): def init_widgets(self): diff --git a/pylib/csc/apps/urwid/ldapfilter.py b/ceo/urwid/ldapfilter.py similarity index 100% rename from pylib/csc/apps/urwid/ldapfilter.py rename to ceo/urwid/ldapfilter.py diff --git a/pylib/csc/apps/urwid/main.py b/ceo/urwid/main.py similarity index 92% rename from pylib/csc/apps/urwid/main.py rename to ceo/urwid/main.py index 625cc0f1a..a5da33ca3 100644 --- a/pylib/csc/apps/urwid/main.py +++ b/ceo/urwid/main.py @@ -1,16 +1,9 @@ import random, ldap, urwid.curses_display - -from csc.apps.urwid.widgets import * -from csc.apps.urwid.window import * -import csc.apps.urwid.newmember as newmember -import csc.apps.urwid.renew as renew -import csc.apps.urwid.info as info -import csc.apps.urwid.search as search -import csc.apps.urwid.positions as positions -import csc.apps.urwid.groups as groups - -from csc.adm import members, terms -from csc.common.excep import InvalidArgument +from ceo import members, terms +from ceo.excep import InvalidArgument +from ceo.urwid.widgets import * +from ceo.urwid.window import * +from ceo.urwid import newmember, renew, info, search, positions, groups ui = urwid.curses_display.Screen() diff --git a/pylib/csc/apps/urwid/newmember.py b/ceo/urwid/newmember.py similarity index 97% rename from pylib/csc/apps/urwid/newmember.py rename to ceo/urwid/newmember.py index 37f4c8f53..1a56608c2 100644 --- a/pylib/csc/apps/urwid/newmember.py +++ b/ceo/urwid/newmember.py @@ -1,9 +1,8 @@ import urwid -from csc.apps.urwid.widgets import * -from csc.apps.urwid.window import * - -from csc.adm import members, terms -from csc.common.excep import InvalidArgument +from ceo import members, terms +from ceo.excep import InvalidArgument +from ceo.urwid.widgets import * +from ceo.urwid.window import * class IntroPage(WizardPanel): def init_widgets(self): diff --git a/pylib/csc/apps/urwid/positions.py b/ceo/urwid/positions.py similarity index 95% rename from pylib/csc/apps/urwid/positions.py rename to ceo/urwid/positions.py index dded23bb4..33d89e2b9 100644 --- a/pylib/csc/apps/urwid/positions.py +++ b/ceo/urwid/positions.py @@ -1,9 +1,8 @@ import urwid -from csc.apps.urwid.widgets import * -from csc.apps.urwid.window import * - -from csc.adm import members -from csc.common.excep import InvalidArgument +from ceo import members +from ceo.excep import InvalidArgument +from ceo.urwid.widgets import * +from ceo.urwid.window import * position_data = [ ('president', 'President'), diff --git a/pylib/csc/apps/urwid/renew.py b/ceo/urwid/renew.py similarity index 97% rename from pylib/csc/apps/urwid/renew.py rename to ceo/urwid/renew.py index 921700481..cc66607f2 100644 --- a/pylib/csc/apps/urwid/renew.py +++ b/ceo/urwid/renew.py @@ -1,9 +1,7 @@ import urwid - -from csc.apps.urwid.widgets import * -from csc.apps.urwid.window import * - -from csc.adm import members, terms +from ceo import members, terms +from ceo.urwid.widgets import * +from ceo.urwid.window import * class IntroPage(WizardPanel): def init_widgets(self): diff --git a/pylib/csc/apps/urwid/search.py b/ceo/urwid/search.py similarity index 93% rename from pylib/csc/apps/urwid/search.py rename to ceo/urwid/search.py index d4b23c6f3..fa66b522b 100644 --- a/pylib/csc/apps/urwid/search.py +++ b/ceo/urwid/search.py @@ -1,10 +1,8 @@ import urwid - -from csc.apps.urwid.widgets import * -from csc.apps.urwid.window import * - -from csc.adm import members, terms -from csc.common.excep import InvalidArgument +from ceo import members, terms +from ceo.excep import InvalidArgument +from ceo.urwid.widgets import * +from ceo.urwid.window import * class TermPage(WizardPanel): def init_widgets(self): diff --git a/pylib/csc/apps/urwid/widgets.py b/ceo/urwid/widgets.py similarity index 97% rename from pylib/csc/apps/urwid/widgets.py rename to ceo/urwid/widgets.py index 891272604..ca524165f 100644 --- a/pylib/csc/apps/urwid/widgets.py +++ b/ceo/urwid/widgets.py @@ -1,6 +1,6 @@ import urwid -from csc.apps.urwid.ldapfilter import * -from csc.apps.urwid.window import raise_back, push_window +from ceo.urwid.ldapfilter import * +from ceo.urwid.window import raise_back, push_window def push_wizard(name, pages, dimensions=(50, 10)): state = {} diff --git a/pylib/csc/apps/urwid/window.py b/ceo/urwid/window.py similarity index 100% rename from pylib/csc/apps/urwid/window.py rename to ceo/urwid/window.py diff --git a/pylib/csc/__init__.py b/pylib/csc/__init__.py deleted file mode 100644 index dfdefbd66..000000000 --- a/pylib/csc/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Computer Science Club Python Modules - -The csc module is a container for all CSC-specific Python modules. -""" diff --git a/pylib/csc/adm/__init__.py b/pylib/csc/adm/__init__.py deleted file mode 100644 index 2c37b1b80..000000000 --- a/pylib/csc/adm/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -CSC Administrative Modules - -This module provides member and account management modules. - - members - member registration management functions - terms - helper routines for manipulating terms -""" diff --git a/pylib/csc/apps/__init__.py b/pylib/csc/apps/__init__.py deleted file mode 100644 index 162075b66..000000000 --- a/pylib/csc/apps/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -Application-style User Interfaces - -This module contains large frontends with many functions -and fancy graphical user interfaces. - - legacy - aims to reproduce the curses UI of the previous CEO -""" diff --git a/pylib/csc/apps/urwid/__init__.py b/pylib/csc/apps/urwid/__init__.py deleted file mode 100644 index 67bb77aae..000000000 --- a/pylib/csc/apps/urwid/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -""" -Urwid User Interface -""" diff --git a/pylib/csc/backends/__init__.py b/pylib/csc/backends/__init__.py deleted file mode 100644 index f747f2406..000000000 --- a/pylib/csc/backends/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -""" -Backend Modules - -This module contains backend interfaces and related modules. - - ldapi - LDAP interface for UNIX account attribute administration -""" diff --git a/pylib/csc/common/__init__.py b/pylib/csc/common/__init__.py deleted file mode 100644 index 7876ba0bd..000000000 --- a/pylib/csc/common/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -""" -Generally Useful Common Modules - - conf - simple configuration file reader - excep - generally useful exceptions - test - test suite utility routines -""" diff --git a/setup.py b/setup.py index e4729fd72..ede121585 100755 --- a/setup.py +++ b/setup.py @@ -5,8 +5,7 @@ from distutils.core import setup setup( name='ceo', description='CSC Electronic Office', - packages=[ 'csc', 'csc.common', 'csc.adm', 'csc.backends', 'csc.apps', 'csc.apps.urwid' ], - package_dir = {'': 'pylib'}, + packages=[ 'ceo', 'ceo.urwid' ], scripts=['bin/ceo', 'bin/ceoquery', 'bin/csc-chfn', 'bin/csc-chsh'], )