Amourspirit / python_ooo_dev_tools

Apache License 2.0
21 stars 5 forks source link

Mixed `Lo` and `lo` in doc #664

Closed JulienPalard closed 6 days ago

JulienPalard commented 6 days ago

I find multiple occurence of:

                .. code-block:: Python

                    def main() -> None:
                        loader = Lo.load_office(Lo.ConnectSocket(headless=True))
                        doc = Calc.create_doc(loader=loader)
                        sheet = Calc.get_sheet(doc=doc, index=0)

                        # use the Office API to manipulate doc...

                        Calc.save_doc(doc, "foo.ods")
                        Lo.close_doc(doc)
                        lo.close_office()

notice the lowercase lo at the end, is that a typo? Is that loader.close_office()?

Amourspirit commented 6 days ago

Good Catch, yes should be `Lo.close_office()

                .. code-block:: Python

                    def main() -> None:
                        loader = Lo.load_office(Lo.ConnectSocket(headless=True))
                        doc = Calc.create_doc(loader=loader)
                        sheet = Calc.get_sheet(doc=doc, index=0)

                        # use the Office API to manipulate doc...

                        Calc.save_doc(doc, "foo.ods")
                        Lo.close_doc(doc)
                        Lo.close_office()

Might be better to use this style:

from ooodev.loader import Lo
from ooodev.calc import CalcDoc

def main() -> int:
    _ = Lo.load_office(Lo.ConnectSocket(headless=True))
    doc = None
    try:
        doc = CalcDoc.create_doc(visible=True)
        sheet = doc.sheets[0]

        # use the Office API to manipulate doc...

    except Exception as e:
        # handel errors in some form
        print(e)
    finally:
        if doc is not None:
            doc.close()
        Lo.close_office()

See Many examples over on Live LibreOffice Python UNO Examples.