mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-23 01:20:03 +02:00
Merge pull request #116 from tiqi-group/feat/customisable_frontend_src
feat: adds option for custom frontend_src directory
This commit is contained in:
commit
a606194c48
25
README.md
25
README.md
@ -18,6 +18,8 @@
|
|||||||
- [DataService Instances (Nested Classes)](#dataservice-instances-nested-classes)
|
- [DataService Instances (Nested Classes)](#dataservice-instances-nested-classes)
|
||||||
- [Custom Components (`pydase.components`)](#custom-components-pydasecomponents)
|
- [Custom Components (`pydase.components`)](#custom-components-pydasecomponents)
|
||||||
- [`DeviceConnection`](#deviceconnection)
|
- [`DeviceConnection`](#deviceconnection)
|
||||||
|
- [Customizing Connection Logic](#customizing-connection-logic)
|
||||||
|
- [Reconnection Interval](#reconnection-interval)
|
||||||
- [`Image`](#image)
|
- [`Image`](#image)
|
||||||
- [`NumberSlider`](#numberslider)
|
- [`NumberSlider`](#numberslider)
|
||||||
- [`ColouredEnum`](#colouredenum)
|
- [`ColouredEnum`](#colouredenum)
|
||||||
@ -30,6 +32,7 @@
|
|||||||
- [Customizing the Web Interface](#customizing-the-web-interface)
|
- [Customizing the Web Interface](#customizing-the-web-interface)
|
||||||
- [Enhancing the Web Interface Style with Custom CSS](#enhancing-the-web-interface-style-with-custom-css)
|
- [Enhancing the Web Interface Style with Custom CSS](#enhancing-the-web-interface-style-with-custom-css)
|
||||||
- [Tailoring Frontend Component Layout](#tailoring-frontend-component-layout)
|
- [Tailoring Frontend Component Layout](#tailoring-frontend-component-layout)
|
||||||
|
- [Specifying a Custom Frontend Source](#specifying-a-custom-frontend-source)
|
||||||
- [Logging in pydase](#logging-in-pydase)
|
- [Logging in pydase](#logging-in-pydase)
|
||||||
- [Changing the Log Level](#changing-the-log-level)
|
- [Changing the Log Level](#changing-the-log-level)
|
||||||
- [Documentation](#documentation)
|
- [Documentation](#documentation)
|
||||||
@ -836,6 +839,28 @@ Please ensure that the CSS file path is accessible from the server's running loc
|
|||||||
|
|
||||||
The `web_settings.json` file will be stored in the directory specified by `SERVICE_CONFIG_DIR`. You can generate a `web_settings.json` file by setting the `GENERATE_WEB_SETTINGS` to `True`. For more information, see the [configuration section](#configuring-pydase-via-environment-variables).
|
The `web_settings.json` file will be stored in the directory specified by `SERVICE_CONFIG_DIR`. You can generate a `web_settings.json` file by setting the `GENERATE_WEB_SETTINGS` to `True`. For more information, see the [configuration section](#configuring-pydase-via-environment-variables).
|
||||||
|
|
||||||
|
### Specifying a Custom Frontend Source
|
||||||
|
|
||||||
|
To further personalize your web interface, you can provide `pydase` with a custom frontend GUI. To do so, you can use the `frontend_src` keyword in the `pydase.Server`:
|
||||||
|
|
||||||
|
```python
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pydase
|
||||||
|
|
||||||
|
|
||||||
|
class MyService(pydase.DataService):
|
||||||
|
# Service definition
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
service = MyService()
|
||||||
|
pydase.Server(
|
||||||
|
service,
|
||||||
|
frontend_src=Path("path/to/your/frontend/directory"),
|
||||||
|
).run()
|
||||||
|
```
|
||||||
|
|
||||||
## Logging in pydase
|
## Logging in pydase
|
||||||
|
|
||||||
The `pydase` library organizes its loggers on a per-module basis, mirroring the Python package hierarchy. This structured approach allows for granular control over logging levels and behaviour across different parts of the library.
|
The `pydase` library organizes its loggers on a per-module basis, mirroring the Python package hierarchy. This structured approach allows for granular control over logging levels and behaviour across different parts of the library.
|
||||||
|
@ -70,7 +70,7 @@ class WebServer:
|
|||||||
enable_cors: bool = True,
|
enable_cors: bool = True,
|
||||||
config_dir: Path = ServiceConfig().config_dir,
|
config_dir: Path = ServiceConfig().config_dir,
|
||||||
generate_web_settings: bool = WebServerConfig().generate_web_settings,
|
generate_web_settings: bool = WebServerConfig().generate_web_settings,
|
||||||
**kwargs: Any,
|
frontend_src: Path = Path(__file__).parent.parent.parent / "frontend",
|
||||||
) -> None:
|
) -> None:
|
||||||
self.observer = data_service_observer
|
self.observer = data_service_observer
|
||||||
self.state_manager = self.observer.state_manager
|
self.state_manager = self.observer.state_manager
|
||||||
@ -79,6 +79,7 @@ class WebServer:
|
|||||||
self.host = host
|
self.host = host
|
||||||
self.css = css
|
self.css = css
|
||||||
self.enable_cors = enable_cors
|
self.enable_cors = enable_cors
|
||||||
|
self.frontend_src = frontend_src
|
||||||
self._service_config_dir = config_dir
|
self._service_config_dir = config_dir
|
||||||
self._generate_web_settings = generate_web_settings
|
self._generate_web_settings = generate_web_settings
|
||||||
self._loop: asyncio.AbstractEventLoop
|
self._loop: asyncio.AbstractEventLoop
|
||||||
@ -181,7 +182,7 @@ class WebServer:
|
|||||||
app.mount(
|
app.mount(
|
||||||
"/",
|
"/",
|
||||||
StaticFiles(
|
StaticFiles(
|
||||||
directory=Path(__file__).parent.parent.parent / "frontend",
|
directory=self.frontend_src,
|
||||||
html=True,
|
html=True,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user