Skip to content

Commit

Permalink
fixed errors
Browse files Browse the repository at this point in the history
(missing self's)
(mutable default values)
  • Loading branch information
KS-HTK committed Dec 6, 2023
1 parent 03ff811 commit f6c7662
Showing 1 changed file with 20 additions and 28 deletions.
48 changes: 20 additions & 28 deletions src/fluepdot/fluepdot.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,17 @@ class Mode(Enum):
fontURL: str = "/fonts"
modeURL: str = "/rendering/mode"


class Fluepdot:
def __init__(self, baseURL: str, width: int = 115, height: int = 16):
self.baseURL = baseURL
self.width = width
self.height = height
self.fonts: Optional[List[str]] = None


def set_url(self, url: str):
self.baseURL = url


def post_time(self) -> None:
import datetime
dt: str = ""
Expand All @@ -52,44 +51,36 @@ def post_time(self) -> None:
dt = ndt
self.post_text(dt, x=8, y=1, font="fixed_7x14")


def get_size(self) -> (int, int):
frame = self.get_frame()
self.width = len(frame[0])
self.height = len(frame) - 1
return [self.width, self.height]


def get_frame(self) -> List[str]:
r = self._get(frameURL)
return r.text.split('\n')


def get_pixel(x: int = 0, y: int = 0) -> bool:
def get_pixel(self, x: int = 0, y: int = 0) -> bool:
r = self._get(pixelURL, get={"x": x, "y": y})
rtn = True if r.text == "X" else False if r.text == " " else None
return rtn


def get_fonts(self) -> None:
r = self._get(fontURL)
fonts = r.text.split("\n")
print(fonts)


def get_mode(self) -> Mode:
r = self._get(modeURL)
return Mode(r.text)


def post_text(self, text: str, x: int = 0, y: int = 0, font: str = "DejaVuSans12") -> Response:
return self._post(textURL, get={"x": x, "y": y, "font": font}, post=text)


def post_frame_raw(self, frame: str) -> Response:
return self._post(frameURL, post=frame)


def post_frame(self, frame: List[List[bool]]) -> Response:
data: List[List[str]] = [[" "] * self.width for _ in range(self.height)]
for x, l in enumerate(frame):
Expand All @@ -104,39 +95,40 @@ def post_frame(self, frame: List[List[bool]]) -> Response:
outStr = outStr + "".join(line) + "\n"
return self._post(frameURL, post=outStr)


def set_pixel(x: int = 0, y: int = 0) -> Response:
def set_pixel(self, x: int = 0, y: int = 0) -> Response:
return self._post(pixelURL, get={"x": x, "y": y})


def unset_pixel(x: int = 0, y: int = 0) -> Response:
def unset_pixel(self, x: int = 0, y: int = 0) -> Response:
return self._delete(pixelURL, get={"x": x, "y": y})


def set_mode(self, mode: Mode = Mode.FULL) -> Response:
return self._put(modeURL, post=str(mode.value))


def _delete(self, endpoint: str, get: GetParam = {}, post: PostParam = '') -> Response:
if self.baseURL == None:
def _delete(self, endpoint: str, get: GetParam | None = None) -> Response:
if get is None:
get = {}
if self.baseURL is None:
raise RuntimeError('baseURL is None, call set_url')
return requests.delete(url=self.baseURL + endpoint, params=get)


def _post(self, endpoint: str, get: GetParam = {}, post: PostParam = '') -> Response:
if self.baseURL == None:
def _post(self, endpoint: str, get: GetParam | None = None, post: PostParam = '') -> Response:
if get is None:
get = {}
if self.baseURL is None:
raise RuntimeError('baseURL is None, call set_url')
return requests.post(url=self.baseURL + endpoint, params=get, data=post)


def _put(self, endpoint: str, get: GetParam = {}, post: PostParam = '') -> Response:
if self.baseURL == None:
def _put(self, endpoint: str, get: GetParam | None = None, post: PostParam = '') -> Response:
if get is None:
get = {}
if self.baseURL is None:
raise RuntimeError('baseURL is None, call set_url')
return requests.put(url=self.baseURL + endpoint, params=get, data=post)


def _get(self, endpoint: str, get: GetParam = {}) -> Response:
if self.baseURL == None:
def _get(self, endpoint: str, get: GetParam | None = None) -> Response:
if get is None:
get = {}
if self.baseURL is None:
raise RuntimeError('baseURL is None, call set_url')
return requests.get(url=self.baseURL + endpoint, params=get)

Expand Down

0 comments on commit f6c7662

Please sign in to comment.