refactor: Implement PR feedback

This commit is contained in:
TrisNol
2023-09-24 13:46:19 +02:00
parent 5a7472cd3c
commit 282d638c11
7 changed files with 20 additions and 32 deletions

View File

@ -10,7 +10,7 @@ class Auditor:
company: str | None company: str | None
def to_dict(self) -> dict: def to_dict(self) -> dict:
"""_summary_. """Transform to dict.
Returns: Returns:
dict: _description_ dict: _description_

View File

@ -206,8 +206,6 @@ class Capital:
@dataclass @dataclass
class Company: class Company:
"""_summary_."""
"""Company dataclass.""" """Company dataclass."""
id: CompanyID id: CompanyID
@ -215,12 +213,12 @@ class Company:
name: str name: str
last_update: str last_update: str
relationships: list[CompanyRelationship] relationships: list[CompanyRelationship]
# yearly_results: Optional[list[FinancialResults]] # yearly_results: list[FinancialResults]] | None
company_type: CompanyTypeEnum | None = None company_type: CompanyTypeEnum | None = None
capital: Capital | None | None = None capital: Capital | None = None
business_purpose: str | None = None business_purpose: str | None = None
founding_date: str | None = None founding_date: str | None = None
def to_dict(self) -> dict: def to_dict(self) -> dict:
"""_summary_.""" """Transform class to dict."""
return asdict(self) return asdict(self)

View File

@ -1,18 +1,16 @@
"""Unternehmensregister Scraping.""" """Unternehmensregister Scraping."""
import glob import glob
import logging
import multiprocessing import multiprocessing
import os import os
from pathlib import Path from pathlib import Path
from loguru import logger
from selenium import webdriver from selenium import webdriver
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import WebDriverWait
from tqdm import tqdm from tqdm import tqdm
logger = logging.getLogger()
def scrape(query: str, download_dir: list[str]) -> None: def scrape(query: str, download_dir: list[str]) -> None:
"""Fetch results from Unternehmensregister for given query. """Fetch results from Unternehmensregister for given query.

View File

@ -9,10 +9,10 @@ from aki_prj23_transparenzregister.utils.mongo.connector import MongoConnector
class CompanyMongoService: class CompanyMongoService:
"""_summary_.""" """Wrapper for MongoDB regarding management of Company documents."""
def __init__(self, connector: MongoConnector): def __init__(self, connector: MongoConnector):
"""_summary_. """Constructor.
Args: Args:
connector (MongoConnector): _description_ connector (MongoConnector): _description_
@ -21,7 +21,7 @@ class CompanyMongoService:
self.lock = Lock() # Create a lock for synchronization self.lock = Lock() # Create a lock for synchronization
def get_all(self) -> list[Company]: def get_all(self) -> list[Company]:
"""_summary_. """Get all Company documents.
Returns: Returns:
list[Company]: List of retrieved companies list[Company]: List of retrieved companies
@ -31,7 +31,7 @@ class CompanyMongoService:
return list(result) return list(result)
def get_by_id(self, id: dict) -> dict | None: def get_by_id(self, id: dict) -> dict | None:
"""_summary_. """Get a Company document by the given id.
Args: Args:
id (CompanyID): CompanyID id (CompanyID): CompanyID
@ -95,7 +95,7 @@ class CompanyMongoService:
return list(self.collection.find({"yearly_results": {"$gt": {}}})) return list(self.collection.find({"yearly_results": {"$gt": {}}}))
def insert(self, company: Company) -> InsertOneResult: def insert(self, company: Company) -> InsertOneResult:
"""_summary_. """Insert a new Company document.
Args: Args:
company (Company): _description_ company (Company): _description_

View File

@ -6,7 +6,7 @@ import pymongo
@dataclass @dataclass
class MongoConnection: class MongoConnection:
"""_summary_.""" """Wrapper for MongoDB connection string."""
hostname: str hostname: str
database: str database: str
@ -36,7 +36,7 @@ class MongoConnector:
"""Wrapper for establishing a connection to a MongoDB instance.""" """Wrapper for establishing a connection to a MongoDB instance."""
def __init__(self, connection: MongoConnection): def __init__(self, connection: MongoConnection):
"""_summary_. """Wrapper for MongoDB collection.
Args: Args:
connection (MongoConnection): Wrapper for connection string connection (MongoConnection): Wrapper for connection string

View File

@ -6,14 +6,10 @@ from aki_prj23_transparenzregister.utils.mongo.connector import MongoConnector
class MongoNewsService: class MongoNewsService:
"""_summary_. """Wrapper for MongoDB regarding News documents."""
Args:
NewsServiceInterface (_type_): _description_
"""
def __init__(self, connector: MongoConnector): def __init__(self, connector: MongoConnector):
"""_summary_. """Constructor.
Args: Args:
connector (MongoConnector): _description_ connector (MongoConnector): _description_
@ -21,7 +17,7 @@ class MongoNewsService:
self.collection = connector.database["news"] self.collection = connector.database["news"]
def get_all(self) -> list[News]: def get_all(self) -> list[News]:
"""_summary_. """Get all News documents.
Returns: Returns:
list[News]: _description_ list[News]: _description_
@ -30,7 +26,7 @@ class MongoNewsService:
return [MongoEntryTransformer.transform_outgoing(elem) for elem in result] return [MongoEntryTransformer.transform_outgoing(elem) for elem in result]
def get_by_id(self, id: str) -> News | None: def get_by_id(self, id: str) -> News | None:
"""_summary_. """Get a News document by the given id.
Args: Args:
id (str): _description_ id (str): _description_
@ -44,7 +40,7 @@ class MongoNewsService:
return None return None
def insert(self, news: News) -> InsertOneResult: def insert(self, news: News) -> InsertOneResult:
"""_summary_. """Insert a new News document.
Args: Args:
news (News): _description_ news (News): _description_
@ -56,11 +52,7 @@ class MongoNewsService:
class MongoEntryTransformer: class MongoEntryTransformer:
"""_summary_. """Transform a dict to News entity and back."""
Returns:
_type_: _description_
"""
@staticmethod @staticmethod
def transform_ingoing(news: News) -> dict: def transform_ingoing(news: News) -> dict:

View File

@ -86,8 +86,8 @@ def test_by_id_result(mock_mongo_connector: Mock, mock_collection: Mock) -> None
"""Test CompanyMongoService get_by_id with result. """Test CompanyMongoService get_by_id with result.
Args: Args:
mock_mongo_connector (Mock): Mocked MongoConnector library mock_mongo_connector (Mock): Mocked MongoConnector library
mock_collection (Mock): Mocked pymongo collection. mock_collection (Mock): Mocked pymongo collection.
""" """
mock_mongo_connector.database = {"companies": mock_collection} mock_mongo_connector.database = {"companies": mock_collection}
service = CompanyMongoService(mock_mongo_connector) service = CompanyMongoService(mock_mongo_connector)