From 5a913c39476aee7c0b462f068bd63d2d4b7f00cb Mon Sep 17 00:00:00 2001 From: Ankit Patil Date: Mon, 8 May 2023 15:12:53 +0530 Subject: [PATCH 1/5] Add compliant and noncompliant examples of python/notebook-best-practice-violation@v1.0 --- ...ebook_best_practice_violation_compliant.py | 18 +++++++++++++++++ ...ok_best_practice_violation_noncompliant.py | 20 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py create mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py new file mode 100644 index 0000000..ec11fb1 --- /dev/null +++ b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py @@ -0,0 +1,18 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +def __CELL_EDGE__(x): + pass + + +# {fact rule=notebook-best-practice-violation@v1.0 defects=0} +# Compliant: cell is not blank. +__CELL_EDGE__(0) +x = 12 +__CELL_EDGE__(1) +y = 13 +__CELL_EDGE__(2) +sum = x + y +__CELL_EDGE__(3) +print('End of program') +# {/fact} diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py new file mode 100644 index 0000000..12bc518 --- /dev/null +++ b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py @@ -0,0 +1,20 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +def __CELL_EDGE__(x): + pass + + +# {fact rule=notebook-best-practice-violation@v1.0 defects=1} +# Noncompliant: cell is blank. +__CELL_EDGE__(0) + +__CELL_EDGE__(1) +x = 12 +__CELL_EDGE__(2) +y = 13 +__CELL_EDGE__(3) +sum = x + y +__CELL_EDGE__(4) +print('End of program') +# {/fact} From 94a665240461a3a0fd2eeebce4e19de89193fdf1 Mon Sep 17 00:00:00 2001 From: Ankit Patil Date: Tue, 9 May 2023 16:05:46 +0530 Subject: [PATCH 2/5] Improve compliant and noncompliant examples for python/notebook-best-practice-violation@v1.0 --- ...ok_best_practice_violation_compliant.ipynb | 68 +++ ...ebook_best_practice_violation_compliant.py | 18 - ...best_practice_violation_noncompliant.ipynb | 411 ++++++++++++++++++ ...ok_best_practice_violation_noncompliant.py | 20 - 4 files changed, 479 insertions(+), 38 deletions(-) create mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb delete mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py create mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb delete mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb new file mode 100644 index 0000000..58b25ac --- /dev/null +++ b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb @@ -0,0 +1,68 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n", + "#### SPDX-License-Identifier: Apache-2.0" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# {fact rule=notebook-best-practice-violation@v1.0 defects=0}\n", + "# Compliant: cell is not blank. Imports are in place. Cell limit is not exceeding.\n", + "import numpy as np\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "primary = pd.read_csv('attribute-primary-info.csv', sep='\\t')\n", + "primary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\\t')\n", + "alias\n", + "# {/fact}" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py deleted file mode 100644 index ec11fb1..0000000 --- a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.py +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 - -def __CELL_EDGE__(x): - pass - - -# {fact rule=notebook-best-practice-violation@v1.0 defects=0} -# Compliant: cell is not blank. -__CELL_EDGE__(0) -x = 12 -__CELL_EDGE__(1) -y = 13 -__CELL_EDGE__(2) -sum = x + y -__CELL_EDGE__(3) -print('End of program') -# {/fact} diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb new file mode 100644 index 0000000..ec42543 --- /dev/null +++ b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb @@ -0,0 +1,411 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n", + "#### SPDX-License-Identifier: Apache-2.0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# {fact rule=notebook-best-practice-violation@v1.0 defects=1}\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Noncompliant: misplaced imports.\n", + "import pandas as pd\n", + "primary = pd.read_csv('attribute-primary-info.csv', sep='\\t')\n", + "primary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\\t')\n", + "alias" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Noncompliant: blank cells." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Noncompliant: cell limit exceeds.\n", + "print('Hello World!')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Hello World!')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "x = 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "y = 5" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sum = x + y" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "product = x * y" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(sum, product)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('End of program')\n", + "# {/fact}" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py deleted file mode 100644 index 12bc518..0000000 --- a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.py +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -# SPDX-License-Identifier: Apache-2.0 - -def __CELL_EDGE__(x): - pass - - -# {fact rule=notebook-best-practice-violation@v1.0 defects=1} -# Noncompliant: cell is blank. -__CELL_EDGE__(0) - -__CELL_EDGE__(1) -x = 12 -__CELL_EDGE__(2) -y = 13 -__CELL_EDGE__(3) -sum = x + y -__CELL_EDGE__(4) -print('End of program') -# {/fact} From b3890d2aeb55ed601b37e044a5c42aac916018cf Mon Sep 17 00:00:00 2001 From: ankit-amazon <125257518+ankit-amazon@users.noreply.github.com> Date: Tue, 9 May 2023 20:59:15 +0530 Subject: [PATCH 3/5] Update notebook_best_practice_violation_noncompliant.ipynb --- .../notebook_best_practice_violation_noncompliant.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb index ec42543..843d80c 100644 --- a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb +++ b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb @@ -25,7 +25,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Noncompliant: misplaced imports.\n", + "# Noncompliant: imports are not in the first code cell.\n", "import pandas as pd\n", "primary = pd.read_csv('attribute-primary-info.csv', sep='\\t')\n", "primary" @@ -241,7 +241,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Noncompliant: cell limit exceeds.\n", + "# Noncompliant: too many code cells.\n", "print('Hello World!')\n" ] }, From e4b6ee80a2224f124d64bfb69fe3903cbe98de6a Mon Sep 17 00:00:00 2001 From: Ankit Patil Date: Fri, 19 May 2023 15:56:45 +0530 Subject: [PATCH 4/5] Remove ipynb and add py files for python/notebook-best-practice-violation@v1.0 --- .../notebook_best_practice_violation.py | 82 ++++ ...ok_best_practice_violation_compliant.ipynb | 68 --- ...best_practice_violation_noncompliant.ipynb | 411 ------------------ 3 files changed, 82 insertions(+), 479 deletions(-) create mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py delete mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb delete mode 100644 src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py new file mode 100644 index 0000000..68bcad6 --- /dev/null +++ b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py @@ -0,0 +1,82 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# {fact rule=notebook-best-practice-violation@v1.0 defects=1} +# —— Code Cell 1, Execution Count 1 —— # +import numpy as np +# —— Code Cell 2, Execution Count 2 —— # +# Noncompliant: imports are not in the first code cell. +import pandas as pd +primary = pd.read_csv('attribute-primary-info.csv', sep='\t') +primary +# —— Code Cell 3, Execution Count 3 —— # +alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\t') +alias +# —— Code Cell 4, Execution Count 4 —— # +# Noncompliant: blank cells. +# —— Code Cell 5, Execution Count 5 —— # + +# —— Code Cell 6, Execution Count 6 —— # + +# —— Code Cell 7, Execution Count 7 —— # + +# —— Code Cell 8, Execution Count 8 —— # + +# —— Code Cell 9, Execution Count 9 —— # +print('Hello World!') +# —— Code Cell 10, Execution Count 10 —— # +print('Hello World!') +# —— Code Cell 11, Execution Count 11 —— # +print('Hello World!') +# —— Code Cell 12, Execution Count 12 —— # +print('Hello World!') +# —— Code Cell 13, Execution Count 13 —— # +print('Hello World!') +# —— Code Cell 14, Execution Count 14 —— # +print('Hello World!') +# —— Code Cell 15, Execution Count 15 —— # +print('Hello World!') +# —— Code Cell 16, Execution Count 16 —— # +print('Hello World!') +# —— Code Cell 17, Execution Count 17 —— # +print('Hello World!') +# —— Code Cell 18, Execution Count 18 —— # +print('Hello World!') +# —— Code Cell 19, Execution Count 19 —— # +print('Hello World!') +# —— Code Cell 20, Execution Count 20 —— # +print('Hello World!') +# —— Code Cell 21, Execution Count 21 —— # +print('Hello World!') +# —— Code Cell 22, Execution Count 22 —— # +print('Hello World!') +# —— Code Cell 23, Execution Count 23 —— # +print('Hello World!') +# —— Code Cell 24, Execution Count 24 —— # +print('Hello World!') +# —— Code Cell 25, Execution Count 25 —— # +print('Hello World!') +# —— Code Cell 26, Execution Count 26 —— # +print('Hello World!') +# —— Code Cell 27, Execution Count 27 —— # +# Noncompliant: too many code cells. +print('Hello World!') +# —— Code Cell 28, Execution Count 28 —— # +# —— Code Cell 29, Execution Count 29 —— # +# —— Code Cell 30, Execution Count 30 —— # +# {/fact} + + +# {fact rule=notebook-best-practice-violation@v1.0 defects=0} +# —— Code Cell 1, Execution Count 1 —— # +# Compliant: cell is not blank. Imports are in place. +# Cell limit is not exceeding. +import numpy as np +import pandas as pd +# —— Code Cell 2, Execution Count 2 —— # +primary = pd.read_csv('attribute-primary-info.csv', sep='\t') +primary +# —— Code Cell 3, Execution Count 3 —— # +alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\t') +alias +# {/fact} diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb deleted file mode 100644 index 58b25ac..0000000 --- a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_compliant.ipynb +++ /dev/null @@ -1,68 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n", - "#### SPDX-License-Identifier: Apache-2.0" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# {fact rule=notebook-best-practice-violation@v1.0 defects=0}\n", - "# Compliant: cell is not blank. Imports are in place. Cell limit is not exceeding.\n", - "import numpy as np\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "primary = pd.read_csv('attribute-primary-info.csv', sep='\\t')\n", - "primary" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\\t')\n", - "alias\n", - "# {/fact}" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.8" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb deleted file mode 100644 index 843d80c..0000000 --- a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation_noncompliant.ipynb +++ /dev/null @@ -1,411 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n", - "#### SPDX-License-Identifier: Apache-2.0" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# {fact rule=notebook-best-practice-violation@v1.0 defects=1}\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Noncompliant: imports are not in the first code cell.\n", - "import pandas as pd\n", - "primary = pd.read_csv('attribute-primary-info.csv', sep='\\t')\n", - "primary" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\\t')\n", - "alias" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Noncompliant: blank cells." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Noncompliant: too many code cells.\n", - "print('Hello World!')\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('Hello World!')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "x = 2" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "y = 5" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sum = x + y" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "product = x * y" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(sum, product)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print('End of program')\n", - "# {/fact}" - ] - } - ], - "metadata": { - "language_info": { - "name": "python" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} From f9cd3900d7e235c983f4aa18f7b59459af8cf6d2 Mon Sep 17 00:00:00 2001 From: ankit-amazon <125257518+ankit-amazon@users.noreply.github.com> Date: Tue, 23 May 2023 11:00:38 +0530 Subject: [PATCH 5/5] Update notebook_best_practice_violation.py --- .../notebook_best_practice_violation.py | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py index 68bcad6..ac4f201 100644 --- a/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py +++ b/src/python/detectors/notebook_best_practice_violation/notebook_best_practice_violation.py @@ -2,81 +2,81 @@ # SPDX-License-Identifier: Apache-2.0 # {fact rule=notebook-best-practice-violation@v1.0 defects=1} -# —— Code Cell 1, Execution Count 1 —— # +# —— Code Cell 1 —— # import numpy as np -# —— Code Cell 2, Execution Count 2 —— # +# —— Code Cell 2 —— # # Noncompliant: imports are not in the first code cell. import pandas as pd primary = pd.read_csv('attribute-primary-info.csv', sep='\t') primary -# —— Code Cell 3, Execution Count 3 —— # +# —— Code Cell 3 —— # alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\t') alias -# —— Code Cell 4, Execution Count 4 —— # +# —— Code Cell 4 —— # # Noncompliant: blank cells. -# —— Code Cell 5, Execution Count 5 —— # +# —— Code Cell 5 —— # -# —— Code Cell 6, Execution Count 6 —— # +# —— Code Cell 6 —— # -# —— Code Cell 7, Execution Count 7 —— # +# —— Code Cell 7 —— # -# —— Code Cell 8, Execution Count 8 —— # +# —— Code Cell 8 —— # -# —— Code Cell 9, Execution Count 9 —— # +# —— Code Cell 9 —— # print('Hello World!') -# —— Code Cell 10, Execution Count 10 —— # +# —— Code Cell 10 —— # print('Hello World!') -# —— Code Cell 11, Execution Count 11 —— # +# —— Code Cell 11 —— # print('Hello World!') -# —— Code Cell 12, Execution Count 12 —— # +# —— Code Cell 12 —— # print('Hello World!') -# —— Code Cell 13, Execution Count 13 —— # +# —— Code Cell 13 —— # print('Hello World!') -# —— Code Cell 14, Execution Count 14 —— # +# —— Code Cell 14 —— # print('Hello World!') -# —— Code Cell 15, Execution Count 15 —— # +# —— Code Cell 15 —— # print('Hello World!') -# —— Code Cell 16, Execution Count 16 —— # +# —— Code Cell 16 —— # print('Hello World!') -# —— Code Cell 17, Execution Count 17 —— # +# —— Code Cell 17 —— # print('Hello World!') -# —— Code Cell 18, Execution Count 18 —— # +# —— Code Cell 18 —— # print('Hello World!') -# —— Code Cell 19, Execution Count 19 —— # +# —— Code Cell 19 —— # print('Hello World!') -# —— Code Cell 20, Execution Count 20 —— # +# —— Code Cell 20 —— # print('Hello World!') -# —— Code Cell 21, Execution Count 21 —— # +# —— Code Cell 21 —— # print('Hello World!') -# —— Code Cell 22, Execution Count 22 —— # +# —— Code Cell 22 —— # print('Hello World!') -# —— Code Cell 23, Execution Count 23 —— # +# —— Code Cell 23 —— # print('Hello World!') -# —— Code Cell 24, Execution Count 24 —— # +# —— Code Cell 24 —— # print('Hello World!') -# —— Code Cell 25, Execution Count 25 —— # +# —— Code Cell 25 —— # print('Hello World!') -# —— Code Cell 26, Execution Count 26 —— # +# —— Code Cell 26 —— # print('Hello World!') -# —— Code Cell 27, Execution Count 27 —— # +# —— Code Cell 27 —— # # Noncompliant: too many code cells. print('Hello World!') -# —— Code Cell 28, Execution Count 28 —— # -# —— Code Cell 29, Execution Count 29 —— # -# —— Code Cell 30, Execution Count 30 —— # +# —— Code Cell 28 —— # +# —— Code Cell 29 —— # +# —— Code Cell 30 —— # # {/fact} # {fact rule=notebook-best-practice-violation@v1.0 defects=0} -# —— Code Cell 1, Execution Count 1 —— # +# —— Code Cell 1 —— # # Compliant: cell is not blank. Imports are in place. # Cell limit is not exceeding. import numpy as np import pandas as pd -# —— Code Cell 2, Execution Count 2 —— # +# —— Code Cell 2 —— # primary = pd.read_csv('attribute-primary-info.csv', sep='\t') primary -# —— Code Cell 3, Execution Count 3 —— # +# —— Code Cell 3 —— # alias = pd.read_csv('attribute-alias-info-en_US.csv', sep='\t') alias # {/fact}