Writing Python Bindings for C++ Libraries: Easy-to-use Performancesystems (C++ and Python) ○ Data volume in terabytes ● Program analysis research and functional programming in a past life ● Love performance, software abstractions, and clean APIsWhy Python? ● Writing Writing extensive APIs in Python - low boilerplate ● Familiar for domain experts ● Easy to use ○ Amazing interactive support out of the box (IPython) ○ Jupyter notebooks provide a great research environment CppCon :) Why Python? Why C++?● Why? ○ Avoid reimplementing complex code for Python ○ Performance ○ Back and forth with user’s python code ○ Interoperability with data structures in Python - shared memory0 码力 | 118 页 | 2.18 MB | 6 月前3
Cooperative C++ Evolutionforgotten until it is too late. Often hard to retrofit.575859 2008: Python 3 Source breaking change (can’t compile 2 as 3) Python 2 Python 3 x = 3/2 x == 2 x == 1.5 Manual migration + tools (2to3 (2to3, Pylint, Futurize, Modernize, caniusepython3, tox, mypy) 2017: Most Python code still written in “23” 2020: 2.x frozen and unsupported 2023: Still used, CVE backport requests ~12-year transition 1→2→3 (1994→2000→2008) Source: JetBrains Python Developers Survey (Oct 2019)60 2008: Python 3 Source breaking change (can’t compile 2 as 3) Python 2 Python 3 x = 3/2 x == 2 x == 1.5 Manual0 码力 | 85 页 | 5.73 MB | 6 月前3
Conan 1 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 357 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 17.11 How0 码力 | 975 页 | 8.75 MB | 1 年前3
Conan 1.63 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 368 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 17.11 How0 码力 | 995 页 | 7.54 MB | 1 年前3
Conan 1.62 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 366 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 17.11 How0 码力 | 993 页 | 7.53 MB | 1 年前3
Conan 1.64 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 368 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 17.11 How0 码力 | 999 页 | 7.54 MB | 1 年前3
Conan 1.60 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 366 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 17.11 How0 码力 | 983 页 | 7.51 MB | 1 年前3
Conan 1.61 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 366 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 17.11 How0 码力 | 985 页 | 7.52 MB | 1 年前3
Conan 1.59 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 366 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 17.11 How0 码力 | 983 页 | 7.72 MB | 1 年前3
Conan 1.58 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.8 Python 2 Removal Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 14.2 Python requires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 14.3 Python requires (legacy) . . . . . . . . . . C and C++ Conan packages . . . . . . . . . . . . . . . . . . . . . . . . 366 17.10 How to reuse Python code in recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 17.11 How0 码力 | 979 页 | 7.71 MB | 1 年前3
共 148 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15













