From 1bfc460a1241d60b48a439a3f3f2ae9032f1aef5 Mon Sep 17 00:00:00 2001 From: Swann Martinez Date: Fri, 12 Jul 2019 11:38:23 +0200 Subject: [PATCH] feat: color support for serialisation --- __init__.py | 2 +- client.py | 3 ++- environment.py | 1 + helpers.py | 6 ++---- libs/dump_anything.py | 17 ++++++++++++++++- message.py | 3 ++- operators.py | 1 + server.py | 2 +- 8 files changed, 26 insertions(+), 9 deletions(-) diff --git a/__init__.py b/__init__.py index f1d0654..4bfae02 100644 --- a/__init__.py +++ b/__init__.py @@ -28,7 +28,7 @@ DEPENDENCIES = { logger = logging.getLogger(__name__) -logging.basicConfig(level=logging.INFO) +logger.setLevel(logging.ERROR) # UTILITY FUNCTIONS def client_list_callback(scene, context): diff --git a/client.py b/client.py index 09661cf..9b035c8 100644 --- a/client.py +++ b/client.py @@ -23,7 +23,8 @@ DUMP_AGENTS_NUMBER = 1 lock = threading.Lock() logger = logging.getLogger(__name__) -logging.basicConfig(level=logging.DEBUG) +logger.setLevel(logging.ERROR) + instance = None diff --git a/environment.py b/environment.py index cd3d80d..6fef001 100644 --- a/environment.py +++ b/environment.py @@ -6,6 +6,7 @@ import logging import collections logger = logging.getLogger(__name__) +logger.setLevel(logging.ERROR) CONFIG_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "config") CONFIG = os.path.join(CONFIG_DIR, "app.yaml") diff --git a/helpers.py b/helpers.py index e7aa12a..0698e84 100644 --- a/helpers.py +++ b/helpers.py @@ -15,7 +15,8 @@ BPY_TYPES = {'Image': 'images', 'Texture': 'textures', 'Material': 'materials', 'Scene': 'scenes', 'Light': 'lights', 'SunLight': 'lights', 'SpotLight': 'lights', 'AreaLight': 'lights', 'PointLight': 'lights', 'Camera': 'cameras', 'Action': 'actions', 'Armature': 'armatures'} logger = logging.getLogger(__name__) -logging.basicConfig(level=logging.DEBUG) +logger.setLevel(logging.ERROR) + # UTILITY FUNCTIONS @@ -152,7 +153,6 @@ def load_client(client=None, data=None): if client and data: if net_settings.enable_presence: draw.renderer.draw_client(data) - draw.renderer.draw_client_selected_objects(data) @@ -597,8 +597,6 @@ def load_light(target=None, data=None, create=False, type=None): target.id = data['id'] - # Tmp color fix - # setattr(target,"color",data['color']['owner']) except Exception as e: logger.error("light loading error: {}".format(e)) diff --git a/libs/dump_anything.py b/libs/dump_anything.py index 68a7ec1..a2b0ed9 100644 --- a/libs/dump_anything.py +++ b/libs/dump_anything.py @@ -20,6 +20,8 @@ def _is_dictionnary(v): def _dump_filter_type(t): return lambda x: isinstance(x, t) +def _dump_filter_type_by_name(t_name): + return lambda x: t_name == x.__class__.__name__ def _dump_filter_array(array): # only primitive type array @@ -55,6 +57,8 @@ def _load_filter_array(array): return False return True +def _load_filter_color(color): + return color.__class__.__name__ == 'Color' def _load_filter_default(default): if default.read() is None: @@ -81,7 +85,9 @@ class Dumper: def _dump_any(self, any, depth): for filter_function, dump_function in self.type_subset: + if filter_function(any): + # print(any) return dump_function[not (depth >= self.depth)](any, depth + 1) def _build_inline_dump_functions(self): @@ -92,6 +98,7 @@ class Dumper: self._dump_matrix = (self._dump_matrix_as_leaf, self._dump_matrix_as_leaf) self._dump_vector = (self._dump_vector_as_leaf, self._dump_vector_as_leaf) self._dump_default = (self._dump_default_as_leaf, self._dump_default_as_branch) + self._dump_color = (self._dump_color_as_leaf, self._dump_color_as_leaf) def _build_match_elements(self): self._match_type_bool = (_dump_filter_type(bool), self._dump_identity) @@ -103,6 +110,7 @@ class Dumper: self._match_type_array = (_dump_filter_array, self._dump_array) self._match_type_matrix = (_dump_filter_type(mathutils.Matrix), self._dump_matrix) self._match_type_vector = (_dump_filter_type(mathutils.Vector), self._dump_vector) + self._match_type_color = (_dump_filter_type_by_name("Color"), self._dump_color) self._match_default = (_dump_filter_default, self._dump_default) def _dump_collection_as_branch(self, collection, depth): @@ -128,6 +136,10 @@ class Dumper: def _dump_vector_as_leaf(self, vector, depth): return list(vector) + def _dump_color_as_leaf(self, color, depth): + print(color) + return list(color) + def _dump_default_as_branch(self, default, depth): def is_valid_property(p): try: @@ -162,6 +174,8 @@ class Dumper: self._match_type_array, self._match_type_matrix, self._match_type_vector, + self._match_type_color, + self._match_type_color, self._match_default ] @@ -324,7 +338,8 @@ class Loader: (_load_filter_type(T.PointerProperty), self._load_pointer), (_load_filter_array, self._load_array), (_load_filter_type(T.CollectionProperty), self._load_collection), - (_load_filter_default, self._load_default) + (_load_filter_default, self._load_default), + (_load_filter_color, self._load_identity), ] diff --git a/message.py b/message.py index 0ff280b..6471f51 100644 --- a/message.py +++ b/message.py @@ -9,7 +9,8 @@ except: import zmq logger = logging.getLogger(__name__) -logging.basicConfig(level=logging.DEBUG) +logger.setLevel(logging.ERROR) + class Message(object): """ diff --git a/operators.py b/operators.py index 5224624..b40d5bb 100644 --- a/operators.py +++ b/operators.py @@ -19,6 +19,7 @@ from . import environment, client, draw, helpers, ui from .libs import umsgpack logger = logging.getLogger(__name__) +logger.setLevel(logging.ERROR) # client_instance = None diff --git a/server.py b/server.py index a3e1f31..bb35880 100644 --- a/server.py +++ b/server.py @@ -8,7 +8,7 @@ import zmq import message logger = logging.getLogger("Server") -logging.basicConfig(level=logging.DEBUG) +logger.setLevel(logging.ERROR) SUPPORTED_TYPES = [ 'Client',