Я хочу параметризовать файл 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
1. Когда я пытаюсь:
ploomber build -e env.yaml --entry-point Pipeline_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, в загрузке
loader = Loader(поток)
^^^^^^^^^^^^^^
Файл "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
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(size)
^^^^^^^^^^^^^^^^^ ^^^^^
Файл "C:\Users\dobromir\AppData\Local\Programs\Python\Python311\Lib\encodings\cp1252.py", строка 23, в декодировании
return codecs.charmap_decode (input,self.errors,decoding_table)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: кодек 'charmap' не может декодировать байт 0x81 в позиции 479: карты символов to
Во время обработки вышеуказанного исключения произошло другое исключение:
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 указан)
Во время обработки вышеуказанного исключения произошло другое исключение: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_parserdag, 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», если она не связана со значением
2. Когда я пытаюсь изменить имя only (с env.yaml на 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»