Verbose Feature on MWEM No Longer Compatible with Python 3.7
01110011011101010110010001101111 opened this issue · 2 comments
01110011011101010110010001101111 commented
Running smartnoise-synth==0.3.5.
Python Version: Python 3.7.0
It looks like MWEM is no longer compatible with Python 3.7 when the verbose function is set to true (even though the README indicates the package is compatible with Python 3.7).
Code (slightly modified from from the docs):
from snsynth import Synthesizer
import pandas as pd
pums = pd.read_csv('PUMS.csv', index_col=None) # in datasets
pums = pums.drop(['income', 'age'], axis=1)
synth = Synthesizer.create('mwem', epsilon=1.0, verbose=True)
sample = synth.fit_sample(pums)
print(sample)
Error:
AttributeError: module 'math' has no attribute 'comb'
This error is because "comb" is a new method in Python 3.8 that does not exist in Python 3.7.
The function works without the verbose=True
parameter or with Python 3.8.
joshua-oss commented
Thanks for reporting and pinpointing the root cause. The bug is fixed and pushed to smartnoise-synth==3.5.1
on PyPi.
GenericP3rson commented
Awesome, it's working now! Thank you so much!