#
#    Licensed to the Apache Software Foundation (ASF) under one or more
#    contributor license agreements.  See the NOTICE file distributed with
#    this work for additional information regarding copyright ownership.
#    The ASF licenses this file to You under the Apache License, Version 2.0
#    (the License); you may not use this file except in compliance with
#    the License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an AS IS BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.
#

[settings]
py_version=310
line_length=120 
old_finders=true
order_by_type=true
force_single_line=true
combine_star=true
src_paths=apache_beam
extra_standard_library=dataclasses
known_third_party=yaml
skip=apiclient.py,
     avroio_test.py,
     cloudpickle.py,
     datastore_wordcount.py,
     datastoreio_test.py,
     doctests_test.py,
     fast_coders_test.py,
     hadoopfilesystem.py,
     iobase_test.py,
     main_test.py,
     model.py,
     preprocess.py,
     process_tfma.py,
     render_test.py,
     slow_coders_test.py,
     taxi.py,
     tfdv_analyze_and_validate.py,
     yaml/main.py,
     main_test.py,
     yaml_testing_test.py,
     bigquery_v2_client.py,
     bigquery_v2_messages.py,
     dataflow_v1b3_client.py,
     dataflow_v1b3_messages.py,
     storage_v1_client.py,
     storage_v1_messages.py,
     proto2_coder_test_messages_pb2.py,
     cloudbuild_v1_client.py,
     cloudbuild_v1_messages.py,
     boto3_client.py,
skip_glob=*.pxd,*.pyx,*pb2*.py,**/examples/**/*.py,**/portability/api/**/*.py,**/portability/api/__init__.py