ooo-dev-tools


Nameooo-dev-tools JSON
Version 0.43.2 PyPI version JSON
download
home_pagehttps://github.com/Amourspirit/python_ooo_dev_tools
SummaryLibreOffice Developer Tools
upload_time2024-05-18 18:42:53
maintainerNone
docs_urlNone
author:Barry-Thomas-Paul: Moss
requires_python<4.0,>=3.8
licenseApache Software License
keywords ooodev libreoffice openoffice macro uno ooouno pyuno
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            OOO Development Tools
=====================

|lic| |pver| |pwheel| |test_badge|_ |github|

OOO Development Tools (OooDev) is intended for programmers who want to learn and use the
Python version of the `LibreOffice`_ API.

This allows Python to control and manipulate LibreOffice's text, drawing, presentation, spreadsheet, and database applications,
and a lot more (e.g. its spell checker, forms designer, and charting tools).

One of the aims is to develop utility code to help flatten the steep learning curve for the API.
For example, The Lo class simplifies the steps needed to initialize the API
(by creating a connection to a LibreOffice process), to open/create a document, save it,
and close down LibreOffice.

Currently this project has been tested on LibreOffice in Windows and Linux (Ubuntu).

Advantages of Python
--------------------

Macros are pieces of programming code that runs in office suites and helps automate routine tasks.
Specifically, in LibreOffice API these codes can be written with so many programming languages thanks
to the Universal Network Objects (UNO).

Since LibreOffice is multi-platform we can use our documents at different
platforms like Mac, Windows, and Linux. So we need a cross-platform language to run our macros at different
platforms.

Python has the advantage that it is cross-platform and can run inside the office environment as macros and outside
office environment on the command line.

Python has a vast set `libraries <https://pypi.org/>`_ that can be used in a project, including `Numpy <https://numpy.org/>`_ and
`Numexpr <https://github.com/pydata/numexpr>`_ which are excellent and powerful at numeric computation.

This makes Python and excellent choice with maximum flexibility.


Documentation
-------------

Docs
^^^^

Read `documentation <https://python-ooo-dev-tools.readthedocs.io/en/latest/>`_

Command Line Help
^^^^^^^^^^^^^^^^^

There are many classes and methods in this project.
For this reason OooDev has a command line tool |cli_hlp|_.
that can be used to search the documentation for classes and methods this project.
Choosing a number from a search result opens you web browser to that class or method in the documentation.

|cli_hlp|_ is built from `Sphinx CLI Help <https://github.com/Amourspirit/python-sphinx-cli-help>`__, so see the `Wiki Searching help <https://github.com/Amourspirit/python-sphinx-cli-help/wiki/Searching>`__ and substitute ``cli-hlp`` with ``odh`` on command line instructions.

Example Usage:

.. code-block:: bash

    odh hlp -s Write.append

    Choose an option (default 1):
    [0],  Cancel (or press q followed by enter)
    [1],  ooodev.office.write.Write.append                                 - method     - py
    [2],  ooodev.office.write.Write.append_date_time                       - method     - py
    [3],  ooodev.office.write.Write.append_line                            - method     - py
    [4],  ooodev.office.write.Write.append_para                            - method     - py


Note that |cli_hlp|_ is a separate project and is not required to use this project.
Also |cli_hlp|_ use python built in ``sqlite`` which is not shipped with LibreOffices's python on Windows.
This means some configurations will not allow |cli_hlp|_ to run on Windows. In this case you can install |cli_hlp|_ on a global scope and use it that way if needed.

See Also: `LibreOffice Developer Search <https://pypi.org/project/lo-dev-search/>`__

Installation
------------

EXTENSION
^^^^^^^^^

This project is also available as an extension for LibreOffice.
The OOO Development Tools extension is available on `GitHub <https://github.com/Amourspirit/libreoffice_ooodev_ext>`__ and `LibreOffice Extensions <https://extensions.libreoffice.org/en/extensions/show/41700>`__.

See the `Guide <https://python-ooo-dev-tools.readthedocs.io/en/main/guide/guide_ooodev_oxt.html>`__ for installation and usage.

PIP
^^^

**ooo-dev-tools** `PyPI <https://pypi.org/project/ooo-dev-tools/>`_

.. code-block:: bash

    pip install ooo-dev-tools

Note: Support for python ``3.7`` was dropped in version ``0.10.0``

Modules
-------

Currently there are more than ``4,000`` classes in this framework.

Include modules:
    - Calc (Calc)
    - Write (Write)
    - Draw (LibreOffice Draw/Impress)
    - Forms (Support for building forms)
    - Dialogs (Build dialog forms)
    - GUI (Various GUI methods for manipulating LO Windows)
    - Lo (Various methods common to LO applications)
    - FileIO (File Input and Output for working with LO)
    - Format (Format Module — **hundreds of classes** — for Styling and modifying the many Documents and Sheets properties.)
    - Props (Various methods setting and getting the many properties of Office objects)
    - Info (Various method for getting information about LO applications)
    - Color (Various color utils)
    - DateUtil (Date Time utilities)
    - ImagesLo (Various methods for working with Images)
    - Props (Various methods for working with the many API properties)
    - Chart2 (charting)
    - Chart (charting)
    - Gallery (Methods for accessing and reporting on the Gallery)
    - Theme (Access to LibreOffice Theme Properties)
    - Units (Various unit methods and classes for passing different kinds of units in LibreOffice such as inches, millimeters, points, pixels.)
    - And more ...

Future releases will add:
    - Base (LibreOffice Base)
    - Clip (clipboard support)
    - Mail (Mail service provider)
    - Print (Print service provider)
    - And more ...

Inspiration
-----------

Much of this project is inspired by the work of Dr. Andrew Davison.
An archive archive of the Java code is available at `GitHub - LibreOffice Java Programming <https://github.com/Amourspirit/libreoffice_lop_java>`__.

See Also:

- `LibreOffice Programming <https://flywire.github.io/lo-p/>`_ that aims to gradually explain this content in a python context.
- `Python LibreOffice Programming - Preface <https://python-ooo-dev-tools.readthedocs.io/en/latest/odev/preface.html>`__


Other
-----

**Figure 1:** Calc Find and Replace Automation Example

.. figure:: https://user-images.githubusercontent.com/4193389/172609472-536a94de-9bf6-4668-ac9f-a55f12dfc817.gif
    :alt: Calc Find and Replace Automation


Related projects
----------------

LibreOffice API Typing's

 * `LibreOffice API Typings <https://github.com/Amourspirit/python-types-unopy>`_
 * `ScriptForge Typings <https://github.com/Amourspirit/python-types-scriptforge>`_
 * `Access2base Typings <https://github.com/Amourspirit/python-types-access2base>`_
 * `LibreOffice UNO Typings <https://github.com/Amourspirit/python-types-uno-script>`_
 * `LibreOffice Developer Search <https://github.com/Amourspirit/python_lo_dev_search>`_
 * `LibreOffice Python UNO Examples <https://github.com/Amourspirit/python-ooouno-ex>`_
 * `OOOUNO Project <https://github.com/Amourspirit/python-ooouno>`_
 * `OOO UNO TEMPLATE <https://github.com/Amourspirit/ooo_uno_tmpl>`_

.. _LibreOffice: http://www.libreoffice.org/

.. |lic| image:: https://img.shields.io/github/license/Amourspirit/python_ooo_dev_tools
    :alt: License Apache

.. |pver| image:: https://img.shields.io/pypi/pyversions/ooo-dev-tools
    :alt: PyPI - Python Version

.. |pwheel| image:: https://img.shields.io/pypi/wheel/ooo-dev-tools
    :alt: PyPI - Wheel

.. |github| image:: https://img.shields.io/badge/GitHub-100000?style=plastic&logo=github&logoColor=white
    :target: https://github.com/Amourspirit/python_ooo_dev_tools
    :alt: Github

.. |test_badge| image:: https://github.com/Amourspirit/python_ooo_dev_tools/actions/workflows/python-app-test.yml/badge.svg
    :alt: Test Badge

.. _test_badge: https://github.com/Amourspirit/python_ooo_dev_tools/actions/workflows/python-app-test.yml

.. |cli_hlp| replace:: OooDev CLI Help
.. _cli_hlp: https://github.com/Amourspirit/python-ooodev-cli-hlp#readme
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Amourspirit/python_ooo_dev_tools",
    "name": "ooo-dev-tools",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "ooodev, libreoffice, openoffice, macro, uno, ooouno, pyuno",
    "author": ":Barry-Thomas-Paul: Moss",
    "author_email": "bigbytetech@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/28/9f/0edd06b0967adbf85abd531e6c3c22f6c38e00dc8d7ec30cdc1add405dab/ooo_dev_tools-0.43.2.tar.gz",
    "platform": null,
    "description": "OOO Development Tools\n=====================\n\n|lic| |pver| |pwheel| |test_badge|_ |github|\n\nOOO Development Tools (OooDev) is intended for programmers who want to learn and use the\nPython version of the `LibreOffice`_ API.\n\nThis allows Python to control and manipulate LibreOffice's text, drawing, presentation, spreadsheet, and database applications,\nand a lot more (e.g. its spell checker, forms designer, and charting tools).\n\nOne of the aims is to develop utility code to help flatten the steep learning curve for the API.\nFor example, The Lo class simplifies the steps needed to initialize the API\n(by creating a connection to a LibreOffice process), to open/create a document, save it,\nand close down LibreOffice.\n\nCurrently this project has been tested on LibreOffice in Windows and Linux (Ubuntu).\n\nAdvantages of Python\n--------------------\n\nMacros are pieces of programming code that runs in office suites and helps automate routine tasks.\nSpecifically, in LibreOffice API these codes can be written with so many programming languages thanks\nto the Universal Network Objects (UNO).\n\nSince LibreOffice is multi-platform we can use our documents at different\nplatforms like Mac, Windows, and Linux. So we need a cross-platform language to run our macros at different\nplatforms.\n\nPython has the advantage that it is cross-platform and can run inside the office environment as macros and outside\noffice environment on the command line.\n\nPython has a vast set `libraries <https://pypi.org/>`_ that can be used in a project, including `Numpy <https://numpy.org/>`_ and\n`Numexpr <https://github.com/pydata/numexpr>`_ which are excellent and powerful at numeric computation.\n\nThis makes Python and excellent choice with maximum flexibility.\n\n\nDocumentation\n-------------\n\nDocs\n^^^^\n\nRead `documentation <https://python-ooo-dev-tools.readthedocs.io/en/latest/>`_\n\nCommand Line Help\n^^^^^^^^^^^^^^^^^\n\nThere are many classes and methods in this project.\nFor this reason OooDev has a command line tool |cli_hlp|_.\nthat can be used to search the documentation for classes and methods this project.\nChoosing a number from a search result opens you web browser to that class or method in the documentation.\n\n|cli_hlp|_ is built from `Sphinx CLI Help <https://github.com/Amourspirit/python-sphinx-cli-help>`__, so see the `Wiki Searching help <https://github.com/Amourspirit/python-sphinx-cli-help/wiki/Searching>`__ and substitute ``cli-hlp`` with ``odh`` on command line instructions.\n\nExample Usage:\n\n.. code-block:: bash\n\n    odh hlp -s Write.append\n\n    Choose an option (default 1):\n    [0],  Cancel (or press q followed by enter)\n    [1],  ooodev.office.write.Write.append                                 - method     - py\n    [2],  ooodev.office.write.Write.append_date_time                       - method     - py\n    [3],  ooodev.office.write.Write.append_line                            - method     - py\n    [4],  ooodev.office.write.Write.append_para                            - method     - py\n\n\nNote that |cli_hlp|_ is a separate project and is not required to use this project.\nAlso |cli_hlp|_ use python built in ``sqlite`` which is not shipped with LibreOffices's python on Windows.\nThis means some configurations will not allow |cli_hlp|_ to run on Windows. In this case you can install |cli_hlp|_ on a global scope and use it that way if needed.\n\nSee Also: `LibreOffice Developer Search <https://pypi.org/project/lo-dev-search/>`__\n\nInstallation\n------------\n\nEXTENSION\n^^^^^^^^^\n\nThis project is also available as an extension for LibreOffice.\nThe OOO Development Tools extension is available on `GitHub <https://github.com/Amourspirit/libreoffice_ooodev_ext>`__ and `LibreOffice Extensions <https://extensions.libreoffice.org/en/extensions/show/41700>`__.\n\nSee the `Guide <https://python-ooo-dev-tools.readthedocs.io/en/main/guide/guide_ooodev_oxt.html>`__ for installation and usage.\n\nPIP\n^^^\n\n**ooo-dev-tools** `PyPI <https://pypi.org/project/ooo-dev-tools/>`_\n\n.. code-block:: bash\n\n    pip install ooo-dev-tools\n\nNote: Support for python ``3.7`` was dropped in version ``0.10.0``\n\nModules\n-------\n\nCurrently there are more than ``4,000`` classes in this framework.\n\nInclude modules:\n    - Calc (Calc)\n    - Write (Write)\n    - Draw (LibreOffice Draw/Impress)\n    - Forms (Support for building forms)\n    - Dialogs (Build dialog forms)\n    - GUI (Various GUI methods for manipulating LO Windows)\n    - Lo (Various methods common to LO applications)\n    - FileIO (File Input and Output for working with LO)\n    - Format (Format Module \u2014 **hundreds of classes** \u2014 for Styling and modifying the many Documents and Sheets properties.)\n    - Props (Various methods setting and getting the many properties of Office objects)\n    - Info (Various method for getting information about LO applications)\n    - Color (Various color utils)\n    - DateUtil (Date Time utilities)\n    - ImagesLo (Various methods for working with Images)\n    - Props (Various methods for working with the many API properties)\n    - Chart2 (charting)\n    - Chart (charting)\n    - Gallery (Methods for accessing and reporting on the Gallery)\n    - Theme (Access to LibreOffice Theme Properties)\n    - Units (Various unit methods and classes for passing different kinds of units in LibreOffice such as inches, millimeters, points, pixels.)\n    - And more ...\n\nFuture releases will add:\n    - Base (LibreOffice Base)\n    - Clip (clipboard support)\n    - Mail (Mail service provider)\n    - Print (Print service provider)\n    - And more ...\n\nInspiration\n-----------\n\nMuch of this project is inspired by the work of Dr. Andrew Davison.\nAn archive archive of the Java code is available at `GitHub - LibreOffice Java Programming <https://github.com/Amourspirit/libreoffice_lop_java>`__.\n\nSee Also:\n\n- `LibreOffice Programming <https://flywire.github.io/lo-p/>`_ that aims to gradually explain this content in a python context.\n- `Python LibreOffice Programming - Preface <https://python-ooo-dev-tools.readthedocs.io/en/latest/odev/preface.html>`__\n\n\nOther\n-----\n\n**Figure 1:** Calc Find and Replace Automation Example\n\n.. figure:: https://user-images.githubusercontent.com/4193389/172609472-536a94de-9bf6-4668-ac9f-a55f12dfc817.gif\n    :alt: Calc Find and Replace Automation\n\n\nRelated projects\n----------------\n\nLibreOffice API Typing's\n\n * `LibreOffice API Typings <https://github.com/Amourspirit/python-types-unopy>`_\n * `ScriptForge Typings <https://github.com/Amourspirit/python-types-scriptforge>`_\n * `Access2base Typings <https://github.com/Amourspirit/python-types-access2base>`_\n * `LibreOffice UNO Typings <https://github.com/Amourspirit/python-types-uno-script>`_\n * `LibreOffice Developer Search <https://github.com/Amourspirit/python_lo_dev_search>`_\n * `LibreOffice Python UNO Examples <https://github.com/Amourspirit/python-ooouno-ex>`_\n * `OOOUNO Project <https://github.com/Amourspirit/python-ooouno>`_\n * `OOO UNO TEMPLATE <https://github.com/Amourspirit/ooo_uno_tmpl>`_\n\n.. _LibreOffice: http://www.libreoffice.org/\n\n.. |lic| image:: https://img.shields.io/github/license/Amourspirit/python_ooo_dev_tools\n    :alt: License Apache\n\n.. |pver| image:: https://img.shields.io/pypi/pyversions/ooo-dev-tools\n    :alt: PyPI - Python Version\n\n.. |pwheel| image:: https://img.shields.io/pypi/wheel/ooo-dev-tools\n    :alt: PyPI - Wheel\n\n.. |github| image:: https://img.shields.io/badge/GitHub-100000?style=plastic&logo=github&logoColor=white\n    :target: https://github.com/Amourspirit/python_ooo_dev_tools\n    :alt: Github\n\n.. |test_badge| image:: https://github.com/Amourspirit/python_ooo_dev_tools/actions/workflows/python-app-test.yml/badge.svg\n    :alt: Test Badge\n\n.. _test_badge: https://github.com/Amourspirit/python_ooo_dev_tools/actions/workflows/python-app-test.yml\n\n.. |cli_hlp| replace:: OooDev CLI Help\n.. _cli_hlp: https://github.com/Amourspirit/python-ooodev-cli-hlp#readme",
    "bugtrack_url": null,
    "license": "Apache Software License",
    "summary": "LibreOffice Developer Tools",
    "version": "0.43.2",
    "project_urls": {
        "Documentation": "https://python-ooo-dev-tools.readthedocs.io/en/latest/index.html",
        "Homepage": "https://github.com/Amourspirit/python_ooo_dev_tools",
        "Repository": "https://github.com/Amourspirit/python_ooo_dev_tools"
    },
    "split_keywords": [
        "ooodev",
        " libreoffice",
        " openoffice",
        " macro",
        " uno",
        " ooouno",
        " pyuno"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7f8c2026787e2d54dde878b1d85ccc2758a9bd05c0d751975e01c0976b302589",
                "md5": "6f80add6c1f26fe99e248f6c383ea240",
                "sha256": "9653876f4cba9a7b095c4e521275447a0a0e588fa5c3141bc7c820b8681c332b"
            },
            "downloads": -1,
            "filename": "ooo_dev_tools-0.43.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6f80add6c1f26fe99e248f6c383ea240",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 4083052,
            "upload_time": "2024-05-18T18:42:49",
            "upload_time_iso_8601": "2024-05-18T18:42:49.149782Z",
            "url": "https://files.pythonhosted.org/packages/7f/8c/2026787e2d54dde878b1d85ccc2758a9bd05c0d751975e01c0976b302589/ooo_dev_tools-0.43.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "289f0edd06b0967adbf85abd531e6c3c22f6c38e00dc8d7ec30cdc1add405dab",
                "md5": "3b1a4611512bfd49b13e9e667efa7556",
                "sha256": "8308543fd2e4f17554aae223e2cf2e6a327279ef776ec718989a575b3d460a7e"
            },
            "downloads": -1,
            "filename": "ooo_dev_tools-0.43.2.tar.gz",
            "has_sig": false,
            "md5_digest": "3b1a4611512bfd49b13e9e667efa7556",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 2519421,
            "upload_time": "2024-05-18T18:42:53",
            "upload_time_iso_8601": "2024-05-18T18:42:53.373017Z",
            "url": "https://files.pythonhosted.org/packages/28/9f/0edd06b0967adbf85abd531e6c3c22f6c38e00dc8d7ec30cdc1add405dab/ooo_dev_tools-0.43.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-18 18:42:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Amourspirit",
    "github_project": "python_ooo_dev_tools",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ooo-dev-tools"
}
        
Elapsed time: 0.27340s