association_table = Table(
"association", # имя таблицы
Base.metadata,
Column("left_id", ForeignKey("left.id"), primary_key=True), # поле ссылается на ключ Parent
Column("right_id", ForeignKey("right.id"), primary_key=True), # поле ссылается на ключ Child
)
class Parent(Base):
__tablename__ = "left" # обрати внимание на имя таблицы - сравни с ссылкой в association_table
id = Column(Integer, primary_key=True)
children = relationship(
"Child", # на какую таблицу мы ссылаемся?
secondary=association_table, # какую таблицу используем для связи?
back_populates="parents" # какое свойство в объектах таблицы на другом конце связи?
)
class Child(Base):
__tablename__ = "right" # обрати внимание на имя таблицы - сравни с ссылкой в association_table
id = Column(Integer, primary_key=True)
parents = relationship(
"Parent", # на какую таблицу мы ссылаемся?
secondary=association_table, # какую таблицу используем для связи?
back_populates="children" # какое свойство в объектах таблицы на другом конце связи?
)
# это удалит строку из связной таблицы
myparent.children.remove(somechild)
# а можно и так
somechild.parents.remove(myparent)
import csv
files = []
with open('my_file.csv', 'rt', encoding='utf-8') as src:
reader = csv.reader(src)
for row in reader:
# ну или какой там у тебя номер нужного столбца, начиная с 0?
fname = row[0]
files.append(fname)
pix = numpy.array([ # упрощённая картинка в оттенках серого. для цвета разница не принципиальная.
[1, 7, 3],
[5, 4, 2],
], dtype=numpy.uint8)
mask = pix > 4 # mask - логический массив такой же формы как pix
# [False, True, False],
# [True, False, False],
bright = pix[mask] # массив [7, 5] - значения, удовлетворяющие условию.
import asyncio
import aioschedule as schedule
import time
schedule.every().hour.do(job)
loop = asyncio.get_event_loop()
while True:
loop.run_until_complete(schedule.run_pending())
time.sleep(0.1)
schedule.every(9).seconds.do(main) #test
while True:
schedule.run_pending()
Я бы для таких задач взялся за Tkinter - идёт в коробке с питоном, при посредничестве Pillow вполне может выводить изображения opencv, управлять размером и положением окна умеет сам. А что не умеет - можно раздобыть дескриптор окна и добить самостоятельно.