Но когда я одновременно создал второй подкаталог (с именем «src_common») уровень как первый("src"), у меня возникла проблема:
- ploomber не может корректно загрузить файл для параметризации(env.yaml) в второй подкаталог("src_common").
Код: Выделить всё
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}}"
Код: Выделить всё
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
- Когда я пытаюсь:
Я получаю:
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) Я получаю:
Ошибка: Ошибка замены заполнителей:
- {{openalex_search_url}}: Убедитесь, что заполнитель определен в окружении
Подробнее здесь: https://stackoverflow.com/questions/788 ... my-env-yam