Trouble making categorical variable --- TypeError: 'ClassRegistry' object is not callable
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 990
- Forks
- 106
- Avg merge
- 7d 34m
- Merged PRs (30d)
- 1
Description
Not sure what's going on here.
In [44]: patsy.dmatrix("C(a)", {'a':['m', 'n', 'o']})
Out[44]:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-44-24c8bf15ba3b> in <module>()
----> 1 dmatrix("C(a)", {'a':['m', 'n', 'o']})
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/highlevel.pyc in dmatrix(formula_like, data, eval_env, return_type)
259 """
260 (lhs, rhs) = _do_highlevel_design(formula_like, data, _get_env(eval_env),
--> 261 return_type)
262 if lhs.shape[1] != 0:
263 raise PatsyError("encountered outcome variables for a model "
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/highlevel.pyc in _do_highlevel_design(formula_like, data, eval_env, return_type)
145 def data_iter_maker():
146 return iter([data])
--> 147 builders = _try_incr_builders(formula_like, data_iter_maker, eval_env)
148 if builders is not None:
149 return build_design_matrices(builders, data,
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/highlevel.pyc in _try_incr_builders(formula_like, data_iter_maker, eval_env)
59 return design_matrix_builders([formula_like.lhs_termlist,
60 formula_like.rhs_termlist],
---> 61 data_iter_maker)
62 else:
63 return None
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/build.pyc in design_matrix_builders(termlists, data_iter_maker)
691 cat_postprocessors) = _examine_factor_types(all_factors,
692 factor_states,
--> 693 data_iter_maker)
694 # Now we need the factor evaluators, which encapsulate the knowledge of
695 # how to turn any given factor into a chunk of data:
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/build.pyc in _examine_factor_types(factors, factor_states, data_iter_maker)
441 break
442 for factor in list(examine_needed):
--> 443 value = factor.eval(factor_states[factor], data)
444 if isinstance(value, Categorical):
445 postprocessor = CategoricalTransform(levels=value.levels)
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/eval.pyc in eval(self, memorize_state, data)
429 # http://nedbatchelder.com/blog/200711/rethrowing_exceptions_in_python.html
430 def eval(self, memorize_state, data):
--> 431 return self._eval(memorize_state["eval_code"], memorize_state, data)
432
433 def test_EvalFactor_basics():
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/eval.pyc in _eval(self, code, memorize_state, data)
412 def _eval(self, code, memorize_state, data):
413 inner_namespace = VarLookupDict([data, memorize_state["transforms"]])
--> 414 return self._eval_env.eval(code, inner_namespace=inner_namespace)
415
416 def memorize_chunk(self, state, which_pass, data):
/Users/mike/venv/sci/lib/python2.7/site-packages/patsy/eval.pyc in eval(self, expr, source_name, inner_namespace)
119 code = compile(expr, source_name, "eval", self.flags, False)
120 return eval(code, {}, VarLookupDict([inner_namespace]
--> 121 + self._namespaces))
122
123 @classmethod
<string> in <module>()
TypeError: 'ClassRegistry' object is not callable
Using virtualenv on a Mac. Python 2.7.3.
Pygments==1.5
cloud==2.6.9
distribute==0.6.31
ipython==0.13.1
matplotlib==1.2.0
nose==1.2.1
numpy==1.6.2
pandas==0.10.0
patsy==0.1.0
python-dateutil==2.1
pytz==2012h
pyzmq==2.2.0.1
readline==6.2.4.1
scipy==0.11.0
six==1.2.0
statsmodels==0.5.0
sympy==0.7.2
tornado==2.4.1
wsgiref==0.1.2
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the reported patsy.dmatrix("C(a)", ...) failure with the listed package versions. Start with the traceback paths in highlevel.py, build.py, and eval.py, then trace how C(a) is evaluated. Done means the categorical-variable example no longer raises this TypeError and has a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100