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

TypeError: 'WindowsPath' object is not iterable in ".convert_file()" method. Windows 10 x64 #374

Open
AleksVersus opened this issue Sep 2, 2024 · 1 comment

Comments

@AleksVersus
Copy link

Hello. Sorry my bad english.

I install pypandoc by pip, i used the command:

pip install pypandoc_binary

But when i run simple script to convert file, this throws an exception. Script example:

import pypandoc
pypandoc.convert_file(os.path.abspath('00_01_start.txt'), to='markdown', format='dokuwiki', outputfile='00_01_start.md')

Exception in REPL:

Traceback (most recent call last):
  File "D:\my\projects\howdo_faq\[source]\wiki.qsp.org.mw\convert.py", line 18, in <module>
    main()
  File "D:\my\projects\howdo_faq\[source]\wiki.qsp.org.mw\convert.py", line 10, in main
    output = pypandoc.convert_file(os.path.abspath('00_01_start.txt'), to='markdown', format='dokuwiki', outputfile='00_01_start.md')
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\aleks\AppData\Local\Programs\Python\Python312\Lib\site-packages\pypandoc\__init__.py", line 200, in convert_file
    return _convert_input(discovered_source_files, format, 'path', to, extra_args=extra_args,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\aleks\AppData\Local\Programs\Python\Python312\Lib\site-packages\pypandoc\__init__.py", line 383, in _convert_input
    input_file = sorted(input_file)
                 ^^^^^^^^^^^^^^^^^^
TypeError: 'WindowsPath' object is not iterable

Exception in VS Code terminal:

Traceback (most recent call last):
  File "d:\my\projects\howdo_faq\[source]\wiki.qsp.org.mw\convert.py", line 18, in <module>
    main()
  File "d:\my\projects\howdo_faq\[source]\wiki.qsp.org.mw\convert.py", line 10, in main
    output = pypandoc.convert_file(os.path.abspath('00_01_start.txt'), to='markdown', format='dokuwiki', outputfile='00_01_start.md')      
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^      
  File "C:\Users\aleks\AppData\Local\Programs\Python\Python312\Lib\site-packages\pypandoc\__init__.py", line 195, in convert_file
    raise RuntimeError("source_file is not a valid path")
RuntimeError: source_file is not a valid path

Input File is exist. Path to input file is string.

I use:

Windows 10 Pro x64 22H2
Python: 3.12.5
Pypandoc: 2.19.2

If i use ".convert_text()" method, the exceptions do not appear.

What do I wrong?

@AleksVersus
Copy link
Author

I look at the pypandoc's __init__.py. Method '_convert_input()'. Change line 383 by this line:

            input_file = [str(source)]

and script is work. But I don't know, where source parameter transform in WindowsPath, and and how will this affect the rest of the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant