Combined report

this is awesome, thank you.

I made a couple changes, but now when i commit, its yelling. Is this
because you branched at one point? I'm not sure where to point.

On Tue, Dec 2, 2014 at 5:58 PM, Coleman McFarland <notifications@github.com>
wrote:

> In report/monthly.py:
>
> > +class CombinedReportWriter(object):
> > +
> > +    def __init__(self, unsub=None, opens=None, profile=None):
> > +        # first, validate the arguments
> > +        self._validate_args(unsub, opens, profile)
> > +
> > +        self._unsub = unsub
> > +        self._open_rate = opens
> > +        self._profile = profile
> > +
> > +    def save_xls(self, path=None):
> > +        if path is None:
> > +            path = 'default_filename.xls'  # todo: still gotta do better default filenames
> > +        writer = pd.ExcelWriter(path)
> > +        # write unsubs
> > +        self._unsub._unsubs_by_category.to_excel(writer, 'unsubs')
>
> @ahelium <https://github.com/ahelium>
>
> Unfortunately, this is a Python style no-no (and PyCharm will give
> squiggly lines here).
>
> It's bad style to name attributes with an underscore prefix *if those
> attributes are accessed outside the class*. Pay attention to PyCharm's
> complaints. Options:
>
>    1. Change the report classes attribute names to not use underscores
>    2. Make a property (which are public) that simply returns the internal
>    attribute
>
> "Public" and "Private" stuff are not enforced in Python, unlike in Java.
> But in Python we must rely on *naming conventions* for everything. So
> it's important that you understand those conventions and try to use good
> style. I haven't made a fuss about that too much, because it's still new to
> you.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/ahelium/monthlyrep/pull/4/files#r21199591>.
>