FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
opensips-cli/opensipscli/module.py at master · wangbao-java/opensips-cli · GitHub
wangbao-java
/
opensips-cli
Public
forked from
OpenSIPS/opensips-cli
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
opensips-cli
/
opensipscli
/
module.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
69 lines (63 loc) · 2.25 KB
Breadcrumbs
opensips-cli
/
opensipscli
/
module.py
Copy path
File metadata and controls
69 lines (63 loc) · 2.25 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/env python
##
## This file is part of OpenSIPS CLI
## (see https://github.com/OpenSIPS/opensips-cli).
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
class
Module
:
"""
An abstract class, that has to be implemented by every Module that should be handled
"""
def
__exclude__
(
self
):
"""
indicates whether the module should be excluded
"""
return
(
False
,
None
)
def
__invoke__
(
self
,
cmd
,
params
=
None
,
modifiers
=
None
):
"""
used to invoke a command from the module (starting with prefix 'do_')
"""
f
=
getattr
(
self
,
'do_'
+
cmd
)
return
f
(
params
,
modifiers
)
def
__get_methods__
(
self
):
"""
returns all the available methods of the module
if the method returns None, the do_`module_name`
method is called for each command
"""
return
([
x
[
3
:]
for
x
in
dir
(
self
)
if
x
.
startswith
(
'do_'
)
and
callable
(
getattr
(
self
,
x
))])
def
__get_modifiers__
(
self
):
"""
returns all the available modifiers of a specific module
"""
return
None
def
__complete__
(
self
,
command
,
text
,
line
,
begidx
,
endidx
):
"""
returns a list with all the auto-completion values
"""
if
not
command
:
modifiers
=
self
.
__get_modifiers__
()
return
modifiers
if
modifiers
else
[
''
]
try
:
compfunc
=
getattr
(
self
,
'complete_'
+
command
)
l
=
compfunc
(
text
,
line
,
begidx
,
endidx
)
if
not
l
:
return
[
''
]
except
AttributeError
:
return
None
if
len
(
l
)
==
1
:
l
[
0
]
+=
" "
return
l
Back
|
FazBrowse Home
|
New Git URL