apertium/apertium-python

Make it easy to use a local / non-installed repo

Opened this issue · 0 comments

It's not at all clear how to use existing compiled modules. e.g. I have apertium-quc on my local system, how do I add that repo to be able to use it?

I tried:

>>> apertium.search_path('/home/fran/source/apertium/languages')

And it returns some stuff but doesn't seem to change state:

>>> apertium.analyze('quc-morph', 'we')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/fran/source/apertium/trunk/apertium-python/apertium/analysis/__init__.py", line 84, in analyze
    analyzer: Analyzer = Analyzer(lang)
  File "/home/fran/source/apertium/trunk/apertium-python/apertium/analysis/__init__.py", line 25, in __init__
    raise apertium.ModeNotInstalled(self.lang)
apertium.ModeNotInstalled: quc-morph

Probably the ideal thing would be to had something like:

>>> apertium.load_module('/home/fran/source/apertium/languages/apertium-quc')

But the whole way this works is kind of confusing in general.

I also tried:

>>> apertium.append_pair_path('/home/fran/source/apertium/languages/apertium-quc')
>>> apertium.analyze('quc-morph', 'we')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/fran/source/apertium/trunk/apertium-python/apertium/analysis/__init__.py", line 84, in analyze
    analyzer: Analyzer = Analyzer(lang)
  File "/home/fran/source/apertium/trunk/apertium-python/apertium/analysis/__init__.py", line 25, in __init__
    raise apertium.ModeNotInstalled(self.lang)
apertium.ModeNotInstalled: quc-morph
>>> apertium.Analyzer('quc')
<apertium.analysis.Analyzer object at 0x7f27c4bfb190>
>>> a = apertium.Analyzer('quc')
>>> a.analyse('we')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Analyzer' object has no attribute 'analyse'
>>> a.analyze('we')
sed: -e expressió #1, caràcter 1: ordre desconeguda: «"»
[]

So, sed doesn't seem to work, and the naming of append_pair_path() is strange, it should probably be just register_module() or load_module().