Инструменты для автоматической обработки и форматирования кода PL/SQL
create . Результаты обработки многообъективных файлов непредсказуемы, поэтому все инструменты (кроме Str_decoder ) поднимут исключение. Единственная функция decode_to_str пытается обнаружить кодировку линии и повторно кодировать ее в UTF-8 . Повышает valueError , если кодирование невозможно.
decode_to_str(line, probables=None)
line - bytes -объект с текстом для декодированияprobables - list str с первичными кодировками для проверки. По умолчанию: ['cp866', 'cp1251', 'koi8-r']str (декодирован и перекодировано в UTF-8 ) Декодирование всего файла в другой файл. Запустите это, чтобы получить список аргументов:
python -m oc_sql_helpers.str_decoder --help
PLSQLWrapper Class-это инструмент для работы с источниками с оракулами.
Существуют дополнительные требования для обертывания файлов. Обратите внимание, что методы развертывания работают без него. Они связаны с использованием оригинальной утилиты wrap от Oracle , которая не включена в этот пакет из -за нарушения лицензий . Вы должны установить его отдельно.
ORACLE_HOME должна быть правильно установленаwrap бинарное средство должно быть размещено под ${ORACLE_HOME}/bin и должно выполнить разрешение для эффективного пользователя PLSQLWrapper() - создать экземпляр объекта для этого класса
Методы
wrap_path(path_in, write_to=None)path_in - str объект с абсолютным или относительным путем к файлу к завершению.write_to - один из:None - результат обертывания будет возвращен этим методом как объект bytesfile - Результат будет записан в файловый объект, указанный здесь. Должен быть открыт в бинарном режиме чтения-записи ( 'w+b' ) и поддержкой операции seek .str - Путь к выходному файлу, абсолютный или относительный. Результат будет написан там. Должен иметь расширение - это Featrue Oracle wrap . Он добавляет суффикс .plb сам по себе, если расширение опущено. Пожалуйста, укажите расширение всегдаwrite_to вышеwrap_buf(fl_in, write_to=None)fl_in - file или file-like объект для обертывания данных. Должен быть открыт в бинарном режиме и операции поддержки seek ( 'rb' ).write_to - то же самое, что и для wrap_pathwrap_pathunwrap_path(path_in, write_to=None)path_in - str объект с абсолютным или относительным путем к файлу к развертыванию.write_to - один из:None - результат развертывания будет возвращен этим методом в качестве объекта bytesfile - Результат будет записан в файловый объект, указанный здесь. Должен быть открыт в бинарном режиме чтения-записи ( 'w+b' ) и поддержкой операции seek .str - Путь к выходному файлу, абсолютный или относительный. Результат будет написан там.write_to вышеunwrap_buf(fl_in, write_to=None)fl_in - file или file-like объект для обертывания данных. Должен быть открыт в бинарном режиме и операции поддержки seek ( 'rb' ).write_to - то же самое, что и для unwrap_pathunwrap_path Обертывание/развертывание всего файла в другой файл. Запустите это, чтобы получить список аргументов:
python -m oc_sql_helpers.wrapper --help
PLSQLNormalizer CLASS IS или PL/SQL НОРМАЗИВАНИЕ КОДА.
Нормализация означает почти то же самое, что и стиль кода , но менее строго. Это означает, что результат нормализации может быть непригодным для использования, даже если источник является правильным с точки зрения PL/SQL .
Нормализация по умолчанию :
CREATE удален.CREATE создает в первой линейке до (или IS или WRAPPED ) AS , включая имя объекта, тип и схемы. Дополнительные космические символы и комментарии заменяются одним пространством.CREATE ) поднята , включая схемы и имя объекта ." тогда эти двойные цитаты будут SCHEMA.NAME , где это возможно. Пример: "schema"."name" "ANOTHER.SCHEMA"."ANOTHER.NAME" "another.schema"."another.name" будет схемой.Другие флаги нормализации :
uppercase : Все лексики языка в корпусе объекта будут опережаем, кроме литералов.no-comments : Все комментарии внутри тела, включая сами знаки комментариев, будут заменены одним пространством.no-spaces : все повторяющиеся космические характеристики (само пространство, Newline, Tabulation ...) будут заменены общим единственным пространством. Пример: var := 'the value' будет переведено в var := 'the value' . Обратите внимание, что замены не выполняются внутри буквального 'the value' . Этот флаг не может быть использован без no-commentsno-literals : все строки буквальных значений будут заменены на пустые. Сами буквальные знаки не изменяются.comments-only : отбросьте весь файл, но комментарии, включая сами знаки комментариев. Каждый комментарий будет начат с новой линии. Этот флаг не совместим с кем -либо выше PLSQLNormalizer() - создать объект для этого класса
Методы
normalize_path(path, flags=None, lines=None, write_to=None)path - str объект с абсолютным или относительным путем к файлу для нормализации.flags - Флаги нормализации, list целых чисел из PLSQLNormalizationFlags Перечисление, см. Ниже. None значения означает, что дефолт ( CREATE определение) только нормализация.lines - int , линии линии нормализации (подсчитано от источника ). По умолчанию : None , означает нормализовать весь источникwrite_to - один из:None - результат обертывания будет возвращен этим методом как объект bytesfile - Результат будет записан в файловый объект, указанный здесь. Должен быть открыт в бинарном режиме чтения-записи ( 'w+b' ) и поддержкой операции seek .str - Путь к выходному файлу, абсолютный или относительный. Результат будет написан там. Должен иметь расширение - это Featrue Oracle wrap . Он добавляет суффикс .plb сам по себе, если расширение опущено. Пожалуйста, укажите расширение всегдаwrite_to вышеnormalize(fl, flags, lines=None write_to=None)fl - один из:file или file-like объект для нормализации данных. Должен быть открыт в бинарном режиме и операции поддержки seek ( 'rb' ).str - строковые данные для нормализацииbytes - «двоичные» данные для нормализацииflags - так же, как и для normalize_pathlines - так же, как и для normalize_pathwrite_to - так же, как и для normalize_pathnormalize_pathis_sql(fl) - Проверьте данные, предоставленные данные PL/SQL CODEfl - так же, как и для normalizebool , обернутый код PL/SQL или нетis_sql_path(path) - так же, как is_sql , но аргумент рассматривается как путь к файлу с возможным кодомis_wrapped(fl) - проверьте данные, подтверждается оберщенным кодом PL/SQLfl - так же, как и для normalizebool , поддерживаемый код PL/SQL или нетis_wrapped_path(path) - так же, как и is_wrapped , но аргумент рассматривается как путь к файлу с возможным кодомis_wrappable(fl) - Проверьте данные , предоставленныеfl - так же, как и для normalizebool , Объект PL/SQL -объект в коде или нетis_wrappable_path(path) - так же, как is_wrappable , но аргумент рассматривается как путь к файлу с возможным кодом PLSQLNormalizationFlags - перечисление флагов:
uppercaseno_commentsno_spacesno_literalscomments_onlyСм. Подробное описание выше в другой главе флагов нормализации из разделения термина нормализации .
Нормализация всего файла в другой файл. Запустите это, чтобы получить список аргументов:
python -m oc_sql_helpers.normalizer --help