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

Open
#89 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
python

Research direction

Start in apertium/analysis/init.py and trace search_path(), append_pair_path(), Analyzer, and analyze() using the reproduced apertium-quc examples. Clarify how locally compiled modules are discovered and define what successful registration and analysis should look like, including the reported sed failure and confusing API naming.

Written by the indexing model from the issue text.

Description

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().

Dominant language
Python
Stars
35
Forks
27
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apertium/apertium-python

All issues in apertium/apertium-python

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.