Skip to content

Commit 7c897f3

Browse files
authored
tool: Setup ruff, removing python2 code (#320)
* tool: Setup ruff, removing python2 code
1 parent 40c967c commit 7c897f3

65 files changed

Lines changed: 368 additions & 484 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 0 additions & 21 deletions
This file was deleted.

.pre-commit-config.yaml

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,29 @@ repos:
77
exclude: docs/auto_examples
88
- id: trailing-whitespace
99
exclude: docs/auto_examples
10+
- repo: https://github.com/charliermarsh/ruff-pre-commit
11+
# Ruff version.
12+
rev: 'v0.0.220'
13+
hooks:
14+
- id: ruff
15+
# Respect `exclude` and `extend-exclude` settings.
16+
args: ["--force-exclude"]
1017
- repo: https://github.com/psf/black
1118
rev: 22.10.0
1219
hooks:
1320
- id: black
14-
- repo: https://github.com/asottile/reorder_python_imports
15-
rev: v3.9.0
16-
hooks:
17-
- id: reorder-python-imports
21+
22+
- repo: local
23+
hooks:
24+
- id: mypy
25+
name: Mypy
26+
entry: poetry run mypy statemachine/ tests/
27+
types: [python]
28+
language: system
29+
pass_filenames: false
30+
- id: pytest
31+
name: Pytest
32+
entry: poetry run pytest
33+
types: [python]
34+
language: system
35+
pass_filenames: false

docs/auto_examples/all_actions_machine.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
},
2727
"outputs": [],
2828
"source": [
29-
"from unittest import mock\n\nfrom statemachine import State\nfrom statemachine import StateMachine\n\n\nclass AllActionsMachine(StateMachine):\n\n initial = State(\"Initial\", initial=True)\n final = State(\"Final\", final=True)\n\n go = initial.to(\n final,\n validators=[\"validation_1\", \"validation_2\"],\n cond=[\"condition_1\", \"condition_2\"],\n unless=[\"unless_1\", \"unless_2\"],\n on=[\"on_inline_1\", \"on_inline_2\"],\n before=[\"before_go_inline_1\", \"before_go_inline_2\"],\n after=[\"after_go_inline_1\", \"after_go_inline_2\"],\n )\n\n def __init__(self, *args, **kwargs):\n self.spy = mock.Mock(side_effect=lambda x: x)\n super(AllActionsMachine, self).__init__(*args, **kwargs)\n\n # validators and guards\n\n def validation_1(self):\n # this method may raise an exception\n return self.spy(\"validation_1\")\n\n def validation_2(self):\n # this method may raise an exception\n return self.spy(\"validation_2\")\n\n def condition_1(self):\n self.spy(\"condition_1\")\n return True\n\n def condition_2(self):\n self.spy(\"condition_2\")\n return True\n\n def unless_1(self):\n self.spy(\"unless_1\")\n return False\n\n def unless_2(self):\n self.spy(\"unless_2\")\n return False\n\n # generics state\n\n def on_enter_state(self):\n return self.spy(\"on_enter_state\")\n\n def on_exit_state(self):\n return self.spy(\"on_exit_state\")\n\n # generics transition\n\n def before_transition(self):\n return self.spy(\"before_transition\")\n\n def on_transition(self):\n return self.spy(\"on_transition\")\n\n def after_transition(self):\n return self.spy(\"after_transition\")\n\n # before / after specific\n\n @go.before\n def before_go_decor(self):\n return self.spy(\"before_go_decor\")\n\n def before_go_inline_1(self):\n return self.spy(\"before_go_inline_1\")\n\n def before_go_inline_2(self):\n return self.spy(\"before_go_inline_2\")\n\n def before_go(self):\n return self.spy(\"before_go\")\n\n @go.on\n def go_on_decor(self):\n return self.spy(\"go_on_decor\")\n\n def on_inline_1(self):\n return self.spy(\"on_inline_1\")\n\n def on_inline_2(self):\n return self.spy(\"on_inline_2\")\n\n def on_go(self):\n return self.spy(\"on_go\")\n\n @go.after\n def after_go_decor(self):\n return self.spy(\"after_go_decor\")\n\n def after_go_inline_1(self):\n return self.spy(\"after_go_inline_1\")\n\n def after_go_inline_2(self):\n return self.spy(\"after_go_inline_2\")\n\n def after_go(self):\n return self.spy(\"after_go\")\n\n # enter / exit specific\n\n @initial.enter\n def enter_initial_decor(self):\n return self.spy(\"enter_initial_decor\")\n\n def on_enter_initial(self):\n return self.spy(\"on_enter_initial\")\n\n @initial.exit\n def exit_initial_decor(self):\n return self.spy(\"exit_initial_decor\")\n\n def on_exit_initial(self):\n return self.spy(\"on_exit_initial\")\n\n def on_enter_final(self):\n return self.spy(\"on_enter_final\")\n\n def on_exit_final(self):\n \"hopefully this will not be called\"\n return self.spy(\"on_exit_final\")"
29+
"from unittest import mock\n\nfrom statemachine import State\nfrom statemachine import StateMachine\n\n\nclass AllActionsMachine(StateMachine):\n\n initial = State(\"Initial\", initial=True)\n final = State(\"Final\", final=True)\n\n go = initial.to(\n final,\n validators=[\"validation_1\", \"validation_2\"],\n cond=[\"condition_1\", \"condition_2\"],\n unless=[\"unless_1\", \"unless_2\"],\n on=[\"on_inline_1\", \"on_inline_2\"],\n before=[\"before_go_inline_1\", \"before_go_inline_2\"],\n after=[\"after_go_inline_1\", \"after_go_inline_2\"],\n )\n\n def __init__(self, *args, **kwargs):\n self.spy = mock.Mock(side_effect=lambda x: x)\n super().__init__(*args, **kwargs)\n\n # validators and guards\n\n def validation_1(self):\n # this method may raise an exception\n return self.spy(\"validation_1\")\n\n def validation_2(self):\n # this method may raise an exception\n return self.spy(\"validation_2\")\n\n def condition_1(self):\n self.spy(\"condition_1\")\n return True\n\n def condition_2(self):\n self.spy(\"condition_2\")\n return True\n\n def unless_1(self):\n self.spy(\"unless_1\")\n return False\n\n def unless_2(self):\n self.spy(\"unless_2\")\n return False\n\n # generics state\n\n def on_enter_state(self):\n return self.spy(\"on_enter_state\")\n\n def on_exit_state(self):\n return self.spy(\"on_exit_state\")\n\n # generics transition\n\n def before_transition(self):\n return self.spy(\"before_transition\")\n\n def on_transition(self):\n return self.spy(\"on_transition\")\n\n def after_transition(self):\n return self.spy(\"after_transition\")\n\n # before / after specific\n\n @go.before\n def before_go_decor(self):\n return self.spy(\"before_go_decor\")\n\n def before_go_inline_1(self):\n return self.spy(\"before_go_inline_1\")\n\n def before_go_inline_2(self):\n return self.spy(\"before_go_inline_2\")\n\n def before_go(self):\n return self.spy(\"before_go\")\n\n @go.on\n def go_on_decor(self):\n return self.spy(\"go_on_decor\")\n\n def on_inline_1(self):\n return self.spy(\"on_inline_1\")\n\n def on_inline_2(self):\n return self.spy(\"on_inline_2\")\n\n def on_go(self):\n return self.spy(\"on_go\")\n\n @go.after\n def after_go_decor(self):\n return self.spy(\"after_go_decor\")\n\n def after_go_inline_1(self):\n return self.spy(\"after_go_inline_1\")\n\n def after_go_inline_2(self):\n return self.spy(\"after_go_inline_2\")\n\n def after_go(self):\n return self.spy(\"after_go\")\n\n # enter / exit specific\n\n @initial.enter\n def enter_initial_decor(self):\n return self.spy(\"enter_initial_decor\")\n\n def on_enter_initial(self):\n return self.spy(\"on_enter_initial\")\n\n @initial.exit\n def exit_initial_decor(self):\n return self.spy(\"exit_initial_decor\")\n\n def on_exit_initial(self):\n return self.spy(\"on_exit_initial\")\n\n def on_enter_final(self):\n return self.spy(\"on_enter_final\")\n\n def on_exit_final(self):\n \"hopefully this will not be called\"\n return self.spy(\"on_exit_final\")"
3030
]
3131
},
3232
{
@@ -100,7 +100,7 @@
100100
"name": "python",
101101
"nbconvert_exporter": "python",
102102
"pygments_lexer": "ipython3",
103-
"version": "3.8.1"
103+
"version": "3.11.1"
104104
}
105105
},
106106
"nbformat": 4,

docs/auto_examples/all_actions_machine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class AllActionsMachine(StateMachine):
2828

2929
def __init__(self, *args, **kwargs):
3030
self.spy = mock.Mock(side_effect=lambda x: x)
31-
super(AllActionsMachine, self).__init__(*args, **kwargs)
31+
super().__init__(*args, **kwargs)
3232

3333
# validators and guards
3434

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
bc9e763d829c16d3337524a4db82811a
1+
367d00862fc4336899e7dfdbd0d7a80e

docs/auto_examples/all_actions_machine.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ A StateMachine that exercices all possible :ref:`Actions` and :ref:`Guards`.
5050
5151
def __init__(self, *args, **kwargs):
5252
self.spy = mock.Mock(side_effect=lambda x: x)
53-
super(AllActionsMachine, self).__init__(*args, **kwargs)
53+
super().__init__(*args, **kwargs)
5454
5555
# validators and guards
5656

docs/auto_examples/guess_the_number_machine.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
},
2727
"outputs": [],
2828
"source": [
29-
"import random\n\nfrom statemachine import State\nfrom statemachine import StateMachine\n\n\nclass GuessTheNumberMachine(StateMachine):\n\n start = State(\"Start\", initial=True)\n low = State(\"Low\")\n high = State(\"High\")\n won = State(\"Won\", final=True)\n lose = State(\"Lose\", final=True)\n\n guess = (\n lose.from_(low, high, cond=\"max_guesses_reached\")\n | won.from_(low, high, cond=\"guess_is_equal\")\n | low.from_(low, high, start, cond=\"guess_is_lower\")\n | high.from_(low, high, start, cond=\"guess_is_higher\")\n )\n\n def __init__(self, max_attempts=5, lower=1, higher=5, seed=42):\n self.max_attempts = max_attempts\n self.lower = lower\n self.higher = higher\n self.guesses = 0\n\n # lets play a not so random game, or our tests will be crazy\n random.seed(seed)\n self.number = random.randint(self.lower, self.higher)\n super(GuessTheNumberMachine, self).__init__()\n\n def max_guesses_reached(self):\n return self.guesses >= self.max_attempts\n\n def before_guess(self, number):\n self.guesses += 1\n print(\"You guess is {}...\".format(number))\n\n def guess_is_lower(self, number):\n return number < self.number\n\n def guess_is_higher(self, number):\n return number > self.number\n\n def guess_is_equal(self, number):\n return self.number == number\n\n def on_enter_start(self):\n print(\"(psss.. don't tell anyone the number is {})\".format(self.number))\n print(\n \"I'm thinking of a number between {} and {}. Can you guess what it is?\".format(\n self.lower, self.higher\n )\n )\n\n def on_enter_low(self):\n print(\"Too low. Try again.\")\n\n def on_enter_high(self):\n print(\"Too high. Try again.\")\n\n def on_enter_won(self):\n print(\n \"Congratulations, you guessed the number in {} guesses!\".format(\n self.guesses\n )\n )\n\n def on_enter_lose(self):\n print(\"Oh, no! You've spent all your {} attempts!\".format(self.guesses))"
29+
"import random\n\nfrom statemachine import State\nfrom statemachine import StateMachine\n\n\nclass GuessTheNumberMachine(StateMachine):\n\n start = State(\"Start\", initial=True)\n low = State(\"Low\")\n high = State(\"High\")\n won = State(\"Won\", final=True)\n lose = State(\"Lose\", final=True)\n\n guess = (\n lose.from_(low, high, cond=\"max_guesses_reached\")\n | won.from_(low, high, cond=\"guess_is_equal\")\n | low.from_(low, high, start, cond=\"guess_is_lower\")\n | high.from_(low, high, start, cond=\"guess_is_higher\")\n )\n\n def __init__(self, max_attempts=5, lower=1, higher=5, seed=42):\n self.max_attempts = max_attempts\n self.lower = lower\n self.higher = higher\n self.guesses = 0\n\n # lets play a not so random game, or our tests will be crazy\n random.seed(seed)\n self.number = random.randint(self.lower, self.higher)\n super().__init__()\n\n def max_guesses_reached(self):\n return self.guesses >= self.max_attempts\n\n def before_guess(self, number):\n self.guesses += 1\n print(\"You guess is {}...\".format(number))\n\n def guess_is_lower(self, number):\n return number < self.number\n\n def guess_is_higher(self, number):\n return number > self.number\n\n def guess_is_equal(self, number):\n return self.number == number\n\n def on_enter_start(self):\n print(\"(psss.. don't tell anyone the number is {})\".format(self.number))\n print(\n \"I'm thinking of a number between {} and {}. Can you guess what it is?\".format(\n self.lower, self.higher\n )\n )\n\n def on_enter_low(self):\n print(\"Too low. Try again.\")\n\n def on_enter_high(self):\n print(\"Too high. Try again.\")\n\n def on_enter_won(self):\n print(\n \"Congratulations, you guessed the number in {} guesses!\".format(\n self.guesses\n )\n )\n\n def on_enter_lose(self):\n print(\"Oh, no! You've spent all your {} attempts!\".format(self.guesses))"
3030
]
3131
},
3232
{
@@ -152,7 +152,7 @@
152152
"name": "python",
153153
"nbconvert_exporter": "python",
154154
"pygments_lexer": "ipython3",
155-
"version": "3.8.1"
155+
"version": "3.11.1"
156156
}
157157
},
158158
"nbformat": 4,

docs/auto_examples/guess_the_number_machine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def __init__(self, max_attempts=5, lower=1, higher=5, seed=42):
3737
# lets play a not so random game, or our tests will be crazy
3838
random.seed(seed)
3939
self.number = random.randint(self.lower, self.higher)
40-
super(GuessTheNumberMachine, self).__init__()
40+
super().__init__()
4141

4242
def max_guesses_reached(self):
4343
return self.guesses >= self.max_attempts
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
410f2a4ba51943452eddefeb5dd03d41
1+
5cc32510289a92a9594e06000e1ee8f8

docs/auto_examples/guess_the_number_machine.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Well leave the machine imagine a number and also play the game. Why not?
5959
# lets play a not so random game, or our tests will be crazy
6060
random.seed(seed)
6161
self.number = random.randint(self.lower, self.higher)
62-
super(GuessTheNumberMachine, self).__init__()
62+
super().__init__()
6363
6464
def max_guesses_reached(self):
6565
return self.guesses >= self.max_attempts

0 commit comments

Comments
 (0)