]> granicus.if.org Git - esp-idf/commitdiff
Check the Python coding style
authorRoland Dobai <dobai.roland@gmail.com>
Tue, 20 Nov 2018 07:45:22 +0000 (08:45 +0100)
committerRoland Dobai <dobai.roland@gmail.com>
Mon, 26 Nov 2018 14:02:27 +0000 (15:02 +0100)
Closes https://github.com/espressif/esp-idf/pull/2747

.flake8 [new file with mode: 0644]
.gitignore
.gitlab-ci.yml
.travis.yml [new file with mode: 0644]

diff --git a/.flake8 b/.flake8
new file mode 100644 (file)
index 0000000..72a206a
--- /dev/null
+++ b/.flake8
@@ -0,0 +1,164 @@
+[flake8]
+
+ignore =
+    E221, # Multiple spaces before operator
+    E231, # Missing whitespace after ',', ';', or ':'
+    E241, # Multiple spaces after ','
+    FI11, # __future__ import "absolute_import" missing
+    FI12, # __future__ import "with_statement" missing
+    FI14, # __future__ import "unicode_literals" missing
+    FI15, # __future__ import "generator_stop" missing
+    FI16, # __future__ import "nested_scopes" missing
+    FI17, # __future__ import "generators" missing
+    FI50, # __future__ import "division" present
+    FI53, # __future__ import "print_function" present
+    W503, # Line break occurred before a binary operator
+    W504  # Line break occurred after a binary operator
+
+max-line-length = 160
+
+show_source = True
+
+statistics = True
+
+exclude =
+    .git,
+    __pycache__,
+    # submodules
+        components/esptool_py/esptool,
+        components/micro-ecc/micro-ecc,
+        components/nghttp/nghttp2,
+        components/libsodium/libsodium,
+        components/json/cJSON,
+        components/mbedtls/mbedtls,
+        components/expat/expat,
+        components/unity/unity,
+    # temporary list (should be empty)
+        components/app_update/dump_otadata.py,
+        components/app_update/gen_empty_partition.py,
+        components/espcoredump/espcoredump.py,
+        components/espcoredump/test/test_espcoredump.py,
+        components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py,
+        components/partition_table/gen_esp32part.py,
+        components/partition_table/parttool.py,
+        components/partition_table/test_gen_esp32part_host/gen_esp32part_tests.py,
+        components/protocomm/python/constants_pb2.py,
+        components/protocomm/python/sec0_pb2.py,
+        components/protocomm/python/sec1_pb2.py,
+        components/protocomm/python/session_pb2.py,
+        components/ulp/esp32ulp_mapgen.py,
+        components/wifi_provisioning/python/wifi_config_pb2.py,
+        components/wifi_provisioning/python/wifi_constants_pb2.py,
+        docs/conf_common.py,
+        docs/en/conf.py,
+        docs/gen-dxd.py,
+        docs/gen-toolchain-links.py,
+        docs/gen-version-specific-includes.py,
+        docs/link-roles.py,
+        docs/local_util.py,
+        docs/zh_CN/conf.py,
+        examples/peripherals/can/can_alert_and_recovery/example_test.py,
+        examples/peripherals/can/can_network/example_test.py,
+        examples/peripherals/can/can_self_test/example_test.py,
+        examples/peripherals/i2s_adc_dac/tools/generate_audio_file.py,
+        examples/peripherals/sdio/sdio_test.py,
+        examples/protocols/asio/chat_client/asio_chat_client_test.py,
+        examples/protocols/asio/chat_server/asio_chat_server_test.py,
+        examples/protocols/asio/tcp_echo_server/asio_tcp_server_test.py,
+        examples/protocols/asio/udp_echo_server/asio_udp_server_test.py,
+        examples/protocols/esp_http_client/esp_http_client_test.py,
+        examples/protocols/http_server/advanced_tests/http_server_advanced_test.py,
+        examples/protocols/http_server/advanced_tests/scripts/test.py,
+        examples/protocols/http_server/persistent_sockets/http_server_persistence_test.py,
+        examples/protocols/http_server/persistent_sockets/scripts/adder.py,
+        examples/protocols/http_server/simple/http_server_simple_test.py,
+        examples/protocols/http_server/simple/scripts/client.py,
+        examples/protocols/https_request/example_test.py,
+        examples/protocols/mdns/mdns_example_test.py,
+        examples/protocols/mqtt/ssl/mqtt_ssl_example_test.py,
+        examples/protocols/mqtt/tcp/mqtt_tcp_example_test.py,
+        examples/protocols/mqtt/ws/mqtt_ws_example_test.py,
+        examples/protocols/mqtt/wss/mqtt_wss_example_test.py,
+        examples/protocols/sockets/scripts/tcpclient.py,
+        examples/protocols/sockets/scripts/tcpserver.py,
+        examples/protocols/sockets/scripts/udpclient.py,
+        examples/protocols/sockets/scripts/udpserver.py,
+        examples/provisioning/ble_prov/ble_prov_test.py,
+        examples/provisioning/custom_config/components/custom_provisioning/python/custom_config_pb2.py,
+        examples/provisioning/softap_prov/softap_prov_test.py,
+        examples/provisioning/softap_prov/utils/wifi_tools.py,
+        examples/system/cpp_exceptions/example_test.py,
+        examples/system/esp_event/default_event_loop/example_test.py,
+        examples/system/esp_event/user_event_loops/example_test.py,
+        examples/system/esp_timer/example_test.py,
+        examples/system/light_sleep/example_test.py,
+        examples/wifi/iperf/iperf_test.py,
+        examples/wifi/iperf/test_report.py,
+        tools/check_python_dependencies.py,
+        tools/ci/apply_bot_filter.py,
+        tools/cmake/convert_to_cmake.py,
+        tools/esp_app_trace/apptrace_proc.py,
+        tools/esp_app_trace/logtrace_proc.py,
+        tools/esp_app_trace/pylibelf/__init__.py,
+        tools/esp_app_trace/pylibelf/constants/__init__.py,
+        tools/esp_app_trace/pylibelf/iterators/__init__.py,
+        tools/esp_app_trace/pylibelf/macros/__init__.py,
+        tools/esp_app_trace/pylibelf/types/__init__.py,
+        tools/esp_app_trace/pylibelf/util/__init__.py,
+        tools/esp_app_trace/pylibelf/util/syms/__init__.py,
+        tools/esp_prov/esp_prov.py,
+        tools/esp_prov/proto/__init__.py,
+        tools/esp_prov/prov/__init__.py,
+        tools/esp_prov/prov/custom_prov.py,
+        tools/esp_prov/prov/wifi_prov.py,
+        tools/esp_prov/security/__init__.py,
+        tools/esp_prov/security/security.py,
+        tools/esp_prov/security/security0.py,
+        tools/esp_prov/security/security1.py,
+        tools/esp_prov/transport/__init__.py,
+        tools/esp_prov/transport/ble_cli.py,
+        tools/esp_prov/transport/transport.py,
+        tools/esp_prov/transport/transport_ble.py,
+        tools/esp_prov/transport/transport_console.py,
+        tools/esp_prov/transport/transport_softap.py,
+        tools/esp_prov/utils/__init__.py,
+        tools/esp_prov/utils/convenience.py,
+        tools/gen_esp_err_to_name.py,
+        tools/idf.py,
+        tools/idf_monitor.py,
+        tools/idf_size.py,
+        tools/kconfig_new/confgen.py,
+        tools/kconfig_new/confserver.py,
+        tools/kconfig_new/gen_kconfig_doc.py,
+        tools/kconfig_new/kconfiglib.py,
+        tools/kconfig_new/test/test_confserver.py,
+        tools/ldgen/fragments.py,
+        tools/ldgen/generation.py,
+        tools/ldgen/ldgen.py,
+        tools/ldgen/pyparsing.py,
+        tools/ldgen/sdkconfig.py,
+        tools/ldgen/test/test_fragments.py,
+        tools/ldgen/test/test_generation.py,
+        tools/mass_mfg/mfg_gen.py,
+        tools/test_idf_monitor/run_test_idf_monitor.py,
+        tools/test_idf_size/test_idf_size.py,
+        tools/tiny-test-fw/CIAssignExampleTest.py,
+        tools/tiny-test-fw/CIAssignUnitTest.py,
+        tools/tiny-test-fw/DUT.py,
+        tools/tiny-test-fw/EnvConfig.py,
+        tools/tiny-test-fw/IDF/IDFApp.py,
+        tools/tiny-test-fw/IDF/IDFDUT.py,
+        tools/tiny-test-fw/Runner.py,
+        tools/tiny-test-fw/TinyFW.py,
+        tools/tiny-test-fw/Utility/CaseConfig.py,
+        tools/tiny-test-fw/Utility/LineChart.py,
+        tools/tiny-test-fw/Utility/PowerControl.py,
+        tools/tiny-test-fw/Utility/SearchCases.py,
+        tools/tiny-test-fw/Utility/__init__.py,
+        tools/tiny-test-fw/docs/conf.py,
+        tools/tiny-test-fw/example.py,
+        tools/unit-test-app/idf_ext.py,
+        tools/unit-test-app/tools/CreateSectionTable.py,
+        tools/unit-test-app/tools/UnitTestParser.py,
+        tools/unit-test-app/unit_test.py,
+        tools/windows/eclipse_make.py,
index 6982d5fc00916253b63cbf0a5b6ff38ae58e0069..478852216c4e72c90fa473f51814c83fcdaa8f81 100644 (file)
@@ -68,3 +68,6 @@ test_multi_heap_host
 
 # VS Code Settings
 .vscode/
+
+# Results for the checking of the Python coding style
+flake8_output.txt
index a3a8ae42a376a363052f922d632b44efa3b42c92..2141848ca8b18bcad63321b89042e3bc3a332de4 100644 (file)
@@ -722,6 +722,18 @@ check_examples_cmake_make:
   script:
     - tools/ci/check_examples_cmake_make.sh
 
+check_python_style:
+  <<: *check_job_template
+  artifacts:
+    when: on_failure
+    paths:
+      - flake8_output.txt
+    expire_in: 1 week
+  before_script: *do_nothing_before
+  script:
+    # run it only under Python 3 (it is very slow under Python 2)
+    - ${IDF_PATH}/tools/ci/multirun_with_pyenv.sh -p 3.4.8 python -m flake8 --config=$IDF_PATH/.flake8 --output-file=flake8_output.txt --tee --benchmark $IDF_PATH
+
 check_ut_cmake_make:
   stage: check
   image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..74902f9
--- /dev/null
@@ -0,0 +1,7 @@
+language: python
+sudo: false
+python:
+  - "3.4"
+script:
+  - pip install flake8
+  - travis_wait 20 python -m flake8 --config=.flake8 .