diff --git a/src/edi_energy_scraper/scraper.py b/src/edi_energy_scraper/scraper.py index 2da5086..3ef24ce 100644 --- a/src/edi_energy_scraper/scraper.py +++ b/src/edi_energy_scraper/scraper.py @@ -43,6 +43,13 @@ def __init__( self._session = aiohttp.ClientSession(connector=self.tcp_connector) self._timeout = ClientTimeout(total=30.0) + async def close(self) -> None: + """Properly closes the aiohttp session.""" + if self._session and not self._session.closed: + await self._session.close() + if not self.tcp_connector.closed: + await self.tcp_connector.close() + async def get_documents_overview(self) -> list[Document]: """ download meta information about all available documents @@ -163,5 +170,10 @@ async def get_best_match( downloaded_path.rename(path) return path + def __del__(self) -> None: + """Ensure cleanup when the instance is destroyed.""" + if not self._session.closed: + asyncio.create_task(self.close()) + __all__ = ["EdiEnergyScraper"]