Merge pull request #275 from pikers/py3.10_support

Py3.10 support
ib_mkt_closed
goodboy 2022-02-07 09:48:54 -05:00 committed by GitHub
commit 43b39d3b6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 30 additions and 18 deletions

View File

@ -109,6 +109,7 @@ class LineDot(pg.CurvePoint):
# first = self._plot._arrays['ohlc'][0]['index']
# first = x[0]
# i = index - first
if index:
i = index - x[0]
if i > 0 and i < len(y):
newPos = (index, y[i])

View File

@ -105,7 +105,7 @@ class Edit(QLineEdit):
# TODO: somehow this math ain't right?
chars_w_pxs = dpi_font.boundingRect('0'*self._chars).width()
scale = round(dpi_font.scale())
psh.setWidth(chars_w_pxs * scale)
psh.setWidth(int(chars_w_pxs * scale))
return psh
def set_width_in_chars(
@ -218,7 +218,7 @@ class Selection(QComboBox):
) -> None:
br = _font.boundingRect(str(char))
_, h = br.width(), br.height()
_, h = br.width(), int(br.height())
# TODO: something better then this monkey patch
view = self.view()
@ -330,7 +330,7 @@ class FieldsForm(QWidget):
self.form.setSpacing(0)
self.form.setHorizontalSpacing(0)
self.vbox.addLayout(self.form, stretch=1/3)
self.vbox.addLayout(self.form, stretch=3)
self.labels: dict[str, QLabel] = {}
self.fields: dict[str, QWidget] = {}
@ -557,8 +557,8 @@ class FillStatusBar(QProgressBar):
self.font_size = font_size
self.setFormat('') # label format
self.setMinimumWidth(width_px)
self.setMaximumWidth(width_px)
self.setMinimumWidth(int(width_px))
self.setMaximumWidth(int(width_px))
def set_slots(
self,
@ -573,7 +573,7 @@ class FillStatusBar(QProgressBar):
approx_h,
slots,
)
clipped = slots * tot_slot_h + 2*self.border_px
clipped = int(slots * tot_slot_h + 2*self.border_px)
self.setMaximumHeight(clipped)
slot_height_px = tot_slot_h - 2*self.slot_margin_px
@ -657,14 +657,14 @@ def mk_fill_status_bar(
)
# size according to dpi scaled fonted contents to avoid
# resizes on magnitude changes (eg. 9 -> 10 %)
min_w = _font.boundingRect('1000.0M% pnl').width()
min_w = int(_font.boundingRect('1000.0M% pnl').width())
left_label.setMinimumWidth(min_w)
left_label.resize(
min_w,
left_label.size().height(),
)
bar_labels_lhs.addSpacing(5/8 * bar_h)
bar_labels_lhs.addSpacing(int(5/8 * bar_h))
bar_labels_lhs.addWidget(
left_label,
@ -796,7 +796,7 @@ def mk_order_pane_layout(
form.top_label = top_label
# add pp fill bar + spacing
vbox.addLayout(hbox, stretch=1/3)
vbox.addLayout(hbox, stretch=3)
# TODO: handle resize events and appropriately scale this
# to the sidepane height?

View File

@ -199,7 +199,14 @@ class LevelLabel(YAxisLabel):
elif self._orient_v == 'top':
lp, rp = rect.bottomLeft(), rect.bottomRight()
p.drawLine(lp.x(), lp.y(), rp.x(), rp.y())
p.drawLine(
*map(int, [
lp.x(),
lp.y(),
rp.x(),
rp.y(),
])
)
def highlight(self, pen) -> None:
self._pen = pen

View File

@ -142,8 +142,8 @@ class DpiAwareFont:
self._font_inches = inches
font_size = math.floor(inches * dpi)
log.info(
f"screen:{screen.name()}]\n"
log.debug(
f"screen:{screen.name()}\n"
f"pDPI: {pdpi}, lDPI: {ldpi}, scale: {scale}\n"
f"\nOur best guess font size is {font_size}\n"
)

View File

@ -671,7 +671,9 @@ async def open_order_mode(
form.fill_bar.height()
# feed_label.height()
)
vbox.setSpacing((1 + 5/8)*_font.px_size)
vbox.setSpacing(
int((1 + 5/8)*_font.px_size)
)
# fill in brokerd feed info
host, port = feed.portal.channel.raddr

View File

@ -52,6 +52,7 @@ setup(
'trio',
'trio-websocket',
# 'tractor', # from github currently
'msgspec', # performant IPC messaging
'async_generator',
# brokers
@ -87,6 +88,7 @@ setup(
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
'Intended Audience :: Financial and Insurance Industry',
'Intended Audience :: Science/Research',
'Intended Audience :: Developers',