Plugins

New in version 3.1.

Inspired by Flask extensions, plugins are extra packages that add new functionality to TauREx. They allow anyone to improve and expand TauRExs capabilities without modifying the main codebase. For example, new forward models, opacity formats, chemistry and optimizers.

Finding Plugins

TauREx plugins usually are named as ‘taurex_foo’ or ‘taurex-bar’. The Plugin Catalogue contains a list of plugins developed by us in the Plugins Catalogue . You can also search PyPI for packages with keywords taurex.

Using Plugins

Consult each plugins documentation for installation and usage. Generally TauREx searches for entry points in taurex.plugins and adds each component into the correct point in the pipeline

Lets take chemistry for example. Assuming a fresh install, we can see what is available to use in TauREx 3 by writing in the command prompt:

taurex --keywords chemistry

We get the output:

╒══════════════════╤═════════════════╤══════════╕
│ chemistry_type   │ Class           │ Source   │
╞══════════════════╪═════════════════╪══════════╡
│ file / fromfile  │ ChemistryFile   │ taurex   │
├──────────────────┼─────────────────┼──────────┤
│ taurex / free    │ TaurexChemistry │ taurex   │
╘══════════════════╧═════════════════╧══════════╛

We only have chemistry from a file and free chemistry. Supposing we wish to make use of FastChem. In the previous version we could easily load in an output from FastChem but what if we wanted to perform retrievals on the chemistry? We would need to write a wrapper of somekind that loads the C++ library into python before blah blah blah. A considerable amount of effort and likely someone else has solved the problem beforehand. This is what plugins solve!

With 3.1, we can now install the full FastChem chemistry code into TauREx3 with a single command:

pip install taurex_fastchem

Easy!

Now if we check the available chemistries we see:

╒══════════════════╤═════════════════╤══════════╕
│ chemistry_type   │ Class           │ Source   │
╞══════════════════╪═════════════════╪══════════╡
│ file / fromfile  │ ChemistryFile   │ taurex   │
├──────────────────┼─────────────────┼──────────┤
│ fastchem         │ FastChem        │ fastchem │
├──────────────────┼─────────────────┼──────────┤
│ taurex / free    │ TaurexChemistry │ taurex   │
╘══════════════════╧═════════════════╧══════════╛

We now have FastChem available!!!

Tip

It must be stressed that downloading and installing FastChem is not necessary, the plugin includes the precompiled library in the package.

Now we can use FastChem in the input file with retrievals:

[Chemistry]
chemistry_type = fastchem
selected_elements = H, He, C, N, O
metallicity = 2

[Fitting]
C_O_ratio:fit = True
C_O_ratio:priors = "LogUniform(-1,2)"

Building Plugins

While PyPI contains a growing list of TauREx plugins, you may not find a plugin that matches your needs. In this case you can try building your own! Read Plugin Development to learn how to develop your own and extend TauREx!