explosion / explosion/catalogue

Can't get functions from registry if entry points only points to the correct module and not to the specific functions

Open
#12 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
183
Forks
21
PR merge metrics
No merged PRs in 30d

Description

I'm getting this extremely odd error that tells me `chain.v1` is not available while it is showing up as available name at the same time.

```python
catalogue.RegistryError: Cant't find 'chain.v1' in registry horizon -> components. Available names: Pipeline.v1, _, chain.v1, fetch.v1, response_to_bytes.v1, response_to_dict.v1, response_to_text.v1
```

I've tried to run my test in debug mode with a break point where the error occurs. If I run `Registry.get` then it fails as in the test but if I run `Registry.get()` a second time then it works.

### Reason

In `Registry.get()` we only look for the specific name, i.e. `from_entry_point = self.get_entry_point(name)` or in the global variable `REGISTRY`. It doesn't exist in either in the first run. But in the second run it does exist in `REGISTRY` since we called `Registry.get_entry_points()` to print the error message, since this method actually load all the modules in the entry points and thereby populates `REGISTRY`.

### Proposed solution

Load all modules from entry points in `Registry.get()` if there is entry points but the requested one is found directly.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.