Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot import from poetry #262

Closed
1 task done
yajo opened this issue Feb 14, 2021 · 2 comments · Fixed by #267
Closed
1 task done

Cannot import from poetry #262

yajo opened this issue Feb 14, 2021 · 2 comments · Fixed by #267
Labels
🐛 bug Something isn't working

Comments

@yajo
Copy link

yajo commented Feb 14, 2021

  • I have searched the issue tracker and believe that this is not a duplicate.

Make sure you run commands with -v flag before pasting the output.

Steps to reproduce

In a poetry project root, trying to follow the instructions to import it to pdm.

Actual behavior

➤ pdm --version
pdm, version 1.3.0

➤ pdm import -vf poetry pyproject.toml
Traceback (most recent call last):
  File "/var/home/yajo/.local/bin/pdm", line 8, in <module>
    sys.exit(main())
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 73, in __call__
    return self.main(*args, **kwargs)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 112, in main
    raise err.with_traceback(traceback)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 108, in main
    f(options.project, options)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/cli/commands/import_cmd.py", line 25, in handle
    do_import(project, options.filename, options.format)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/cli/actions.py", line 519, in do_import
    project_data, settings = FORMATS[key].convert(project, filename)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/formats/poetry.py", line 171, in convert
    with open(filename, encoding="utf-8") as fp, cd(os.path.dirname(filename)):
  File "/usr/lib64/python3.9/contextlib.py", line 117, in __enter__
    return next(self.gen)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/utils.py", line 290, in cd
    os.chdir(path)
FileNotFoundError: [Errno 2] No such file or directory: ''

➤ pdm import -vf poetry .
Traceback (most recent call last):
  File "/var/home/yajo/.local/bin/pdm", line 8, in <module>
    sys.exit(main())
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 73, in __call__
    return self.main(*args, **kwargs)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 112, in main
    raise err.with_traceback(traceback)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 108, in main
    f(options.project, options)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/cli/commands/import_cmd.py", line 25, in handle
    do_import(project, options.filename, options.format)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/cli/actions.py", line 519, in do_import
    project_data, settings = FORMATS[key].convert(project, filename)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/formats/poetry.py", line 171, in convert
    with open(filename, encoding="utf-8") as fp, cd(os.path.dirname(filename)):
IsADirectoryError: [Errno 21] Is a directory: '.'

Expected behavior

Import successful.

Environment Information

➤ pdm -v info && pdm -v info --env
Traceback (most recent call last):
  File "/var/home/yajo/.local/bin/pdm", line 8, in <module>
    sys.exit(main())
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 73, in __call__
    return self.main(*args, **kwargs)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 112, in main
    raise err.with_traceback(traceback)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/core.py", line 108, in main
    f(options.project, options)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/cli/commands/info.py", line 29, in handle
    actions.do_info(project, options.python, options.where, options.env)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/cli/actions.py", line 478, in do_info
    python_path = project.environment.python_executable
  File "/usr/lib64/python3.9/functools.py", line 969, in __get__
    val = self.func(instance)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/project/core.py", line 159, in environment
    return Environment(self)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/models/environment.py", line 94, in __init__
    self.python_requires = project.python_requires
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/project/core.py", line 163, in python_requires
    return PySpecSet(self.meta.requires_python)
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/pdm/project/core.py", line 412, in meta
    return Metadata(self.pyproject_file, self.pyproject["project"])
  File "/var/home/yajo/.local/pipx/venvs/pdm/lib64/python3.9/site-packages/tomlkit/container.py", line 576, in __getitem__
    raise NonExistentKey(key)
tomlkit.exceptions.NonExistentKey: 'Key "project" does not exist.'
@yajo yajo added the 🐛 bug Something isn't working label Feb 14, 2021
@yajo
Copy link
Author

yajo commented Feb 14, 2021

I guess python-poetry/poetry#3332 is related. Poetry stores project metadata in a section called [tool.poetry].

@yajo
Copy link
Author

yajo commented Feb 14, 2021

Oh, weird. I found the workaround: prepend ./ to the file name:

➤ pdm import -vf poetry ./pyproject.toml
Changes are written to pyproject.toml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant