61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
# -*-python-*-
|
|
#
|
|
# Copyright (C) 1999-2013 The ViewCVS Group. All Rights Reserved.
|
|
#
|
|
# By using this file, you agree to the terms and conditions set forth in
|
|
# the LICENSE.html file which can be found at the top level of the ViewVC
|
|
# distribution or at http://viewvc.org/license-1.html.
|
|
#
|
|
# For more information, visit http://viewvc.org/
|
|
#
|
|
# -----------------------------------------------------------------------
|
|
#
|
|
# common: common definitions for the viewvc library
|
|
#
|
|
# -----------------------------------------------------------------------
|
|
|
|
# Special type indicators for diff header processing and idiff return codes
|
|
_RCSDIFF_IS_BINARY = 'binary-diff'
|
|
_RCSDIFF_ERROR = 'error'
|
|
_RCSDIFF_NO_CHANGES = "no-changes"
|
|
|
|
|
|
class _item:
|
|
def __init__(self, **kw):
|
|
vars(self).update(kw)
|
|
|
|
|
|
class TemplateData:
|
|
"""A custom dictionary-like object that allows one-time definition
|
|
of keys, and only value fetches and changes, and key deletions,
|
|
thereafter.
|
|
|
|
EZT doesn't require the use of this special class -- a normal
|
|
dict-type data dictionary works fine. But use of this class will
|
|
assist those who want the data sent to their templates to have a
|
|
consistent set of keys."""
|
|
|
|
def __init__(self, initial_data={}):
|
|
self._items = initial_data
|
|
|
|
def __getitem__(self, key):
|
|
return self._items.__getitem__(key)
|
|
|
|
def __setitem__(self, key, item):
|
|
assert self._items.has_key(key)
|
|
return self._items.__setitem__(key, item)
|
|
|
|
def __delitem__(self, key):
|
|
return self._items.__delitem__(key)
|
|
|
|
def keys(self):
|
|
return self._items.keys()
|
|
|
|
def merge(self, template_data):
|
|
"""Merge the data in TemplataData instance TEMPLATA_DATA into this
|
|
instance. Avoid the temptation to use this conditionally in your
|
|
code -- it rather defeats the purpose of this class."""
|
|
|
|
assert isinstance(template_data, TemplateData)
|
|
self._items.update(template_data._items)
|