diff options
Diffstat (limited to 'crypto/krb5/doc/tools/docmodel.py')
-rw-r--r-- | crypto/krb5/doc/tools/docmodel.py | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/crypto/krb5/doc/tools/docmodel.py b/crypto/krb5/doc/tools/docmodel.py deleted file mode 100644 index e5d4d11bc0fc..000000000000 --- a/crypto/krb5/doc/tools/docmodel.py +++ /dev/null @@ -1,251 +0,0 @@ -''' - Copyright 2011 by the Massachusetts - Institute of Technology. All Rights Reserved. - - Export of this software from the United States of America may - require a specific license from the United States Government. - It is the responsibility of any person or organization contemplating - export to obtain such a license before exporting. - - WITHIN THAT CONSTRAINT, permission to use, copy, modify, and - distribute this software and its documentation for any purpose and - without fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright notice and - this permission notice appear in supporting documentation, and that - the name of M.I.T. not be used in advertising or publicity pertaining - to distribution of the software without specific, written prior - permission. Furthermore if you modify this software you must label - your software as modified software and not distribute it in such a - fashion that it might be confused with the original M.I.T. software. - M.I.T. makes no representations about the suitability of - this software for any purpose. It is provided "as is" without express - or implied warranty. -''' -import re - -from Cheetah.Template import Template - -class Attribute(object): - def __init__(self, **argkw): - self.definition = argkw.get('definition') - self.name = argkw.get('name') - self.type = argkw.get('type') - self.typeId = argkw.get('typeId') - self.short_description = argkw.get('short_description') - self.long_description = argkw.get('long_description') - self.version = argkw.get('version') - - def __repr__(self): - result = list() - for (attr,value) in self.__dict__.iteritems(): - result.append('%s=%s' % (attr,value)) - return 'Attribute: %s' % ','.join(result) - - -class CompositeType(): - def __init__(self, **argkw): - self.category = 'composite' - self.definition = argkw.get('definition') - self.name = argkw.get('name') - self.name_signature = argkw.get('name_signature') - self.Id = argkw.get('Id') - self.initializer = argkw.get('initializer') - self.active = argkw.get('active', False) - self.version = argkw.get('version') - self.return_type = argkw.get('return_type') - self.short_description = argkw.get('short_description') - self.long_description = argkw.get('long_description') - self.friends = argkw.get('friends') - self.type = argkw.get('type') - self.attributes = self._setAttributes(argkw.get('attributes')) - - def __repr__(self): - result = list() - for (attr,value) in self.__dict__.iteritems(): - if attr == 'attributes': - if value is not None: - attributes = ['%s' % a for a in value] - value = '\n %s' % '\n '.join(attributes) - - result.append('%s: %s' % (attr,value)) - result = '\n'.join(result) - - return result - - def _setAttributes(self, attributes): - result = None - if attributes is not None: - result = list() - for a in attributes: - result.append(Attribute(**a)) - - return result - - def struct_reference(self, name): - result = re.sub(r'_', '-', name) - result = '_%s-struct' % result - - return result - - def macro_reference(self, name): - result = re.sub(r'_', '-', name) - result = '_%s-data' % result - - return result - -class Parameter(object): - def __init__(self, **argkw): - self.seqno = argkw.get('seqno') - self.name = argkw.get('name') - self.direction = argkw.get('direction') - self.type = argkw.get('type') - self.typeId = argkw.get('typeId') - self.description = argkw.get('description') - self.version = argkw.get('version') - - def __repr__(self): - content = (self.name,self.direction,self.seqno,self.type,self.typeId,self.description) - return 'Parameter: name=%s,direction=%s,seqno=%s,type=%s,typeId=%s,descr=%s' % content - -class Function(object): - def __init__(self, **argkw): - self.category = 'function' - self.name = argkw.get('name') - self.Id = argkw.get('Id') - self.active = argkw.get('active', False) - self.version = argkw.get('version') - self.parameters = self._setParameters(argkw.get('parameters')) - self.return_type = argkw.get('return_type') - self.return_description = argkw.get('return_description') - self.retval_description = argkw.get('retval_description') - self.warn_description = argkw.get('warn_description') - self.sa_description = argkw.get('sa_description') - self.notes_description = argkw.get('notes_description') - self.version_num = argkw.get('version_num') - self.short_description = argkw.get('short_description') - self.long_description = argkw.get('long_description') - self.deprecated_description = argkw.get('deprecated_description') - self.friends = argkw.get('friends') - - def _setParameters(self, parameters): - result = None - if parameters is not None: - result = list() - for p in parameters: - result.append(Parameter(**p)) - - return result - - def getObjectRow(self): - result = [str(self.Id), - self.name, - self.category] - - return ','.join(result) - - def getObjectDescriptionRow(self): - result = [self.Id, - self.active, - self.version, - self.short_description, - self.long_description] - - return ','.join(result) - - def getParameterRows(self): - result = list() - for p in self.parameters: - p_row = [self.Id, - p.name, - p.seqno, - p.type, - p.typeId, - p.description, - p.version] - result.append(','.join(p_row)) - - return '\n'.join(result) - - def __repr__(self): - lines = list() - lines.append('Category: %s' % self.category) - lines.append('Function name: %s' % self.name) - lines.append('Function Id: %s' % self.Id) - parameters = [' %s' % p for p in self.parameters] - lines.append('Parameters:\n%s' % '\n'.join(parameters)) - lines.append('Function return type: %s' % self.return_type) - lines.append('Function return type description:\n%s' % self.return_description) - lines.append('Function retval description:\n%s' % self.retval_description) - lines.append('Function short description:\n%s' % self.short_description) - lines.append('Function long description:\n%s' % self.long_description) - lines.append('Warning description:\n%s' % self.warn_description) - lines.append('See also description:\n%s' % self.sa_description) - lines.append('NOTE description:\n%s' % self.notes_description) - lines.append('Version introduced:\n%s' % self.version_num) - lines.append('Deprecated description:\n%s' % self.deprecated_description) - result = '\n'.join(lines) - - return result - - -class DocModel(object): - def __init__(self, **argkw): - if len(argkw): - self.name = argkw['name'] - if argkw['category'] == 'function': - self.category = 'function' - self.function = Function(**argkw) - elif argkw['category'] == 'composite': - self.category = 'composite' - self.composite = CompositeType(**argkw) - - def __repr__(self): - obj = getattr(self,self.category) - return str(obj) - - def signature(self): - param_list = list() - for p in self.function.parameters: - if p.type is "... " : - param_list.append('%s %s' % (p.type,' ')) - else: - param_list.append('%s %s' % (p.type, p.name)) - param_list = ', '.join(param_list) - result = '%s %s(%s)' % (self.function.return_type, - self.function.name, param_list) - - return result - - def save(self, path, template_path): - f = open(template_path, 'r') - t = Template(f.read(),self) - out = open(path, 'w') - out.write(str(t)) - out.close() - f.close() - - -class DocModelTest(DocModel): - def __init__(self): - doc_path = '../docutil/example.yml' - argkw = yaml.load(open(doc_path,'r')) - super(DocModelTest,self).__init__(**argkw) - - def run_tests(self): - self.test_save() - - def test_print(self): - print('testing') - print(self) - - - def test_save(self): - template_path = '../docutil/function2edit.html' - - path = '/var/tsitkova/Sources/v10/trunk/documentation/test_doc.html' - - self.save(path, template_path) - -if __name__ == '__main__': - tester = DocModelTest() - tester.run_tests() |