Skip to content
Snippets Groups Projects
Commit 9dd2ce33 authored by karp's avatar karp
Browse files

Merge branch 'add-mypy-pipeline' into 'master'

Update pipeline to check types and formatting

See merge request !27
parents c02109e4 399679d1
No related branches found
No related tags found
1 merge request!27Update pipeline to check types and formatting
Pipeline #6733 passed with warnings
stages:
- test
- deploy
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
lint-openapi: lint-openapi:
image: image:
name: redocly/cli name: redocly/cli
...@@ -36,6 +43,20 @@ test-frontend: ...@@ -36,6 +43,20 @@ test-frontend:
- cypress/screenshots - cypress/screenshots
expire_in: 1 week expire_in: 1 week
test-python:
image: python:latest
stage: test
cache:
paths:
- .cache/pip
before_script:
- pip install pipenv
- pipenv requirements --dev > requirements.txt
- pip install -r requirements.txt
script:
- black --check $CI_PROJECT_DIR
- mypy .
# This snippet is copied and modified from the GitLab Documentation (as of 2021-01-10, the contents of the script seem to have changed by now) # This snippet is copied and modified from the GitLab Documentation (as of 2021-01-10, the contents of the script seem to have changed by now)
# * Title of the documentation page: "Building a Docker image with kaniko" # * Title of the documentation page: "Building a Docker image with kaniko"
# * Author: (c) 2011-present GitLab B.V. # * Author: (c) 2011-present GitLab B.V.
......
...@@ -94,6 +94,17 @@ Please run `alembic upgrade head` after pulling changes from the repository. ...@@ -94,6 +94,17 @@ Please run `alembic upgrade head` after pulling changes from the repository.
--- ---
## Compliance
### Formatting
We use [black](https://github.com/psf/black) as formatting tool.
Use `black .` to run the formatter.
### Static Type Checking
Run `mypy .` to let [mypy](https://www.mypy-lang.org/) validate the Python types.
## How to move around in this repo ## How to move around in this repo
## `/portal/`: Main Application ## `/portal/`: Main Application
......
...@@ -9,7 +9,7 @@ from flask_sqlalchemy import SQLAlchemy ...@@ -9,7 +9,7 @@ from flask_sqlalchemy import SQLAlchemy
from .db_config import get_database_uri, get_uri_for_sqlite from .db_config import get_database_uri, get_uri_for_sqlite
db = SQLAlchemy() db: SQLAlchemy = SQLAlchemy()
from .model import * from .model import *
......
from flask import Flask from flask import Flask
from typing import Any
from portal import db from portal import db
BaseModel: Any = db.Model
class FlaskConfigEntry(db.Model):
class FlaskConfigEntry(BaseModel):
""" """
A configuration entry for Flask (a key-value pair) as persisted in a database A configuration entry for Flask (a key-value pair) as persisted in a database
""" """
......
from abc import abstractmethod from abc import abstractmethod
from typing import Any, List, Optional, Self from typing import Any, List, Optional, Self
from sqlalchemy import Column
from flask import g from flask import g
from portal import db from portal import db
BaseModel: Any = db.Model
class Retrievable(db.Model):
class Retrievable(BaseModel):
""" """
A type whose instances can be retrieved from the database. A type whose instances can be retrieved from the database.
...@@ -17,7 +20,7 @@ class Retrievable(db.Model): ...@@ -17,7 +20,7 @@ class Retrievable(db.Model):
__abstract__ = True __abstract__ = True
@classmethod @classmethod
def get_canonical_order_column(cls) -> Optional[db.Column]: def get_canonical_order_column(cls) -> Optional[Column]:
""" """
Return the colum by which instances of this type should be canonically ordered Return the colum by which instances of this type should be canonically ordered
when retrieving them all from the database. when retrieving them all from the database.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment