aboutsummaryrefslogtreecommitdiff
path: root/crypto/krb5/doc/tools/docmodel.py
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/krb5/doc/tools/docmodel.py')
-rw-r--r--crypto/krb5/doc/tools/docmodel.py251
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()