check_include_style.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 
3 # Copyright 2021 gRPC authors.
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 
17 import os
18 import re
19 import sys
20 
21 os.chdir(os.path.join(os.path.dirname(sys.argv[0]), '../../..'))
22 
23 BAD_REGEXES = [
24  (r'\n#include "include/(.*)"', r'\n#include <\1>'),
25  (r'\n#include "grpc(.*)"', r'\n#include <grpc\1>'),
26 ]
27 
28 fix = sys.argv[1:] == ['--fix']
29 if fix:
30  print("FIXING!")
31 
32 
33 def check_include_style(directory_root):
34  bad_files = []
35  for root, dirs, files in os.walk(directory_root):
36  for filename in files:
37  path = os.path.join(root, filename)
38  if os.path.splitext(path)[1] not in ['.c', '.cc', '.h']:
39  continue
40  if filename.endswith('.pb.h') or filename.endswith('.pb.c'):
41  continue
42  # Skip check for upb generated code.
43  if (filename.endswith('.upb.h') or filename.endswith('.upb.c') or
44  filename.endswith('.upbdefs.h') or
45  filename.endswith('.upbdefs.c')):
46  continue
47  with open(path) as f:
48  text = f.read()
49  original = text
50  for regex, replace in BAD_REGEXES:
51  text = re.sub(regex, replace, text)
52  if text != original:
53  bad_files.append(path)
54  if fix:
55  with open(path, 'w') as f:
56  f.write(text)
57  return bad_files
58 
59 
60 all_bad_files = []
61 all_bad_files += check_include_style(os.path.join('src', 'core'))
62 all_bad_files += check_include_style(os.path.join('src', 'cpp'))
63 all_bad_files += check_include_style(os.path.join('test', 'core'))
64 all_bad_files += check_include_style(os.path.join('test', 'cpp'))
65 all_bad_files += check_include_style(os.path.join('include', 'grpc'))
66 all_bad_files += check_include_style(os.path.join('include', 'grpcpp'))
67 
68 if all_bad_files:
69  for f in all_bad_files:
70  print("%s has badly formed grpc system header files" % f)
71  sys.exit(1)
check_include_style.check_include_style
def check_include_style(directory_root)
Definition: check_include_style.py:33
open
#define open
Definition: test-fs.c:46
check_include_style
Definition: check_include_style.py:1


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:45