diff --git a/doc/0.getting_started.md b/doc/0.getting_started.md index e0473c8..695d49c 100644 --- a/doc/0.getting_started.md +++ b/doc/0.getting_started.md @@ -153,6 +153,8 @@ under the `constraints` key. The available constraints are: `null`) from the place identified by the GPS coordinates `LAT` and `LNG` (latitude and longitude), and we call this place `foobar` in human-readable form. Beware that `time` constraints are in **seconds**. + * `minimum_nb_photos` let you filter out posts with less than this number of + photos. You can think of constraints as "a set of criterias to filter out flats". You diff --git a/flatisfy/config.py b/flatisfy/config.py index aa97508..c43e201 100644 --- a/flatisfy/config.py +++ b/flatisfy/config.py @@ -34,7 +34,7 @@ DEFAULT_CONFIG = { "cost": (None, None), # (min, max) in currency unit "rooms": (None, None), # (min, max) "bedrooms": (None, None), # (min, max) - "minimum_photos": None, + "minimum_nb_photos": None, # min number of photos "time_to": {} # Dict mapping names to {"gps": [lat, lng], # "time": (min, max) } # Time is in seconds @@ -139,10 +139,10 @@ def validate_config(config, check_with_data): assert isinstance(constraint["type"], str) assert constraint["type"].upper() in ["RENT", "SALE", "SHARING"] - assert "minimum_photos" in constraint - if constraint["minimum_photos"]: - assert isinstance(constraint["minimum_photos"], int) - assert constraint["minimum_photos"] >= 0 + assert "minimum_nb_photos" in constraint + if constraint["minimum_nb_photos"]: + assert isinstance(constraint["minimum_nb_photos"], int) + assert constraint["minimum_nb_photos"] >= 0 assert "house_types" in constraint assert constraint["house_types"] diff --git a/flatisfy/filters/__init__.py b/flatisfy/filters/__init__.py index 2bbf2f0..5028b96 100644 --- a/flatisfy/filters/__init__.py +++ b/flatisfy/filters/__init__.py @@ -80,7 +80,7 @@ def refine_with_housing_criteria(flats_list, constraint): ) -def refine_with_minimum_photos(flats_list, constraint): +def refine_with_minimum_nb_photos(flats_list, constraint): """ Filter a list of flats according to the minimum number of photos criterion. @@ -99,7 +99,7 @@ def refine_with_minimum_photos(flats_list, constraint): # Check number of pictures has_enough_photos = tools.is_within_interval( flat.get('photos', []), - constraint['minimum_photos'], + constraint['minimum_nb_photos'], None ) if not has_enough_photos: @@ -107,7 +107,7 @@ def refine_with_minimum_photos(flats_list, constraint): "Flat %s only has %d photos, it should have at least %d.", flat["id"], len(flat['photos']), - constraint['minimum_photos'] + constraint['minimum_nb_photos'] ) is_ok[i] = False @@ -203,8 +203,8 @@ def second_pass(flats_list, constraint, config): constraint) # Remove return housing posts which do not have enough photos - flats_list, ignored_list = refine_with_minimum_photos(flats_list, - constraint) + flats_list, ignored_list = refine_with_minimum_nb_photos(flats_list, + constraint) return { "new": flats_list,