diff --git a/src/colors2vec.py b/src/colors_plot.py similarity index 62% rename from src/colors2vec.py rename to src/colors_plot.py index 8fabde3..c2ec3cd 100644 --- a/src/colors2vec.py +++ b/src/colors_plot.py @@ -1,22 +1,30 @@ import requests import json -from vector_utils import Vector +from vector_utils import Vector as vec - -def hex_to_int(s): - s = s.lstrip('#') - return [int(s[:2], 16), int(s[2:4], 16), int(s[4:6], 16)] +def get_content(url): + response = requests.get(url) + content = response.content.decode() + return content def get_json(url): - response = requests.get(url) - content = response.content.decode() + content = get_content(url) data = json.loads(content) return data +def hex_to_rgb(s): + s = s.lstrip('#') + return [int(s[:2], 16), int(s[2:4], 16), int(s[4:6], 16)] + + def parse_colors(data_set): - return dict((item['color'], hex_to_int(item['hex'])) for item in data_set['colors']) + return dict((item['color'], hex_to_rgb(item['hex'])) for item in data_set['colors']) + + +def closest(space, coord, n=10): + return sorted(space.keys(), key=lambda x: vec.distance(space[x], coord))[:n] if __name__ == '__main__': @@ -24,3 +32,4 @@ if __name__ == '__main__': data_set = get_json(data_set_url) colors = parse_colors(data_set) + diff --git a/src/vector_utils.py b/src/vector_utils.py index 1384ad7..0779f54 100644 --- a/src/vector_utils.py +++ b/src/vector_utils.py @@ -11,9 +11,12 @@ class Vector: return [i + j for i, j in zip(*vecs)] @staticmethod - def subs(*vecs): + def subtract(*vecs): return [i - j for i, j in zip(*vecs)] @staticmethod def mean(*vecs): return [float(coord) / len(vecs) for coord in reduce(Vector.add, vecs)] + + + diff --git a/test/test_vector.py b/test/test_vector.py index a90a8db..80cf348 100644 --- a/test/test_vector.py +++ b/test/test_vector.py @@ -16,11 +16,11 @@ class TestStringMethods(unittest.TestCase): def test_substract(self): v1 = [2, 3] v2 = [3, 4] - self.assertEqual([-1, -1], Vector.subs(v1, v2)) + self.assertEqual([-1, -1], Vector.subtract(v1, v2)) v1 = [5, 12, 32, 12] v2 = [34, 3, 4, 2] - self.assertEqual([-29, 9, 28, 10], Vector.subs(v1, v2)) + self.assertEqual([-29, 9, 28, 10], Vector.subtract(v1, v2)) def test_distance(self): v1 = [7, 4, 3]