From 1172b7cb54f53d50dc9eb8c7d3872cf88c861206 Mon Sep 17 00:00:00 2001 From: RustamHadoiev24 Date: Wed, 25 Mar 2026 17:56:51 +0200 Subject: [PATCH 1/3] feat: complete mutable and immutable task --- app/main.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 app/main.py diff --git a/app/main.py b/app/main.py new file mode 100644 index 000000000..3e7a80b02 --- /dev/null +++ b/app/main.py @@ -0,0 +1,32 @@ +lucky_number = 777 +pi = 3.14 +one_is_a_prime_number = False +name = "Richard" +my_favourite_films = [ + "The Shawshank Redemption", + "The Lord of the Rings: The Return of the King", + "Pulp Fiction", + "The Good, the Bad and the Ugly", + "The Matrix", +] +profile_info = ("michel", "michel@gmail.com", "12345678") +marks = { + "John": 4, + "Sergio": 3, +} +collection_of_coins = {1, 2, 25} + +sorted_variables = { + "mutable": [ + my_favourite_films, + marks, + collection_of_coins, + ], + "immutable": [ + lucky_number, + pi, + one_is_a_prime_number, + name, + profile_info, + ], +} From 4a1bbc7c74a4193676cdc720e1662428b3d1677b Mon Sep 17 00:00:00 2001 From: RustamHadoiev24 Date: Wed, 25 Mar 2026 18:09:11 +0200 Subject: [PATCH 2/3] Solution for mutable/immutable task --- app/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/app/main.py b/app/main.py index 3e7a80b02..8ab5a4a4e 100644 --- a/app/main.py +++ b/app/main.py @@ -1,3 +1,4 @@ + lucky_number = 777 pi = 3.14 one_is_a_prime_number = False From d5e2b369ae6740a957d875604ad355cba343e76e Mon Sep 17 00:00:00 2001 From: RustamHadoiev24 Date: Wed, 25 Mar 2026 18:14:03 +0200 Subject: [PATCH 3/3] Save local state before merge --- .flake8 | 7 ++ .github/workflows/test.yml | 28 +++++ .gitignore | 7 ++ README.md | 23 ++++ app/__pycache__/main.cpython-314.pyc | Bin 0 -> 724 bytes new-project | 1 + requirements.txt | 6 ++ tests/__init__.py | 0 tests/__pycache__/__init__.cpython-314.pyc | Bin 0 -> 168 bytes .../test_main.cpython-314-pytest-9.0.2.pyc | Bin 0 -> 12678 bytes tests/test_main.py | 98 ++++++++++++++++++ 11 files changed, 170 insertions(+) create mode 100644 .flake8 create mode 100644 .github/workflows/test.yml create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app/__pycache__/main.cpython-314.pyc create mode 160000 new-project create mode 100644 requirements.txt create mode 100644 tests/__init__.py create mode 100644 tests/__pycache__/__init__.cpython-314.pyc create mode 100644 tests/__pycache__/test_main.cpython-314-pytest-9.0.2.pyc create mode 100644 tests/test_main.py diff --git a/.flake8 b/.flake8 new file mode 100644 index 000000000..d7459204e --- /dev/null +++ b/.flake8 @@ -0,0 +1,7 @@ +[flake8] +inline-quotes = " +ignore = E203, E266, W503, ANN002, ANN003, ANN101, ANN102, ANN401, N807, N818 +max-line-length = 79 +max-complexity = 18 +select = B,C,E,F,W,T4,B9,ANN,Q0,N8,VNE +exclude = venv, tests diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..c67126387 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,28 @@ +name: Test + +on: + pull_request: + branches: + - "master" + +jobs: + test: + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v2 + - name: Set Up Python 3.14 + uses: actions/setup-python@v2 + with: + python-version: "3.14" + + - name: Install pytest and flake8 + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Run flake8 + run: flake8 app/ + - name: Run tests + timeout-minutes: 5 + run: pytest tests/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..ac24bc428 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +.idea/ +.vscode/ +*.iml +.env +.DS_Store +venv/ +.pytest_cache/ diff --git a/README.md b/README.md new file mode 100644 index 000000000..5e09de186 --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Mutable and Immutable + +- Read [the guideline](https://github.com/mate-academy/py-task-guideline/blob/main/README.md) before start +- Implement the task: + +There are 8 variables of different data types in the main module. + +Your task is to create dictionary `sorted_variables` with two keys: +`"mutable"` and `"immutable"`. +Each value should be equal to a list that contains all variables of corresponding type. + +Example with other variables: +```python +a = 123 +b = [] +c = "Hi!" +d = [1, 2] + +sorted_variables = { + "mutable": [b, d], + "immutable": [a, c] +} +``` diff --git a/app/__pycache__/main.cpython-314.pyc b/app/__pycache__/main.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a51074bda824a5de9999f93b7fb2d52dfa127ec1 GIT binary patch literal 724 zcmZut%Wl&^6dk{v)G1c_pnzI}SVfTVeyBpFAXFq?g(>XnTGM!vjOy`N<8dKbWdTxu zg+Jf}_<)L)H7g`m6&tJl0mh+a#a-MvbI-jq_nd39jXF@V0=|>aIsm__%UQUm-~=i# z0T2iPHK9RW=+F>G7r@%4CQMit7BqKEXzds`bYb5FaE5Bafp%a9cHndk=ma3p0zEJS zt81wq7rIwL+aomtfWhT2zu$dZsjY8F2a?_p@kp94*f5dy7Ul!Oq(gIoc4I7Sgr34T zZEL*reu!IJL-a8lqGYcHafE3q2usGDih0F&)MEXXP#BVAkgc|=GQ=Y1$r^;cpQ5ORl4y!Q4C2waUh%Jy;N(-=kTz8-<9O`2e*JE*vr&>bR4||Lxne;Qp1&+df z#7Sjk_7$9{HGq8lY;`*wbxv*V{4@B!#STT8z9*3DbkmV^A5j+NF<#?K>b**3 zwy#oYXqr}>Yfikvs!jA_Y55Q=6plYJk9B)dKLpKk7Wk_Z@26Qmcv6_&0V*w{rcbP6 z7o5Lx2>P{wCAAftgHh(Vb_lhJP_LlF~@{~08C%hkmyrl3+c zx3nZNDJNAoGZ)IjDyW;ASX`1?6jPE~Tv8kpAD@|*SrQ+wS5SG2!zMRBr8Fniu80+A TD#+eq5aSawBO_xGGmr%UyPqnr literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_main.cpython-314-pytest-9.0.2.pyc b/tests/__pycache__/test_main.cpython-314-pytest-9.0.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..04c13b7f7805c12b57f9f199a883f74f00f396dc GIT binary patch literal 12678 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 t2C)r{J<