Skip to content

Commit 9d18fc0

Browse files
Add empty stubs and project skeleton
1 parent fb5f362 commit 9d18fc0

8 files changed

Lines changed: 119 additions & 0 deletions

File tree

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,9 @@ cython_debug/
158158
# and can be added to the global gitignore or merged into this file. For a more nuclear
159159
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
160160
#.idea/
161+
162+
.idea/
163+
164+
.python-version
165+
166+
poetry.lock

oshconnect/__init__.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from abc import ABC
2+
3+
from dataclasses import dataclass
4+
from enum import Enum
5+
6+
7+
@dataclass(kw_only=True)
8+
class Endpoints:
9+
root: str = "/sensorhub"
10+
sos: str = f"{root}/sos"
11+
connected_systems: str = f"{root}/api"
12+
13+
14+
@dataclass(kw_only=True)
15+
class Node(ABC):
16+
address: str
17+
port: int
18+
endpoints: Endpoints
19+
is_secure: bool
20+
21+
22+
class TemporalModes(Enum):
23+
REAL_TIME = 0
24+
ARCHIVE = 1
25+
BATCH = 2
26+
RT_SYNC = 3
27+
ARCHIVE_SYNC = 4
28+
29+

oshconnect/datasource/__init__.py

Whitespace-only changes.

oshconnect/datastore/__init__.py

Whitespace-only changes.

oshconnect/oshconnect.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# ==============================================================================
2+
# Copyright (c) 2024. Botts Innovative Research, Inc.
3+
# Date: 2024/5/15
4+
# Author: Ian Patterson
5+
# Contact email: ian@botts-inc.com
6+
# ==============================================================================
7+
8+
class OSHConnect:
9+
datasource: DataSourceAPI
10+
datastore: DataStoreAPI
11+
styling: StylingAPI
12+
timestream: TimeStreamAPI
13+
14+
def save_config(self, config: dict):
15+
pass
16+
17+
def load_config(self, config: dict):
18+
pass
19+
20+
def share_config(self, config: dict):
21+
pass
22+
23+
def update_config(self, config: dict):
24+
pass
25+
26+
def delete_config(self, config: dict):
27+
pass
28+
29+
def configure_nodes(self, nodes: list):
30+
pass
31+
32+
def filter_nodes(self, nodes: list):
33+
pass
34+
35+
def task_system(self, task: dict):
36+
pass
37+
38+
def select_temporal_mode(self, mode: str):
39+
"""
40+
Select the temporal mode for the system. Real-time, archive, batch, as well as synchronization settings.
41+
:param mode:
42+
:return:
43+
"""
44+
pass
45+
46+
def playback_streams(self, streams: list):
47+
pass
48+
49+
def visualize_streams(self, streams: list):
50+
pass
51+
52+
# Second Level Use Cases
53+
def get_visualization_recommendations(self, streams: list):
54+
pass
55+
56+
def discover_datastreams(self, streams: list):
57+
pass
58+
59+
def discover_systems(self, systems: list):
60+
pass
61+
62+
def discover_controlstreams(self, streams: list):
63+
pass
64+
65+
def authenticate_user(self, user: dict):
66+
pass
67+
68+
def synchronize_streams(self, systems: list):
69+
pass

oshconnect/styling/__init__.py

Whitespace-only changes.

oshconnect/timemanagement/__init__.py

Whitespace-only changes.

pyproject.toml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[tool.poetry]
2+
name = "oshconnect"
3+
version = "0.1.0"
4+
description = "Library for interfacing with OSH, helping guide visualization efforts, and providing a place to store configurations."
5+
authors = ["Ian Patterson <ian@botts-inc.com@gmail.com>"]
6+
readme = "README.md"
7+
8+
[tool.poetry.dependencies]
9+
python = "^3.12"
10+
consys4py = { git = "https://github.com/Botts-Innovative-Research/CSAPI4Py.git", branch = "dev" }
11+
12+
13+
[build-system]
14+
requires = ["poetry-core"]
15+
build-backend = "poetry.core.masonry.api"

0 commit comments

Comments
 (0)