Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions bambulabs_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,21 @@
except Exception:
__version__ = "0.dev0+unknown"

from bambulabs_api import client, mqtt_client, ftp_client, ams

# flake8: noqa: F405
from .client import * # noqa
from .filament_info import Filament, AMSFilamentSettings, FilamentTray # noqa
from .states_info import PrintStatus, GcodeState # noqa
from .mqtt_client import * # noqa
from .ftp_client import * # noqa
from .ams import * # noqa
from bambulabs_api.logger import logger # noqa: F401


__all__ = []
__all__.extend(client.__all__)
__all__.extend(mqtt_client.__all__)
__all__.extend(ftp_client.__all__)
__all__.extend(ams.__all__)
__all__.append("logger")
9 changes: 5 additions & 4 deletions bambulabs_api/ftp_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@
class ImplicitFTP_TLS(ftplib.FTP_TLS):
"""FTP_TLS subclass that automatically wraps sockets in SSL to support implicit FTPS.""" # noqa

def __init__(self, *args, **kwargs):
def __init__(self, *args, unwrap: bool = False, **kwargs):
super().__init__(*args, **kwargs)
self._sock = None
self.unwrap = unwrap

"""Explicit FTPS, with shared TLS session"""
def ntransfercmd(self, cmd, rest=None):
Expand All @@ -45,16 +46,16 @@ def storbinary(self, cmd, fp, blocksize=8192, callback=None, rest=None):
self.voidcmd('TYPE I')
conn = self.transfercmd(cmd, rest)
try:
while 1:
while True:
buf = fp.read(blocksize)
if not buf:
break
conn.sendall(buf)
if callback:
callback(buf)
# shutdown ssl layer
if isinstance(conn, ssl.SSLSocket):
# conn.unwrap() # Fix for storbinary waiting indefinitely for response message from server # noqa
if isinstance(conn, ssl.SSLSocket) and self.unwrap:
conn.unwrap() # Fix for storbinary waiting indefinitely for response message from server # noqa
pass
finally:
conn.close() # This is the addition to the previous comment.
Expand Down
2 changes: 2 additions & 0 deletions bambulabs_api/logger.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
__all__ = ["logger"]

import logging

logger = logging.getLogger("bambulabs_api")
1 change: 1 addition & 0 deletions docs/release.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Release notes for each release here:
.. toctree::
:maxdepth: 1

2.6.6 <release/2.6.6-notes.rst>
2.6.5 <release/2.6.5-notes.rst>
2.6.4 <release/2.6.4-notes.rst>
2.6.3 <release/2.6.3-notes.rst>
Expand Down
5 changes: 5 additions & 0 deletions docs/release/2.6.6-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Bambulabs API 2.6.6 Release Notes
=================================

* Add unwrap connection option
* Expose bambulab logger
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "bambulabs_api"
version = "2.6.5"
version = "2.6.6"
authors = [
{ name="Chris Ioannidis", email="chris.ioannidis23@imperial.ac.uk" },
{ name="Haotian Wu", email="64962148+ohmdelta@users.noreply.github.com"}
Expand Down