You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,thank you for your contribution.Below is the code I wrote using your library.
from pya2l import DB
import pya2l.model as model
import time
import re
# 实例化数据库对象
db = DB()
# 根据A2L创建对应的数据库,执行之后,会在目录下创建A2L对应的数据库
try:
# A2L_11.a2l 替换成对应的A2L文件命
session = db.import_a2l("A2L_11.a2l")
time.sleep(5)
except Exception:
pass
# 打开已存在的数据库
session_db = db.open_existing("A2L_11")
# 选取数据库所有测量的量
measurements = session_db.query(model.Measurement).order_by(model.Measurement.name).all()
for m in measurements:
# 匹配条件"XXXXs数字s数字_或XXXXu数字s数字_的变量"
# .*s\d+s\d+_:表示任意字符(.*)后跟 s,再后跟一个或多个数字,接着是 s,然后是一个或多个数字,最后是下划线。
# .*u\d+s\d+_:表示任意字符(.*)后跟 u,再后跟一个或多个数字,接着是 s,然后是一个或多个数字,最后是下划线。
pattern = re.compile(r'(s\d+s(\d+)_.*|u\d+s(\d+)_.*)')
match = pattern.search(m.name)
if match:
if match.group(2):
num = match.group(2)
m.conversion = "BitConver" + str(num)
elif match.group(3):
num = match.group(3)
m.conversion = "BitConver" + str(num)
session_db.commit()
session_db.close()
out_file = "new.a2l"
db.export_a2l("A2L_11",out_file,"utf-8")
When running the last line of code, an "database is locked" error occurs.I modified your source code and temporarily solved the problem.
I modified the function named export_a2l in the init.py file.
def export_a2l(session, output: typing.Union[TextIOWrapper, str, typing.Any] = sys.stdout, encoding="latin1"): # noqa: UP007
"""
Parameters
----------
file_name: str
Name of the A2L exported.
encoding: str
File encoding like "latin-1" or "utf-8".
"""
# session = open_existing(db_name)
namespace = dict(session=session, model=model)
data = doTemplateFromText(A2L_TEMPLATE, namespace, formatExceptions=False, encoding=encoding)
if isinstance(output, TextIOWrapper):
output(data)
else:
with open(file=output, mode="w", encoding=encoding) as outf:
outf.write(data)
It should be an error caused by the sentence "open_existing(db_name)".
The text was updated successfully, but these errors were encountered:
Hello,thank you for your contribution.Below is the code I wrote using your library.
When running the last line of code, an "database is locked" error occurs.I modified your source code and temporarily solved the problem.
I modified the function named export_a2l in the init.py file.
It should be an error caused by the sentence "open_existing(db_name)".
The text was updated successfully, but these errors were encountered: