Sciris: Simplifying scientific software in Python

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.