Skip to content
This repository was archived by the owner on May 1, 2019. It is now read-only.

Commit 3e39fa7

Browse files
authored
Merge pull request #34 from albanD/sanitise_q
sanitises special characters in experiment name and key name
2 parents 797539e + e325f72 commit 3e39fa7

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

client/python/pycrayon/crayon.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
import time
44
import collections
55

6+
try:
7+
# Python 2
8+
from urllib import quote_plus
9+
except ImportError:
10+
# Python 3
11+
from urllib.parse import quote_plus
12+
613
from .version import __version__
714

815
try:
@@ -56,7 +63,7 @@ def create_experiment(self, xp_name, zip_file=None):
5663

5764
def remove_experiment(self, xp_name):
5865
assert(isinstance(xp_name, basestring))
59-
query = "/data?xp={}".format(xp_name)
66+
query = "/data?xp={}".format(quote_plus(xp_name))
6067
r = requests.delete(self.url + query)
6168

6269
if not r.ok:
@@ -100,7 +107,7 @@ def __init_empty(self):
100107
raise ValueError(msg.format(r.text))
101108

102109
def __init_from_existing(self):
103-
query = "/data?xp={}".format(self.xp_name)
110+
query = "/data?xp={}".format(quote_plus(self.xp_name))
104111
r = requests.get(self.client.url + query)
105112

106113
if not r.ok:
@@ -118,7 +125,7 @@ def __init_from_existing(self):
118125

119126
def __init_from_file(self, zip_file, force=False):
120127
query = "/backup?xp={}&force={}".format(
121-
self.xp_name, force)
128+
quote_plus(self.xp_name), force)
122129
fileobj = open(zip_file, 'rb')
123130
r = requests.post(self.client.url + query, data={"mysubmit": "Go"},
124131
files={"archive": ("backup.zip", fileobj)})
@@ -140,7 +147,7 @@ def add_scalar_value(self, name, value, wall_time=-1, step=-1):
140147
self.scalar_steps[name] += 1
141148
else:
142149
self.scalar_steps[name] = step + 1
143-
query = "/data/scalars?xp={}&name={}".format(self.xp_name, name)
150+
query = "/data/scalars?xp={}&name={}".format(quote_plus(self.xp_name), quote_plus(name))
144151
data = [wall_time, step, value]
145152
r = requests.post(self.client.url + query, json=data)
146153

@@ -156,7 +163,7 @@ def add_scalar_dict(self, data, wall_time=-1, step=-1):
156163
self.add_scalar_value(name, value, wall_time, step)
157164

158165
def get_scalar_values(self, name):
159-
query = "/data/scalars?xp={}&name={}".format(self.xp_name, name)
166+
query = "/data/scalars?xp={}&name={}".format(quote_plus(self.xp_name), quote_plus(name))
160167

161168
r = requests.get(self.client.url + query)
162169

@@ -188,7 +195,7 @@ def add_histogram_value(self, name, hist, tobuild=False,
188195
raise ValueError("Data was not provided in a valid format!")
189196

190197
query = "/data/histograms?xp={}&name={}&tobuild={}".format(
191-
self.xp_name, name, tobuild)
198+
quote_plus(self.xp_name), quote_plus(name), tobuild)
192199

193200
data = [wall_time, step, hist]
194201
r = requests.post(self.client.url + query, json=data)
@@ -198,7 +205,7 @@ def add_histogram_value(self, name, hist, tobuild=False,
198205
)
199206

200207
def get_histogram_values(self, name):
201-
query = "/data/histograms?xp={}&name={}".format(self.xp_name, name)
208+
query = "/data/histograms?xp={}&name={}".format(quote_plus(self.xp_name), quote_plus(name))
202209
r = requests.get(self.client.url + query)
203210

204211
if not r.ok:
@@ -225,7 +232,7 @@ def __check_histogram_data(self, data, tobuild):
225232

226233
# Backup methods
227234
def to_zip(self, filename=None):
228-
query = "/backup?xp={}".format(self.xp_name)
235+
query = "/backup?xp={}".format(quote_plus(self.xp_name))
229236
r = requests.get(self.client.url + query)
230237

231238
if not r.ok:
@@ -241,7 +248,7 @@ def to_zip(self, filename=None):
241248

242249
# Helper methods
243250
def __get_name_list(self, element_type):
244-
query = "/data?xp={}".format(self.xp_name)
251+
query = "/data?xp={}".format(quote_plus(self.xp_name))
245252
r = requests.get(self.client.url + query)
246253

247254
if not r.ok:

0 commit comments

Comments
 (0)