Safe-DS: A Domain Specific Language to Make Data Science Safe

02/28/2023
by   Lars Reimann, et al.
0

Due to the long runtime of Data Science (DS) pipelines, even small programming mistakes can be very costly, if they are not detected statically. However, even basic static type checking of DS pipelines is difficult because most are written in Python. Static typing is available in Python only via external linters. These require static type annotations for parameters or results of functions, which many DS libraries do not provide. In this paper, we show how the wealth of Python DS libraries can be used in a statically safe way via Safe-DS, a domain specific language (DSL) for DS. Safe-DS catches conventional type errors plus errors related to range restrictions, data manipulation, and call order of functions, going well beyond the abilities of current Python linters. Python libraries are integrated into Safe-DS via a stub language for specifying the interface of its declarations, and an API-Editor that is able to extract type information from the code and documentation of Python libraries, and automatically generate suitable stubs. Moreover, Safe-DS complements textual DS pipelines with a graphical representation that eases safe development by preventing syntax errors. The seamless synchronization of textual and graphic view lets developers always choose the one best suited for their skills and current task. We think that Safe-DS can make DS development easier, faster, and more reliable, significantly reducing development costs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/12/2020

Towards Memory Safe Python Enclave for Security Sensitive Computation

Intel SGX Guard eXtensions (SGX), a hardware-supported trusted execution...
research
07/01/2016

Want Drugs? Use Python

We describe how Python can be leveraged to streamline the curation, mode...
research
11/29/2018

Autoconj: Recognizing and Exploiting Conjugacy Without a Domain-Specific Language

Deriving conditional and marginal distributions using conjugacy relation...
research
02/26/2022

Python for Smarter Cities: Comparison of Python libraries for static and interactive visualisations of large vector data

Local governments, as part of 'smart city' initiatives and to promote in...
research
08/30/2017

Type Safe Redis Queries: A Case Study of Type-Level Programming in Haskell

Redis is an in-memory data structure store, often used as a database, wi...
research
05/24/2020

miniKanren as a Tool for Symbolic Computation in Python

In this article, we give a brief overview of the current state and futur...
research
07/17/2018

Physical-type correctness in scientific Python

The representation of units and dimensions in informatics systems is bar...

Please sign up or login with your details

Forgot password? Click here to reset