mcp-ticketer 0.1.39__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,152 @@
1
+ """Exception classes for MCP Ticketer."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any, Optional
6
+
7
+ from .models import TicketState
8
+
9
+
10
+ class MCPTicketerError(Exception):
11
+ """Base exception for MCP Ticketer."""
12
+ pass
13
+
14
+
15
+ class AdapterError(MCPTicketerError):
16
+ """Base adapter error."""
17
+
18
+ def __init__(
19
+ self,
20
+ message: str,
21
+ adapter_name: str,
22
+ original_error: Optional[Exception] = None
23
+ ):
24
+ """Initialize adapter error.
25
+
26
+ Args:
27
+ message: Error message
28
+ adapter_name: Name of the adapter that raised the error
29
+ original_error: Original exception that caused this error
30
+ """
31
+ super().__init__(message)
32
+ self.adapter_name = adapter_name
33
+ self.original_error = original_error
34
+
35
+ def __str__(self) -> str:
36
+ """String representation of the error."""
37
+ base_msg = f"[{self.adapter_name}] {super().__str__()}"
38
+ if self.original_error:
39
+ base_msg += f" (caused by: {self.original_error})"
40
+ return base_msg
41
+
42
+
43
+ class AuthenticationError(AdapterError):
44
+ """Authentication failed with external service."""
45
+ pass
46
+
47
+
48
+ class RateLimitError(AdapterError):
49
+ """Rate limit exceeded."""
50
+
51
+ def __init__(
52
+ self,
53
+ message: str,
54
+ adapter_name: str,
55
+ retry_after: Optional[int] = None,
56
+ original_error: Optional[Exception] = None
57
+ ):
58
+ """Initialize rate limit error.
59
+
60
+ Args:
61
+ message: Error message
62
+ adapter_name: Name of the adapter
63
+ retry_after: Seconds to wait before retrying
64
+ original_error: Original exception
65
+ """
66
+ super().__init__(message, adapter_name, original_error)
67
+ self.retry_after = retry_after
68
+
69
+
70
+ class ValidationError(MCPTicketerError):
71
+ """Data validation error."""
72
+
73
+ def __init__(
74
+ self,
75
+ message: str,
76
+ field: Optional[str] = None,
77
+ value: Any = None
78
+ ):
79
+ """Initialize validation error.
80
+
81
+ Args:
82
+ message: Error message
83
+ field: Field that failed validation
84
+ value: Value that failed validation
85
+ """
86
+ super().__init__(message)
87
+ self.field = field
88
+ self.value = value
89
+
90
+ def __str__(self) -> str:
91
+ """String representation of the error."""
92
+ base_msg = super().__str__()
93
+ if self.field:
94
+ base_msg += f" (field: {self.field})"
95
+ if self.value is not None:
96
+ base_msg += f" (value: {self.value})"
97
+ return base_msg
98
+
99
+
100
+ class ConfigurationError(MCPTicketerError):
101
+ """Configuration error."""
102
+ pass
103
+
104
+
105
+ class CacheError(MCPTicketerError):
106
+ """Cache operation error."""
107
+ pass
108
+
109
+
110
+ class StateTransitionError(MCPTicketerError):
111
+ """Invalid state transition."""
112
+
113
+ def __init__(
114
+ self,
115
+ message: str,
116
+ from_state: TicketState,
117
+ to_state: TicketState
118
+ ):
119
+ """Initialize state transition error.
120
+
121
+ Args:
122
+ message: Error message
123
+ from_state: Current state
124
+ to_state: Target state
125
+ """
126
+ super().__init__(message)
127
+ self.from_state = from_state
128
+ self.to_state = to_state
129
+
130
+ def __str__(self) -> str:
131
+ """String representation of the error."""
132
+ return f"{super().__str__()} ({self.from_state} -> {self.to_state})"
133
+
134
+
135
+ class NetworkError(AdapterError):
136
+ """Network-related error."""
137
+ pass
138
+
139
+
140
+ class TimeoutError(AdapterError):
141
+ """Request timeout error."""
142
+ pass
143
+
144
+
145
+ class NotFoundError(AdapterError):
146
+ """Resource not found error."""
147
+ pass
148
+
149
+
150
+ class PermissionError(AdapterError):
151
+ """Permission denied error."""
152
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-ticketer
3
- Version: 0.1.39
3
+ Version: 0.2.0
4
4
  Summary: Universal ticket management interface for AI agents with MCP support
5
5
  Author-email: MCP Ticketer Team <support@mcp-ticketer.io>
6
6
  Maintainer-email: MCP Ticketer Team <support@mcp-ticketer.io>
@@ -1,12 +1,18 @@
1
1
  mcp_ticketer/__init__.py,sha256=Xx4WaprO5PXhVPbYi1L6tBmwmJMkYS-lMyG4ieN6QP0,717
2
- mcp_ticketer/__version__.py,sha256=RcgpUO8aLxkc0dVDN1OI3liNLe1LdvT5ar10c-XmM8E,1118
2
+ mcp_ticketer/__version__.py,sha256=9j49fzPH9jSgtpm7Tgb5_MiRjdY95EWDMnBbiisOXqM,1117
3
3
  mcp_ticketer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  mcp_ticketer/adapters/__init__.py,sha256=B5DFllWn23hkhmrLykNO5uMMSdcFuuPHXyLw_jyFzuE,358
5
5
  mcp_ticketer/adapters/aitrackdown.py,sha256=stlbge8K6w-EyQkw_vEQNSXQgCOWN5tOlQUgGWZQNMQ,17936
6
6
  mcp_ticketer/adapters/github.py,sha256=rhf8yaK9vOGMstvFwddguWnokVIfpasoYMBlyjNg_vY,47335
7
7
  mcp_ticketer/adapters/hybrid.py,sha256=UADYZLc_UNw0xHPSbgguBNzvUCnuYn12Qi9ea-zdlMk,19086
8
8
  mcp_ticketer/adapters/jira.py,sha256=IoyMaznYE7NliaNGv-I_q2UodUS6JhOllLP1gUEXThs,35375
9
- mcp_ticketer/adapters/linear.py,sha256=Ze_DqmFoKvHFIjHYiAMX7LViumQu0wyKgThWWOfV3Do,75906
9
+ mcp_ticketer/adapters/linear.py,sha256=fcQ9s_V7IgP4z2K12lbWXYHUVs1avu1uzUzDCK2eEg4,552
10
+ mcp_ticketer/adapters/linear/__init__.py,sha256=dOPx6caymloIsdyjxS33E09gfPQS6kprisDWwOT2-bE,735
11
+ mcp_ticketer/adapters/linear/adapter.py,sha256=emvjHU-NSFVdxS7lxRjcTv6QNxn26-8RbZNg-x-z5xE,26641
12
+ mcp_ticketer/adapters/linear/client.py,sha256=6IKgYRNy0GF6MhXwxaEBeBE2FM-d1WfhOQ43Mhj0-3s,8871
13
+ mcp_ticketer/adapters/linear/mappers.py,sha256=96euA9TuOTEWEPDKvixjYHb82Ha1zD6gxuo9VsLT2wA,9636
14
+ mcp_ticketer/adapters/linear/queries.py,sha256=chcHCHqvyQbKHPp9wWHGo3HdUGV_6RHNdRadP2pZkVQ,7112
15
+ mcp_ticketer/adapters/linear/types.py,sha256=VuGPu1Z5jGHtbI2zkCyL5YFnwQNukGW-UV72k6zF0p4,8097
10
16
  mcp_ticketer/cache/__init__.py,sha256=Xcd-cKnt-Cx7jBzvfzUUUPaGkmyXFi5XUFWw3Z4b7d4,138
11
17
  mcp_ticketer/cache/memory.py,sha256=2yBqGi9i0SanlUhJoOC7nijWjoMa3_ntPe-V-AV-LfU,5042
12
18
  mcp_ticketer/cli/__init__.py,sha256=l9Q8iKmfGkTu0cssHBVqNZTsL4eAtFzOB25AED_0G6g,89
@@ -28,6 +34,7 @@ mcp_ticketer/core/adapter.py,sha256=q64LxOInIno7EIbmuxItf8KEsd-g9grCs__Z4uwZHto,
28
34
  mcp_ticketer/core/config.py,sha256=hvn8RoN2BSmYzESKqCvcpKleX0PrGiHVQ5v35nX12Mc,19241
29
35
  mcp_ticketer/core/env_discovery.py,sha256=It62C97UBt96CgVbZCql5NQtONmCHMkX3c8W2kEl-Qk,18716
30
36
  mcp_ticketer/core/env_loader.py,sha256=fX8EpHcAJxxhPJ-XY5BD8HlLs-Y9jdlQ24Qtt5ylBNo,12032
37
+ mcp_ticketer/core/exceptions.py,sha256=78tzV3Muc7E_UhEIByF0NtsPe1I0lFVrbpdDNX56kQg,3737
31
38
  mcp_ticketer/core/http_client.py,sha256=s5ikMiwEJ8TJjNn73wu3gv3OdAtyBEpAqPnSroRMW2k,13971
32
39
  mcp_ticketer/core/mappers.py,sha256=1aG1jFsHTCwmGRVgOlXW-VOSTGzc86gv7qjDfiR1ups,17462
33
40
  mcp_ticketer/core/models.py,sha256=a_2AbL3NlN0pfdZad-hXus_zb4bSi9zISHcsNYl0sng,12486
@@ -43,9 +50,9 @@ mcp_ticketer/queue/queue.py,sha256=jSAkYNEIbNH1cbYuF8s6eFuZmXqn8WHXx3mbfMU2Ud8,1
43
50
  mcp_ticketer/queue/run_worker.py,sha256=F7anuhdkgZF9lXZntHuJ7rEzuEkAfAZO1qvGh3R57bw,1033
44
51
  mcp_ticketer/queue/ticket_registry.py,sha256=k8FYg2cFYsI4POb94-o-fTrIVr-ttfi60r0O5YhJYck,15321
45
52
  mcp_ticketer/queue/worker.py,sha256=zXJpyhRJ99be0VLaez3YPtC9OU17vVNu5qhr1dCGaLg,19992
46
- mcp_ticketer-0.1.39.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
47
- mcp_ticketer-0.1.39.dist-info/METADATA,sha256=K3lSazYkpXThzS7r5FdBZpyqN6Ey_ruWst8_FG6MxtU,13220
48
- mcp_ticketer-0.1.39.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
49
- mcp_ticketer-0.1.39.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
50
- mcp_ticketer-0.1.39.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
51
- mcp_ticketer-0.1.39.dist-info/RECORD,,
53
+ mcp_ticketer-0.2.0.dist-info/licenses/LICENSE,sha256=KOVrunjtILSzY-2N8Lqa3-Q8dMaZIG4LrlLTr9UqL08,1073
54
+ mcp_ticketer-0.2.0.dist-info/METADATA,sha256=bvHYuQNE5HYIEgM2BlrpPwCesfgm3jWiax7lwTNGGB0,13219
55
+ mcp_ticketer-0.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
56
+ mcp_ticketer-0.2.0.dist-info/entry_points.txt,sha256=o1IxVhnHnBNG7FZzbFq-Whcs1Djbofs0qMjiUYBLx2s,60
57
+ mcp_ticketer-0.2.0.dist-info/top_level.txt,sha256=WnAG4SOT1Vm9tIwl70AbGG_nA217YyV3aWFhxLH2rxw,13
58
+ mcp_ticketer-0.2.0.dist-info/RECORD,,