Sciris: Simplifying scientific software in Python

Cliff C. Kerr, Paula Sanz‐Leon, Romesh Abeysuriya, George L. Chadderdon, Vlad-Ștefan Harbuz, Parham Saidi, Maria del Mar Quiroga, Rowan Martin‐Hughes, Sherrie L. Kelly, Jamie Alexis Cohen, Robyn Margaret Stuart, Anna Nachesa · The Journal of Open Source Software · 2023

Sciris aims to streamline the development of scientific software by making it easier to perform common tasks.Sciris provides classes and functions that simplify access to frequently used low-level functionality in the core libraries of the scientific Python ecosystem (such as numpy for math and matplotlib for plotting), as well as in libraries of broader scope (such as multiprocess for parallelization and pickle for saving and loading objects).While low-level functionality is valuable for developing robust software applications, it can divert focus from the scientific problems being solved.Some of Sciris' key features include: ensuring consistent dictionary, list, and array types (e.g., enabling users to provide inputs as either lists or arrays); enabling ordered dictionary elements to be referenced by index; simplifying datetime arithmetic by allowing date input in multiple formats, including strings; simplifying the saving and loading of files and complex objects; and simplifying the parallel execution of code.With Sciris, users can often achieve the same functionality with fewer lines of code, avoid reinventing the wheel, and spend less time looking up recipes on Stack Overflow.This can make writing scientific code in Python faster, more pleasant, and more accessible, especially for people without extensive training in software development.

Read the paper · More papers on PaperTik