Skip to content

urllib error #2

@gruberth

Description

@gruberth

Running this minimal example of the fsapi in python:

from fsapi.net import FSDevice, wrap

device = FSDevice("192.168.178.123")
device.new_session()
api = wrap(device)
test = api.power
print(test)

results always in this error:

Traceback (most recent call last):
  File "***********************************/test.py", line 6, in <module>
    test = api.power
  File "C:\python\venv\default\lib\site-packages\fsapi\net\_wrap.py", line 86, in __get__
    return self.get(__instance)
  File "C:\python\venv\default\lib\site-packages\fsapi\net\_wrap.py", line 99, in get
    response = wrapper.device.get(self.node_path)
  File "C:\python\venv\default\lib\site-packages\fsapi\net\device.py", line 178, in get
    return self.node_request(Method.GET, nodes[0])
  File "C:\python\venv\default\lib\site-packages\fsapi\net\device.py", line 276, in node_request
    tree = self.request("/".join(path_elements), config or self.config, **argv)
  File "C:\python\venv\default\lib\site-packages\fsapi\net\device.py", line 353, in request
    url = self._create_url(path, parameters=argv)
  File "C:\python\venv\default\lib\site-packages\fsapi\net\device.py", line 384, in _create_url
    query_str = self._build_parameters(parameters)
  File "C:\python\venv\default\lib\site-packages\fsapi\net\device.py", line 392, in _build_parameters
    query_params.append(f"sid={quote(self.sid)}")
  File "C:\python\WPy64-3850\python-3.8.5.amd64\lib\urllib\parse.py", line 839, in quote
    return quote_from_bytes(string, safe)
  File "C:\python\WPy64-3850\python-3.8.5.amd64\lib\urllib\parse.py", line 864, in quote_from_bytes
    raise TypeError("quote_from_bytes() expected bytes")
TypeError: quote_from_bytes() expected bytes

Process finished with exit code 1

I think it is because my session id is just a number without any chars.

This could be fixed by replacing the line 392 of the fsapi.net.device file with:
query_params.append(f"sid={quote(str(self.sid))}")

so it gets casted to str.

Thanks

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions