Changement de la casse pour respecter les conventions

tests
Allan Point 3 years ago
parent 0881089a3e
commit d16a8fed0d

@ -1,25 +1,25 @@
#! encode: utf8 #! encode: utf8
class Boat: class Boat:
def __init__(self, boatId, name, sismerId, url, avatar, temperatures, positions): def __init__(self, boat_id, name, sismer_id, url, avatar, temperatures, positions):
self.boatId = boatId self.boat_id = boat_id
self.name = name self.name = name
self.sismerId = sismerId self.sismer_id = sismer_id
self.url = url self.url = url
self.avatar = avatar self.avatar = avatar
self.temperatures = temperatures self.temperatures = temperatures
self.positions = positions self.positions = positions
def __str__(self): def __str__(self):
return f"[{self.name}]\nSISMER ID: {self.sismerId}\nURL: {self.url}\nAvatar: {self.avatar}" return f"[{self.name}({self.boat_id})]\nSISMER ID: {self.sismer_id}\nURL: {self.url}\nAvatar: {self.avatar}"
def getMaxTemp(self): def get_max_temp(self):
return max(self.temperatures) return max(self.temperatures)
def getNothietCoords(self): def get_nothiet_coords(self):
if len(self.positions == 0): if len(self.positions == 0):
raise Exception(f"{self.name} must have coords to compare") raise Exception(f"{self.name} must have coords to compare")
best = slef.positions[0] best = slef.positions[0]
for position in self.positions: for position in self.positions:
if position.isNorthiestThan(best): if position.is_northiest_than(best):
best = position best = position
return best return best

@ -1,35 +0,0 @@
#! encode: utf8
from boat import Boat
from position import Position
from dataLoader import DataLoader
class BoatsLoader(DataLoader):
def __init__(self):
self._url = 'https://localisation.flotteoceanographique.fr/api/v2/vessels'
self.searchBegin = '-01-01T00:00:00.000Z'
self.searchEnd = '-12-31T23:59:59.000Z'
def loadBoats(self, year):
rawData = self.loadFromURL(self._url)
boats = []
for boat in rawData.json():
boatData = self._loadBoatData(boat['id'], year)
tmpBoat = Boat(boat['id'], boat['name'], boat['sismerId'], boat['url'], boat['avatar'], boatData['temp'], boatData['pos'])
boats.append(tmpBoat)
return boats
def _loadBoatData(self, boatId, year):
jsonData = self.loadFromURL(self._url + f"/{boatId}/positions?startDate={year}{self.searchBegin}&endDate={year}{self.searchEnd}").json()
data = {}
data['pos'] = []
data['temp'] = []
for singleData in jsonData:
if len(singleData['data']) == 0:
continue
data['pos'].append(Position(singleData['lat'], singleData['lon']))
if 'airtemp' in singleData['data']:
data['temp'].append(singleData['data']['airtemp'])
return data

@ -3,7 +3,7 @@
import requests import requests
class DataLoader: class DataLoader:
def loadFromURL(self, url): def load_from_url(self, url):
data = requests.get(url) data = requests.get(url)
if(data.status_code != 200): if(data.status_code != 200):
raise Exception(f"Error {data.status_code}") raise Exception(f"Error {data.status_code}")

@ -1,14 +1,14 @@
#! encoding: utf-8 #! encoding: utf-8
from boatsLoader import BoatsLoader from rest_api_boats_loader import RestApiBoatsLoader
from sys import argv from sys import argv
if len(argv) <= 1: if len(argv) <= 1:
raise Exception("You must give the year you want to get") raise Exception("You must give the year you want to get")
year = int(argv[1]) year = int(argv[1])
boatsLoader = BoatsLoader() boats_loader = RestApiBoatsLoader()
for boat in boatsLoader.loadBoats(year): for boat in boats_loader.load_boats(year):
print(boat) print(boat)
print() print()

@ -6,6 +6,6 @@ class Position:
self.longitude = longitude self.longitude = longitude
def __str__(self): def __str__(self):
return f"[{self.latitude}; {self.latitude}] ({self.date})" return f"[{self.latitude}; {self.latitude}]"
def isNorthiestThan(self, position): def is_northiest_than(self, position):
return self.latitude >= position.latitude return self.latitude >= position.latitude

@ -0,0 +1,35 @@
#! encode: utf8
from boat import Boat
from position import Position
from data_loader import DataLoader
class RestApiBoatsLoader(DataLoader):
def __init__(self):
self.url = 'https://localisation.flotteoceanographique.fr/api/v2/vessels'
self.search_begin = '-01-01T00:00:00.000Z'
self.search_end = '-12-31T23:59:59.000Z'
def load_boats(self, year):
raw_data = self.load_from_url(self.url)
boats = []
for boat in raw_data.json():
boat_data = self._load_boat_data(boat['id'], year)
tmp_boat = Boat(boat['id'], boat['name'], boat['sismerId'], boat['url'], boat['avatar'], boat_data['temp'], boat_data['pos'])
boats.append(tmp_boat)
return boats
def _load_boat_data(self, boat_id, year):
json_data = self.load_from_url(self.url + f"/{boat_id}/positions?startDate={year}{self.search_begin}&endDate={year}{self.search_end}").json()
data = {}
data['pos'] = []
data['temp'] = []
for single_data in json_data:
if len(single_data['data']) == 0:
continue
data['pos'].append(Position(single_data['lat'], single_data['lon']))
if 'airtemp' in single_data['data']:
data['temp'].append(single_data['data']['airtemp'])
return data
Loading…
Cancel
Save