提交 211cb37b 编写于 作者: 朔-望's avatar 朔-望 提交者: GitHub

Merge pull request #241 from allonli/develop

add copyright hook
...@@ -16,16 +16,25 @@ repos: ...@@ -16,16 +16,25 @@ repos:
- id: detect-private-key - id: detect-private-key
files: (?!.*tar.gz)^.*$ files: (?!.*tar.gz)^.*$
- id: end-of-file-fixer - id: end-of-file-fixer
files: (src).*\.(md|py|mm|swift|java|c|cc|cxx|cpp|cu|h|hpp|hxx)$ files: (src).*\.(md|py|mm|swift|java|c|cc|cxx|cpp|h|hpp|hxx)$
- id: trailing-whitespace - id: trailing-whitespace
files: (src).*\.(md|py|mm|swift|java|c|cc|cxx|cpp|cu|h|hpp|hxx)$ files: (src).*\.(md|py|mm|swift|java|c|cc|cxx|cpp|h|hpp|hxx)$
- repo: local
hooks:
- id: copyright
name: copyright
entry: python ./tools/pre-commit.hooks/copyright.hook
language: system
files: (src).*\.(c|cc|cxx|cpp|h|hpp|hxx|py)$
exclude: (?!.*third_party)^.*$ | (?!.*book)^.*$
- repo: local - repo: local
hooks: hooks:
- id: clang-format - id: clang-format
name: clang-format name: clang-format
description: Format files with ClangFormat. description: Format files with ClangFormat.
entry: bash ./tools/pre-commit.hooks/.clang-format.hook -i entry: bash ./tools/pre-commit.hooks/clang-format.hook -i
language: system language: system
files: (src).*\.(c|cc|cxx|cpp|h|hpp|hxx)$ files: (src).*\.(c|cc|cxx|cpp|h|hpp|hxx)$
...@@ -44,15 +53,8 @@ repos: ...@@ -44,15 +53,8 @@ repos:
- id: cpplint - id: cpplint
name: cpplint name: cpplint
description: Check C++ code style using cpplint. description: Check C++ code style using cpplint.
entry: bash ./tools/pre-commit.hooks/.cpplint.hook entry: bash ./tools/pre-commit.hooks/cpplint.hook
language: system language: system
files: (src).*\.(c|cc|cxx|cpp|cu|h|hpp|hxx)$ files: (src).*\.(c|cc|cxx|cpp|h|hpp|hxx)$
exclude: (?!.*third_party)^.*$ | (?!.*book)^.*$i | *\.pb\.cpp exclude: (?!.*third_party)^.*$ | (?!.*book)^.*$i | *\.pb\.cpp
#- repo: local
# hooks:
# - id: copyright_checker
# name: copyright_checker
# entry: python ./tools/pre-commit.hooks/.copyright.hook
# language: system
# files: (src).*\.(c|cc|cxx|cpp|cu|h|hpp|hxx|proto|py)$
# exclude: (?!.*third_party)^.*$ | (?!.*book)^.*$
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
Licensed 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. */
// Generated by the protocol buffer compiler. DO NOT EDIT! // Generated by the protocol buffer compiler. DO NOT EDIT!
// source: framework.proto // source: framework.proto
......
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
Licensed 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. */
// Generated by the protocol buffer compiler. DO NOT EDIT! // Generated by the protocol buffer compiler. DO NOT EDIT!
// source: framework.proto // source: framework.proto
......
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
Licensed 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. */
// //
// Created by liuRuiLong on 2018/5/4. // Created by liuRuiLong on 2018/5/4.
// //
#include "framework/op_desc.h"
#include "op_desc.h" #include <string>
#include <vector>
namespace paddle_mobile { namespace paddle_mobile {
namespace framework { namespace framework {
...@@ -30,10 +45,6 @@ OpDesc::OpDesc(const proto::OpDesc &desc) : desc_(desc) { ...@@ -30,10 +45,6 @@ OpDesc::OpDesc(const proto::OpDesc &desc) : desc_(desc) {
std::string attr_name = attr.name(); std::string attr_name = attr.name();
if (attr.type() != proto::AttrType::BLOCK) { if (attr.type() != proto::AttrType::BLOCK) {
attrs_[attr_name] = Attribute::GetAttrValue(attr); attrs_[attr_name] = Attribute::GetAttrValue(attr);
// if (attr.type() == proto::AttrType::INT){
// std::cout << " attrName " << attr_name << " " <<
// attrs_[attr_name].Get<int>() << std::endl;
// }
} }
} }
} }
......
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
Licensed 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. */
// //
// Created by liuRuiLong on 2018/5/4. // Created by liuRuiLong on 2018/5/4.
// //
#include "program_desc.h" #include "framework/program_desc.h"
namespace paddle_mobile { namespace paddle_mobile {
namespace framework { namespace framework {
......
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
Licensed 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. */
#include "framework/scope.h"
#include "scope.h"
#include <set> #include <set>
#include <string>
#include <vector> #include <vector>
namespace paddle_mobile { namespace paddle_mobile {
...@@ -16,7 +31,7 @@ Variable *Scope::Var(const std::string &name) { ...@@ -16,7 +31,7 @@ Variable *Scope::Var(const std::string &name) {
auto *pvar = FindVarLocally(name); auto *pvar = FindVarLocally(name);
if (pvar != nullptr) { if (pvar != nullptr) {
return pvar; return pvar;
}; }
pvar = new Variable; pvar = new Variable;
vars_[name] = pvar; vars_[name] = pvar;
pvar->name_ = &(vars_.find(name)->first); pvar->name_ = &(vars_.find(name)->first);
......
...@@ -3,28 +3,25 @@ from __future__ import print_function ...@@ -3,28 +3,25 @@ from __future__ import print_function
from __future__ import unicode_literals from __future__ import unicode_literals
import argparse import argparse
import io, re import io
import sys, os
import subprocess
import platform import platform
import re
import subprocess
COPYRIGHT = ''' COPYRIGHT = '''
Copyright (c) 2016 Baidu, Inc. All Rights Reserved. Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal Licensed under the Apache License, Version 2.0 (the "License");
in the Software without restriction, including without limitation the rights you may not use this file except in compliance with the License.
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell You may obtain a copy of the License at
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions: http://www.apache.org/licenses/LICENSE-2.0
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software. Unless required by applicable law or agreed to in writing, software
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR distributed under the License is distributed on an "AS IS" BASIS,
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE See the License for the specific language governing permissions and
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER limitations under the License.
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
''' '''
LANG_COMMENT_MARK = None LANG_COMMENT_MARK = None
...@@ -46,22 +43,27 @@ else: ...@@ -46,22 +43,27 @@ else:
def generate_copyright(template, lang='C'): def generate_copyright(template, lang='C'):
end_line = ""
if lang == 'Python': if lang == 'Python':
LANG_COMMENT_MARK = '#' lang_coment_mark = '# '
start = lang_coment_mark
blank = " "
else: else:
LANG_COMMENT_MARK = "//" lang_coment_mark = ""
start = "/* "
blank = ""
end_line = " */"
lines = template.split(NEW_LINE_MARK) lines = template.split(NEW_LINE_MARK)
BLANK = " "
ans = LANG_COMMENT_MARK + BLANK + COPYRIGHT_HEADER + NEW_LINE_MARK ans = start + blank + COPYRIGHT_HEADER + NEW_LINE_MARK
for lino, line in enumerate(lines): for lino, line in enumerate(lines):
if lino == 0 or lino == 1 or lino == len(lines) - 1: continue if lino == 0 or lino == 1 or lino == len(lines) - 1:
if len(line) == 0: continue
BLANK = "" if lino == (len(lines) - 2):
ans += lang_coment_mark + blank + line + end_line + NEW_LINE_MARK
else: else:
BLANK = " " ans += lang_coment_mark + blank + line + NEW_LINE_MARK
ans += LANG_COMMENT_MARK + BLANK + line + NEW_LINE_MARK
return ans + "\n" return ans + "\n"
...@@ -78,14 +80,6 @@ def lang_type(filename): ...@@ -78,14 +80,6 @@ def lang_type(filename):
return "C" return "C"
elif filename.endswith(".cpp"): elif filename.endswith(".cpp"):
return "C" return "C"
elif filename.endswith(".cu"):
return "C"
elif filename.endswith(".cuh"):
return "C"
elif filename.endswith(".go"):
return "C"
elif filename.endswith(".proto"):
return "C"
else: else:
print("Unsupported filetype %s", filename) print("Unsupported filetype %s", filename)
exit(0) exit(0)
...@@ -105,9 +99,10 @@ def main(argv=None): ...@@ -105,9 +99,10 @@ def main(argv=None):
fd = io.open(filename, encoding="utf-8") fd = io.open(filename, encoding="utf-8")
first_line = fd.readline() first_line = fd.readline()
second_line = fd.readline() second_line = fd.readline()
if "COPYRIGHT (C)" in first_line.upper(): continue if "COPYRIGHT (C)" in first_line.upper() or "COPYRIGHT (C)" in second_line.upper():
if first_line.startswith("#!") or PYTHON_ENCODE.match( continue
second_line) != None or PYTHON_ENCODE.match(first_line) != None: if first_line.startswith("/*") or first_line.startswith("#!") or PYTHON_ENCODE.match(
second_line) is not None or PYTHON_ENCODE.match(first_line) is not None:
continue continue
original_contents = io.open(filename, encoding="utf-8").read() original_contents = io.open(filename, encoding="utf-8").read()
new_contents = generate_copyright( new_contents = generate_copyright(
...@@ -116,9 +111,14 @@ def main(argv=None): ...@@ -116,9 +111,14 @@ def main(argv=None):
retv = 1 retv = 1
with io.open(filename, 'w') as output_file: with io.open(filename, 'w') as output_file:
output_file.write(new_contents) output_file.write(new_contents)
return retv return retv
def test_generate_copyright():
print(generate_copyright(COPYRIGHT))
if __name__ == '__main__': if __name__ == '__main__':
# test_generate_copyright()
exit(main()) exit(main())
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册