Skip to content

Commit

Permalink
fix ruff errors
Browse files Browse the repository at this point in the history
  • Loading branch information
wang-boyu committed Jan 5, 2024
1 parent dfc2570 commit 110b6c0
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 14 deletions.
11 changes: 8 additions & 3 deletions mesa_geo/geoagent.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,9 @@ def __init__(self, agent_class, model=None, crs=None, agent_kwargs=None):

if agent_kwargs and "unique_id" in agent_kwargs:
agent_kwargs.remove("unique_id")
warnings.warn("Unique_id should not be in the agent_kwargs")
warnings.warn(

Check warning on line 113 in mesa_geo/geoagent.py

View check run for this annotation

Codecov / codecov/patch

mesa_geo/geoagent.py#L113

Added line #L113 was not covered by tests
"Unique_id should not be in the agent_kwargs", UserWarning, stacklevel=2
)

self.agent_class = agent_class
self.model = model
Expand Down Expand Up @@ -219,7 +221,10 @@ def from_file(self, filename, unique_id="index", set_attributes=True):
return agents

def from_GeoJSON(
self, GeoJSON, unique_id="index", set_attributes=True # noqa: N803
self,
GeoJSON, # noqa: N803
unique_id="index",
set_attributes=True,
):
"""
Create agents from a GeoJSON object or string. CRS is set to epsg:4326.
Expand All @@ -230,7 +235,7 @@ def from_GeoJSON(
:param set_attributes: Set agent attributes from GeoDataFrame columns. Default True.
"""

gj = json.loads(GeoJSON) if type(GeoJSON) is str else GeoJSON
gj = json.loads(GeoJSON) if isinstance(GeoJSON, str) else GeoJSON

gdf = gpd.GeoDataFrame.from_features(gj)
# epsg:4326 is the CRS for all GeoJSON: https://datatracker.ietf.org/doc/html/rfc7946#section-4
Expand Down
8 changes: 6 additions & 2 deletions mesa_geo/geospace.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,9 @@ def add_layer(self, layer: ImageLayer | RasterLayer | gpd.GeoDataFrame) -> None:
f"Converting {layer.__class__.__name__} from crs {layer.crs.to_string()} "
f"to the crs of {self.__class__.__name__} - {self.crs.to_string()}. "
"Please check your crs settings if this is unintended, or set `GeoSpace.warn_crs_conversion` "
"to `False` to suppress this warning message."
"to `False` to suppress this warning message.",
UserWarning,
stacklevel=2,
)
layer.to_crs(self.crs, inplace=True)
self._total_bounds = None
Expand All @@ -145,7 +147,9 @@ def _check_agent(self, agent):
f"Converting {agent.__class__.__name__} from crs {agent.crs.to_string()} "
f"to the crs of {self.__class__.__name__} - {self.crs.to_string()}. "
"Please check your crs settings if this is unintended, or set `GeoSpace.warn_crs_conversion` "
"to `False` to suppress this warning message."
"to `False` to suppress this warning message.",
UserWarning,
stacklevel=2,
)
agent.to_crs(self.crs, inplace=True)
else:
Expand Down
2 changes: 1 addition & 1 deletion mesa_geo/raster_layers.py
Original file line number Diff line number Diff line change
Expand Up @@ -694,4 +694,4 @@ def from_file(cls, image_file) -> ImageLayer:
return obj

def __repr__(self) -> str:
return f"{self.__class__.__name__}(crs={self.crs}, total_bounds={self.total_bounds}, values={repr(self.values)})"
return f"{self.__class__.__name__}(crs={self.crs}, total_bounds={self.total_bounds}, values={self.values!r})"

Check warning on line 697 in mesa_geo/raster_layers.py

View check run for this annotation

Codecov / codecov/patch

mesa_geo/raster_layers.py#L697

Added line #L697 was not covered by tests
6 changes: 5 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,11 @@ extend-ignore = [
"PGH004", # Use specific rule codes when using `noqa` TODO
"B905", # `zip()` without an explicit `strict=` parameter
"N802", # Function name should be lowercase
"N999", # Invalid module name
"N999", # Invalid module name. We should revisit this in the future, TODO
"RUF012", # Mutable class attributes should be annotated with `typing.ClassVar` TODO
"S310", # Audit URL open for permitted schemes. Allowing use of `file:` or custom schemes is often unexpected.
"S603", # `subprocess` call: check for execution of untrusted input
"ISC001", # ruff format asks to disable this feature
]
extend-exclude = ["docs", "build"]
# Hardcode to Python 3.8.
Expand Down
14 changes: 7 additions & 7 deletions tests/test_GeoSpace.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def test_add_agents_with_different_crs(self):

def test_remove_agent(self):
self.geo_space.add_agents(self.agents)
agent_to_remove = random.choice(self.agents)
agent_to_remove = random.choice(self.agents) # noqa: S311
self.geo_space.remove_agent(agent_to_remove)
remaining_agent_idx = {agent.unique_id for agent in self.geo_space.agents}

Expand Down Expand Up @@ -121,7 +121,7 @@ def test_add_vector_layer(self):

def test_get_neighbors_within_distance(self):
self.geo_space.add_agents(self.agents)
agent_to_check = random.choice(self.agents)
agent_to_check = random.choice(self.agents) # noqa: S311

neighbors = list(
self.geo_space.get_neighbors_within_distance(
Expand Down Expand Up @@ -175,9 +175,9 @@ def test_get_relation_within(self):
list(self.geo_space.get_relation(self.agents[0], relation="within")), []
)
self.geo_space.add_agents(self.polygon_agent)
within_agent = list(
within_agent = next(
self.geo_space.get_relation(self.agents[0], relation="within")
)[0]
)
self.assertEqual(within_agent.unique_id, self.polygon_agent.unique_id)

def test_get_relation_touches(self):
Expand All @@ -196,9 +196,9 @@ def test_get_relation_touches(self):
1,
)
self.assertEqual(
list(self.geo_space.get_relation(self.polygon_agent, relation="touches"))[
0
].unique_id,
next(
self.geo_space.get_relation(self.polygon_agent, relation="touches")
).unique_id,
self.touching_agent.unique_id,
)

Expand Down

0 comments on commit 110b6c0

Please sign in to comment.