• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

llnl-asr / dftracer-utils / 36502607218

29 Sep 2026 12:20AM UTC coverage: 57.996% (+5.4%) from 52.58%
36502607218

push

github

rayandrew
Merge branch 'feat/view-as-lazyframe' into 'develop'

feat: view as lazyframe

See merge request dftracer/dftracer-utils!25

74077 of 162805 branches covered (45.5%)

Branch coverage included in aggregate %.

3652 of 3978 new or added lines in 49 files covered. (91.8%)

3464 existing lines in 85 files now uncovered.

65902 of 78556 relevant lines covered (83.89%)

179668.29 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/dftracer/utils/python/arrow_helpers.cpp
1
#include <dftracer/utils/core/common/config.h>
2
#ifdef DFTRACER_UTILS_ENABLE_ARROW
3

4
#define PY_SSIZE_T_CLEAN
5
#include <Python.h>
6
#include <dftracer/utils/python/arrow_helpers.h>
7
#include <dftracer/utils/python/trace_reader_iterator.h>
8

9
namespace dftracer::utils::python {
10

UNCOV
11
PyObject *wrap_arrow_result(ArrowExportResult result) {
×
UNCOV
12
    if (!result.valid()) {
×
13
        PyErr_SetString(PyExc_RuntimeError,
×
14
                        "Cannot wrap invalid ArrowExportResult");
15
        return NULL;
×
16
    }
17

UNCOV
18
    auto *cap = (ArrowBatchCapsuleObject *)ArrowBatchCapsuleType.tp_alloc(
×
19
        &ArrowBatchCapsuleType, 0);
UNCOV
20
    if (!cap) return NULL;
×
21

UNCOV
22
    cap->result = new ArrowExportResult(std::move(result));
×
UNCOV
23
    return (PyObject *)cap;
×
24
}
25

UNCOV
26
PyObject *wrap_arrow_table(PyObject *batch_list) {
×
UNCOV
27
    if (!batch_list) {
×
28
        PyErr_SetString(PyExc_RuntimeError, "batch_list is NULL");
×
29
        return NULL;
×
30
    }
31

UNCOV
32
    PyObject *mod = PyImport_ImportModule("dftracer.utils.arrow");
×
UNCOV
33
    if (!mod) {
×
34
        Py_DECREF(batch_list);
35
        return NULL;
×
36
    }
37

UNCOV
38
    PyObject *cls = PyObject_GetAttrString(mod, "ArrowTable");
×
39
    Py_DECREF(mod);
UNCOV
40
    if (!cls) {
×
41
        Py_DECREF(batch_list);
42
        return NULL;
×
43
    }
44

UNCOV
45
    PyObject *table = PyObject_CallFunctionObjArgs(cls, batch_list, NULL);
×
46
    Py_DECREF(cls);
47
    Py_DECREF(batch_list);
UNCOV
48
    return table;
×
49
}
50

UNCOV
51
PyObject *arrow_result_to_table(ArrowExportResult result) {
×
UNCOV
52
    PyObject *capsule = wrap_arrow_result(std::move(result));
×
UNCOV
53
    if (!capsule) return NULL;
×
54

UNCOV
55
    PyObject *list = PyList_New(1);
×
UNCOV
56
    if (!list) {
×
57
        Py_DECREF(capsule);
UNCOV
58
        return NULL;
×
59
    }
UNCOV
60
    PyList_SET_ITEM(list, 0, capsule);  // steals ref
×
61

UNCOV
62
    return wrap_arrow_table(list);
×
63
}
64

65
}  // namespace dftracer::utils::python
66

67
#endif  // DFTRACER_UTILS_ENABLE_ARROW
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc