Completed
Pull Request — master (#78)
by
unknown
01:11
created

topik.models.ModelRegistry   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 8
Duplicated Lines 0 %
Metric Value
dl 0
loc 8
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A ModelRegistry.__init__() 0 3 1
1
from six.moves import UserDict
0 ignored issues
show
Coding Style introduced by
This module should have a docstring.

The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:

class SomeClass:
    def some_method(self):
        """Do x and return foo."""

If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.

Loading history...
Configuration introduced by
The import six.moves could not be resolved.

This can be caused by one of the following:

1. Missing Dependencies

This error could indicate a configuration issue of Pylint. Make sure that your libraries are available by adding the necessary commands.

# .scrutinizer.yml
before_commands:
    - sudo pip install abc # Python2
    - sudo pip3 install abc # Python3
Tip: We are currently not using virtualenv to run pylint, when installing your modules make sure to use the command for the correct version.

2. Missing __init__.py files

This error could also result from missing __init__.py files in your module folders. Make sure that you place one file in each sub-folder.

Loading history...
2
from functools import partial
3
4
from topik.singleton_registry import _base_register_decorator
5
6
7
# This subclass serves to establish a new singleton instance of functions
8
#    for this particular step in topic modeling.  No implementation necessary.
9
class ModelRegistry(UserDict, object):
10
    """Uses Borg design pattern.  Core idea is that there is a global registry for each step's
11
    possible methods
12
    """
13
    __shared_state = {}
14
    def __init__(self, *args, **kwargs):
15
        self.__dict__ = self.__shared_state
16
        super(ModelRegistry, self).__init__(*args, **kwargs)
17
18
19
# a nicer, more pythonic handle to our singleton instance
20
registered_models = ModelRegistry()
0 ignored issues
show
Coding Style Naming introduced by
The name registered_models does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$).

This check looks for invalid names for a range of different identifiers.

You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.

If your project includes a Pylint configuration file, the settings contained in that file take precedence.

To find out more about Pylint, please refer to their site.

Loading history...
21
22
23
# fill in the registration function
24
register = partial(_base_register_decorator, registered_models)
0 ignored issues
show
Coding Style Naming introduced by
The name register does not conform to the constant naming conventions ((([A-Z_][A-Z0-9_]*)|(__.*__))$).

This check looks for invalid names for a range of different identifiers.

You can set regular expressions to which the identifiers must conform if the defaults do not match your requirements.

If your project includes a Pylint configuration file, the settings contained in that file take precedence.

To find out more about Pylint, please refer to their site.

Loading history...
25
26
27
# this function is the primary API for people using any registered functions.
28
def run_model(input_data, model_name='lda', ntopics=3, **kwargs):
0 ignored issues
show
Coding Style introduced by
This function should have a docstring.

The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:

class SomeClass:
    def some_method(self):
        """Do x and return foo."""

If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.

Loading history...
29
    return registered_models[model_name](input_data, ntopics, **kwargs)
30