Skip to content

Commit bf70149

Browse files
committed
help
1 parent 186067a commit bf70149

File tree

2 files changed

+57
-25
lines changed

2 files changed

+57
-25
lines changed

main.py

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
#!/usr/bin/env python3
2-
import os
32

4-
import uvloop
3+
# should be called before everything else
4+
def init_uvloop():
5+
import uvloop
6+
uvloop.install()
57

6-
uvloop.install()
8+
init_uvloop()
79

10+
import os
811
from proxy_py import settings
912
from processor import Processor
1013
from server.proxy_provider_server import ProxyProviderServer
1114
from statistics import statistics
1215
from checkers.base_checker import BaseChecker
1316
from tools import test_collector
14-
1517
import materialized_view_updater
1618
import asyncio
1719
import logging
@@ -20,7 +22,6 @@
2022
import sys
2123

2224

23-
2425
test_collector_path = None
2526
main_logger = None
2627

@@ -37,11 +38,13 @@ def str_to_bool(value):
3738
raise argparse.ArgumentTypeError("Boolean value expected.")
3839

3940
cmd_parser = argparse.ArgumentParser()
40-
cmd_parser.add_argument("--debug", type=str_to_bool, help="override settings' debug value")
41+
cmd_parser.add_argument("--debug", type=str_to_bool,
42+
help="override settings' debug value")
43+
cmd_parser.add_argument(
44+
"--proxy-checking-timeout", type=float, help="override settings' proxy checking timeout"
45+
)
4146
cmd_parser.add_argument(
42-
"--proxy-checking-timeout", type=float, help="override settings' proxy checking timeout"
43-
)
44-
cmd_parser.add_argument("--test-collector", help="test collector with a given path")
47+
"--test-collector", help="test collector with a given path")
4548

4649
args = cmd_parser.parse_args()
4750

@@ -64,10 +67,10 @@ def prepare_loggers():
6467
asyncio_logger_file_handler = logging.FileHandler("logs/asyncio.log")
6568
asyncio_logger_file_handler.setLevel(logging.DEBUG)
6669
asyncio_logger_file_handler.setFormatter(
67-
logging.Formatter(
68-
"%(levelname)s ~ %(asctime)s ~ %(funcName)30s() - %(message)s"
69-
)
70-
)
70+
logging.Formatter(
71+
"%(levelname)s ~ %(asctime)s ~ %(funcName)30s() - %(message)s"
72+
)
73+
)
7174
asyncio_logger.addHandler(asyncio_logger_file_handler)
7275

7376
if settings.DEBUG:
@@ -85,10 +88,10 @@ def prepare_loggers():
8588
logger_file_handler = logging.FileHandler("logs/main.log")
8689
logger_file_handler.setLevel(logging.DEBUG)
8790
logger_file_handler.setFormatter(
88-
logging.Formatter(
89-
"%(levelname)s ~ %(asctime)s ~ %(funcName)30s() ~ %(message)s"
90-
)
91-
)
91+
logging.Formatter(
92+
"%(levelname)s ~ %(asctime)s ~ %(funcName)30s() ~ %(message)s"
93+
)
94+
)
9295

9396
main_logger.addHandler(logger_file_handler)
9497

@@ -108,7 +111,7 @@ async def core():
108111
proxy_processor.worker(),
109112
statistics.worker(),
110113
materialized_view_updater.worker(),
111-
])
114+
])
112115
BaseChecker.clean()
113116
return code
114117
except KeyboardInterrupt:
@@ -123,13 +126,29 @@ async def core():
123126

124127
def server():
125128
proxy_provider_server = ProxyProviderServer(
126-
settings.PROXY_PROVIDER_SERVER_ADDRESS['HOST'],
127-
settings.PROXY_PROVIDER_SERVER_ADDRESS['PORT'],
128-
)
129+
settings.PROXY_PROVIDER_SERVER_ADDRESS['HOST'],
130+
settings.PROXY_PROVIDER_SERVER_ADDRESS['PORT'],
131+
)
129132

130133
return proxy_provider_server.start(asyncio.get_event_loop())
131134

132135

136+
def print_help():
137+
print("""Usage: ./main.py [COMMAND] [OPTION]...
138+
Runs proxy_py
139+
140+
The commands are:
141+
142+
"core" - runs core part of the project (proxies parsing and processing)
143+
"server" - runs server for providing API
144+
"" - runs both
145+
146+
use ./main.py COMMAND --help to get more information
147+
148+
Project's page: https://github.com/DevAlone/proxy_py
149+
""")
150+
151+
133152
def main():
134153
if len(sys.argv) < 2:
135154
# run default configuration
@@ -143,10 +162,14 @@ def main():
143162

144163
command = sys.argv[1].strip()
145164
sys.argv = sys.argv[1:]
146-
return {
147-
'core': lambda: asyncio.get_event_loop().run_until_complete(core()),
148-
'server': server,
149-
}[command]()
165+
try:
166+
return {
167+
'core': lambda: asyncio.get_event_loop().run_until_complete(core()),
168+
'server': server,
169+
}[command]()
170+
except KeyError:
171+
print_help()
172+
return 0
150173

151174

152175
if __name__ == "__main__":

proxy_py/_settings.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
"""
2+
Settings evaluation order:
3+
4+
1. default values from proxy_py/_settings.py
5+
2. environment values which are the same but with prefix "PROXY_PY_"
6+
3. overriden values from proxy_py/settings.py
7+
4. command line arguments as for example "--debug" or "--proxy-checking-timeout"
8+
9+
"""
110
from checkers.google_com_checker import GoogleComChecker
211

312
import string

0 commit comments

Comments
 (0)