mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Update code to conform to the newer version of pylint available in
ubuntu-22.04, with few exceptions:
- disabled `import-outside-toplevel` for `main()` in
`jerry_client.py`
- disabled `consider-using-with` for the logfile of `TestSuite` in
`test262-harness.py` as using `with` is not practical in that case
Update test262-harness.py to use argparse instead of the now deprecated
optparse
Rename variables in jerry_client_main.py that redefined python builtins
or shadowed variables from an outer scope
Update python files to use f-stirngs
Add minimum python versions (3.6 and 3.8) to the CI jobs: without it the
default python version did not support the `with` statement for
`subprocess.Popen` used in `build.py` on macos, or in some cases f-stirngs
Remove `from __future__` imports that are no-ops in python 3
Remove shebang from non executable files
Re-enable most pylint checkers, except `missing-docstring`
JerryScript-DCO-1.0-Signed-off-by: Máté Tokodi mate.tokodi@szteszoftver.hu
90 lines
2.5 KiB
Python
Executable File
90 lines
2.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
# Copyright JS Foundation and other contributors, http://js.foundation
|
|
#
|
|
# 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.
|
|
|
|
import io
|
|
import os
|
|
import re
|
|
import sys
|
|
import settings
|
|
|
|
LICENSE = re.compile(
|
|
r'((#|//|\*) Copyright .*\n'
|
|
r')+\s?\2\n'
|
|
r'\s?\2 Licensed under the Apache License, Version 2.0 \(the "License"\);\n'
|
|
r'\s?\2 you may not use this file except in compliance with the License.\n'
|
|
r'\s?\2 You may obtain a copy of the License at\n'
|
|
r'\s?\2\n'
|
|
r'\s?\2 http://www.apache.org/licenses/LICENSE-2.0\n'
|
|
r'\s?\2\n'
|
|
r'\s?\2 Unless required by applicable law or agreed to in writing, software\n'
|
|
r'\s?\2 distributed under the License is distributed on an "AS IS" BASIS\n'
|
|
r'\s?\2 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n'
|
|
r'\s?\2 See the License for the specific language governing permissions and\n'
|
|
r'\s?\2 limitations under the License.\n'
|
|
)
|
|
|
|
INCLUDE_DIRS = [
|
|
'cmake',
|
|
'jerry-core',
|
|
'jerry-ext',
|
|
'jerry-math',
|
|
'jerry-main',
|
|
'jerry-port',
|
|
'targets',
|
|
'tests',
|
|
'tools',
|
|
]
|
|
|
|
EXCLUDE_DIRS = [
|
|
'targets/esp8266',
|
|
os.path.relpath(settings.TEST262_TEST_SUITE_DIR, settings.PROJECT_DIR),
|
|
]
|
|
|
|
EXTENSIONS = [
|
|
'.c',
|
|
'.cpp',
|
|
'.h',
|
|
'.S',
|
|
'.js',
|
|
'.py',
|
|
'.sh',
|
|
'.tcl',
|
|
'.cmake',
|
|
]
|
|
|
|
|
|
def main():
|
|
is_ok = True
|
|
|
|
for dname in INCLUDE_DIRS:
|
|
for root, _, files in os.walk(dname):
|
|
if any(root.startswith(exclude) for exclude in EXCLUDE_DIRS):
|
|
continue
|
|
for fname in files:
|
|
if any(fname.endswith(ext) for ext in EXTENSIONS):
|
|
fpath = os.path.join(root, fname)
|
|
with io.open(fpath, 'r', errors='ignore', encoding='utf8') as curr_file:
|
|
if not LICENSE.search(curr_file.read()):
|
|
print(f'{fpath}: incorrect license')
|
|
is_ok = False
|
|
|
|
if not is_ok:
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|