Всем доброго времени суток!
Делаю небольшой скрипт для себя с записью в БД. Хочу сделать запись в БД в несколько потоков. Сейчас работает в одном потоке, но получаю данную ошибку:
add_advert() got multiple values for argument 'connection'
В чем может быть проблема?
Исходный код:
def db_connect(func):
""" decorator to connect to the database
"""
def inner(*args, **kwargs):
with sqlite3.connect('adverts.db') as connection:
kwargs['connection'] = connection
response = func(*args, **kwargs)
return response
return inner
@db_connect
def add_advert(connection, source_link: str, user_since: str, user_name: str, user_link: str, advert_name: str,
advert_text: str, address: str, phone_num: int, advert_price: float, advert_currency: str):
"""
add data to db
:param connection: connector to db
:param source_link: link to advert
:param user_since: user registration date
:param user_name: user name
:param user_link: link to user profile
:param advert_name: name of advert
:param advert_text: description of advert
:param address: user address
:param phone_num: user phone number
:param advert_price: advert price
:param advert_currency: advert currency
"""
c = connection.cursor()
c.execute('INSERT INTO adverts (source_link, user_since, user_name, user_link, advert_name, advert_text\
address, phone_num, advert_price, advert_currency) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
(source_link, user_since, user_name, user_link, advert_name, advert_text, address, phone_num,
advert_price, advert_currency))
# save editing
connection.commit()
add_advert(source_link, user_since, user_name, user_link, advert_name, advert_text, address, phone_num,
advert_price, advert_currency)