Skip to content

Commit

Permalink
Setup Basic CI on GitHub
Browse files Browse the repository at this point in the history
  • Loading branch information
mgeiger committed Dec 20, 2022
1 parent af5d4fc commit 5d35962
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 23 deletions.
7 changes: 3 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python package
name: CI

on:
push:
Expand All @@ -10,8 +10,7 @@ on:
branches: [ $default-branch ]

jobs:
build:

ci-execution:
runs-on: ubuntu-latest
strategy:
fail-fast: false
Expand All @@ -29,7 +28,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install flake8 pytest
python -m pip install flake8 pytest mypy
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Type Checking
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Deploy
on:
pull_request:
branches:
- "main"
jobs:
deploy-package:
runs-on: ubuntu-latest
steps:
- name: Setup
run: echo "Setting System Up"
2 changes: 1 addition & 1 deletion .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Pylint
on: [push]

jobs:
build:
pylint-execution:
runs-on: ubuntu-latest
strategy:
matrix:
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Dur
on:
push:
branches:
- "main"
pull_request:
branches:
- "main"
jobs:
Dur:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Test
run: echo "running tests"
- name: Deploy
run: echo "Deploying"
if: github.head_ref == 'main'
18 changes: 18 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Something
on:
push:
branches:
- "main"
pull_request:
branches:
- "main"
jobs:
Something:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Test
run: echo "running tests"
- name: Deploy
run: echo "Deploying"
if: github.head_ref == 'main'
37 changes: 19 additions & 18 deletions gotime/providers.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import time

import requests
from typing import Optional


class Location:
Expand Down Expand Up @@ -63,7 +64,7 @@ def _request_data(self, start: Location, end: Location):
r = requests.get(url)
self._last_json = r.json()

def _parse_data(self, data: dict = None):
def _parse_data(self, data: Optional[dict] = None):
if data is None:
data = self._last_json

Expand Down Expand Up @@ -103,7 +104,7 @@ def _request_data(self, start: Location, end: Location):
r = requests.get(url)
self._last_json = r.json()

def _parse_data(self, data: dict = None):
def _parse_data(self, data: Optional[dict] = None):
if data is None:
data = self._last_json
resource = data['resourceSets'][0]['resources'][0]
Expand Down Expand Up @@ -151,7 +152,7 @@ def _request_data(self, start: Location, end: Location):
r = requests.get(url)
self._last_json = r.json()

def _parse_data(self, data: dict = None):
def _parse_data(self, data: Optional[dict] = None):
if data is None:
data = self._last_json
legs = data['routes'][0]['legs']
Expand Down Expand Up @@ -197,22 +198,22 @@ def _request_data(self, start: Location, end: Location):
r = requests.get(url)
self._last_json = r.json()

def _parse_data(self, data: dict = None):
def _parse_data(self, data: Optional[dict] = None) -> None:
if data is None:
data = self._last_json
summary = data['response']['route'][0]['summary']
summary = data['response']['route'][0]['summary'] # type: ignore
distance = summary['distance'] / 1000.0
duration = summary['trafficTime']
self._last_result = Result(
provider=self.name,
distance=distance,
duration=duration
)
) # type: ignore

def get_result(self, start: Location, end: Location) -> Result:
self._request_data(start, end)
self._parse_data()
return self._last_result
return self._last_result # type: ignore

def __str__(self):
return f"<{self.__class__.__bases__[0].__name__}> {self.name}: {self.primary[:6]}, {self.secondary[:6]}"
Expand All @@ -237,22 +238,22 @@ def _request_data(self, start: Location, end: Location):
r = requests.get(url)
self._last_json = r.json()

def _parse_data(self, data: dict = None):
def _parse_data(self, data: Optional[dict] = None):
if data is None:
data = self._last_json
route = data['routes'][0]
route = data['routes'][0] # type: ignore
distance = route['distance'] / 1000.0
duration = route['duration']

self._last_result = Result(
provider=self.name,
distance=distance,
duration=duration)
duration=duration) # type: ignore

def get_result(self, start: Location, end: Location) -> Result:
self._request_data(start, end)
self._parse_data()
return self._last_result
return self._last_result # type: ignore

def __str__(self):
return f"<{self.__class__.__bases__[0].__name__}> {self.name}: {self.key[:6]}"
Expand All @@ -278,22 +279,22 @@ def _request_data(self, start: Location, end: Location):
r = requests.get(url)
self._last_json = r.json()

def _parse_data(self, data: dict = None):
def _parse_data(self, data: Optional[dict] = None):
if data is None:
data = self._last_json
route = data['route']
route = data['route'] # type: ignore
distance = route['distance']
duration = route['realTime']
fuel_used = route['fuelUsed']
steps = len(route['legs'][0]['maneuvers'])
self._last_result = Result(provider=self.name, distance=distance,
duration=duration, steps=steps,
fuel_used=fuel_used)
fuel_used=fuel_used) # type: ignore

def get_result(self, start: Location, end: Location) -> Result:
self._request_data(start, end)
self._parse_data()
return self._last_result
return self._last_result # type: ignore

def __str__(self):
return f"<{self.__class__.__bases__[0].__name__}> {self.name}: key={self.key[:6]}"
Expand All @@ -314,16 +315,16 @@ def _request_data(self, start: Location, end: Location):
r = requests.get(url)
self._last_json = r.json()

def _parse_data(self, data: dict = None):
def _parse_data(self, data: Optional[dict] = None):
if data is None:
data = self._last_json
summary = data['routes'][0]['summary']
summary = data['routes'][0]['summary'] # type: ignore
# TODO: What is the storage data units?
duration = summary['travelTimeInSeconds']
distance = summary['lengthInMeters'] / 1000.0
self._last_result = Result(provider=self.name,
distance=distance,
duration=duration)
duration=duration) # type: ignore

def get_result(self, start: Location, end: Location):
self._request_data(start, end)
Expand Down

0 comments on commit 5d35962

Please sign in to comment.