Skip to content

Commit 302bbcd

Browse files
author
Maxime Vergez
committed
chore: docstrings, comment & removed useless code
1 parent 87b9ff6 commit 302bbcd

File tree

3 files changed

+77
-39
lines changed

3 files changed

+77
-39
lines changed

atlas/atlasAPI.py

+13-5
Original file line numberDiff line numberDiff line change
@@ -37,26 +37,32 @@ def searchCommuneAPI():
3737

3838
@api.route("/area", methods=["GET"])
3939
def search_area():
40+
"""
41+
Enables to filter areas on their name or code
42+
"""
4043
session = utils.loadSession()
4144
search = request.args.get("search")
4245
type_code = request.args.get("type")
4346
limit = request.args.get("limit", 50)
4447
results = vmAreasRepository.search_area_by_type(session=session,
4548
search=search,
46-
type_code=type_code,
49+
type_code=type_code,
4750
filter_area_codes=current_app.config['AREAS_LIST'],
48-
limit=limit)
51+
limit=limit)
4952
session.close()
5053
return jsonify(results)
5154

5255

5356
@api.route("/area/geom", methods=["GET"])
5457
def get_areas_geom():
58+
"""
59+
Returns the geometries of areas
60+
"""
5561
session = utils.loadSession()
5662
limit = request.args.get("limit", 50)
57-
results = vmAreasRepository.get_areas_geometries(session=session,
58-
filter_area_codes=current_app.config['AREAS_LIST'],
59-
limit=limit)
63+
results = vmAreasRepository.get_areas_geometries(session=session,
64+
filter_area_codes=current_app.config['AREAS_LIST'],
65+
limit=limit)
6066
session.close()
6167
return jsonify(results)
6268

@@ -135,6 +141,7 @@ def getObservationsGenericApi(cd_ref: int):
135141
@api.route("/observations/<area_code>/<int:cd_ref>", methods=["GET"])
136142
def getObservationsCommuneTaxonAPI(area_code, cd_ref):
137143
session = utils.loadSession()
144+
# Use generic area function to get every type of area
138145
observations = vmAreasRepository.get_areas_observations_by_cd_ref(
139146
session, area_code, cd_ref
140147
)
@@ -145,6 +152,7 @@ def getObservationsCommuneTaxonAPI(area_code, cd_ref):
145152
@api.route("/observationsMaille/<area_code>/<int:cd_ref>", methods=["GET"])
146153
def getObservationsCommuneTaxonMailleAPI(area_code, cd_ref):
147154
session = utils.loadSession()
155+
# Use generic area function to get every type of area
148156
observations = vmAreasRepository.get_areas_grid_observations_by_cd_ref(
149157
session, area_code, cd_ref
150158
)

atlas/atlasRoutes.py

+3
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,9 @@ def ficheCommune(insee):
359359

360360
@main.route("/area/<id_area>", methods=["GET", "POST"])
361361
def area_sheet(id_area):
362+
"""
363+
Generates the AreaSheet html
364+
"""
362365
session = utils.loadSession()
363366

364367
listTaxons = vmAreasRepository.get_area_taxa(session, id_area=id_area)

atlas/modeles/repositories/vmAreasRepository.py

+61-34
Original file line numberDiff line numberDiff line change
@@ -22,36 +22,10 @@
2222
from atlas.modeles.entities.vmTaxref import VmTaxref
2323

2424

25-
def area_types(session):
26-
query = session.query(
27-
VmBibAreasTypes.id_type,
28-
VmBibAreasTypes.type_code,
29-
VmBibAreasTypes.type_name,
30-
VmBibAreasTypes.type_desc,
31-
)
32-
return [q._asdict() for q in query.all()]
33-
34-
35-
def get_id_area(session, type_code, area_code):
36-
try:
37-
query = (
38-
session.query(VmAreas.id_area)
39-
.join(VmBibAreasTypes, VmBibAreasTypes.id_type == VmAreas.id_type)
40-
.filter(
41-
and_(
42-
VmAreas.area_code.ilike(area_code),
43-
VmBibAreasTypes.type_code.ilike(type_code),
44-
)
45-
)
46-
)
47-
current_app.logger.debug("<get_id_area> query: {}".format(query))
48-
result = query.one()
49-
return result.id_area
50-
except Exception as e:
51-
current_app.logger.error("<get_id_area> error {}".format(e))
52-
53-
5425
def get_area_from_id(session, id_area):
26+
"""
27+
Get area info from an id
28+
"""
5529
query = (
5630
session.query(
5731
VmAreas.id_area,
@@ -73,13 +47,11 @@ def get_area_from_id(session, id_area):
7347

7448

7549
def last_observations_area_maille(session, myLimit, idArea):
50+
"""
51+
Gets the last observations for a specific area
52+
"""
7653
q_last_obs = (
7754
session.query(
78-
# VmObservations.cd_ref.label("cd_ref"),
79-
# VmObservations.dateobs.label("dateobs"),
80-
# VmTaxons.lb_nom.label("lb_nom"),
81-
# VmTaxons.nom_vern.label("nom_vern"),
82-
# VmObservations.the_geom_point.label("the_geom_point"),
8355
VmObservations.cd_ref,
8456
VmObservations.dateobs,
8557
VmTaxons.lb_nom,
@@ -171,6 +143,15 @@ def get_observers_area(session, id_area):
171143

172144

173145
def search_area_by_type(session, search=None, type_code=None, filter_area_codes=[], limit=50):
146+
"""
147+
Filter out the areas by the provided params:
148+
149+
Args:
150+
session: the db session
151+
search (str): to be able to filter against the name and the area_code
152+
filter_area_codes (list): to exclude area codes
153+
limit (int): restricts the number of objects returns
154+
"""
174155
query = (
175156
session.query(
176157
VmAreas.id_area,
@@ -201,6 +182,18 @@ def search_area_by_type(session, search=None, type_code=None, filter_area_codes=
201182

202183

203184
def get_areas_geometries(session, type_code=None, filter_area_codes=[], limit=50):
185+
"""
186+
Returns a Feature collection of all the areas
187+
188+
Args:
189+
session: the db session
190+
type_code (str): filter out by a type_code
191+
filter_area_codes (list): ignores the codes provided in this list
192+
limit (int): restricts the number of objects returns
193+
194+
Returns:
195+
FeatureCollection: the geometries as geosjon
196+
"""
204197
query = (
205198
session.query(
206199
VmAreas.area_name,
@@ -236,6 +229,10 @@ def get_areas_geometries(session, type_code=None, filter_area_codes=[], limit=50
236229

237230

238231
def get_areas_observations(session, limit, id_area):
232+
"""
233+
For a provided area_code and cd_ref, computes the observations in
234+
this area
235+
"""
239236
query = (
240237
session.query(
241238
VmObservations.id_observation,
@@ -265,6 +262,10 @@ def get_areas_observations(session, limit, id_area):
265262

266263

267264
def get_areas_observations_by_cd_ref(session, area_code, cd_ref):
265+
"""
266+
For a provided area_code and cd_ref, computes grid observations in
267+
this area
268+
"""
268269
req = (
269270
session.query(
270271
VmObservations.id_observation,
@@ -294,6 +295,10 @@ def get_areas_observations_by_cd_ref(session, area_code, cd_ref):
294295

295296

296297
def get_areas_grid_observations_by_cd_ref(session, area_code, cd_ref):
298+
"""
299+
For a provided area_code and cd_ref, computes the observations in
300+
this area
301+
"""
297302
query = (
298303
session.query(
299304
TGrid.id_maille,
@@ -325,6 +330,13 @@ def get_areas_grid_observations_by_cd_ref(session, area_code, cd_ref):
325330

326331

327332
def get_area_taxa(session, id_area):
333+
"""
334+
Returns the list of taxa observed in the area defined by id_area
335+
336+
Args:
337+
session: the db session
338+
id_area (int): the id of the area
339+
"""
328340
query = (
329341
session.query(
330342
VmTaxons.cd_ref,
@@ -378,6 +390,13 @@ def get_area_taxa(session, id_area):
378390

379391

380392
def get_surrounding_areas(session, id_area):
393+
"""
394+
Returns the areas around the given id_area
395+
396+
Args:
397+
session: the db session
398+
id_area (int): the id of the area
399+
"""
381400
subquery = (
382401
session.query(VmAreas.the_geom).filter(VmAreas.id_area == id_area).subquery()
383402
)
@@ -398,8 +417,16 @@ def get_surrounding_areas(session, id_area):
398417

399418

400419
def stats(session, type_codes):
420+
"""
421+
Return the total number of area for each type_code provided
422+
423+
Args:
424+
session: the db session
425+
type_codes (list): list of strings of each type code
426+
"""
401427
sums = []
402428
for type_code in type_codes:
429+
# Use a case to be able to select a sum of each type
403430
sums.append(func.sum(case((VmBibAreasTypes.type_code == type_code, 1), else_=0)).label(type_code))
404431

405432
query = (

0 commit comments

Comments
 (0)