loganalyzer package

Submodules

loganalyzer.filters module

loganalyzer.filters.create_date_filter(target_date_str: str) callable[source]

Create date filter for reports manager.

loganalyzer.filters.create_user_agent_filter(target_user_agent: str) callable[source]

Create date filter for reports manager.

loganalyzer.filters.validate_date(date_string)[source]

Validate date string.

loganalyzer.reader module

loganalyzer.reader.load_json_data(filename: str)[source]

Load json data by filename.

loganalyzer.reader.load_log_data(filename: str)[source]

Load log data by filename.

loganalyzer.reports module

class loganalyzer.reports.AverageTimeReport[source]

Bases: ReportStrategy

Report strategy ‘average time’.

_abc_impl = <_abc._abc_data object>
generate_report(data: list[dict[str, any]]) list[dict[str, any]][source]

Generate data report by average time strategy.

class loganalyzer.reports.ReportManager(report_strategy: ReportStrategy, data: list[dict[str, any]], filters: list[Callable[[dict], bool]] | None = None)[source]

Bases: object

A Report Manager class.

__init__(report_strategy: ReportStrategy, data: list[dict[str, any]], filters: list[Callable[[dict], bool]] | None = None) None[source]

Initialize a report manager.

Parameters:
  • report_strategy (ReportStrategy) – report strategy class.

  • data (list[dict[str, any]]) – data dictionary

  • filters (list[Callable[[dict], bool]] | None) – simple filters for data.

_filter_data() list[dict[str, any]][source]

Filter data.

Returns:

filtered data

Return type:

dict[str, any]

property data

Property for get data.

generate()[source]

Generate report.

set_data(new_data: dict)[source]

Set new data dict.

class loganalyzer.reports.ReportStrategy[source]

Bases: ABC

Report strategy class.

_abc_impl = <_abc._abc_data object>
abstractmethod generate_report(data: list[dict[str, any]]) list[dict[str, any]][source]

Generate data with used strategy.

Parameters:

data (list[dict[str, any]]) – data.

Returns:

list[dict[str, any]]

class loganalyzer.reports.UserAgentReport[source]

Bases: ReportStrategy

Report strategy ‘user agent’.

_abc_impl = <_abc._abc_data object>
generate_report(data: list[dict[str, any]]) list[dict[str, any]][source]

Generate data report by user agent.

Module contents

loganalyzer.main()[source]

Main CLI App.