Я хочу параметризовать файл Pipeline.yaml, но Ploomber не может прочитать файл env.yaml.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я хочу параметризовать файл Pipeline.yaml, но Ploomber не может прочитать файл env.yaml.

Сообщение Anonymous »

Я использую поэзию. Она находится в каталоге. Затем был создан подкаталог (с именем «src»), и Ploomber нормально работал в этом подкаталоге, загружая правильные файлы.
Но когда я одновременно создал второй подкаталог (с именем «src_common») уровень как первый("src"), у меня возникла проблема:
  • ploomber не может корректно загрузить файл для параметризации(env.yaml) в второй подкаталог("src_common").
Мой файл pipeline.yaml:< /p>

Код: Выделить всё

tasks:
- source: tasks/get_papers_common.py
product:
nb: output/get_papers_common.ipynb
data: output/openalex_papers.xlsx
- params:
openalex_search_url: "{{openalex_search_url}}"
openalex_filter: "{{openalex_filter}}"
publication_year: "{{publication_year}}"
work_type: "{{work_type}}"
grants_award_id: "{{grants_award_id}}"
openalex_keywords: "{{openalex_keywords}}"
more_keywords: "{{more_keywords}}"
sort: "{{sort}}"
cursor: "{{cursor}}"
RESULTS_PER_PAGE: "{{RESULTS_PER_PAGE}}"
MAX_PAGE: "{{MAX_PAGE}}"
и мой файл env.yaml:

Код: Выделить всё

openalex_search_url: https://api.openalex.org/works

openalex_filter: publication_year:{},type:{},grants.award_id:{},default.search:{},fulltext.search:{}

publication_year: >2000

work_type: article|review

grants_award_id: 310584|646221|604134|760840|686239|814426|814401|814425|760813|760928|862296|862195|862419|953183|952924|952921|964766|965196|965367|964827|965173|964766|101092164|965196|965367|964827|965173

openalex_keywords: 'surface area' AND 'nanoparticle'

more_keywords : exposure

sort: display_name:desc

RESULTS_PER_PAGE: 200
cursor : *

MAX_PAGE: 150
  • Когда я пытаюсь:
ploomber build -e env.yaml -- точка входа конвейер_common.yaml --force
Я получаю:
Traceback (последний последний вызов):
Файл "D:\IDEA_on_D\Harmless\T775. venv\Lib\site-packages\ploomber\env\envdict.py", строка 396, в load_from_source
raw = yaml.load(f, Loader=yaml.SafeLoader)
^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site -packages\yaml_init_.py", строка 79, в load
loader = Loader(stream)
^^^^^^^^^^^^^^
Файл «D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\yaml\loader.py», строка 34, в init
Reader. >init(self, поток)
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\yaml\reader.py", строка 85, в init< /strong>
self.determine_encoding()
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\yaml\reader.py", строка 124, в define_encoding
self.update_raw()
Файл «D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\yaml\reader.py», строка 178, в update_raw
data = self.stream .read(размер)
^^^^^^^^^^^^^^^^^^^^^^
Файл "C:\Users\dobromir\AppData\Local\Programs\ Python\Python311\Lib\encodings\cp1252.py", строка 23, в decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError
: кодек 'charmap' не может декодировать байт 0x81 в позиции 479: символы сопоставляются с
Во время обработки вышеуказанного исключения произошло другое исключение:< /p>
Traceback (последний вызов — последний):
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\ploomber\env\envdict.py", строка 398 в load_from_source
raise type(e)(
^^^^^^^
TypeError: функция принимает ровно 5 аргументов (1 задан)< /p>
Во время обработки вышеуказанного исключения произошло другое исключение:
Traceback (последний вызов):
Файл "D:\IDEA_on_D" \Harmless\T775.venv\Lib\site-packages\ploomber\cli\io.py", строка 54, в оболочке
fn(**kwargs)
Файл "D:\IDEA_on_D\Harmless\ T775.venv\Lib\site-packages\ploomber_core\telemetry\telemetry.py", строка 698, в оболочке
result = func(_payload, *args, **kwargs)
^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\ploomber \cli\build.py", строка 69, в main
dag, args = parser.load_from_entry_point_arg()
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\ploomber\cli\parsers.py", строка 225, в load_from_entry_point_arg
dag, args = load_dag_from_entry_point_and_parser(entry_point, self, sys.argv)
^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Файл "D:\IDEA_on_D\Harmless \T775.venv\Lib\site-packages\ploomber\cli\parsers.py", строка 503, в load_dag_from_entry_point_and_parser
dag, args = _process_file_dir_or_glob(parser)
^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\ploomber\cli \parsers.py", строка 421, в _process_file_dir_or_glob
env_dict = EnvDict(
^^^^^^^
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\ site-packages\ploomber\env\envdict.py", строка 110, в init
) = load_from_source(source)
^^^^^^^^^^^ ^^^^^^^^^^^^^
Файл "D:\IDEA_on_D\Harmless\T775.venv\Lib\site-packages\ploomber\env\envdict.py", строка 406, в load_from_source
если не isinstance(raw, Mapping):
^^^
UnboundLocalError: невозможно получить доступ к локальной переменной «raw», если она не связана со значением. p>
  • Когда я пытаюсь изменить имя только (с env.yaml на < em>env_common.yaml) Я получаю:
ploomber build -e env_common.yaml --entry-point Pipeline_common.yaml --force
Ошибка: Ошибка замены заполнителей:
  • {{openalex_search_url}}: Убедитесь, что заполнитель определен в окружении
Загруженное окружение: EnvDict({'cwd': 'D:\IDEA_on_...5\src_common', 'git ': 'general_two_level_search', 'git_hash': '3ee1ac2-dirty', 'здесь': 'D:\IDEA_on_...5\src_common', ...})

Подробнее здесь: https://stackoverflow.com/questions/788 ... my-env-yam
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»