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:
image:
name: redocly/cli
......@@ -36,6 +43,20 @@ test-frontend:
- cypress/screenshots
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)
# * Title of the documentation page: "Building a Docker image with kaniko"
# * Author: (c) 2011-present GitLab B.V.
......
......@@ -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
## `/portal/`: Main Application
......
......@@ -9,7 +9,7 @@ from flask_sqlalchemy import SQLAlchemy
from .db_config import get_database_uri, get_uri_for_sqlite
db = SQLAlchemy()
db: SQLAlchemy = SQLAlchemy()
from .model import *
......
from flask import Flask
from typing import Any
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
"""
......
from abc import abstractmethod
from typing import Any, List, Optional, Self
from sqlalchemy import Column
from flask import g
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.
......@@ -17,7 +20,7 @@ class Retrievable(db.Model):
__abstract__ = True
@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
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