Abstract

Python is nowadays one of the most widely-used languages for data science. Its rich ecosystem of libraries together with its simplicity and readability are behind its popularity. HEP is also embracing that trend, often using Python as an interface language to access C++ libraries for the sake of performance. PyROOT, the Python bindings of the ROOT software toolkit, plays a key role here, since it allows to automatically and dynamically invoke C++ code from Python without the generation of any static wrappers beforehand. In that sense, this paper presents the efforts to create a new PyROOT with three main qualities: modern, able to exploit the latest C++ features from Python; pythonic, providing Python syntax to use C++ classes; interoperable, able to interact with the most important libraries of the Python data science toolset.

Highlights

  • Python is currently at the top of the most widely-used languages and tools for data science [1]

  • Python is used as an interface language to C++, which allows to keep the simplicity of the Python programming language without sacrificing performance

  • This paper describes how the powerful PyROOT bindings are going through a process of redesign and modernisation in order to better support the needs of HEP analysers

Read more

Summary

Introduction

Python is currently at the top of the most widely-used languages and tools for data science [1]. The ROOT software toolkit [8] is meant to play a key role in the interaction of HEP programs with the Python world It is mostly written in C++, ROOT provides bindings for Python, called PyROOT, which are unique: they allow to dynamically access C++ functionality from Python (classes, functions) without any prior generation of static bindings. This is possible thanks to the ROOT C++ interpreter and type system, which can.

New Design on Top of Modern Cppyy
User Pythonisations
Interoperability with the Python Ecosystem
Building the New PyROOT
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.