[style]

################### COMMON #################################

# Which predefined style this style is based on.
based_on_style = facebook


################### SPECIFIC ################################
# Generated using `yapf --style=pep8 --style-help`.

# Align closing bracket with visual indentation.
align_closing_bracket_with_visual_indent = True

# Allow dictionary keys to exist on multiple lines. For example:
#
#   x = {
#       ('this is the first element of a tuple',
#        'this is the second element of a tuple'):
#            value,
#   }
allow_multiline_dictionary_keys = False

# Allow lambdas to be formatted on more than one line.
allow_multiline_lambdas = True

# Allow splits before the dictionary value.
allow_split_before_dict_value = False

# Number of blank lines surrounding top-level function and class
# definitions.
blank_lines_around_top_level_definition = 2

# Insert a blank line before a class-level docstring.
blank_line_before_class_docstring = False

# Insert a blank line before a 'def' or 'class' immediately nested
# within another 'def' or 'class'. For example:
#
#   class Foo:
#                      # <------ this blank line
#     def method():
#       ...
blank_line_before_nested_class_or_def = True

# Do not split consecutive brackets. Only relevant when
# dedent_closing_brackets is set. For example:
#
#    call_func_that_takes_a_dict(
#        {
#            'key1': 'value1',
#            'key2': 'value2',
#        }
#    )
#
# would reformat to:
#
#    call_func_that_takes_a_dict({
#        'key1': 'value1',
#        'key2': 'value2',
#    })
coalesce_brackets = False

# The column limit.
column_limit = 80

# The style for continuation alignment. Possible values are:
#
# - SPACE: Use spaces for continuation alignment. This is default behavior.
# - FIXED: Use fixed number (CONTINUATION_INDENT_WIDTH) of columns
#   (ie: CONTINUATION_INDENT_WIDTH/INDENT_WIDTH tabs) for continuation
#   alignment.
# - LESS: Slightly left if cannot vertically align continuation lines with
#   indent characters.
# - VALIGN-RIGHT: Vertically align continuation lines with indent
#   characters. Slightly right (one more indent character) if cannot
#   vertically align continuation lines with indent characters.
#
# For options FIXED, and VALIGN-RIGHT are only available when USE_TABS is
# enabled.
continuation_align_style = SPACE

# Indent width used for line continuations.
continuation_indent_width = 4

# Put closing brackets on a separate line, dedented, if the bracketed
# expression can't fit in a single line. Applies to all kinds of brackets,
# including function definitions and calls. For example:
#
#   config = {
#       'key1': 'value1',
#       'key2': 'value2',
#   }        # <--- this bracket is dedented and on a separate line
#
#   time_series = self.remote_client.query_entity_counters(
#       entity='dev3246.region1',
#       key='dns.query_latency_tcp',
#       transform=Transformation.AVERAGE(window=timedelta(seconds=60)),
#       start_ts=now()-timedelta(days=3),
#       end_ts=now(),
#   )        # <--- this bracket is dedented and on a separate line
dedent_closing_brackets = True

# Place each dictionary entry onto its own line.
#each_dict_entry_on_separate_line = True

# The regex for an i18n comment. The presence of this comment stops
# reformatting of that line, because the comments are required to be
# next to the string they translate.
#i18n_comment =

# The i18n function call names. The presence of this function stops
# reformattting on that line, because the string it has cannot be moved
# away from the i18n comment.
#i18n_function_call =

# Indent the dictionary value if it cannot fit on the same line as the
# dictionary key. For example:
#
#   config = {
#       'key1':
#           'value1',
#       'key2': value1 +
#               value2,
#   }
indent_dictionary_value = True

# The number of columns to use for indentation.
indent_width = 4

# Join short lines into one line. E.g., single line 'if' statements.
join_multiple_lines = True

# Do not include spaces around selected binary operators. For example:
#
#   1 + 2 * 3 - 4 / 5
#
# will be formatted as follows when configured with a value "*,/":
#
#   1 + 2*3 - 4/5
#
#no_spaces_around_selected_binary_operators = set()

# Use spaces around default or named assigns.
#spaces_around_default_or_named_assign = False

# Use spaces around the power operator.
#spaces_around_power_operator = False

# The number of spaces required before a trailing comment.
spaces_before_comment = 1

# Insert a space between the ending comma and closing bracket of a list,
# etc.
space_between_ending_comma_and_closing_bracket = False

# Split before arguments if the argument list is terminated by a
# comma.
split_arguments_when_comma_terminated = False

# Set to True to prefer splitting before '&', '|' or '^' rather than
# after.
split_before_bitwise_operator = True

# Split before the closing bracket if a list or dict literal doesn't fit on
# a single line.
split_before_closing_bracket = True

# Split before a dictionary or set generator (comp_for). For example, note
# the split before the 'for':
#
#   foo = {
#       variable: 'Hello world, have a nice day!'
#       for variable in bar if variable != 42
#   }
split_before_dict_set_generator = True

# Split after the opening paren which surrounds an expression if it doesn't
# fit on a single line.
split_before_expression_after_opening_paren = True

# If an argument / parameter list is going to be split, then split before
# the first argument.
split_before_first_argument = True

# Set to True to prefer splitting before 'and' or 'or' rather than
# after.
split_before_logical_operator = True

# Split named assignments onto individual lines.
split_before_named_assigns = True

# Set to True to split list comprehensions and generators that have
# non-trivial expressions and multiple clauses before each of these
# clauses. For example:
#
#   result = [
#       a_long_var + 100 for a_long_var in xrange(1000)
#       if a_long_var % 10]
#
# would reformat to something like:
#
#   result = [
#       a_long_var + 100
#       for a_long_var in xrange(1000)
#       if a_long_var % 10]
split_complex_comprehension = True

# The penalty for splitting right after the opening bracket.
#split_penalty_after_opening_bracket = 30

# The penalty for splitting the line after a unary operator.
#split_penalty_after_unary_operator = 10000

# The penalty for splitting right before an if expression.
#split_penalty_before_if_expr = 0

# The penalty of splitting the line around the '&', '|', and '^'
# operators.
#split_penalty_bitwise_operator = 300

# The penalty for splitting a list comprehension or generator
# expression.
#split_penalty_comprehension = 80

# The penalty for characters over the column limit.
#split_penalty_excess_character = 4500

# The penalty incurred by adding a line split to the unwrapped line. The
# more line splits added the higher the penalty.
# split_penalty_for_added_line_split = 30

# The penalty of splitting a list of "import as" names. For example:
#
#   from a_very_long_or_indented_module_name_yada_yad import (long_argument_1,
#                                                             long_argument_2,
#                                                             long_argument_3)
#
# would reformat to something like:
#
#   from a_very_long_or_indented_module_name_yada_yad import (
#       long_argument_1, long_argument_2, long_argument_3)
# split_penalty_import_names = 0

# The penalty of splitting the line around the 'and' and 'or'
# operators.
#split_penalty_logical_operator = 300

# Use the Tab character for indentation.
use_tabs = False
