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 use trace routines with Pandas #1547

Closed
fabianp opened this issue Jun 29, 2012 · 1 comment

Comments

@fabianp
Copy link

commented Jun 29, 2012

Because of the way local variables are used in read_cvs, setting a tracing routine will fail at that point. Here is a test case with an arbitrarily simple tracing routine:

def trace_memory_usage(frame, event, arg):
    return trace_memory_usage

import sys
sys.settrace(trace_memory_usage)

if __name__ == '__main__':
    from pandas.io.parsers import read_csv
    print read_csv('dummy.txt')

this fails with a traceback

Traceback (most recent call last):
  File "test2.py", line 10, in <module>
    print read_csv('dummy.txt')
  File "/volatile/fabian/envs/p26/lib/python2.6/site-packages/pandas/io/parsers.py", line 226, in read_csv
    return _read(TextParser, filepath_or_buffer, kwds2)
  File "/volatile/fabian/envs/p26/lib/python2.6/site-packages/pandas/io/parsers.py", line 185, in _read
    parser = cls(f, **kwds)
TypeError: __init__() got an unexpected keyword argument 'sep'

Some real-world utilities that are affected because of this are profile (but not cProfile) and memory_profiler.

@wesm

This comment has been minimized.

Copy link
Member

commented Jun 29, 2012

Good point. The use of locals() saves typing unpleasantness but is a bit too magical for tools like you describe

@wesm wesm closed this in 07cea90 Jun 29, 2012

yarikoptic added a commit to neurodebian/pandas that referenced this issue Jun 30, 2012
Merge tag 'v0.8.0' into debian -- release -- yeay!
Version 0.8.0

* tag 'v0.8.0': (21 commits)
  RLS: version 0.8.0
  DOC: release notes
  BUG: _get_marker_compat insufficient on matplotlib < 1.1.0
  BUG: don't use local() in read_* functions, breaks sys.settrace. close pandas-dev#1547
  BUG: fix Panel slice setting issue and matplotlib import issues pandas-dev#1548, pandas-dev#1533
  ENH: parsers don't use tempfile
  ENH: implement DataFrameGroupBy.boxplot(), close pandas-dev#1507
  BUG: fix MultiIndex indexing issues in pandas-dev#1537, python 2.5 api fix
  BUG: fix incorrect bin labels from cut when labels=False and NA present. close pandas-dev#1511
  ENH: support file-like objects in ExcelFile, close pandas-dev#1529
  TST: skip test raising unsortable warning on 32-bit windows, other platforms. pandas-dev#1546
  BUG: raise exceptions out of trying to parse iso8601 strings
  TST: separated test case
  BUG: custom colors for bar chart pandas-dev#1540
  ENH: add 'time' as inferred_type
  ENH: datetime.time converters for plotting
  BUG: fix MultiIndex segfault due to internal refactoring. close pandas-dev#1532
  BUG: fix MultiIndex compatibility bugs described in pandas-dev#1534 post gutting internal array close pandas-dev#1534
  BUG: parser bug when parse_dates is string pandas-dev#1544
  BUG: return nameless Series and index from from_csv
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.