From 90a68ff12c7fef596ce8ec656b5c32567a9940f5 Mon Sep 17 00:00:00 2001 From: Florentin Labelle <florentin.labelle@student-cs.fr> Date: Wed, 12 Oct 2022 14:26:43 +0200 Subject: [PATCH] Correction --- .gitlab-ci.yml | 22 +++++----------------- calculator/expression.py | 5 ++++- calculator/operators.py | 16 ++++++++++++---- calculator/server.py | 6 +++++- 4 files changed, 26 insertions(+), 23 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 278f7bc..58c76a8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,26 +1,14 @@ image: python:3.10 stages: - - dependencies - lint -download_dependencies: - stage: dependencies - before_script: - - python -m venv .venv - - source .venv/bin/activate - script: - - pip install -r requirements.txt - artifacts: - paths: - - .venv - pylint: stage: lint - dependencies: - - download_dependencies - before_script: - - source .venv/bin/activate script: + - python -m venv .venv + - source .venv/bin/activate + - pip install -r requirements.txt # C'est à ton tour de coder un script qui lance pylint sur ton projet - - + - pip install pylint + - pylint calculator --fail-on=warning diff --git a/calculator/expression.py b/calculator/expression.py index 1a27f0c..d796722 100644 --- a/calculator/expression.py +++ b/calculator/expression.py @@ -1,8 +1,9 @@ """ Expression module defines the structure of an expression. """ -from calculator.operators import Operator from typing import Union +from calculator.operators import Operator + Term: type = int Token: type = Union[Operator, Term] @@ -12,6 +13,7 @@ class OperatorExpression: """ OperatorExpression class is an expression that contains an operator and two sub-expressions. """ + def __init__(self, operator: Operator, left, right): self.operator = operator self.left = left @@ -28,6 +30,7 @@ class TermExpression: """ TermExpression class is an expression that contains a single term. """ + def __init__(self, value: Term): self.value = value diff --git a/calculator/operators.py b/calculator/operators.py index f855332..c129287 100644 --- a/calculator/operators.py +++ b/calculator/operators.py @@ -1,14 +1,17 @@ """ Operator module contains the Operator class and a list of standard operators. """ + + class Operator: """ Operator class is a binary operator with a symbol, a precedence and an evaluation function. """ + def __init__(self, symbol, precedence, evaluate_function): - self.symbol = symbol - self.precedence = precedence - self.evaluate_function = evaluate_function + self.symbol = symbol + self.precedence = precedence + self.evaluate_function = evaluate_function def __repr__(self): return self.symbol @@ -17,4 +20,9 @@ class Operator: return self.evaluate_function(left, right) -STANDARD_OPERATORS = { '+': Operator('+', 1, lambda a, b: a + b),'-': Operator('-', 1, lambda a, b: a - b),'*': Operator('×', 2, lambda a, b: a * b),'/': Operator('/', 2, lambda a, b: a / b)} +STANDARD_OPERATORS = { + '+': Operator('+', 1, lambda a, b: a + b), + '-': Operator('-', 1, lambda a, b: a - b), + '*': Operator('×', 2, lambda a, b: a * b), + '/': Operator('/', 2, lambda a, b: a / b) +} diff --git a/calculator/server.py b/calculator/server.py index e0dc49a..feb6402 100644 --- a/calculator/server.py +++ b/calculator/server.py @@ -1,12 +1,16 @@ -from calculator.calculator import Calculator +""" +C'est le module qui s'occupe du web server +""" from fastapi import FastAPI from fastapi.requests import Request from fastapi.templating import Jinja2Templates +from calculator.calculator import Calculator app = FastAPI() templates = Jinja2Templates(directory="calculator/templates") calc = Calculator() + @app.get("/") async def root(request: Request): """ -- GitLab