Skip to content

Commit e1624cf

Browse files
update
1 parent 7b9d27d commit e1624cf

File tree

4 files changed

+54
-37
lines changed

4 files changed

+54
-37
lines changed

src/exceptionite/StackTrace.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import os
44
from typing import List
55

6-
MARKER = "site-packages/"
6+
MARKERS = ["site-packages/", "src/masonite/"]
77

88

99
class StackFrame:
@@ -16,10 +16,19 @@ def __init__(self, index, frame_summary, variables={}, offset=5, shorten=False):
1616
self.is_vendor = False
1717
if shorten:
1818
rel_path = self.file.replace(f"{os.getcwd()}/", "")
19-
index = rel_path.find(MARKER)
19+
# check if frame is a vendor frame (from an external python package or masonite package
20+
# in development)
21+
for marker in MARKERS:
22+
index = rel_path.find(marker)
23+
if index != -1:
24+
break
25+
2026
if index != -1:
2127
self.is_vendor = True
22-
self.relative_file = "~/" + rel_path[index + len(MARKER) :] # noqa: E203
28+
if marker == "src/masonite/":
29+
self.relative_file = "~/" + rel_path[index + len("src/") :] # noqa: E203
30+
else:
31+
self.relative_file = "~/" + rel_path[index + len(marker) :] # noqa: E203
2332
else:
2433
self.relative_file = rel_path
2534

src/exceptionite/assets/components/Stack.vue

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
type="button" class="btn"
88
:disabled="vendorsFrameCount == 0"
99
:class="{'btn-disabled': vendorsFrameCount === 0}"
10-
v-tooltip="`${ showVendors ? 'Hide' : 'Show' } vendor frames in stack trace`"
10+
v-tooltip="`Show/Hide vendor frames in stack trace`"
1111
>
1212
<SolidSelectorIcon class="-ml-0.5 mr-2 h-4 w-4" />
1313
{{ showVendors ? "Hide" : "Show" }} Vendor ({{ vendorsFrameCount }})
@@ -33,8 +33,8 @@
3333
v-for="frame in selectedFrames" :key="frame.relative_file + frame.index"
3434
class="border-b border-gray-300 dark:border-gray-700 px-2 py-4 text-xs cursor-pointer hover:bg-blue-600 dark:hover:bg-red-600 hover:text-white dark:hover:text-gray-400"
3535
:class="[
36-
currentFrame.index == frame.index ? 'text-white dark:text-gray-200' : frame.is_vendor ? 'text-gray-500 ' : 'text-black dark:text-gray-400 dark:bg-gray-900',
37-
{'bg-blue-600 dark:bg-red-600': currentFrame.index == frame.index}
36+
isCurrent(frame) ? 'text-white dark:text-gray-200' : frame.is_vendor ? 'text-gray-500 ' : 'text-black dark:text-gray-400 dark:bg-gray-900',
37+
{'bg-blue-600 dark:bg-red-600': isCurrent(frame)}
3838
]"
3939
@click="selectFrame(frame)"
4040
>
@@ -100,6 +100,12 @@ export default {
100100
101101
const vendorsFrameCount = computed(() => stack.value.filter(frame => frame.is_vendor).length)
102102
103+
const isCurrent = (frame) => {
104+
if (!currentFrame.value) {
105+
return false
106+
}
107+
return currentFrame.value.index === frame.index
108+
}
103109
// set initial reversed state
104110
if (reversed.value) {
105111
reverseStack()
@@ -110,6 +116,7 @@ export default {
110116
111117
return {
112118
currentFrame,
119+
isCurrent,
113120
showVendors,
114121
selectFrame,
115122
stack,
@@ -123,17 +130,14 @@ export default {
123130
},
124131
methods: {
125132
toggleVendor() {
126-
this.showVendors = !this.showVendors
127-
// if no frame selected try to select first
128-
if (!this.currentFrame && this.selectedFrames.length > 0) {
129-
this.selectFrame(this.selectedFrames[0])
130-
} else if (this.currentFrame) {
131-
// check if old current frame is still visible else hide it
132-
if (!this.selectedFrames.find(frame => frame.index === this.currentFrame.index)) {
133-
this.currentFrame = null
134-
}
135-
133+
// if we were showing vendors frame and current is vendor
134+
// set current as first non vendor
135+
if (this.showVendors && this.currentFrame.is_vendor) {
136+
this.currentFrame = this.stack.filter(frame => !frame.is_vendor)[0]
136137
}
138+
139+
// make change
140+
this.showVendors = !this.showVendors
137141
}
138142
},
139143
}

src/exceptionite/templates/exceptionite.css

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,10 +1296,6 @@ Ensure the default browser behavior of the `hidden` attribute.
12961296
color: rgb(191 219 254 / var(--tw-text-opacity));
12971297
}
12981298

1299-
.visible {
1300-
visibility: visible;
1301-
}
1302-
13031299
.fixed {
13041300
position: fixed;
13051301
}

src/exceptionite/templates/exceptionite.js

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26453,7 +26453,16 @@ __webpack_require__.r(__webpack_exports__);
2645326453
return stack.value.filter(function (frame) {
2645426454
return frame.is_vendor;
2645526455
}).length;
26456-
}); // set initial reversed state
26456+
});
26457+
26458+
var isCurrent = function isCurrent(frame) {
26459+
if (!currentFrame.value) {
26460+
return false;
26461+
}
26462+
26463+
return currentFrame.value.index === frame.index;
26464+
}; // set initial reversed state
26465+
2645726466

2645826467
if (reversed.value) {
2645926468
reverseStack();
@@ -26464,6 +26473,7 @@ __webpack_require__.r(__webpack_exports__);
2646426473

2646526474
return {
2646626475
currentFrame: currentFrame,
26476+
isCurrent: isCurrent,
2646726477
showVendors: showVendors,
2646826478
selectFrame: selectFrame,
2646926479
stack: stack,
@@ -26477,20 +26487,18 @@ __webpack_require__.r(__webpack_exports__);
2647726487
},
2647826488
methods: {
2647926489
toggleVendor: function toggleVendor() {
26480-
var _this = this;
26490+
// if we were showing vendors frame and current is vendor
26491+
// set current as first non vendor
26492+
debugger;
2648126493

26482-
this.showVendors = !this.showVendors; // if no frame selected try to select first
26494+
if (this.showVendors && this.currentFrame.is_vendor) {
26495+
this.currentFrame = this.stack.filter(function (frame) {
26496+
return !frame.is_vendor;
26497+
})[0];
26498+
} // make change
2648326499

26484-
if (!this.currentFrame && this.selectedFrames.length > 0) {
26485-
this.selectFrame(this.selectedFrames[0]);
26486-
} else if (this.currentFrame) {
26487-
// check if old current frame is still visible else hide it
26488-
if (!this.selectedFrames.find(function (frame) {
26489-
return frame.index === _this.currentFrame.index;
26490-
})) {
26491-
this.currentFrame = null;
26492-
}
26493-
}
26500+
26501+
this.showVendors = !this.showVendors;
2649426502
}
2649526503
}
2649626504
});
@@ -28040,11 +28048,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2804028048
disabled: $setup.vendorsFrameCount == 0
2804128049
}, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_SolidSelectorIcon, {
2804228050
"class": "-ml-0.5 mr-2 h-4 w-4"
28043-
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" " + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.showVendors ? "Hide" : "Show") + " Vendor (" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.vendorsFrameCount) + ") ", 1
28051+
}), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" " + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.showVendors ? "Hide" : "Show") + " Vendorrr (" + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.vendorsFrameCount) + ") ", 1
2804428052
/* TEXT */
2804528053
)], 10
2804628054
/* CLASS, PROPS */
28047-
, _hoisted_4)), [[_directive_tooltip, "".concat($setup.showVendors ? 'Hide' : 'Show', " vendor frames in stack trace")]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("button", {
28055+
, _hoisted_4)), [[_directive_tooltip, "Show/Hide vendor frames in stack trace"]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("button", {
2804828056
onClick: _cache[1] || (_cache[1] = function () {
2804928057
return $setup.copyStack && $setup.copyStack.apply($setup, arguments);
2805028058
}),
@@ -28071,8 +28079,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
2807128079
}))])), [[_directive_tooltip, 'Toggle Stacktrace order']])]), ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)($setup.selectedFrames, function (frame) {
2807228080
return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", {
2807328081
key: frame.relative_file + frame.index,
28074-
"class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["border-b border-gray-300 dark:border-gray-700 px-2 py-4 text-xs cursor-pointer hover:bg-blue-600 dark:hover:bg-red-600 hover:text-white dark:hover:text-gray-400", [$setup.currentFrame.index == frame.index ? 'text-white dark:text-gray-200' : frame.is_vendor ? 'text-gray-500 ' : 'text-black dark:text-gray-400 dark:bg-gray-900', {
28075-
'bg-blue-600 dark:bg-red-600': $setup.currentFrame.index == frame.index
28082+
"class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["border-b border-gray-300 dark:border-gray-700 px-2 py-4 text-xs cursor-pointer hover:bg-blue-600 dark:hover:bg-red-600 hover:text-white dark:hover:text-gray-400", [$setup.isCurrent(frame) ? 'text-white dark:text-gray-200' : frame.is_vendor ? 'text-gray-500 ' : 'text-black dark:text-gray-400 dark:bg-gray-900', {
28083+
'bg-blue-600 dark:bg-red-600': $setup.isCurrent(frame)
2807628084
}]]),
2807728085
onClick: function onClick($event) {
2807828086
return $setup.selectFrame(frame);

0 commit comments

Comments
 (0)