Как использовать yapf, чтобы все аргументы были в одной строке?

#python #formatting #yapf

Вопрос:

Я пытаюсь настроить yapf так, чтобы аргументы и тому подобное находились в одной строке, но я не уверен, как добиться такого эффекта, пока все, что я вижу, — это аргументы функций в одной строке, но это работает не для всего.

Вот что у меня есть, например:

     def __enter__(self,
                  myfunc=123,
                  func2=LA.DS
        ):

        self.a_d = hash(
            '{}{}'.format(
                self.123, self.name
            )
        )
        self.pub_id = myfunc(
                                    str(self.id23).
                                    encode('utf8')).
            dosmth()

        self.acquired = self._acquire( )

    return Info1(self,
                        self.3,
                        self.2,
                        self.1,
                        self.4,
                        self.ttl,
                        self.acquired, self.type, self.block, self.b_interval)

 

Вот как я хочу, чтобы это выглядело:

     def __enter__(self, myfunc=123, func2=LA.DS):

        self.a_d = hash('{}{}'.format(self.123, self.name))
        self.pub_id = myfunc(str(self.id23).encode('utf8')).dosmth()

        self.acquired = self._acquire()

        return Info(self, self.1, self.2, self.3, self.4, self.5, self.acquired, self.type, self.2, self.interval)
 

Я пробовал их до сих пор, но они не работают в моем случае:

 yapf --in-place --recursive --style="{ SPLIT_BEFORE_FIRST_ARGUMENT: False}" 3.py

yapf --in-place --recursive --style="{based_on_style: pep8; SPLIT_ALL_COMMA_SEPARATED_VALUES: False, SPLIT_ARGUMENTS_WHEN_COMMA_TERMINATED: False}" 2.py
 

Я не уверен, что yapf может делать то, что я хочу, поэтому, если кто-нибудь знает, какую ручку использовать и тому подобное, это было бы огромной помощью.

Ответ №1:

вы пробовали этот column_limit вариант? например, в вашем .style.yapf файле поставьте

 [style]
column_limit=180
 

затем повторите команду yapf