Skip to content

Usability: move a few 'core' functions to top-level

Idea: currently, some of the core functions are accessed by traversing the module directories of tupak, but we could make these easier to see.

As an example, instead of

waveform_generator = tupak.waveform_generator.WaveformGenerator

we could just do

waveform_generator = tupak.WaveformGenerator

Some functions that I think are ripe for this:

  • WaveformGenerator
  • get_interferometer_with_fake_noise_and_injection (etc)
  • Likelihood

What is the advantage? Well, if I am not a tupak developer, one way I try to find out what a code does is open IPython, import tupak, and then do tab completion to find what classes/functions are available. By having the code work in this way, the user would get a list of things like Likelihood, WaveformGenerator etc, rather than having to dig and work out which things are actually for them and which are not!

How do we do it?

Easy, just move all the things we want the user to interface with into __init__.py.

What do people think?