HiddenEye-Legacy/venv/lib/python3.8/site-packages/pyngrok/conf.py
2020-08-17 13:33:09 +00:00

70 lines
3.1 KiB
Python

import os
from pyngrok.installer import get_ngrok_bin
__author__ = "Alex Laird"
__copyright__ = "Copyright 2020, Alex Laird"
__version__ = "4.1.9"
BIN_DIR = os.path.normpath(os.path.join(os.path.abspath(os.path.dirname(__file__)), "bin"))
DEFAULT_NGROK_PATH = os.path.join(BIN_DIR, get_ngrok_bin())
DEFAULT_CONFIG_PATH = None
DEFAULT_NGROK_CONFIG_PATH = os.path.join(os.path.expanduser("~"), ".ngrok2", "ngrok.yml")
class PyngrokConfig:
"""
An object containing :code:`pyngrok`'s configuration for interacting with the :code:`ngrok` binary. All values are
optional when it is instantiated, and default values will be used for parameters not passed.
:var ngrok_path: The path to the :code:`ngrok` binary, defaults to the value in
`conf.DEFAULT_NGROK_PATH <index.html#config-file>`_
:vartype ngrok_path: str
:var config_path: The path to the :code:`ngrok` config, defaults to :code:`None` and :code:`ngrok` manages it.
:vartype config_path: str
:var auth_token: An authtoken to pass to commands (overrides what is in the config).
:vartype auth_token: str
:var region: The region in which :code:`ngrok` should start.
:vartype region: str
:var monitor_thread: Whether :code:`ngrok` should continue to be monitored (for logs, etc.) after it startup
is complete.
:vartype monitor_thread: bool
:var log_event_callback: A callback that will be invoked each time :code:`ngrok` emits a log. :code:`monitor_thread`
must be set to :code:`True` or the function will stop being called after :code:`ngrok` finishes starting.
:vartype log_event_callback: function
:var startup_timeout: The max number of seconds to wait for :code:`ngrok` to start before timing out.
:vartype startup_timeout: int
:var max_logs: The max number of logs to store in :class:`~pyngrok.process.NgrokProcess`'s :code:`logs` variable.
:vartype max_logs: int
:var request_timeout: The max timeout when making requests to :code:`ngrok`'s API.
:vartype request_timeout: float
:var start_new_session: Passed to :py:class:`subprocess.Popen` when launching :code:`ngrok`. (Python 3 and POSIX only)
:vartype start_new_session: bool
"""
def __init__(self,
ngrok_path=None,
config_path=None,
auth_token=None,
region=None,
monitor_thread=True,
log_event_callback=None,
startup_timeout=15,
max_logs=100,
request_timeout=4,
start_new_session=False):
self.ngrok_path = DEFAULT_NGROK_PATH if ngrok_path is None else ngrok_path
self.config_path = DEFAULT_CONFIG_PATH if config_path is None else config_path
self.auth_token = auth_token
self.region = region
self.monitor_thread = monitor_thread
self.log_event_callback = log_event_callback
self.startup_timeout = startup_timeout
self.max_logs = max_logs
self.request_timeout = request_timeout
self.start_new_session = start_new_session
DEFAULT_PYNGROK_CONFIG = PyngrokConfig()