Expand the configfile
Alsp removing my config.py and instead committing default_config.py
This commit is contained in:
parent
0ae203c7b7
commit
e9555264b9
|
@ -1,3 +1,3 @@
|
|||
/default_config.py
|
||||
/config.py
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
|
10
README.md
10
README.md
|
@ -2,6 +2,7 @@
|
|||
|
||||
A simple webui to interface with the [Grzegorz API](https://github.com/Programvareverkstedet/grzegorz)
|
||||
|
||||
|
||||
## How to run this
|
||||
|
||||
First of we need to install any needed dependencies. If you want to, you may do so in a virtual environment.
|
||||
|
@ -12,14 +13,9 @@ To install the needed dependencies, run this with sufficient rights (as root?):
|
|||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
Now, make a copy of `default_config.py` named `config.py`, and make any changes you see fit. Here is a description of each field:
|
||||
Now, make a copy of `default_config.py` named `config.py`, and make any changes you see fit. Each field should be described there
|
||||
|
||||
* `host` - The interace you want to listen to
|
||||
* `port` - The port to listen to
|
||||
* `start_browser` - Whether to open a window in the defualt browser of the interface when starting
|
||||
* `multiple_instance` - Whether to handle each client induvidually or with a single instance
|
||||
|
||||
When finished, start the server with:
|
||||
When finished, run the server with:
|
||||
|
||||
```
|
||||
python3 main.py
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
host = "0.0.0.0"
|
||||
port = 8080
|
||||
start_browser = True
|
||||
multiple_instance = True
|
||||
api_base = "http://bokhylle.pvv.ntnu.no:8080/api"
|
|
@ -0,0 +1,27 @@
|
|||
address = "0.0.0.0" # network interface ip
|
||||
port = 8081 # http listen port
|
||||
|
||||
#Link to where your Grzegorz API is hosted
|
||||
api_base = "http://localhost:8080/api"
|
||||
|
||||
# a string containing the host name or remote ip address that allows to access to your app.
|
||||
hostname = None
|
||||
# websocket port
|
||||
websocket_port = 0 # 0 means random
|
||||
|
||||
# In order to limit the remote access to your interface you
|
||||
# can define a username and password. It probably uses http basic-auth
|
||||
username = None
|
||||
password = None
|
||||
|
||||
# Open a PyWebView window instead of using the browser. This requires pywebview to be installed
|
||||
standalone = False
|
||||
|
||||
# Defines whether the browser should be opened automatically at startup
|
||||
start_browser = True
|
||||
|
||||
# Multipe instance. If True, multiple clients that connects to your script has different App instances
|
||||
multiple_instance = False
|
||||
|
||||
# Cache files in "res" folder
|
||||
enable_file_cache = True
|
31
main.py
31
main.py
|
@ -4,27 +4,30 @@ import os
|
|||
import api
|
||||
import gui
|
||||
|
||||
# config must be a object with the attributes::
|
||||
# config.host: str
|
||||
# config.port: str
|
||||
# config.start_browser: bool
|
||||
# config.multiple_instance: bool
|
||||
# config must be a object with the attributes seen in default_config.py:
|
||||
def main(config):
|
||||
assert hasattr(config, "host"), "Config has no attr 'host'!"
|
||||
assert hasattr(config, "port"), "Config has no attr 'port'!"
|
||||
assert hasattr(config, "start_browser"), "Config has no attr 'start_browser'!"
|
||||
assert hasattr(config, "multiple_instance"), "Config has no attr 'multiple_instance'!"
|
||||
start_kwargs = {}
|
||||
for attr in ("address", "port", "hostname", "websocket_port",
|
||||
"username", "password", "standalone", "start_browser",
|
||||
"multiple_instance", "enable_file_cache"):
|
||||
assert hasattr(config, attr), f"Config has no attribute {attr!r}!"
|
||||
start_kwargs[attr] = getattr(config, attr)
|
||||
assert hasattr(config, "api_base"), f"Config has no attribute 'api_base'!"
|
||||
|
||||
if "standalone" in start_kwargs:
|
||||
#Why must the standalone client be so picky?
|
||||
for illega_attr in ("address", "port", "hostname", "websocket_port",
|
||||
"username", "password", "start_browser", "multiple_instance",
|
||||
"enable_file_cache"):
|
||||
del start_kwargs[illega_attr]
|
||||
|
||||
|
||||
# start the webserver:
|
||||
api.BASE_URL = config.api_base
|
||||
start(
|
||||
gui.MyApp,
|
||||
title = "Gregorz",
|
||||
address = config.host,
|
||||
port = config.port,
|
||||
start_browser = config.start_browser,
|
||||
multiple_instance = config.multiple_instance,
|
||||
enable_file_cache = True
|
||||
**start_kwargs
|
||||
)
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
Loading…
Reference in New Issue