## ## Copyright (c) 2006 Jason Dillon ## ## Licensed under the Apache License, Version 2.0 (the "License"); ## you may not use this file except in compliance with the License. ## You may obtain a copy of the License at ## ## http://www.apache.org/licenses/LICENSE-2.0 ## ## Unless required by applicable law or agreed to in writing, software ## distributed under the License is distributed on an "AS IS" BASIS, ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ## See the License for the specific language governing permissions and ## limitations under the License. ## ## ## $Id: //guest/jason_dillon/p4spam/main/pylib/perforce/__init__.py#2 $ $Date: 2006/04/12 $ ## from perforce import logging, commands class P4Exception(Exception): pass class P4Field: CODE = 'code' DATA = 'data' class P4Code: ERROR = 'error' STAT = 'stat' INFO = 'info' ## ## P4CommandExecutor ## class P4CommandExecutor: def __init__(this, name, cmd): this.log = logging.Logger(this) this.name = name this.cmd = cmd def __call__(this, *args, **kwargs): debug = this.log.isDebugEnabled() if debug: this.log.debug("Executing %s..." % this.name) result = this.cmd.execute(args) if debug: this.log.debug("Done.") return result ## ## P4 ## class P4: def __init__(this): # # TODO: Expose configuration # pass def __getattr__(this, name): # Lookup/create metadata object cmd = commands.create(name, this) # # TODO: Need to pass in 'this' for configuration context # return P4CommandExecutor(name, cmd)