From a8dc1243f72cf5d8fbbcb45a4e06beeb1aa995c3 Mon Sep 17 00:00:00 2001
From: Remi Cresson <remi.cresson@irstea.fr>
Date: Fri, 13 May 2022 20:41:33 +0200
Subject: [PATCH] ADD: docstring with variable typing hints

---
 scenes/dates.py      |  1 +
 scenes/deepnets.py   |  1 +
 scenes/download.py   |  1 +
 scenes/indexation.py | 14 +++++++++-----
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/scenes/dates.py b/scenes/dates.py
index 198629e..0e2fe86 100644
--- a/scenes/dates.py
+++ b/scenes/dates.py
@@ -30,6 +30,7 @@ The `get_timestamp` method converts a `datetime.datetime` instance into a number
 ts = get_timestamp(dt)  # 1606780800.0
 ```
 """
+from __future__ import annotations
 import datetime
 
 
diff --git a/scenes/deepnets.py b/scenes/deepnets.py
index aad7cf0..feff7f3 100644
--- a/scenes/deepnets.py
+++ b/scenes/deepnets.py
@@ -20,6 +20,7 @@ sr = scenes.deepnets.sr4rs(s2_image)  # pyotb.core.otbObject
 sr.write("sr.tif")
 ```
 """
+from __future__ import annotations
 import os
 import zipfile
 import pyotb
diff --git a/scenes/download.py b/scenes/download.py
index 4fbcc6f..a3ca571 100644
--- a/scenes/download.py
+++ b/scenes/download.py
@@ -61,6 +61,7 @@ theia.download_in_range(bbox, trange, "/tmp/download/", "LEVEL2A")
 ```
 
 """
+from __future__ import annotations
 import datetime
 import hashlib
 import io
diff --git a/scenes/indexation.py b/scenes/indexation.py
index e8919e5..6f39408 100644
--- a/scenes/indexation.py
+++ b/scenes/indexation.py
@@ -43,14 +43,16 @@ scenes_results = index.find(vec, "01/01/2020" "01/01/2022")
 ```
 
 """
+from __future__ import annotations
 import datetime
 import rtree
+from scenes.core import Scene
 from scenes.dates import get_timestamp, any2datetime, MINDATE, MAXDATE
 from scenes.vector import reproject_ogr_layer, get_bbox_wgs84, ogr_open
-from scenes.spatial import poly_overlap
+from scenes.spatial import poly_overlap, BoundingBox
 
 
-def _bbox(bbox_wgs84, date_min, date_max):
+def _bbox(bbox_wgs84: BoundingBox, date_min: datetime.datetime | str, date_max: datetime.datetime | str) -> tuple:
     """
     Return a bounding box in the domain (lat, lon, time)
 
@@ -71,7 +73,7 @@ class Index:
     """
     Stores an indexation structure for a list of Scenes
     """
-    def __init__(self, scenes_list):
+    def __init__(self, scenes_list: list[Scene]):
         """
         Args:
             scenes_list: list of scenes
@@ -90,7 +92,8 @@ class Index:
             new_bbox = _bbox(bbox_wgs84=scene.bbox_wgs84, date_min=dt_min, date_max=dt_max)
             self.index.insert(scene_idx, new_bbox)
 
-    def find_indices(self, vector_or_bbox, date_min=None, date_max=None):
+    def find_indices(self, vector_or_bbox: str | BoundingBox, date_min: datetime.datetime | str = None,
+                     date_max: datetime.datetime | str = None) -> list[int]:
         """
         Search the intersecting scenes, and return their indices
 
@@ -133,7 +136,8 @@ class Index:
             return filtered_indices
         return results_indices
 
-    def find(self, vector_or_bbox, date_min=None, date_max=None):
+    def find(self, vector_or_bbox: str | BoundingBox, date_min: datetime.datetime | str = None,
+                     date_max: datetime.datetime | str = None) -> list[Scene]:
         """
         Search the intersecting scenes, and return them
 
-- 
GitLab