flake8
-
djblets/markdown/__init__.py (Diff revision 1)
Review Request #10699 — Created Sept. 7, 2019 and discarded
Previously, we were passing a binary file to
markdown.markdownFromFile
in
render_markdown_from_file
, but this won't fly in Python 3. It expects
a file opened with an encoding. However, Django does not let you specify
an encoding when opening a file from storage, so that solution is out.
We now just read the entire file into memory, decode it from UTF-8, and
then pass that tomarkdown.markdown()
, which returns text directly.
With this patch applied, text file attachments render correctly
in Review Board on Python 2.7, 3.5, 3.6, and 3.7.
Summary | ID |
---|---|
461754fc77a94d7e3573e58eb4f3c6ce828efeb4 |
Commits: |
|
|||||||
---|---|---|---|---|---|---|---|---|
Diff: |
Revision 2 (+14 -12) |
djblets/markdown/__init__.py (Diff revision 2) |
---|
What's the error you hit? I tried passing in a
FileAttachment.file
intomarkdownFromFile
asinput
and it handled it right.Looking at the code, it attempts to do a
codecs.getreader()(input)
if you pass it a file handle, and it only needs.read()
and.close()
, both of which Django'sFile
supports.In my test, I was able to verify that
File.read()
was givingbytes
normally, but passing it intomarkdownFromFile
renderedunicode
fine. This on Python 3.x.
djblets/markdown/__init__.py (Diff revision 2) |
---|
Can you remove the blank lines at the end of the file?