def restore_data_object(obj_file): """Retrieve object from JSON file. Converts JSON unicode strings to Python2 strings. """ decoder = json.JSONDecoder(encoding='ascii') if hasattr(obj_file, 'read'): obj = decoder.decode(obj_file.read()) else: with open(obj_file, 'rb') as fp: obj = decoder.decode(fp.read()) return obj
def load_styles(): global app_directory, app_user_directory, env_vars try: directory = app_directory + os.sep + "ressources" + os.sep + "styles" directory2 = app_user_directory + os.sep + "imports" + os.sep + "styles" jssgenerator = JSONSchemaGenerator() encoder = json.encoder.JSONEncoder() tab = encoder.encode(env_vars['styles']['Dark']) jssgenerator.load(tab) schema = jssgenerator.generate() try: if debug is True: with open(app_directory + os.sep + "doc" + os.sep + "packages" + os.sep + "style" + os.sep + 'style.json_schema', 'wt', encoding='utf8') as file: file.write(json.dumps(schema, indent=4)) except Exception: traceback.print_exc() ext = "json" # env_vars['styles'].clear() print(directory2) for folder in [directory, directory2]: for root, directories, files in os.walk(folder, topdown=False): for name in files: if re.search("\\.({})$".format(ext), name) is None: continue else: try: nm = name.replace("." + ext, "") if nm in env_vars['styles']: continue fp = open(folder + os.sep + name, "r", encoding="utf8") content = fp.read() fp.close() # test JSON validity decoder = json.decoder.JSONDecoder() tab = decoder.decode(content) # test package JSON schema jsonschema.validate(instance=tab, schema=schema) env_vars['styles'][nm] = eval( content.replace( '{APP_DIR}', app_directory.replace( os.sep, '/')).replace( '[', '"\\n".join([').replace(']', '])')) except Exception: traceback.print_exc() except Exception: traceback.print_exc()
def __load_langs(self) -> None: # self.translations.clear() directory = common.vars.app_directory + os.sep + "ressources" + os.sep + "langs" directory2 = common.vars.app_user_directory + os.sep + "imports" + os.sep + "langs" jssgenerator = JSONSchemaGenerator() encoder = json.encoder.JSONEncoder() # print(self.translations) tab = encoder.encode(self.translations[self.default_language]) jssgenerator.load(tab) schema = jssgenerator.generate() try: if common.vars.debug is True: with open(common.vars.app_directory + os.sep + "doc" + os.sep + "packages" + os.sep + "lang" + os.sep + "lang.json_schema", 'wt', encoding='utf8') as file: file.write(json.dumps(schema, indent=4)) except Exception: traceback.print_exc() ext = "json" for dir in [directory, directory2]: try: # print(dir) for root, directories, files in os.walk(dir, topdown=False): for name in files: if re.search("\\.({})$".format(ext), name) is None: continue else: try: nm = name.replace(".json", "") fp = open(dir + os.sep + name, "r", encoding="utf8") content = fp.read() fp.close() # test JSON validity decoder = json.decoder.JSONDecoder() tab = decoder.decode(content) # test package JSON schema validate(instance=tab, schema=schema) print('lang '+nm+' OK') self.translations[nm] = eval(content) except Exception: traceback.print_exc() except Exception: pass
def load_plugins(): global app_directory, app_user_directory, env_vars try: schema = plugin_package_schema settings = QtCore.QSettings(app_editor, app_name) directory = app_user_directory + os.sep + "imports" + os.sep + "plugins" try: if debug is True: with open(app_directory + os.sep + "doc" + os.sep + "packages" + os.sep + "plugin" + os.sep + 'example.package.json_schema', 'wt', encoding='utf8') as file: file.write(json.dumps(schema, indent=4)) except Exception: traceback.print_exc() ext = "json" env_vars['plugins'].clear() for root, directories, files in os.walk(directory, topdown=False): for name in directories: try: print('plugin:', name) dir = directory + os.sep + name print('dir:', dir) package_file = dir + os.sep + 'package.json' print('package_file:', package_file) if os.path.isfile(package_file) is True: fp = open(package_file, "rt", encoding="utf8") content = fp.read() fp.close() content = content.replace('{plugin_dir}', dir.replace(os.sep, os.sep + os.sep))\ .replace('{os.sep}', os.sep + os.sep) # test id valid JSON decoder = json.decoder.JSONDecoder() tab = decoder.decode(content) # test package JSON schema jsonschema.validate(instance=tab, schema=schema) data = eval(content) # print(data) env_vars['plugins'][name] = data env_vars['plugins'][name]['name'] = name for variable in data['settings']: # print('VARIABLE: ', variable) value = settings.value( 'plugins/' + name + '/' + variable['name'], None, str) # print('VARIABLE VALUE: ', value) if value is not None and value != '': variable['value'] = value else: # print('SET VALUE: ', variable['value']) settings.setValue( 'plugins/' + name + '/' + variable['name'], variable['value']) except Exception: traceback.print_exc() except Exception: traceback.print_exc()
def loads(*args, **kwds): decoder = json.decoder.JSONDecoder() decoder.parse_string = _linecol_scanstring decoder.scan_once = json.scanner.py_make_scanner(decoder) return _normalize(decoder.decode(*args, **kwds))
from swift import swift import socket import json.decoder import sys import time decoder = json.decoder.JSONDecoder() while True: print("req") with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect(('192.168.43.65', 80)) # s.connect(('localhost', 80)) s.send(b'hello') data = s.recv(1024) print(data) posStr = data.decode('utf-8').split('\n')[4] req = decoder.decode(posStr) swift.set_position(x=req['pos'][0], y=req['pos'][1], z=req['pos'][2], speed=1000) swift.set_wrist(angle=req['pos'][3]) swift.set_pump(on=req['pump']) swift.flush_cmd() s.close()