Skip to content

Commit

Permalink
Refactor application_args access to access it from a class scope
Browse files Browse the repository at this point in the history
  • Loading branch information
Grennith committed Jun 25, 2023
1 parent 3e55716 commit 366b6e4
Show file tree
Hide file tree
Showing 45 changed files with 338 additions and 316 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/tox_testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
max-parallel: 5
matrix:
python-version: ["3.8", "3.9", "3.10"]
python-version: ["3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v1
Expand Down
16 changes: 10 additions & 6 deletions mapadroid/data_handler/StandaloneMitmMapperAndStatsHandler.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
import asyncio
from datetime import datetime
from typing import Optional, List, Dict, Union
from typing import Dict, List, Optional, Union

from mapadroid.data_handler.mitm_data.AbstractMitmMapper import AbstractMitmMapper
from mapadroid.data_handler.mitm_data.AbstractMitmMapper import \
AbstractMitmMapper
from mapadroid.data_handler.mitm_data.holder.latest_mitm_data.LatestMitmDataEntry import \
LatestMitmDataEntry
from mapadroid.data_handler.mitm_data.MitmDataHandler import MitmDataHandler
from mapadroid.data_handler.mitm_data.holder.latest_mitm_data.LatestMitmDataEntry import LatestMitmDataEntry
from mapadroid.data_handler.stats.AbstractStatsHandler import AbstractStatsHandler
from mapadroid.data_handler.stats.AbstractStatsHandler import \
AbstractStatsHandler
from mapadroid.data_handler.stats.StatsHandler import StatsHandler
from mapadroid.db.DbWrapper import DbWrapper
from mapadroid.utils.collections import Location
from mapadroid.utils.madGlobals import PositionType, TransportType, MonSeenTypes, application_args
from mapadroid.utils.madGlobals import (MadGlobals, MonSeenTypes, PositionType,
TransportType)
from mapadroid.worker.WorkerType import WorkerType


Expand All @@ -19,7 +23,7 @@ def __init__(self, db_wrapper: DbWrapper):
self.__init_handlers()

def __init_handlers(self):
if application_args.game_stats:
if MadGlobals.application_args.game_stats:
self.__stats_handler: Optional[StatsHandler] = StatsHandler(self.__db_wrapper)
else:
self.__stats_handler: Optional[StatsHandler] = None
Expand Down
12 changes: 6 additions & 6 deletions mapadroid/data_handler/grpc/MitmMapperClientConnector.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
from grpc._cython.cygrpc import CompressionAlgorithm, CompressionLevel

from mapadroid.data_handler.grpc.MitmMapperClient import MitmMapperClient
from mapadroid.utils.logging import get_logger, LoggerEnums
from mapadroid.utils.madGlobals import application_args
from mapadroid.utils.logging import LoggerEnums, get_logger
from mapadroid.utils.madGlobals import MadGlobals

logger = get_logger(LoggerEnums.mitm_mapper)

Expand All @@ -18,12 +18,12 @@ async def start(self):
max_message_length = 100 * 1024 * 1024
options = [('grpc.max_message_length', max_message_length),
('grpc.max_receive_message_length', max_message_length)]
if application_args.mitmmapper_compression:
if MadGlobals.application_args.mitmmapper_compression:
options.extend([('grpc.default_compression_algorithm', CompressionAlgorithm.gzip),
('grpc.grpc.default_compression_level', CompressionLevel.medium)])
address = f'{application_args.mitmmapper_ip}:{application_args.mitmmapper_port}'
address = f'{MadGlobals.application_args.mitmmapper_ip}:{MadGlobals.application_args.mitmmapper_port}'

if application_args.mitmmapper_tls_cert_file:
if MadGlobals.application_args.mitmmapper_tls_cert_file:
await self.__setup_secure_channel(address, options)
else:
await self.__setup_insecure_channel(address, options)
Expand All @@ -33,7 +33,7 @@ async def __setup_insecure_channel(self, address, options):
self._channel = grpc.aio.insecure_channel(address, options=options)

async def __setup_secure_channel(self, address, options):
with open(application_args.mitmmapper_tls_cert_file, 'r') as certfile:
with open(MadGlobals.application_args.mitmmapper_tls_cert_file, 'r') as certfile:
cert = certfile.read()
credentials = grpc.ssl_channel_credentials(cert)
self._channel = grpc.aio.secure_channel(address, credentials=credentials, options=options)
Expand Down
22 changes: 11 additions & 11 deletions mapadroid/data_handler/grpc/MitmMapperServer.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
import asyncio
from typing import Optional, List
from typing import List, Optional

import grpc
from google.protobuf import json_format
from grpc._cython.cygrpc import CompressionAlgorithm, CompressionLevel

from mapadroid.data_handler.mitm_data.MitmMapper import MitmMapper
from mapadroid.data_handler.mitm_data.holder.latest_mitm_data.LatestMitmDataEntry import \
LatestMitmDataEntry
from mapadroid.data_handler.mitm_data.MitmMapper import MitmMapper
from mapadroid.grpc.compiled.mitm_mapper import mitm_mapper_pb2
from mapadroid.grpc.compiled.mitm_mapper.mitm_mapper_pb2 import (
InjectedRequest, InjectionStatus,
GetQuestsHeldResponse, InjectedRequest, InjectionStatus,
LastKnownLocationResponse, LastMoved, LatestMitmDataEntryRequest,
LatestMitmDataEntryResponse, LatestMitmDataEntryUpdateRequest,
LevelResponse, PokestopVisitsResponse,
SetLevelRequest, SetPokestopVisitsRequest, SetQuestsHeldRequest, GetQuestsHeldResponse)
LevelResponse, PokestopVisitsResponse, SetLevelRequest,
SetPokestopVisitsRequest, SetQuestsHeldRequest)
from mapadroid.grpc.compiled.shared.Ack_pb2 import Ack
from mapadroid.grpc.compiled.shared.Worker_pb2 import Worker
from mapadroid.grpc.stubs.mitm_mapper.mitm_mapper_pb2_grpc import (
MitmMapperServicer, add_MitmMapperServicer_to_server)
from mapadroid.utils.collections import Location
from mapadroid.utils.logging import LoggerEnums, get_logger
from mapadroid.utils.madGlobals import (application_args)
from mapadroid.utils.madGlobals import MadGlobals

logger = get_logger(LoggerEnums.mitm_mapper)

Expand All @@ -35,14 +35,14 @@ async def start(self):
max_message_length = 100 * 1024 * 1024
options = [('grpc.max_message_length', max_message_length),
('grpc.max_receive_message_length', max_message_length)]
if application_args.mitmmapper_compression:
if MadGlobals.application_args.mitmmapper_compression:
options.extend([('grpc.default_compression_algorithm', CompressionAlgorithm.gzip),
('grpc.grpc.default_compression_level', CompressionLevel.medium)])
self.__server = grpc.aio.server(options=options)
add_MitmMapperServicer_to_server(self, self.__server)
address = f'{application_args.mitmmapper_ip}:{application_args.mitmmapper_port}'
address = f'{MadGlobals.application_args.mitmmapper_ip}:{MadGlobals.application_args.mitmmapper_port}'

if application_args.mitmmapper_tls_cert_file and application_args.mitmmapper_tls_private_key_file:
if MadGlobals.application_args.mitmmapper_tls_cert_file and MadGlobals.application_args.mitmmapper_tls_private_key_file:
await self.__secure_port(address)
else:
await self.__insecure_port(address)
Expand All @@ -52,8 +52,8 @@ async def start(self):
await self.__server.start()

async def __secure_port(self, address):
with open(application_args.mitmmapper_tls_private_key_file, 'r') as keyfile, open(
application_args.mitmmapper_tls_cert_file, 'r') as certfile:
with open(MadGlobals.application_args.mitmmapper_tls_private_key_file, 'r') as keyfile, open(
MadGlobals.application_args.mitmmapper_tls_cert_file, 'r') as certfile:
private_key = keyfile.read()
certificate_chain = certfile.read()
credentials = grpc.ssl_server_credentials(
Expand Down
12 changes: 6 additions & 6 deletions mapadroid/data_handler/grpc/StatsHandlerClientConnector.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
from grpc._cython.cygrpc import CompressionAlgorithm, CompressionLevel

from mapadroid.data_handler.grpc.StatsHandlerClient import StatsHandlerClient
from mapadroid.utils.logging import get_logger, LoggerEnums
from mapadroid.utils.madGlobals import application_args
from mapadroid.utils.logging import LoggerEnums, get_logger
from mapadroid.utils.madGlobals import MadGlobals

logger = get_logger(LoggerEnums.stats_handler)

Expand All @@ -19,12 +19,12 @@ async def start(self):
options = [('grpc.max_message_length', max_message_length),
('grpc.max_receive_message_length', max_message_length)]
# TODO: add args
if application_args.statshandler_compression:
if MadGlobals.application_args.statshandler_compression:
options.extend([('grpc.default_compression_algorithm', CompressionAlgorithm.gzip),
('grpc.grpc.default_compression_level', CompressionLevel.medium)])
address = f'{application_args.statshandler_ip}:{application_args.statshandler_port}'
address = f'{MadGlobals.application_args.statshandler_ip}:{MadGlobals.application_args.statshandler_port}'

if application_args.statshandler_tls_cert_file:
if MadGlobals.application_args.statshandler_tls_cert_file:
await self.__setup_secure_channel(address, options)
else:
await self.__setup_insecure_channel(address, options)
Expand All @@ -34,7 +34,7 @@ async def __setup_insecure_channel(self, address, options):
self._channel = grpc.aio.insecure_channel(address, options=options)

async def __setup_secure_channel(self, address, options):
with open(application_args.statshandler_tls_cert_file, 'r') as certfile:
with open(MadGlobals.application_args.statshandler_tls_cert_file, 'r') as certfile:
cert = certfile.read()
credentials = grpc.ssl_channel_credentials(cert)
self._channel = grpc.aio.secure_channel(address, credentials=credentials, options=options)
Expand Down
17 changes: 9 additions & 8 deletions mapadroid/data_handler/grpc/StatsHandlerServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
from mapadroid.grpc.compiled.stats_handler.stats_handler_pb2 import Stats
from mapadroid.grpc.stubs.stats_handler.stats_handler_pb2_grpc import (
StatsHandlerServicer, add_StatsHandlerServicer_to_server)
from mapadroid.utils.DatetimeWrapper import DatetimeWrapper
from mapadroid.utils.collections import Location
from mapadroid.utils.DatetimeWrapper import DatetimeWrapper
from mapadroid.utils.logging import LoggerEnums, get_logger
from mapadroid.utils.madGlobals import (MonSeenTypes, PositionType,
TransportType, application_args)
from mapadroid.utils.madGlobals import (MadGlobals, MonSeenTypes, PositionType,
TransportType)
from mapadroid.worker.WorkerType import WorkerType

logger = get_logger(LoggerEnums.stats_handler)
Expand All @@ -29,14 +29,15 @@ async def start(self):
max_message_length = 100 * 1024 * 1024
options = [('grpc.max_message_length', max_message_length),
('grpc.max_receive_message_length', max_message_length)]
if application_args.statshandler_compression:
if MadGlobals.application_args.statshandler_compression:
options.extend([('grpc.default_compression_algorithm', CompressionAlgorithm.gzip),
('grpc.grpc.default_compression_level', CompressionLevel.medium)])
self.__server = grpc.aio.server(options=options)
add_StatsHandlerServicer_to_server(self, self.__server)
address = f'{application_args.statshandler_ip}:{application_args.statshandler_port}'
address = f'{MadGlobals.application_args.statshandler_ip}:{MadGlobals.application_args.statshandler_port}'

if application_args.statshandler_tls_cert_file and application_args.statshandler_tls_private_key_file:
if MadGlobals.application_args.statshandler_tls_cert_file \
and MadGlobals.application_args.statshandler_tls_private_key_file:
await self.__secure_port(address)
else:
await self.__insecure_port(address)
Expand All @@ -46,8 +47,8 @@ async def start(self):
await self.__server.start()

async def __secure_port(self, address):
with open(application_args.statshandler_tls_private_key_file, 'r') as keyfile, open(
application_args.statshandler_tls_cert_file, 'r') as certfile:
with open(MadGlobals.application_args.statshandler_tls_private_key_file, 'r') as keyfile, open(
MadGlobals.application_args.statshandler_tls_cert_file, 'r') as certfile:
private_key = keyfile.read()
certificate_chain = certfile.read()
credentials = grpc.ssl_server_credentials(
Expand Down
21 changes: 13 additions & 8 deletions mapadroid/data_handler/stats/PlayerStats.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,19 @@

from sqlalchemy.ext.asyncio import AsyncSession

from mapadroid.data_handler.stats.holder.AbstractStatsHolder import AbstractStatsHolder
from mapadroid.data_handler.stats.holder.stats_detect.StatsDetectHolder import StatsDetectHolder
from mapadroid.data_handler.stats.holder.stats_location.StatsLocationHolder import StatsLocationHolder
from mapadroid.data_handler.stats.holder.stats_location_raw.StatsLocationRawHolder import StatsLocationRawHolder
from mapadroid.data_handler.stats.holder.wild_mon_stats.WildMonStatsHolder import WildMonStatsHolder
from mapadroid.data_handler.stats.holder.AbstractStatsHolder import \
AbstractStatsHolder
from mapadroid.data_handler.stats.holder.stats_detect.StatsDetectHolder import \
StatsDetectHolder
from mapadroid.data_handler.stats.holder.stats_location.StatsLocationHolder import \
StatsLocationHolder
from mapadroid.data_handler.stats.holder.stats_location_raw.StatsLocationRawHolder import \
StatsLocationRawHolder
from mapadroid.data_handler.stats.holder.wild_mon_stats.WildMonStatsHolder import \
WildMonStatsHolder
from mapadroid.utils.collections import Location
from mapadroid.utils.logging import LoggerEnums, get_logger
from mapadroid.utils.madGlobals import PositionType, TransportType, application_args
from mapadroid.utils.madGlobals import MadGlobals, PositionType, TransportType
from mapadroid.worker.WorkerType import WorkerType

logger = get_logger(LoggerEnums.stats_handler)
Expand All @@ -26,15 +31,15 @@ def __init__(self, origin: str):
def __init_holders(self):
self._stats_detect_holder: StatsDetectHolder = StatsDetectHolder(self._worker)
self._stats_location_holder: StatsLocationHolder = StatsLocationHolder(self._worker)
if application_args.game_stats_raw:
if MadGlobals.application_args.game_stats_raw:
self._wild_mon_stats_holder: WildMonStatsHolder = WildMonStatsHolder(self._worker)
self._stats_location_raw_holder: StatsLocationRawHolder = StatsLocationRawHolder(self._worker)

async def submit(self, session: AsyncSession) -> None:
holders_to_submit: List[AbstractStatsHolder] = [self._stats_detect_holder, self._stats_location_holder]
if self._wild_mon_stats_holder:
holders_to_submit.append(self._wild_mon_stats_holder)
if application_args.game_stats_raw:
if MadGlobals.application_args.game_stats_raw:
holders_to_submit.append(self._stats_location_raw_holder)
del self._stats_location_holder
del self._stats_detect_holder
Expand Down
28 changes: 17 additions & 11 deletions mapadroid/data_handler/stats/StatsHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,25 @@

from sqlalchemy.ext.asyncio import AsyncSession

from mapadroid.data_handler.stats.AbstractStatsHandler import AbstractStatsHandler
from mapadroid.data_handler.stats.AbstractStatsHandler import \
AbstractStatsHandler
from mapadroid.data_handler.stats.holder.AbstractStatsHolder import \
AbstractStatsHolder
from mapadroid.data_handler.stats.holder.stats_detect_seen.StatsDetectSeenTypeHolder import \
StatsDetectSeenTypeHolder
from mapadroid.data_handler.stats.PlayerStats import PlayerStats
from mapadroid.data_handler.stats.holder.AbstractStatsHolder import AbstractStatsHolder
from mapadroid.data_handler.stats.holder.stats_detect_seen.StatsDetectSeenTypeHolder import StatsDetectSeenTypeHolder
from mapadroid.db.DbWrapper import DbWrapper
from mapadroid.db.helper.TrsStatsDetectHelper import TrsStatsDetectHelper
from mapadroid.db.helper.TrsStatsDetectWildMonRawHelper import TrsStatsDetectWildMonRawHelper
from mapadroid.db.helper.TrsStatsDetectWildMonRawHelper import \
TrsStatsDetectWildMonRawHelper
from mapadroid.db.helper.TrsStatsLocationHelper import TrsStatsLocationHelper
from mapadroid.db.helper.TrsStatsLocationRawHelper import TrsStatsLocationRawHelper
from mapadroid.utils.DatetimeWrapper import DatetimeWrapper
from mapadroid.db.helper.TrsStatsLocationRawHelper import \
TrsStatsLocationRawHelper
from mapadroid.utils.collections import Location
from mapadroid.utils.logging import get_logger, LoggerEnums
from mapadroid.utils.madGlobals import TransportType, PositionType, MonSeenTypes, application_args
from mapadroid.utils.DatetimeWrapper import DatetimeWrapper
from mapadroid.utils.logging import LoggerEnums, get_logger
from mapadroid.utils.madGlobals import (MadGlobals, MonSeenTypes, PositionType,
TransportType)
from mapadroid.worker.WorkerType import WorkerType

logger = get_logger(LoggerEnums.stats_handler)
Expand Down Expand Up @@ -49,7 +55,7 @@ async def stop(self):

def __init_stats_holders(self) -> None:
self.__worker_stats: Dict[str, PlayerStats] = {}
if application_args.game_stats_mon_seen:
if MadGlobals.application_args.game_stats_mon_seen:
self.__stats_detect_seen_type_holder: Optional[StatsDetectSeenTypeHolder] = StatsDetectSeenTypeHolder()

def __ensure_player_stat(self, worker: str) -> PlayerStats:
Expand Down Expand Up @@ -94,7 +100,7 @@ async def stats_collect_seen_type(self, encounter_ids: List[int], type_of_detect
self.__stats_detect_seen_type_holder.add(encounter_id, type_of_detection, time_of_scan)

async def __stats_submission_loop(self):
repetition_duration: int = application_args.game_stats_save_time if application_args.game_stats_save_time > 15 else 300
repetition_duration: int = MadGlobals.application_args.game_stats_save_time if MadGlobals.application_args.game_stats_save_time > 15 else 300
while True:
await asyncio.sleep(repetition_duration)
await self.__run_stats_processing()
Expand Down Expand Up @@ -129,6 +135,6 @@ async def __cleanup_stats(self, session: AsyncSession) -> None:
# TODO: Cleanup seen stuff...
await TrsStatsDetectHelper.cleanup(session, delete_before_timestamp)
await TrsStatsDetectWildMonRawHelper.cleanup(session, DatetimeWrapper.fromtimestamp(delete_before_timestamp),
raw_delete_shiny_days=int(application_args.raw_delete_shiny))
raw_delete_shiny_days=int(MadGlobals.application_args.raw_delete_shiny))
await TrsStatsLocationHelper.cleanup(session, delete_before_timestamp)
await TrsStatsLocationRawHelper.cleanup(session, delete_before_timestamp)
Loading

0 comments on commit 366b6e4

Please sign in to comment.