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.


翻译:由于数据科学(DS)管道的长运行时间,即使是小的编程错误,如果它们不是静态检测,也可能非常昂贵。然而,即使是DS管道的基本静态类型检查也很困难,因为大多数都是用Python编写的。在Python中,静态类型仅通过外部linter可用。这些需要参数或函数结果的静态类型注释,而许多DS库不提供。在本文中,我们展示了如何通过Safe-DS,一种针对DS的领域特定语言(DSL),以静态安全的方式使用Python DS库的丰富性。Safe-DS捕获传统的类型错误以及与范围限制,数据操作和函数调用顺序有关的错误,远远超出当前Python linter的能力。Python库通过一种存根语言集成到Safe-DS中,用于指定其声明的接口,以及一个API编辑器,能够从Python库的代码和文档中提取类型信息,并自动生成合适的存根。此外,Safe-DS通过一种图形表示形式补充了文本DS管道,通过防止语法错误来简化安全开发。文本和图形视图的无缝同步使开发人员始终可以选择最适合他们的技能和当前任务的视图。我们认为,Safe-DS可以使DS开发更加容易,更快速,更可靠,从而显着降低开发成本。

0
下载
关闭预览

相关内容

DirectShow是一种由微软公司开发的能够让软件开发者对媒体文件执行各种不同处理的应用程序设计接口。
【2022新书】Python数据分析第三版,579页pdf
专知会员服务
244+阅读 · 2022年8月31日
【2022新书】Python DevOps,245页pdf
专知会员服务
89+阅读 · 2022年7月11日
【实用书】Python数据分析手册,437页pdf带你实战数据清洗
专知会员服务
17+阅读 · 2020年9月6日
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2022新书】Python数据分析第三版,579页pdf
专知
19+阅读 · 2022年8月31日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Sreg 一款社工小工具
黑白之道
12+阅读 · 2019年8月18日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【推荐】免费书(草稿):数据科学的数学基础
机器学习研究会
20+阅读 · 2017年10月1日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Directions for Explainable Knowledge-Enabled Systems
Arxiv
26+阅读 · 2020年3月17日
VIP会员
相关VIP内容
【2022新书】Python数据分析第三版,579页pdf
专知会员服务
244+阅读 · 2022年8月31日
【2022新书】Python DevOps,245页pdf
专知会员服务
89+阅读 · 2022年7月11日
【实用书】Python数据分析手册,437页pdf带你实战数据清洗
专知会员服务
17+阅读 · 2020年9月6日
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
相关资讯
【2022新书】Python数据分析第三版,579页pdf
专知
19+阅读 · 2022年8月31日
VCIP 2022 Call for Demos
CCF多媒体专委会
1+阅读 · 2022年6月6日
Sreg 一款社工小工具
黑白之道
12+阅读 · 2019年8月18日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【推荐】免费书(草稿):数据科学的数学基础
机器学习研究会
20+阅读 · 2017年10月1日
相关基金
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
国家自然科学基金
0+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员