Upgrade to Pyro5

This commit is contained in:
Raoul Snyman 2023-05-22 21:33:14 -07:00
parent 8187b94855
commit f59146b505
8 changed files with 25 additions and 25 deletions

View File

@ -19,7 +19,7 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
##########################################################################
"""
This module runs a Pyro4 server using LibreOffice's version of Python
This module runs a Pyro5 server using LibreOffice's version of Python
Please Note: This intentionally uses os.path over pathlib because we don't know which version of Python is shipped with
the version of LibreOffice on the user's computer.
@ -40,11 +40,11 @@ if sys.platform.startswith('darwin') and 'pytest' not in sys.argv[0]:
# Add the current directory to sys.path so that we can load the serializers
sys.path.append(os.path.join(os.path.dirname(__file__)))
# Add the vendor directory to sys.path so that we can load Pyro4
# Add the vendor directory to sys.path so that we can load Pyro5
sys.path.append(os.path.join(os.path.dirname(__file__), 'vendor'))
from serializers import register_classes
from Pyro4 import Daemon, expose
from Pyro5.api import Daemon, expose
try:
# Wrap these imports in a try so that we can run the tests on macOS
@ -81,7 +81,7 @@ class LibreOfficeException(Exception):
@expose
class LibreOfficeServer(object):
"""
A Pyro4 server which controls LibreOffice
A Pyro5 server which controls LibreOffice
"""
def __init__(self):
"""

View File

@ -36,7 +36,7 @@ LIBREOFFICE_PATH = Path('/Applications/LibreOffice.app')
LIBREOFFICE_PYTHON = LIBREOFFICE_PATH / 'Contents' / 'Resources' / 'python'
try:
from Pyro4 import Proxy
from Pyro5.client import Proxy
if is_macosx() and LIBREOFFICE_PATH.exists():
macuno_available = True
else:
@ -46,7 +46,7 @@ except ImportError:
if macuno_available:
# If this controller is good to go, register the serializer classes with Pyro4
# If this controller is good to go, register the serializer classes with Pyro5
from openlp.plugins.presentations.lib.serializers import register_classes
register_classes()
@ -56,8 +56,8 @@ log = logging.getLogger(__name__)
class MacLOController(PresentationController, LogMixin):
"""
Class to control interactions with MacLO presentations on Mac OS X via Pyro4. It starts the Pyro4 nameserver,
starts the LibreOfficeServer, and then controls MacLO via Pyro4.
Class to control interactions with MacLO presentations on Mac OS X via Pyro5. It starts the Pyro5 nameserver,
starts the LibreOfficeServer, and then controls MacLO via Pyro5.
"""
log.info('MacLOController loaded')
@ -86,7 +86,7 @@ class MacLOController(PresentationController, LogMixin):
@property
def client(self):
"""
Set up a Pyro4 client so that we can talk to the LibreOfficeServer
Set up a Pyro5 client so that we can talk to the LibreOfficeServer
"""
if not self._client:
self._client = Proxy('PYRO:openlp.libreofficeserver@localhost:4310')

View File

@ -19,16 +19,16 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
##########################################################################
"""
This module contains some helpers for serializing Path objects in Pyro4
This module contains some helpers for serializing Path objects in Pyro5
"""
from pathlib import Path
from Pyro4.util import SerializerBase
from Pyro5.api import SerializerBase
def path_class_to_dict(obj):
"""
Serialize a Path object for Pyro4
Serialize a Path object for Pyro5
"""
return {
'__class__': 'Path',

View File

@ -63,7 +63,7 @@ LINUX_MODULES = [
MACOSX_MODULES = [
'objc',
'Pyro4',
'Pyro5',
'AppKit'
]

View File

@ -113,7 +113,7 @@ using a computer and a display/projector.""",
'pyobjc-framework-Cocoa; platform_system=="Darwin"',
'PyQt5 >= 5.12',
'PyQtWebEngine',
'Pyro4; platform_system=="Darwin"',
'Pyro5; platform_system=="Darwin"',
'pywin32; platform_system=="Windows"',
'QtAwesome',
"qrcode",

View File

@ -25,11 +25,11 @@ from pathlib import Path
from unittest.mock import patch
try:
import Pyro4 # noqa
import Pyro5 # noqa
from openlp.plugins.presentations.lib.serializers import path_class_to_dict, path_dict_to_class, register_classes
except ImportError:
import pytest
pytestmark = pytest.mark.skip('Pyro4 not installed')
pytestmark = pytest.mark.skip('Pyro5 not installed')
def test_path_class_to_dict():

View File

@ -28,17 +28,17 @@ import pytest
from openlp.core.common.platform import is_macosx
try:
import Pyro4 # noqa: F401
has_pyro4 = True
import Pyro5 # noqa: F401
has_pyro5 = True
except ImportError:
has_pyro4 = False
has_pyro5 = False
if has_pyro4:
if has_pyro5:
from openlp.plugins.presentations.lib.libreofficeserver import LibreOfficeServer, TextType, main
pytestmark = [
pytest.mark.skipif(not has_pyro4, reason='Pyro4 is not installed, skipping testing the LibreOffice server'),
pytest.mark.skipif(not has_pyro5, reason='Pyro5 is not installed, skipping testing the LibreOffice server'),
pytest.mark.skipif(not is_macosx(), reason='Not on macOS, skipping testing the LibreOffice server')
]

View File

@ -38,13 +38,13 @@ from tests.helpers.testmixin import TestMixin
from tests.utils.constants import TEST_RESOURCES_PATH
try:
import Pyro4 # noqa: F401
has_pyro4 = True
import Pyro5 # noqa: F401
has_pyro5 = True
except ImportError:
has_pyro4 = False
has_pyro5 = False
pytestmark = [
pytest.mark.skipif(not has_pyro4, reason='Pyro4 is not installed, skipping testing the Mac LibreOffice controller'),
pytest.mark.skipif(not has_pyro5, reason='Pyro5 is not installed, skipping testing the Mac LibreOffice controller'),
pytest.mark.skipif(not is_macosx(), reason='Not on macOS, skipping testing the Mac LibreOffice controller')
]