После добавления функции шифрования & ldquo; Полезная нагрузка недействительна & rdquo; появляется ошибка

У меня много проблем с попыткой перезагрузить что-то внутри Sublime Text, но, наконец, я смог написать эту утилиту для перезагрузки модулей в Sublime Text на основе кода sublime_plugin.py, используемого для перезагрузки модулей.

ниже, вы можете перезагрузить модули из путей с пробелами в своих именах, а затем после перезагрузки вы можете просто импортировать, как обычно.

def reload_module(full_module_name):
    """
        Assuming the folder `full_module_name` is a folder inside some
        folder on the python sys.path, for example, sys.path as `C:/`, and
        you are inside the folder `C:/Path With Spaces` on the file 
        `C:/Path With Spaces/main.py` and want to re-import some files on
        the folder `C:/Path With Spaces/tests`

        @param full_module_name   the relative full path to the module file
                                  you want to reload from a folder on the
                                  python `sys.path`
    """
    import imp
    import sys
    import importlib

    if full_module_name in sys.modules:
        module_object = sys.modules[full_module_name]
        module_object = imp.reload( module_object )

    else:
        importlib.import_module( full_module_name )

def run_tests():
    print( "\n\n" )
    reload_module( "Path With Spaces.tests.semantic_linefeed_unit_tests" )
    reload_module( "Path With Spaces.tests.semantic_linefeed_manual_tests" )

    from .tests import semantic_linefeed_unit_tests
    from .tests import semantic_linefeed_manual_tests

    semantic_linefeed_unit_tests.run_unit_tests()
    semantic_linefeed_manual_tests.run_manual_tests()

if __name__ == "__main__":
    run_tests()

Если вы запускаете в первый раз, это должно загрузить модуль , но если позже вы снова сможете использовать метод / функцию run_tests(), он перезагрузит файлы тестов. С Sublime Text (Python 3.3.6) это происходит очень часто, потому что его интерпретатор никогда не закрывается (если вы не перезапустите Sublime Text, т. Е. Интерпретатор Python3.3).

1
задан machagr 5 March 2019 в 11:16
поделиться

1 ответ

Я попробовал код, которым вы поделились, и выяснил возможную причину вашей проблемы-

Вы получаете эту ошибку здесь, на return decrypt($this->attributes[$key]) в вашей черте EncryptsAttributes.php .

public function getAttributeValue($key) {
    if(in_array($key, $this->getEncrypts())) {
        return decrypt($this->attributes[$key]);
    }
    return parent::getAttributeValue($key);
}

decrypt() не может работать с незашифрованной строкой . Прямо сейчас у вас есть некоторые данные в столбце task, которые не зашифрованы, и эта функция decrypt() пытается расшифровать незашифрованные данные.

Решение этой проблемы заключается в том, что вы либо расшифровываете все существующие данные в столбце task, либо можете обработать их следующим образом: 1114] черта. Я добавил блок try / catch для решения этой проблемы. Если у вас есть данные, которые не зашифрованы, то они просто предоставят вам данные, не пытаясь расшифровать их.

0
ответ дан Pankaj Sanam 5 March 2019 в 11:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: