Example #1
0
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
Example #2
0
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()
Example #3
0
    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
Example #4
0
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()
Example #5
0
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))
Example #6
0
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()