annotate farolluz/common.py @ 55:7653ffbec88b tip

Update setup.py
author Benoît Allard <benoit.allard@greenbone.net>
date Wed, 07 Jan 2015 12:02:23 +0100
parents 809db989cac5
children
rev   line source
0
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
2 #
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
3 # Authors:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
4 # BenoƮt Allard <benoit.allard@greenbone.net>
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
5 #
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
6 # Copyright:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
7 # Copyright (C) 2014 Greenbone Networks GmbH
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
8 #
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
9 # This program is free software; you can redistribute it and/or
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
10 # modify it under the terms of the GNU General Public License
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
11 # as published by the Free Software Foundation; either version 2
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
12 # of the License, or (at your option) any later version.
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
13 #
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
14 # This program is distributed in the hope that it will be useful,
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
17 # GNU General Public License for more details.
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
18 #
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
19 # You should have received a copy of the GNU General Public License
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
20 # along with this program; if not, write to the Free Software
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
21 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
22
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
23 """\
26
809db989cac5 Reorganize the code in smaller mpodules
Benoît Allard <benoit.allard@greenbone.net>
parents: 22
diff changeset
24 Common Objects related to CVRF Documents
0
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
25 """
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
26
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
27 class ValidationError(Exception): pass
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
28
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
29
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
30 class CVRFNote(object):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
31 TYPES = ('General', 'Details', 'Description', 'Summary', 'FAQ',
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
32 'Legal Disclaimer', 'Other')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
33 def __init__(self, _type, ordinal, note, title=None, audience=None):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
34 self._type = _type
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
35 self._ordinal = ordinal
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
36 self._note = note
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
37 self._title = title
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
38 self._audience = audience
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
39
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
40 def getTitle(self):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
41 """ returns something that can be used as a title """
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
42 if self._title is None:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
43 return "%s (#%d)" % (self._type, self._ordinal)
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
44 return "%s (%s)" % (self._title, self._type)
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
45
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
46 def validate(self):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
47 if not self._type:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
48 raise ValidationError('A Note needs to have a Type set')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
49 if self._type not in self.TYPES:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
50 raise ValidationError('A Note Type needs to be one of %s' % ', '.join(self.TYPES))
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
51 if self._ordinal < 0:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
52 raise ValidationError('A Note ordinal must be a positive integer')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
53 if not self._note:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
54 raise ValidationError('A Note must contain some text')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
55
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
56
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
57 def __str__(self):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
58 return self._note
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
59
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
60
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
61 class CVRFReference(object):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
62 TYPES = ('Self', 'External')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
63 def __init__(self, url, description, _type=None):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
64 self._url = url
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
65 self._description = description
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
66 self._type = _type
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
67
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
68 def validate(self):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
69 if (self._type is not None) and (self._type not in self.TYPES):
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
70 raise ValidationError('If a Reference type is set, it mist be one of %s' % ', '.join(self.TYPES))
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
71 if not self._url:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
72 raise ValidationError('A Reference must contain an URL')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
73 if not self._description:
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
74 raise ValidationError('A Reference must contain a description')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
75
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
76
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
77 class CVRFAcknowledgment(object):
8
cb8b2a196f0b Allow Name and Organization in anAcknowledgment to be plural
Benoît Allard <benoit.allard@greenbone.net>
parents: 7
diff changeset
78 def __init__(self, names=[], organizations=[], description=None,
0
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
79 url=None):
8
cb8b2a196f0b Allow Name and Organization in anAcknowledgment to be plural
Benoît Allard <benoit.allard@greenbone.net>
parents: 7
diff changeset
80 self._names = names
cb8b2a196f0b Allow Name and Organization in anAcknowledgment to be plural
Benoît Allard <benoit.allard@greenbone.net>
parents: 7
diff changeset
81 self._organizations = organizations
0
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
82 self._description = description
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
83 self._url = url
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
84
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
85 def getTitle(self):
8
cb8b2a196f0b Allow Name and Organization in anAcknowledgment to be plural
Benoît Allard <benoit.allard@greenbone.net>
parents: 7
diff changeset
86 return "%s - %s" % (', '.join(self._names),
cb8b2a196f0b Allow Name and Organization in anAcknowledgment to be plural
Benoît Allard <benoit.allard@greenbone.net>
parents: 7
diff changeset
87 ', '.join(self._organizations))
0
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
88
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
89 def validate(self):
8
cb8b2a196f0b Allow Name and Organization in anAcknowledgment to be plural
Benoît Allard <benoit.allard@greenbone.net>
parents: 7
diff changeset
90 if (not self._names) and (not self._organizations) and (not self._description):
0
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
91 raise ValidationError('An Acknowledgment must have at least a Name, an Organization or a Description')
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
92
e18b61a73a68 Initial Release
Benoît Allard <benoit.allard@greenbone.net>
parents:
diff changeset
93
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)