Skip to content

DevNotes_Projects_Licensing

Stuart Prescott edited this page Oct 1, 2020 · 5 revisions

License Compliance Project

Package Licenses

  • perodictables - Public Domain
    • numpy, matplotlib, pyparsing
    • cromer-mann - BSD © Columbia University
    • xray data - Henke et al., LBL
    • neutron data - Rauch, Atomic Institute for Austrian Universities
    • fundamental constants, atomic mass - NIST
  • sasmodels - Public Domain, plus whatever license we put on the models converted from public domain Igor code
  • bumps - Public Domain
    • numpy, scipy, matplotlib, six
    • mpi4py - two clause BSD
    • GUI - MIT © U. Maryland
      • wxPython
    • DREAM - BSD © Los Alamos
      • scipy, numpy, matplotlib
      • sklearn - BSD
    • Levenberg-Marquardt - scipy
    • Differential Evolution, Nelder-Mead - PD
    • BFGS - MIT © U. Maryland
    • dill - MIT © CalTech

Note that for bumps, sasmodels and periodictable, the "US Govt Public domain" clause (title 17 USC 105) is potentially problematic as that continues to assert copyright outside the US. The explicit licence from NIST would be better to rely upon.

Licenses in sasview code

  • Source Forge site: BSD
  • setup.py = PSF (Python Softwre Foundation)
  • data_utils/odict.py = BSD
  • DANSE stuff

unix/mac/git-bash expression for finding imports

grep import *.py | sed -e 's/^[^:]*: *from  *\([^.]*\)\([.].*\)\{0,1\} import.*$/\1/' | sed -e 's/^[^:]*: *import  *\([a-zA-Z0-9]*\)\([. ][^,]*\)\{0,1\}$/\1/' | sort | uniq

Much longer version for the sasview tree:

find src -name "*.py" | xargs grep import | sed 's/^M//' | sed 's/#.*$//' | sed 's/^[^:]*: *$//' | sed -e 's/^[^:]*: *from  *\([^.]*\)\([.].*\)\{0,1\} import.*$/\1/' | sed -e 's/^[^:]*: *import  *\([a-zA-Z0-9_]*\)\([. ][^,]*\)\{0,1\} *$/\1/' | sort | uniq

Note: some sasview files end with CR LF, hence the ^M early in the stream. This is not caret+M, this is an actual carriage return inserted by Ctrl-V+Ctrl-M. With gnu sed, \r might work. Or maybe \\r.

Sasview uses lots of implicit relative imports, so the results are noisy. These should be changed to relative imports because they are safer.

Clone this wiki locally