mattjj / pyhsmm

MIT License
546 stars 173 forks source link

make a proper setup.py #28

Closed mattjj closed 9 years ago

mattjj commented 9 years ago

Since this is research code, I just work with it as a directory and put it on the PYTHONPATH manually. It might be nice to reorganize the code and do the proper python packaging, including a setup.py.

Maybe that setup.py can even work with Windows, c.f. #27.

yarden commented 9 years ago

FYI, I'm working on this, and have been putting my initial prototype here (https://github.com/yarden/pyhsmm). A design question is how to treat pybasicbayes. The real solution is to make that a proper package too and then make it a dependency for pyhsmm, but for now I just have a hack that checks that pybasicbayes is present (i.e. checks if --recursive was used in cloning. But again, the real goal is to make this package installable without git at all).

mattjj commented 9 years ago

Hey awesome!

You're right that the best solution is to make pybaiscbayes its own package as well.

yarden commented 9 years ago

It's basically working now - I can run all the tests using:

python -m unittest discover pyhsmm

I added some blurb about that to README.md. The tests seem to work except test_paralleltempering.py which complains that:

  File "pyhsmm/test_paralleltempering.py", line 70, in <module>
    posteriormodel = pyhsmm.models.DiagGaussHSMMPossibleChangepointsSeparateTrans(
AttributeError: 'module' object has no attribute 'DiagGaussHSMMPossibleChangepointsSeparateTrans'

as far as I can tell 'DiagGaussHSMMPossibleChangepointsSeparateTrans' really is missing in pyhsmm.models so I commented out that test for now.

I'm happy to make pybasicbayes into a real python package too, but there's the question of what to do with pymattutil. Relying on github links will make it impossible to install the package from pypi using package managers, as far as I know. Are you willing to fold pymattutil into pybasicbayes? Or do you prefer to make pymattutil a separate package? That might be overkill.

mattjj commented 9 years ago

Sorry for being slow on this; it's a busy week for me.

We can kill pymattutil completely and just leave slightly redundant util modules in each of pybasicbayes and pyhsmm. (It's possible to keep it as a subtree for version control purposes, but IIRC the versions in pyhsmm and pybasicbayes have diverged anyway.)

We can also delete the parallel tempering code; that was just temporary.

What else remains to be done? If it's not much, can you make a pull request?

yarden commented 9 years ago

Nothing else remains as far as I can tell. My forked pyhsmm works great for me as complete package, under the assumption that pybasicbayes is a subdirectory of it in basic/. I can make pybasicbayes into a complete package too, make it a dependency (via setup.py) of pyhsmm, make sure pyhsmm works with that, and then send you pull requests for both repositories - does that sound good?

mattjj commented 9 years ago

That would be great if it's not too much trouble. I glanced at the organization in your master branch and it looks perfect. On Thu, Feb 26, 2015 at 3:53 PM Yarden Katz notifications@github.com wrote:

Nothing else remains as far as I can tell. pyhsmm works great for me, under the assumption that pybasicbayes is a subdirectory of it in basic/. I can make pybasicbayes into a complete package too, make it a dependency (via setup.py) of pyhsmm, make sure pyhsmm works with that, and then send you pull requests for both repositories - does that sound good?

— Reply to this email directly or view it on GitHub https://github.com/mattjj/pyhsmm/issues/28#issuecomment-76270292.

mattjj commented 9 years ago

Fixed by @yarden in #33 !