comparison sat_pubsub/error.py @ 405:c56a728412f1

file organisation + setup refactoring: - `/src` has been renamed to `/sat_pubsub`, this is the recommended naming convention - revamped `setup.py` on the basis of SàT's `setup.py` - added a `VERSION` which is the unique place where version number will now be set - use same trick as in SàT to specify dev version (`D` at the end) - use setuptools_scm to retrieve Mercurial hash when in dev version
author Goffi <goffi@goffi.org>
date Fri, 16 Aug 2019 12:00:02 +0200
parents src/error.py@aa3a464df605
children ccb2a22ea0fc
comparison
equal deleted inserted replaced
404:105a0772eedd 405:c56a728412f1
1 #!/usr/bin/python
2 #-*- coding: utf-8 -*-
3
4 # Copyright (c) 2012-2019 Jérôme Poisson
5 # Copyright (c) 2013-2016 Adrien Cossa
6 # Copyright (c) 2003-2011 Ralph Meijer
7
8
9 # This program is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU Affero General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
13
14 # This program is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU Affero General Public License for more details.
18
19 # You should have received a copy of the GNU Affero General Public License
20 # along with this program. If not, see <http://www.gnu.org/licenses/>.
21 # --
22
23 # This program is based on Idavoll (http://idavoll.ik.nu/),
24 # originaly written by Ralph Meijer (http://ralphm.net/blog/)
25 # It is sublicensed under AGPL v3 (or any later version) as allowed by the original
26 # license.
27
28 # --
29
30 # Here is a copy of the original license:
31
32 # Copyright (c) 2003-2011 Ralph Meijer
33
34 # Permission is hereby granted, free of charge, to any person obtaining
35 # a copy of this software and associated documentation files (the
36 # "Software"), to deal in the Software without restriction, including
37 # without limitation the rights to use, copy, modify, merge, publish,
38 # distribute, sublicense, and/or sell copies of the Software, and to
39 # permit persons to whom the Software is furnished to do so, subject to
40 # the following conditions:
41
42 # The above copyright notice and this permission notice shall be
43 # included in all copies or substantial portions of the Software.
44
45 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
46 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
47 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
48 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
49 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
50 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
51 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52
53
54 class Error(Exception):
55 msg = ''
56
57 def __init__(self, msg=None):
58 self.msg = msg or self.msg
59
60
61 def __str__(self):
62 return self.msg
63
64
65 class Deprecated(Exception):
66 pass
67
68
69 class NodeNotFound(Error):
70 pass
71
72
73 class NodeExists(Error):
74 pass
75
76
77 class NotSubscribed(Error):
78 """
79 Entity is not subscribed to this node.
80 """
81
82
83 class SubscriptionExists(Error):
84 """
85 There already exists a subscription to this node.
86 """
87
88
89 def NotLeafNodeError(Error):
90 """a leaf node is expected but we have a collection"""
91
92
93 class Forbidden(Error):
94 pass
95
96
97 class NotAuthorized(Error):
98 pass
99
100
101 class NotInRoster(Error):
102 pass
103
104
105 class ItemNotFound(Error):
106 pass
107
108
109 class ItemForbidden(Error):
110 pass
111
112
113 class ItemRequired(Error):
114 pass
115
116
117 class NoInstantNodes(Error):
118 pass
119
120
121 class InvalidConfigurationOption(Error):
122 msg = 'Invalid configuration option'
123
124
125 class InvalidConfigurationValue(Error):
126 msg = 'Bad configuration value'
127
128
129 class NodeNotPersistent(Error):
130 pass
131
132
133 class NoRootNode(Error):
134 pass
135
136
137 class NoCallbacks(Error):
138 """
139 There are no callbacks for this node.
140 """
141
142 class NoCollections(Error):
143 pass
144
145
146 class NoPublishing(Error):
147 """
148 This node does not support publishing.
149 """
150
151 class BadAccessTypeError(Error):
152 pass