Skip to content

Address resource warnings because of open file handles#529

Merged
rahulporuri merged 2 commits into
masterfrom
fix/resource-warnings
Jan 5, 2021
Merged

Address resource warnings because of open file handles#529
rahulporuri merged 2 commits into
masterfrom
fix/resource-warnings

Conversation

@rahulporuri

Copy link
Copy Markdown
Contributor

Saving the graphics context to the PS and SVG backends raises resource warnings because the file handler is not closed by the save method. This PR fixes the issue by using open as a context manager.

For example, the resource warnings look like this on master -

test_circle (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmp5jjp1zn9\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_circle_clip (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmpd9y5my5y\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_circle_fill (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmpo6l4mdcw\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_line (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmpgixdhapv\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_quarter_circle (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmpid_gsfje\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_rect (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmp6rmirwob\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_rectangle (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmpusjbnlc7\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_star_clip (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmpc74amg35\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_star_eof_fill (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmp4wgsmrcn\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_star_fill (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmprtlf3hns\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_text (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmphyf5uun5\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok
test_text_clip (test_ps_drawing.TestPSDrawing) ... ResourceWarning: unclosed file <_io.TextIOWrapper name='C:\\Users\\rporuri\\AppData\\Local\\Temp\\tmpbend34qb\\rendered.eps' mode='w' encoding='cp1252'> [test_ps_drawing.py:17]
ok

Saving the graphics context to the PS and SVG backends raises resource
warnings because the file handler is not closed by the save method.

This is a trivial fix by using open as a context manager

	modified:   kiva/ps.py
	modified:   kiva/svg.py
@codecov-io

codecov-io commented Dec 31, 2020

Copy link
Copy Markdown

Codecov Report

Merging #529 (8106dbc) into master (573469c) will not change coverage.
The diff coverage is 50.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #529   +/-   ##
=======================================
  Coverage   35.16%   35.16%           
=======================================
  Files         210      210           
  Lines       17840    17840           
  Branches     2454     2454           
=======================================
  Hits         6274     6274           
  Misses      11161    11161           
  Partials      405      405           
Impacted Files Coverage Δ
kiva/ps.py 58.24% <50.00%> (ø)
kiva/svg.py 71.68% <50.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 573469c...8106dbc. Read the comment docs.

@jwiggins jwiggins left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Note that the GL tests still have this problem:

home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmp7nfmc1i8/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_circle_clip (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmpg1f78hpl/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_circle_fill (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmpp13utc14/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_line (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmp61yj939u/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_quarter_circle (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmpih3jrfhr/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_rect (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmp0h8fty3k/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_rectangle (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmpnk4i1tug/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_star_clip (kiva.tests.test_gl_drawing.TestGLDrawing) ... skipped 'gl graphics context does not support star_clip (#164)'

test_star_eof_fill (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmpdr6zooxm/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_star_fill (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmpl7q3qpkr/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

ok

test_text (kiva.tests.test_gl_drawing.TestGLDrawing) ... /home/travis/.edm/envs/enable-test-3.6-pyqt/lib/python3.6/site-packages/kiva/tests/test_gl_drawing.py:55: ResourceWarning: unclosed file <_io.BufferedWriter name='/tmp/tmp5l_oqzlg/rendered.png'>

  buffer.get_color_buffer().save(filename, encoder=PNGImageEncoder())

	modified:   kiva/tests/test_gl_drawing.py
@rahulporuri

Copy link
Copy Markdown
Contributor Author

@jwiggins addressed your comment about the resource warnings from test_gl_drawing - I didn't notice them earlier because those are skipped on windows. CI is happy and I dont see the resource warnings on travis/linux anymore. Merging.

@rahulporuri rahulporuri merged commit c1c7958 into master Jan 5, 2021
@rahulporuri rahulporuri deleted the fix/resource-warnings branch January 5, 2021 11:12
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

Successfully merging this pull request may close these issues.

3 participants