问题描述
我正在尝试将Black格式化程序用于Python代码,作为预提交工作流程的一部分。我也将Flake8用作linter。当涉及多行sql字符串时,Flake8和Black之间似乎存在格式差异。
import sqlite3
conn= sqlite3.connect("test.db")
cursor= conn.cursor()
def getResults(targetNumber):
cursor.execute(
"""
with participants_join as (select chat_id,participant from participants where participant != %(targetNumber)s),message_count as (select chat_id,sms_body from messages),contact_names as (select rowid,phone_number,name,alias,source,notes from aliases),> >distinct_chats as (select distinct chat_id from participants)
select p.chat_id,pa.participant,count(mc.sms_body) as count,c.name as name,c.alias as alias,c.source as source,c.notes as notes,c.rowid as aliasID from distinct_chats p
left join participants_join pa on pa.chat_id = p.chat_id
left join message_count mc on mc.chat_id = p.chat_id
left join contact_names c on c.phone_number = pa.participant
group by p.chat_id
""",{"targetNumber": targetNumber},)
Black无法替换distinct_chats
开头的行中的制表符,但确实将制表符替换为其他位置的空格。显然,这会使Flake8引发有关混合制表符和空格以及在代码中包含制表符的错误E101
和W191
。有人可以解释这种行为吗?为什么Black允许制表符和空格混合使用并且不抛出错误或警告?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)