choderalab / software-development

A primer on software development best practices for computational chemistry
255 stars 76 forks source link

Structuring a Python project #30

Closed jchodera closed 6 years ago

jchodera commented 7 years ago

This is similar to #4, but we really need a section on what a basic Python package should contain and how it should be structured.

I'm thinking we should create a minimal example, say in http://github.com/omnia-md/examplepackage, that has all of the working bits of a state-of-the-art project, but just doesn't do much.

Modeling this on mdtraj---noting especially the tools license, we might adopt:

devtools/
  README.md
  travis-ci/
    install_miniconda.sh
  appveyor-ci/
    run_with_env.cmd
  conda-recipe/
    meta.yaml
    build.sh
    bld.bat
    README.md
docs/
examplepackage/
  tests/
    __init__.py
    test_examplepackage.py
  __init__.py
  examplepackage.py
LICENSE.md
README.md
setup.py
basesetup.py
.travis.yml
.appveyor.yml
.gitignore
jchodera commented 7 years ago

I've added a minimal skeleton for STRUCTURING_YOUR_PROJECT.md in #28 that we will want to fill in.