1 |
commit: dad01a9243e6d217da18976b93dbb4f84cf93b44 |
2 |
Author: Göktürk Yüksek <gokturk <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Dec 29 06:13:51 2016 +0000 |
4 |
Commit: Göktürk Yüksek <gokturk <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Dec 29 06:13:51 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/gentoostats.git/commit/?id=dad01a92 |
7 |
|
8 |
client: add support python3 compatibility |
9 |
|
10 |
client/gentoostats-cli | 6 ++++-- |
11 |
client/gentoostats-send | 19 +++++++++++++++---- |
12 |
client/gentoostats/list.py | 8 +++++--- |
13 |
client/gentoostats/payload.py | 10 ++++++++-- |
14 |
client/gentoostats/search.py | 5 +++-- |
15 |
client/gentoostats/utils.py | 7 +++++-- |
16 |
6 files changed, 40 insertions(+), 15 deletions(-) |
17 |
|
18 |
diff --git a/client/gentoostats-cli b/client/gentoostats-cli |
19 |
index a22ccc7..768a1ed 100755 |
20 |
--- a/client/gentoostats-cli |
21 |
+++ b/client/gentoostats-cli |
22 |
@@ -10,13 +10,15 @@ def main(): |
23 |
parser.add_argument('-s', '--server', default='soc.dev.gentoo.org') |
24 |
parser.add_argument('-u', '--url', default='/gentoostats') |
25 |
|
26 |
- subparsers = parser.add_subparsers() |
27 |
+ # http://bugs.python.org/issue9253 |
28 |
+ subparsers = parser.add_subparsers(dest='command') |
29 |
+ subparsers.required = True |
30 |
|
31 |
list.add_parser(subparsers) |
32 |
search.add_parser(subparsers) |
33 |
|
34 |
args = parser.parse_args() |
35 |
- args.func(args) |
36 |
+ args.command(args) |
37 |
|
38 |
if __name__ == "__main__": |
39 |
main() |
40 |
|
41 |
diff --git a/client/gentoostats-send b/client/gentoostats-send |
42 |
index 2ae2857..eac742c 100755 |
43 |
--- a/client/gentoostats-send |
44 |
+++ b/client/gentoostats-send |
45 |
@@ -1,10 +1,21 @@ |
46 |
#!/usr/bin/env python |
47 |
|
48 |
+from __future__ import print_function |
49 |
+ |
50 |
import sys |
51 |
import json |
52 |
import argparse |
53 |
-import ConfigParser |
54 |
-import httplib |
55 |
+ |
56 |
+try: |
57 |
+ import configparser as ConfigParser |
58 |
+except ImportError: |
59 |
+ import ConfigParser |
60 |
+ |
61 |
+try: |
62 |
+ import http.client as httplib |
63 |
+except ImportError: |
64 |
+ import httplib |
65 |
+ |
66 |
from gentoostats.payload import Payload |
67 |
|
68 |
def getAuthInfo(auth): |
69 |
@@ -67,8 +78,8 @@ def main(): |
70 |
conn = httplib.HTTPSConnection(args['server'] + ':' + str(args['port'])) |
71 |
conn.request('POST', url=post_url, headers=post_headers, body=post_body) |
72 |
response = conn.getresponse() |
73 |
- print response.status, response.reason |
74 |
- print 'Server response: ' + response.read() |
75 |
+ print(response.status, response.reason) |
76 |
+ print('Server response: ' + response.read().decode("utf-8")) |
77 |
except httplib.HTTPException: |
78 |
sys.stderr.write('Something went wrong') |
79 |
sys.exit(1) |
80 |
|
81 |
diff --git a/client/gentoostats/list.py b/client/gentoostats/list.py |
82 |
index 3140041..8c369ab 100644 |
83 |
--- a/client/gentoostats/list.py |
84 |
+++ b/client/gentoostats/list.py |
85 |
@@ -1,3 +1,4 @@ |
86 |
+from __future__ import print_function |
87 |
|
88 |
import pprint as pp |
89 |
from gentoostats import utils |
90 |
@@ -6,7 +7,7 @@ def pprint(title, object): |
91 |
""" |
92 |
Pretty printer for the decoded json data |
93 |
""" |
94 |
- print title |
95 |
+ print(title) |
96 |
pp.pprint(object) |
97 |
|
98 |
def add_parser(subparsers): |
99 |
@@ -14,7 +15,8 @@ def add_parser(subparsers): |
100 |
Setup argparse parsers |
101 |
""" |
102 |
list_parser = subparsers.add_parser('list') |
103 |
- list_subparsers = list_parser.add_subparsers() |
104 |
+ list_subparsers = list_parser.add_subparsers(dest='subcommand') |
105 |
+ list_subparsers.required = True |
106 |
|
107 |
objects = { |
108 |
'arch': ['parser_arch', list_arch], |
109 |
@@ -27,7 +29,7 @@ def add_parser(subparsers): |
110 |
} |
111 |
for obj in objects.keys(): |
112 |
parser = vars()[objects[obj][0]] = list_subparsers.add_parser(obj) |
113 |
- parser.set_defaults(func=objects[obj][1]) |
114 |
+ parser.set_defaults(command=objects[obj][1]) |
115 |
|
116 |
# need separate arguments for package |
117 |
parser = vars()[objects['package'][0]] |
118 |
|
119 |
diff --git a/client/gentoostats/payload.py b/client/gentoostats/payload.py |
120 |
index b2c459f..569b69b 100644 |
121 |
--- a/client/gentoostats/payload.py |
122 |
+++ b/client/gentoostats/payload.py |
123 |
@@ -1,7 +1,13 @@ |
124 |
+from __future__ import print_function |
125 |
|
126 |
import sys |
127 |
import pprint |
128 |
-import ConfigParser |
129 |
+ |
130 |
+try: |
131 |
+ import configparser as ConfigParser |
132 |
+except ImportError: |
133 |
+ import ConfigParser |
134 |
+ |
135 |
from gentoostats.environment import Environment |
136 |
from gentoostats.packages import Packages |
137 |
from gentoostats.metadata import Metadata |
138 |
@@ -79,4 +85,4 @@ class Payload(object): |
139 |
if human: |
140 |
pprint.pprint(self.payload) |
141 |
else: |
142 |
- print self.payload |
143 |
+ print(self.payload) |
144 |
|
145 |
diff --git a/client/gentoostats/search.py b/client/gentoostats/search.py |
146 |
index c77c119..89b4d20 100644 |
147 |
--- a/client/gentoostats/search.py |
148 |
+++ b/client/gentoostats/search.py |
149 |
@@ -1,3 +1,4 @@ |
150 |
+from __future__ import print_function |
151 |
|
152 |
import pprint as pp |
153 |
from gentoostats import utils |
154 |
@@ -6,7 +7,7 @@ def pprint(title, object): |
155 |
""" |
156 |
Pretty printer for the decoded json data |
157 |
""" |
158 |
- print title |
159 |
+ print(title) |
160 |
pp.pprint(object) |
161 |
|
162 |
def add_parser(subparsers): |
163 |
@@ -20,7 +21,7 @@ def add_parser(subparsers): |
164 |
search_parser.add_argument('-r', '--repo') |
165 |
search_parser.add_argument('--min_hosts', type=int) |
166 |
search_parser.add_argument('--max_hosts', type=int) |
167 |
- search_parser.set_defaults(func=search) |
168 |
+ search_parser.set_defaults(command=search) |
169 |
|
170 |
def search(args): |
171 |
""" |
172 |
|
173 |
diff --git a/client/gentoostats/utils.py b/client/gentoostats/utils.py |
174 |
index af807c8..af8dab2 100644 |
175 |
--- a/client/gentoostats/utils.py |
176 |
+++ b/client/gentoostats/utils.py |
177 |
@@ -1,6 +1,9 @@ |
178 |
|
179 |
import json |
180 |
-import httplib |
181 |
+try: |
182 |
+ import http.client as httplib |
183 |
+except ImportError: |
184 |
+ import httplib |
185 |
|
186 |
# json headers for gentoostats-cli |
187 |
headers = {'Accept': 'application/json'} |
188 |
@@ -15,7 +18,7 @@ def GET(server, url, headers, https=True): |
189 |
conn = httplib.HTTPConnection(server) |
190 |
try: |
191 |
conn.request('GET', url=url, headers=headers) |
192 |
- data = conn.getresponse().read() |
193 |
+ data = conn.getresponse().read().decode("utf-8") |
194 |
except httplib.HTTPException: |
195 |
return None |
196 |
finally: |