QInfer/python-qinfer

View on GitHub
src/qinfer/derived_models.py

Summary

Maintainability
F
5 days
Test Coverage

File derived_models.py has 673 lines of code (exceeds 250 allowed). Consider refactoring.
Open

#!/usr/bin/python
# -*- coding: utf-8 -*-
##
# derived_models.py: Models that decorate and extend other models.
##
Severity: Major
Found in src/qinfer/derived_models.py - About 1 day to fix

    Function __init__ has a Cognitive Complexity of 41 (exceeds 5 allowed). Consider refactoring.
    Open

        def __init__(
                self, underlying_model, random_walk_idxs='all', 
                fixed_covariance=None, diagonal=True, 
                scale_mult=None, model_transformation=None
            ):
    Severity: Minor
    Found in src/qinfer/derived_models.py - About 6 hrs to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Cyclomatic complexity is too high in method __init__. (20)
    Open

        def __init__(
                self, underlying_model, random_walk_idxs='all', 
                fixed_covariance=None, diagonal=True, 
                scale_mult=None, model_transformation=None
            ):
    Severity: Minor
    Found in src/qinfer/derived_models.py by radon

    Cyclomatic Complexity

    Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

    Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

    Construct Effect on CC Reasoning
    if +1 An if statement is a single decision.
    elif +1 The elif statement adds another decision.
    else +0 The else statement does not cause a new decision. The decision is at the if.
    for +1 There is a decision at the start of the loop.
    while +1 There is a decision at the while statement.
    except +1 Each except branch adds a new conditional path of execution.
    finally +0 The finally block is unconditionally executed.
    with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
    assert +1 The assert statement internally roughly equals a conditional statement.
    Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
    Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

    Source: http://radon.readthedocs.org/en/latest/intro.html

    Function update_timestep has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
    Open

        def update_timestep(self, modelparams, expparams):
    
            n_mps = modelparams.shape[0]
            n_eps = expparams.shape[0]
            if self._diagonal:
    Severity: Minor
    Found in src/qinfer/derived_models.py - About 55 mins to fix

    Cognitive Complexity

    Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

    A method's cognitive complexity is based on a few simple rules:

    • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
    • Code is considered more complex for each "break in the linear flow of the code"
    • Code is considered more complex when "flow breaking structures are nested"

    Further reading

    Avoid deeply nested control flow statements.
    Open

                            if name1 == name2:
                                self._srw_names.append(r"\sigma_{{{}}}".format(name1))
                            else:
                                self._srw_names.append(r"\sigma_{{{},{}}}".format(name2,name1))
            else:
    Severity: Major
    Found in src/qinfer/derived_models.py - About 45 mins to fix

      Function __init__ has 6 arguments (exceeds 4 allowed). Consider refactoring.
      Open

          def __init__(
      Severity: Minor
      Found in src/qinfer/derived_models.py - About 45 mins to fix

        Function est_update_covariance has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

            def est_update_covariance(self, modelparams):
                """
                Returns the covariance of the gaussian noise process for one 
                unit step. In the case where the covariance is being learned,
                the expected covariance matrix is returned.
        Severity: Minor
        Found in src/qinfer/derived_models.py - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        TODO found
        Open

        from qinfer._lib import enum # <- TODO: replace with flufl.enum!
        Severity: Minor
        Found in src/qinfer/derived_models.py by fixme

        FIXME found
        Open

                # FIXME: uncommenting causes a slowdown, but we need to call
        Severity: Minor
        Found in src/qinfer/derived_models.py by fixme

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                if isinstance(underlying_model.expparams_dtype, str):
                    # We default to calling the original experiment parameters "x".
                    self._expparams_scalar = True
                    self._expparams_dtype = [('x', underlying_model.expparams_dtype), ('n_meas', 'uint')]
                else:
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 3 hrs to fix
        src/qinfer/derived_models.py on lines 532..538

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 64.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                if isinstance(underlying_model.expparams_dtype, str):
                    # We default to calling the original experiment parameters "x".
                    self._expparams_scalar = True
                    self._expparams_dtype = [('x', underlying_model.expparams_dtype), ('n_meas', 'uint')]
                else:
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 3 hrs to fix
        src/qinfer/derived_models.py on lines 243..249

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 64.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                pr1 = self.underlying_model.likelihood(
                    np.array([1], dtype='uint'),
                    modelparams,
                    expparams['x'] if self._expparams_scalar else expparams)
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 1 hr to fix
        src/qinfer/derived_models.py on lines 318..321

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 41.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                pr1 = self.underlying_model.likelihood(
                    np.array([1], dtype='uint'),
                    modelparams,
                    expparams['x'] if self._expparams_scalar else expparams)
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 1 hr to fix
        src/qinfer/derived_models.py on lines 337..340

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 41.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

            def simulate_experiment(self, modelparams, expparams, repeat=1):
                super(RandomWalkModel, self).simulate_experiment(modelparams, expparams, repeat)
                return self.underlying_model.simulate_experiment(modelparams, expparams, repeat)
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 1 hr to fix
        src/qinfer/derived_models.py on lines 697..699

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 40.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

            def simulate_experiment(self, modelparams, expparams, repeat=1):
                super(MLEModel, self).simulate_experiment(modelparams, expparams, repeat)
                return self.underlying_model.simulate_experiment(modelparams, expparams, repeat)
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 1 hr to fix
        src/qinfer/derived_models.py on lines 729..731

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 40.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                        chol[(np.s_[:],) + self._srw_tri_idxs] = modelparams[:, self._srw_idxs]
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 1 hr to fix
        src/qinfer/derived_models.py on lines 916..916

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 38.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                        chol[(np.s_[:],) + self._srw_tri_idxs] = modelparams[:, self._srw_idxs]
        Severity: Major
        Found in src/qinfer/derived_models.py and 1 other location - About 1 hr to fix
        src/qinfer/derived_models.py on lines 938..938

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 38.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

                    new_mps[:, :self.underlying_model.n_modelparams] = self._inv_transform(
                            new_mps[:, :self.underlying_model.n_modelparams]
        Severity: Minor
        Found in src/qinfer/derived_models.py and 1 other location - About 55 mins to fix
        src/qinfer/derived_models.py on lines 949..950

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 37.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

                    new_mps[:, :self.underlying_model.n_modelparams] = self._transform(
                            new_mps[:, :self.underlying_model.n_modelparams]
        Severity: Minor
        Found in src/qinfer/derived_models.py and 1 other location - About 55 mins to fix
        src/qinfer/derived_models.py on lines 955..956

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 37.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

                prs = np.tile(prs, (outcomes.shape[0],1,1,1)).transpose((1,0,2,3))
        Severity: Minor
        Found in src/qinfer/derived_models.py and 1 other location - About 50 mins to fix
        src/qinfer/test_models.py on lines 340..340

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 36.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                prs = self.underlying_model.likelihood(
                    self.underlying_domain.values[:-1],
                    modelparams,
                    expparams['x'] if self._expparams_scalar else expparams) 
        Severity: Minor
        Found in src/qinfer/derived_models.py and 1 other location - About 45 mins to fix
        src/qinfer/derived_models.py on lines 663..666

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 35.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                prs[:-1,...] = self.underlying_model.likelihood(
                    self.underlying_domain.values[:-1],
                    modelparams,
                    expparams['x'] if self._expparams_scalar else expparams) 
        Severity: Minor
        Found in src/qinfer/derived_models.py and 1 other location - About 45 mins to fix
        src/qinfer/derived_models.py on lines 636..639

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 35.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 3 locations. Consider refactoring.
        Open

                if not (underlying_model.is_n_outcomes_constant and underlying_model.n_outcomes(None) == 2):
                    raise ValueError("Decorated model must be a two-outcome model.")
        Severity: Major
        Found in src/qinfer/derived_models.py and 2 other locations - About 40 mins to fix
        src/qinfer/ale.py on lines 116..117
        src/qinfer/derived_models.py on lines 400..401

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 34.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 3 locations. Consider refactoring.
        Open

                if not (underlying_model.is_n_outcomes_constant and underlying_model.n_outcomes(None) == 2):
                    raise ValueError("Decorated model must be a two-outcome model.")
        Severity: Major
        Found in src/qinfer/derived_models.py and 2 other locations - About 40 mins to fix
        src/qinfer/ale.py on lines 116..117
        src/qinfer/derived_models.py on lines 240..241

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 34.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Identical blocks of code found in 2 locations. Consider refactoring.
        Open

                return [IntegerDomain(min=0,max=n_o-1) for n_o in self.n_outcomes(expparams)]
        Severity: Minor
        Found in src/qinfer/derived_models.py and 1 other location - About 30 mins to fix
        src/qinfer/abstract_model.py on lines 627..630

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 32.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Expected 2 blank lines after class or function definition, found 1
        Open

        PoisonModes = enum.enum("ALE", "MLE")
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                For efficiency, concrete subclasses should override this method 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Continuation line under-indented for visual indent
        Open

                    expparams['x'] if self._expparams_scalar else expparams
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        Missing whitespace after ','
        Open

                return outcomes[0,0,0] if outcomes.size == 1 else outcomes
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Whitespace after '('
        Open

        def rmfield( a, *fieldnames_to_remove ):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid extraneous whitespace.

        Avoid extraneous whitespace in these situations:
        - Immediately inside parentheses, brackets or braces.
        - Immediately before a comma, semicolon, or colon.
        
        Okay: spam(ham[1], {eggs: 2})
        E201: spam( ham[1], {eggs: 2})
        E201: spam(ham[ 1], {eggs: 2})
        E201: spam(ham[1], { eggs: 2})
        E202: spam(ham[1], {eggs: 2} )
        E202: spam(ham[1 ], {eggs: 2})
        E202: spam(ham[1], {eggs: 2 })
        
        E203: if x == 4: print x, y; x, y = y , x
        E203: if x == 4: print x, y ; x, y = y, x
        E203: if x == 4 : print x, y; x, y = y, x

        Line too long (81 > 79 characters)
        Open

                    epsilon *= binom_est_error(p=L, N=self._n_samples, hedge=self._hedge)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (80 > 79 characters)
        Open

                of the assumptions made about `~qinfer.abstract_model.Model` subclasses.
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (90 > 79 characters)
        Open

                # This assumption could in principle be generalized, but not worth the effort now.
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Expected 1 blank line, found 0
        Open

            def __init__(self, underlying_model):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Line too long (97 > 79 characters)
        Open

                    self._expparams_dtype = [('x', underlying_model.expparams_dtype), ('n_meas', 'uint')]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                Returns `True` iff all of the given expparams 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (100 > 79 characters)
        Open

                if not (underlying_model.is_n_outcomes_constant and underlying_model.n_outcomes(None) == 2):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                scaled_outcomes = (outcomes[np.newaxis,:,np.newaxis,np.newaxis] - mu) / sigma
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (80 > 79 characters)
        Open

            using the multinomial distribution to calculate the new likelihood function.
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Whitespace after '['
        Open

            return a[ [ name for name in a.dtype.names if name not in fieldnames_to_remove ] ]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid extraneous whitespace.

        Avoid extraneous whitespace in these situations:
        - Immediately inside parentheses, brackets or braces.
        - Immediately before a comma, semicolon, or colon.
        
        Okay: spam(ham[1], {eggs: 2})
        E201: spam( ham[1], {eggs: 2})
        E201: spam(ham[ 1], {eggs: 2})
        E201: spam(ham[1], { eggs: 2})
        E202: spam(ham[1], {eggs: 2} )
        E202: spam(ham[1 ], {eggs: 2})
        E202: spam(ham[1], {eggs: 2 })
        
        E203: if x == 4: print x, y; x, y = y , x
        E203: if x == 4: print x, y ; x, y = y, x
        E203: if x == 4 : print x, y; x, y = y, x

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (83 > 79 characters)
        Open

                # Note that we need to add a new axis to shift the underlying outcomes left
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                of a D-outcome model to be decorated by the multinomial distribution. 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (80 > 79 characters)
        Open

        ## FUNCTIONS ###################################################################
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Whitespace before ')'
        Open

        def rmfield( a, *fieldnames_to_remove ):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid extraneous whitespace.

        Avoid extraneous whitespace in these situations:
        - Immediately inside parentheses, brackets or braces.
        - Immediately before a comma, semicolon, or colon.
        
        Okay: spam(ham[1], {eggs: 2})
        E201: spam( ham[1], {eggs: 2})
        E201: spam(ham[ 1], {eggs: 2})
        E201: spam(ham[1], { eggs: 2})
        E202: spam(ham[1], {eggs: 2} )
        E202: spam(ham[1 ], {eggs: 2})
        E202: spam(ham[1], {eggs: 2 })
        
        E203: if x == 4: print x, y; x, y = y , x
        E203: if x == 4: print x, y ; x, y = y, x
        E203: if x == 4 : print x, y; x, y = y, x

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Expected 2 blank lines, found 1
        Open

        class PoisonedModel(DerivedModel):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (80 > 79 characters)
        Open

                    property, or, in the case where ``n_outcomes_constant`` is ``True``,
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                return [IntegerDomain(min=0,max=n_o-1) for n_o in self.n_outcomes(expparams)]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                scaled_outcomes = (outcomes[np.newaxis,:,np.newaxis,np.newaxis] - mu) / sigma
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        At least two spaces before inline comment
        Open

        from __future__ import division # Ensures that a/b is always a float.
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate inline comments by at least two spaces.

        An inline comment is a comment on the same line as a statement.
        Inline comments should be separated by at least two spaces from the
        statement. They should start with a # and a single space.
        
        Each line of a block comment starts with a # and a single space
        (unless it is indented text inside the comment).
        
        Okay: x = x + 1  # Increment x
        Okay: x = x + 1    # Increment x
        Okay: # Block comment
        E261: x = x + 1 # Increment x
        E262: x = x + 1  #Increment x
        E262: x = x + 1  #  Increment x
        E265: #Block comment
        E266: ### Block comment

        At least two spaces before inline comment
        Open

        from qinfer._lib import enum # <- TODO: replace with flufl.enum!
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate inline comments by at least two spaces.

        An inline comment is a comment on the same line as a statement.
        Inline comments should be separated by at least two spaces from the
        statement. They should start with a # and a single space.
        
        Each line of a block comment starts with a # and a single space
        (unless it is indented text inside the comment).
        
        Okay: x = x + 1  # Increment x
        Okay: x = x + 1    # Increment x
        Okay: # Block comment
        E261: x = x + 1 # Increment x
        E262: x = x + 1  #Increment x
        E262: x = x + 1  #  Increment x
        E265: #Block comment
        E266: ### Block comment

        Line too long (86 > 79 characters)
        Open

                super(PoisonedModel, self).simulate_experiment(modelparams, expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (91 > 79 characters)
        Open

                    self._expparams_dtype = underlying_model.expparams_dtype + [('n_meas', 'uint')]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                :param np.ndarray expparams: Array of expparamms 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Block comment should start with '# '
        Open

                #super(BinomialModel, self).simulate_experiment(modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate inline comments by at least two spaces.

        An inline comment is a comment on the same line as a statement.
        Inline comments should be separated by at least two spaces from the
        statement. They should start with a # and a single space.
        
        Each line of a block comment starts with a # and a single space
        (unless it is indented text inside the comment).
        
        Okay: x = x + 1  # Increment x
        Okay: x = x + 1    # Increment x
        Okay: # Block comment
        E261: x = x + 1 # Increment x
        E262: x = x + 1  #Increment x
        E262: x = x + 1  #  Increment x
        E265: #Block comment
        E266: ### Block comment

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                self._example_domain = MultinomialDomain(n_elements=self.n_sides, n_meas=3) 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                For efficiency, concrete subclasses should override this method 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                os = np.tile(os, (modelparams.shape[0],expparams.shape[0],1,1)).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Trailing whitespace
        Open

                L = multinomial_pdf(os, prs) 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (88 > 79 characters)
        Open

                return self.underlying_model.simulate_experiment(modelparams, expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Expected 2 blank lines, found 1
        Open

        class RandomWalkModel(DerivedModel):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Trailing whitespace
        Open

            The :math:`n\times n` covariance matrix of this distribution is 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

            :param random_walk_idxs: A list or ``np.slice`` of 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (140 > 79 characters)
        Open

                            raise ValueError('Diagonal covariance requested, but fixed_covariance has {} dimensions.'.format(fixed_covariance.ndim))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (137 > 79 characters)
        Open

                            raise ValueError('Dense covariance requested, but fixed_covariance has {} dimensions.'.format(fixed_covariance.ndim))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (80 > 79 characters)
        Open

                likelihood function to disagree. This is, strictly speaking, a violation
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (81 > 79 characters)
        Open

            :param qinfer.abstract_model.FiniteOutcomeModel underlying_model: An instance 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

            :param qinfer.abstract_model.FiniteOutcomeModel underlying_model: An instance 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                prs = np.tile(prs, (outcomes.shape[0],1,1,1)).transpose((1,0,2,3))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                prs = np.empty((n_sides,n_mps,n_eps))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (80 > 79 characters)
        Open

                    raise TypeError("Step distribution does not match model dimension.")
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                outputs a real number for each one, representing the scale of the 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Continuation line under-indented for visual indent
        Open

                tol=None, n_samples=None, hedge=None
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        Line too long (86 > 79 characters)
        Open

            return a[ [ name for name in a.dtype.names if name not in fieldnames_to_remove ] ]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Whitespace before ']'
        Open

            return a[ [ name for name in a.dtype.names if name not in fieldnames_to_remove ] ]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid extraneous whitespace.

        Avoid extraneous whitespace in these situations:
        - Immediately inside parentheses, brackets or braces.
        - Immediately before a comma, semicolon, or colon.
        
        Okay: spam(ham[1], {eggs: 2})
        E201: spam( ham[1], {eggs: 2})
        E201: spam(ham[ 1], {eggs: 2})
        E201: spam(ham[1], { eggs: 2})
        E202: spam(ham[1], {eggs: 2} )
        E202: spam(ham[1 ], {eggs: 2})
        E202: spam(ham[1], {eggs: 2 })
        
        E203: if x == 4: print x, y; x, y = y , x
        E203: if x == 4: print x, y ; x, y = y, x
        E203: if x == 4 : print x, y; x, y = y, x

        Expected 2 blank lines, found 1
        Open

        class DifferentiableBinomialModel(BinomialModel, DifferentiableModel):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Line too long (80 > 79 characters)
        Open

        ## CLASSES #####################################################################
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (84 > 79 characters)
        Open

                Given outcomes hypothesized for the underlying model, returns the likelihood
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Expected 2 blank lines, found 1
        Open

        class BinomialModel(DerivedModel):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Missing whitespace after ','
        Open

                return outcomes[0,0,0] if outcomes.size == 1 else outcomes
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

            Model representing finite numbers of iid samples from another model with 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (100 > 79 characters)
        Open

                if not (underlying_model.is_n_outcomes_constant and underlying_model.n_outcomes(None) == 2):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Too many blank lines (2)
        Open

            @property
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Trailing whitespace
        Open

                If a string is given instead of a function, 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                    ]) 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (119 > 79 characters)
        Open

                        if fixed_covariance.size != self._n_rw **2 or fixed_covariance.shape[-2] != fixed_covariance.shape[-1]:
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace around operator
        Open

                        if fixed_covariance.size != self._n_rw **2 or fixed_covariance.shape[-2] != fixed_covariance.shape[-1]:
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Surround operators with a single space on either side.

        - Always surround these binary operators with a single space on
          either side: assignment (=), augmented assignment (+=, -= etc.),
          comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
          Booleans (and, or, not).
        
        - If operators with different priorities are used, consider adding
          whitespace around the operators with the lowest priorities.
        
        Okay: i = i + 1
        Okay: submitted += 1
        Okay: x = x * 2 - 1
        Okay: hypot2 = x * x + y * y
        Okay: c = (a + b) * (a - b)
        Okay: foo(bar, key='word', *args, **kwargs)
        Okay: alpha[:-i]
        
        E225: i=i+1
        E225: submitted +=1
        E225: x = x /2 - 1
        E225: z = x **y
        E225: z = 1and 1
        E226: c = (a+b) * (a-b)
        E226: hypot2 = x*x + y*y
        E227: c = a|b
        E228: msg = fmt%(errno, errmsg)

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                os = np.tile(os, (modelparams.shape[0],expparams.shape[0],1,1)).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                return os[0,0,0] if os.size == 1 else os
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (83 > 79 characters)
        Open

                steps = self._step_dist.sample(n=modelparams.shape[0] * expparams.shape[0])
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                matrix (or diagonal thereof if ``diagonal`` is ``True``) of the 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                (of the underlying model) before gaussian noise is added, 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                        underlying_model.modelparam_names[idx] 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (91 > 79 characters)
        Open

                                    self._srw_names.append(r"\sigma_{{{},{}}}".format(name2,name1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Expected 2 blank lines, found 1
        Open

        def rmfield( a, *fieldnames_to_remove ):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Whitespace before ']'
        Open

            return a[ [ name for name in a.dtype.names if name not in fieldnames_to_remove ] ]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid extraneous whitespace.

        Avoid extraneous whitespace in these situations:
        - Immediately inside parentheses, brackets or braces.
        - Immediately before a comma, semicolon, or colon.
        
        Okay: spam(ham[1], {eggs: 2})
        E201: spam( ham[1], {eggs: 2})
        E201: spam(ham[ 1], {eggs: 2})
        E201: spam(ham[1], { eggs: 2})
        E202: spam(ham[1], {eggs: 2} )
        E202: spam(ham[1 ], {eggs: 2})
        E202: spam(ham[1], {eggs: 2 })
        
        E203: if x == 4: print x, y; x, y = y , x
        E203: if x == 4: print x, y ; x, y = y, x
        E203: if x == 4 : print x, y; x, y = y, x

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (80 > 79 characters)
        Open

                    binomial_pdf(expparams['n_meas'][np.newaxis, :], outcomes[idx], pr1)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (89 > 79 characters)
        Open

                return [RealDomain()] * len(expparams) if expparams is not None else RealDomain()
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (80 > 79 characters)
        Open

                    (modelparams[:, self._sigma2_slice].T)[:, np.newaxis, :, np.newaxis]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                prs = np.tile(prs, (outcomes.shape[0],1,1,1)).transpose((1,0,2,3))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (88 > 79 characters)
        Open

                    sample_multinomial(n_meas, prs[:,:,idx_n_meas], size=repeat)[np.newaxis,...]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                    sample_multinomial(n_meas, prs[:,:,idx_n_meas], size=repeat)[np.newaxis,...]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Expected 1 blank line, found 0
        Open

            def likelihood(self, outcomes, modelparams, expparams):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Trailing whitespace
        Open

            For diagonal covariance matrices, :math:`n` parameters are added to the model 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (80 > 79 characters)
        Open

            :param boolean diagonal: Whether the gaussian distribution covariance matrix
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (119 > 79 characters)
        Open

                    raise IndexError('random_walk_idxs out of bounds; must index (a subset of ) underlying_model modelparams.')
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Unexpected spaces around keyword / parameter equals
        Open

                    steps = scale * np.random.normal(size = (n_eps, n_mps, self._n_rw))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Don't use spaces around the '=' sign in function arguments.

        Don't use spaces around the '=' sign when used to indicate a
        keyword argument or a default parameter value, except when
        using a type annotation.
        
        Okay: def complex(real, imag=0.0):
        Okay: return magic(r=real, i=imag)
        Okay: boolean(a == b)
        Okay: boolean(a != b)
        Okay: boolean(a <= b)
        Okay: boolean(a >= b)
        Okay: def foo(arg: int = 42):
        Okay: async def foo(arg: int = 42):
        
        E251: def complex(real, imag = 0.0):
        E251: return magic(r = real, i = imag)
        E252: def complex(real, image: float=0.0):

        Closing bracket does not match visual indentation
        Open

            ):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (83 > 79 characters)
        Open

                # To find the marginalized likeihood, we now need the underlying likelihood
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (81 > 79 characters)
        Open

                # Demand that the underlying model always has the same number of outcomes
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Unexpected indentation (comment)
        Open

                    # shape (sides-1, n_mps, n_eps)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Use indent_size (PEP8 says 4) spaces per indentation level.

        For really old code that you don't want to mess up, you can continue
        to use 8-space tabs.
        
        Okay: a = 1
        Okay: if a == 0:\n    a = 1
        E111:   a = 1
        E114:   # a = 1
        
        Okay: for item in items:\n    pass
        E112: for item in items:\npass
        E115: for item in items:\n# Hi\n    pass
        
        Okay: a = 1\nb = 2
        E113: a = 1\n    b = 2
        E116: a = 1\n    # b = 2

        Missing whitespace after ','
        Open

                prs = np.tile(prs, (outcomes.shape[0],1,1,1)).transpose((1,0,2,3))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                ]).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Trailing whitespace
        Open

            Model such that after each time step, a random perturbation is 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (81 > 79 characters)
        Open

            For diagonal covariance matrices, :math:`n` parameters are added to the model 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                        ).reshape(self._n_rw, n_mps, n_eps).transpose((1,0,2))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (87 > 79 characters)
        Open

                        chol[(np.s_[:],) + self._srw_tri_idxs] = modelparams[:, self._srw_idxs]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Expected 2 blank lines after class or function definition, found 1
        Open

        if __name__ == "__main__":
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Missing whitespace after ','
        Open

                return self.underlying_model.likelihood(outcomes, modelparams[...,:self.underlying_model.n_modelparams], expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Unexpected spaces around keyword / parameter equals
        Open

                        steps = np.einsum('kij,kjl->kil', chol, np.random.normal(size = (n_mps, self._n_rw, n_eps)))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Don't use spaces around the '=' sign in function arguments.

        Don't use spaces around the '=' sign when used to indicate a
        keyword argument or a default parameter value, except when
        using a type annotation.
        
        Okay: def complex(real, imag=0.0):
        Okay: return magic(r=real, i=imag)
        Okay: boolean(a == b)
        Okay: boolean(a != b)
        Okay: boolean(a <= b)
        Okay: boolean(a >= b)
        Okay: def foo(arg: int = 42):
        Okay: async def foo(arg: int = 42):
        
        E251: def complex(real, imag = 0.0):
        E251: return magic(r = real, i = imag)
        E252: def complex(real, image: float=0.0):

        Line too long (83 > 79 characters)
        Open

                    new_mps[:, :self.underlying_model.n_modelparams] = self._inv_transform(
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                    new_mps = np.repeat(modelparams[:,:,np.newaxis], n_eps, axis=2)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Unexpected spaces around keyword / parameter equals
        Open

                            np.random.normal(size = (self._n_rw, n_mps * n_eps))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Don't use spaces around the '=' sign in function arguments.

        Don't use spaces around the '=' sign when used to indicate a
        keyword argument or a default parameter value, except when
        using a type annotation.
        
        Okay: def complex(real, imag=0.0):
        Okay: return magic(r=real, i=imag)
        Okay: boolean(a == b)
        Okay: boolean(a != b)
        Okay: boolean(a <= b)
        Okay: boolean(a >= b)
        Okay: def foo(arg: int = 42):
        Okay: async def foo(arg: int = 42):
        
        E251: def complex(real, imag = 0.0):
        E251: return magic(r = real, i = imag)
        E252: def complex(real, image: float=0.0):

        Line too long (108 > 79 characters)
        Open

                        steps = np.einsum('kij,kjl->kil', chol, np.random.normal(size = (n_mps, self._n_rw, n_eps)))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Unexpected spaces around keyword / parameter equals
        Open

                        steps = np.einsum('kij,kjl->kil', chol, np.random.normal(size = (n_mps, self._n_rw, n_eps)))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Don't use spaces around the '=' sign in function arguments.

        Don't use spaces around the '=' sign when used to indicate a
        keyword argument or a default parameter value, except when
        using a type annotation.
        
        Okay: def complex(real, imag=0.0):
        Okay: return magic(r=real, i=imag)
        Okay: boolean(a == b)
        Okay: boolean(a != b)
        Okay: boolean(a <= b)
        Okay: boolean(a >= b)
        Okay: def foo(arg: int = 42):
        Okay: async def foo(arg: int = 42):
        
        E251: def complex(real, imag = 0.0):
        E251: return magic(r = real, i = imag)
        E252: def complex(real, image: float=0.0):

        Missing whitespace after ','
        Open

                    new_mps = np.repeat(modelparams[np.newaxis,:,:], n_eps, axis=0).reshape((n_eps * n_mps, -1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (94 > 79 characters)
        Open

                    new_mps[:, self._rw_idxs] += steps.transpose((2,0,1)).reshape((n_eps * n_mps, -1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                    pos_std = np.greater_equal(modelparams[...,self._srw_idxs], 0).all(axis=-1)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                        ).reshape(self._n_rw, n_mps, n_eps).transpose((1,0,2))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Comparison to none should be 'if cond is not none:'
        Open

                if tol is None != n_samples is None:
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Comparison to singletons should use "is" or "is not".

        Comparisons to singletons like None should always be done
        with "is" or "is not", never the equality operators.
        
        Okay: if arg is not None:
        E711: if arg != None:
        E711: if None == arg:
        E712: if arg == True:
        E712: if False == arg:
        
        Also, beware of writing if x when you really mean if x is not None
        -- e.g. when testing whether a variable or argument that defaults to
        None was set to some other value.  The other value might have a type
        (such as a container) that could be false in a boolean context!

        Missing whitespace after ','
        Open

                return os[0,0,0] if os.size == 1 else os
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (84 > 79 characters)
        Open

                #     (idx_underlying_outcome, idx_outcome, idx_modelparam, idx_experiment).
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (85 > 79 characters)
        Open

                # Now we can rescale the outcomes to be random variates z drawn from N(0, 1).
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (83 > 79 characters)
        Open

                # Pr(underlying_outcome | model), so that we can sum over the idx_u_o axis.
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                prs = np.tile(prs, (outcomes.shape[0],1,1,1)).transpose((1,0,2,3))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                os = np.tile(os, (modelparams.shape[0],expparams.shape[0],1,1)).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                prs[:-1,...] = self.underlying_model.likelihood(
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (85 > 79 characters)
        Open

                return [IntegerDomain(min=0,max=n_o-1) for n_o in self.n_outcomes(expparams)]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (82 > 79 characters)
        Open

                    for idx_n_meas, n_meas in enumerate(expparams['n_meas'].astype('int'))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        At least two spaces before inline comment
        Open

                    expparams['n_meas'].astype('int'), # ← Really, NumPy?
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate inline comments by at least two spaces.

        An inline comment is a comment on the same line as a statement.
        Inline comments should be separated by at least two spaces from the
        statement. They should start with a # and a single space.
        
        Each line of a block comment starts with a # and a single space
        (unless it is indented text inside the comment).
        
        Okay: x = x + 1  # Increment x
        Okay: x = x + 1    # Increment x
        Okay: # Block comment
        E261: x = x + 1 # Increment x
        E262: x = x + 1  #Increment x
        E262: x = x + 1  #  Increment x
        E265: #Block comment
        E266: ### Block comment

        Missing whitespace after ','
        Open

                ]).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                ]).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Expected 2 blank lines, found 1
        Open

        class GaussianHyperparameterizedModel(DerivedModel):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Missing whitespace after ','
        Open

                return os[0,0,0] if os.size == 1 else os
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Whitespace after '['
        Open

            return a[ [ name for name in a.dtype.names if name not in fieldnames_to_remove ] ]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid extraneous whitespace.

        Avoid extraneous whitespace in these situations:
        - Immediately inside parentheses, brackets or braces.
        - Immediately before a comma, semicolon, or colon.
        
        Okay: spam(ham[1], {eggs: 2})
        E201: spam( ham[1], {eggs: 2})
        E201: spam(ham[ 1], {eggs: 2})
        E201: spam(ham[1], { eggs: 2})
        E202: spam(ham[1], {eggs: 2} )
        E202: spam(ham[1 ], {eggs: 2})
        E202: spam(ham[1], {eggs: 2 })
        
        E203: if x == 4: print x, y; x, y = y , x
        E203: if x == 4: print x, y ; x, y = y, x
        E203: if x == 4 : print x, y; x, y = y, x

        Line too long (97 > 79 characters)
        Open

                    self._expparams_dtype = [('x', underlying_model.expparams_dtype), ('n_meas', 'uint')]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (80 > 79 characters)
        Open

            reconstructing likelihoods from sample data. The true likelihood given by an
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (81 > 79 characters)
        Open

                super(MLEModel, self).simulate_experiment(modelparams, expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                # Standard combinatorial formula equal to the number of 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (88 > 79 characters)
        Open

                return self.underlying_model.simulate_experiment(modelparams, expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                    expparams['x'] if self._expparams_scalar else expparams) 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                    sample_multinomial(n_meas, prs[:,:,idx_n_meas], size=repeat)[np.newaxis,...]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (81 > 79 characters)
        Open

                return self.underlying_model.likelihood(outcomes, modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                presumed unknown and parameters are appended to the model describing 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (84 > 79 characters)
        Open

                #     (idx_underlying_outcome,           1, idx_modelparam,              1).
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (111 > 79 characters)
        Open

                            raise ValueError('fixed_covariance expected to be square with width {}'.format(self._n_rw))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (88 > 79 characters)
        Open

                if np.max(np.arange(self.n_modelparams)[self._rw_idxs]) > np.max(explicit_idxs):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                        
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (91 > 79 characters)
        Open

                # We can then compute the conditional likelihood Pr(z | underlying_outcome, model).
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (96 > 79 characters)
        Open

                super(GaussianHyperparameterizedModel, self).simulate_experiment(modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                return self.underlying_model.simulate_experiment(modelparams[...,:self.underlying_model.n_modelparams], expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (123 > 79 characters)
        Open

                return self.underlying_model.likelihood(outcomes, modelparams[...,:self.underlying_model.n_modelparams], expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (130 > 79 characters)
        Open

                return self.underlying_model.simulate_experiment(modelparams[...,:self.underlying_model.n_modelparams], expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Continuation line unaligned for hanging indent
        Open

                        for ep in expparams
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        Missing whitespace after ','
        Open

                    new_mps[:, self._rw_idxs] += steps.transpose((2,0,1)).reshape((n_eps * n_mps, -1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (104 > 79 characters)
        Open

                    new_mps = np.repeat(modelparams[np.newaxis,:,:], n_eps, axis=0).reshape((n_eps * n_mps, -1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                    new_mps = np.repeat(modelparams[np.newaxis,:,:], n_eps, axis=0).reshape((n_eps * n_mps, -1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Trailing whitespace
        Open

            For dense covariance matrices, :math:`n(n+1)/2` parameters are added to 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

            :param model_transformation: Either ``None`` or a pair of functions 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (89 > 79 characters)
        Open

                return self.underlying_model.likelihood(binary_outcomes, original_mps, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Expected 2 blank lines, found 1
        Open

        class MultinomialModel(DerivedModel):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                Returns `True` iff all of the given expparams 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (82 > 79 characters)
        Open

                super(MultinomialModel, self).likelihood(outcomes, modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

            added to each model parameter vector according to a 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                return os[0,0,0] if os.size == 1 else os
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (85 > 79 characters)
        Open

                ``(transform, inv_transform)`` specifying a transformation of ``modelparams``
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (97 > 79 characters)
        Open

                super(GaussianHyperparameterizedModel, self).likelihood(outcomes, modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                        # the following list of indeces tells us how to populate 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (85 > 79 characters)
        Open

                scaled_outcomes = (outcomes[np.newaxis,:,np.newaxis,np.newaxis] - mu) / sigma
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                        
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                scaled_outcomes = (outcomes[np.newaxis,:,np.newaxis,np.newaxis] - mu) / sigma
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (91 > 79 characters)
        Open

                    self._expparams_dtype = underlying_model.expparams_dtype + [('n_meas', 'uint')]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Too many blank lines (2)
        Open

            @property
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Trailing whitespace
        Open

                    expparams['x'] if self._expparams_scalar else expparams) 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                prs = np.tile(prs, (outcomes.shape[0],1,1,1)).transpose((1,0,2,3))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                os = np.tile(os, (modelparams.shape[0],expparams.shape[0],1,1)).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                    self, underlying_model, random_walk_idxs='all', 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (80 > 79 characters)
        Open

                            np.arange(self._n_rw * (self._n_rw + 1) / 2)).astype(np.int)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Continuation line under-indented for visual indent
        Open

                            np.arange(self._n_rw * (self._n_rw + 1) / 2)).astype(np.int)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (112 > 79 characters)
        Open

                ud_valid = self.underlying_model.are_models_valid(modelparams[...,:self.underlying_model.n_modelparams])
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        The backslash is redundant between brackets
        Open

                    cov = (self._fixed_scale ** 2 if self._has_fixed_covariance \
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid explicit line join between brackets.

        The preferred way of wrapping long lines is by using Python's
        implied line continuation inside parentheses, brackets and braces.
        Long lines can be broken over multiple lines by wrapping expressions
        in parentheses.  These should be used in preference to using a
        backslash for line continuation.
        
        E502: aaa = [123, \\n       123]
        E502: aaa = ("bbb " \\n       "ccc")
        
        Okay: aaa = [123,\n       123]
        Okay: aaa = ("bbb "\n       "ccc")
        Okay: aaa = "bbb " \\n    "ccc"
        Okay: aaa = 123  # \\

        Trailing whitespace
        Open

                            self._fixed_chol, 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Unexpected spaces around keyword / parameter equals
        Open

                            np.random.normal(size = (self._n_rw, n_mps * n_eps))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Don't use spaces around the '=' sign in function arguments.

        Don't use spaces around the '=' sign when used to indicate a
        keyword argument or a default parameter value, except when
        using a type annotation.
        
        Okay: def complex(real, imag=0.0):
        Okay: return magic(r=real, i=imag)
        Okay: boolean(a == b)
        Okay: boolean(a != b)
        Okay: boolean(a <= b)
        Okay: boolean(a >= b)
        Okay: def foo(arg: int = 42):
        Okay: async def foo(arg: int = 42):
        
        E251: def complex(real, imag = 0.0):
        E251: return magic(r = real, i = imag)
        E252: def complex(real, image: float=0.0):

        Missing whitespace after ','
        Open

                    new_mps = new_mps.reshape((n_eps, n_mps, -1)).transpose((1,2,0))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (82 > 79 characters)
        Open

            assert L.shape == (os.shape[0], mps.shape[0], eps.shape[0]), "Shape mismatch."
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Unexpected indentation (comment)
        Open

                    # shape (sides, n_mps, n_eps)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Use indent_size (PEP8 says 4) spaces per indentation level.

        For really old code that you don't want to mess up, you can continue
        to use 8-space tabs.
        
        Okay: a = 1
        Okay: if a == 0:\n    a = 1
        E111:   a = 1
        E114:   # a = 1
        
        Okay: for item in items:\n    pass
        E112: for item in items:\npass
        E115: for item in items:\n# Hi\n    pass
        
        Okay: a = 1\nb = 2
        E113: a = 1\n    b = 2
        E116: a = 1\n    # b = 2

        Missing whitespace after ','
        Open

                    sample_multinomial(n_meas, prs[:,:,idx_n_meas], size=repeat)[np.newaxis,...]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (93 > 79 characters)
        Open

                steps = steps.reshape((modelparams.shape[0], expparams.shape[0], self.n_modelparams))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (80 > 79 characters)
        Open

                explicit_idxs = np.arange(underlying_model.n_modelparams)[self._rw_idxs]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

            @property 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (89 > 79 characters)
        Open

                super(GaussianRandomWalkModel, self).likelihood(outcomes, modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                    steps = steps.transpose((1,2,0))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                    steps = steps.transpose((1,2,0))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                    new_mps = new_mps.reshape((n_eps, n_mps, -1)).transpose((1,2,0))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (110 > 79 characters)
        Open

            assert m.call_count == reduce(op.mul, [os.shape[0], mps.shape[0], eps.shape[0]]), "Call count inaccurate."
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (83 > 79 characters)
        Open

                self._example_domain = MultinomialDomain(n_elements=self.n_sides, n_meas=3) 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                return self._expparams_dtype  
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                os = np.tile(os, (modelparams.shape[0],expparams.shape[0],1,1)).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Too many blank lines (2)
        Open

                os = np.concatenate([
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                Indeces larger than ``underlying_model.n_modelparams`` should not 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                gaussian distribution. If set to ``None`` (default), this matrix is 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Continuation line with same indent as next logical line
        Open

                ):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        Line too long (90 > 79 characters)
        Open

                # Save a wee bit of time by only calculating the likelihoods of outcomes 0,...,d-2
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (92 > 79 characters)
        Open

                        self._srw_names = [r"\sigma_{{{}}}".format(name) for name in self._rw_names]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Expected 1 blank line, found 0
        Open

            @property
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Missing whitespace after ','
        Open

                prs = np.tile(prs, (outcomes.shape[0],1,1,1)).transpose((1,0,2,3))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Too many blank lines (2)
        Open

            ## METHODS ##
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

            either fixed and known, or its entries are treated as unknown, 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (84 > 79 characters)
        Open

            eps = np.array([(0.5 * np.pi, 10), (0.51 * np.pi, 10)], dtype=m.expparams_dtype)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

            :param fixed_covariance: An ``np.ndarray`` specifying the fixed covariance 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                is diagonal, or densely populated. Default is 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (85 > 79 characters)
        Open

                    raise IndexError('At least one model parameter must take a random walk.')
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                                    self._srw_names.append(r"\sigma_{{{},{}}}".format(name2,name1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Trailing whitespace
        Open

                    MultinomialDomain(n_elements=self.n_sides, n_meas=ep['n_meas']) 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (155 > 79 characters)
        Open

                            raise ValueError('fixed_covariance dimension, {}, inconsistent with number of parameters, {}'.format(fixed_covariance.size, self.n_rw))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                :param np.ndarray expparams: Array of expparamms 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Trailing whitespace
        Open

                Returns the covariance of the gaussian noise process for one 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Expected 2 blank lines, found 1
        Open

        class GaussianRandomWalkModel(DerivedModel):
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Unexpected spaces around keyword / parameter equals
        Open

                    steps = scale * np.random.normal(size = (n_eps, n_mps, self._n_rw))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Don't use spaces around the '=' sign in function arguments.

        Don't use spaces around the '=' sign when used to indicate a
        keyword argument or a default parameter value, except when
        using a type annotation.
        
        Okay: def complex(real, imag=0.0):
        Okay: return magic(r=real, i=imag)
        Okay: boolean(a == b)
        Okay: boolean(a != b)
        Okay: boolean(a <= b)
        Okay: boolean(a >= b)
        Okay: def foo(arg: int = 42):
        Okay: async def foo(arg: int = 42):
        
        E251: def complex(real, imag = 0.0):
        E251: return magic(r = real, i = imag)
        E252: def complex(real, image: float=0.0):

        Trailing whitespace
        Open

                    fixed_covariance=None, diagonal=True, 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Missing whitespace after ','
        Open

                    new_mps[:, self._rw_idxs] += steps.transpose((2,0,1)).reshape((n_eps * n_mps, -1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Continuation line under-indented for visual indent
        Open

                            np.arange(self._n_rw)).astype(np.int)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        The backslash is redundant between brackets
        Open

                        self._srw_idxs = (underlying_model.n_modelparams + \
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Avoid explicit line join between brackets.

        The preferred way of wrapping long lines is by using Python's
        implied line continuation inside parentheses, brackets and braces.
        Long lines can be broken over multiple lines by wrapping expressions
        in parentheses.  These should be used in preference to using a
        backslash for line continuation.
        
        E502: aaa = [123, \\n       123]
        E502: aaa = ("bbb " \\n       "ccc")
        
        Okay: aaa = [123,\n       123]
        Okay: aaa = ("bbb "\n       "ccc")
        Okay: aaa = "bbb " \\n    "ccc"
        Okay: aaa = 123  # \\

        Too many blank lines (3)
        Open

            ## PROPERTIES ##
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Separate top-level function and class definitions with two blank lines.

        Method definitions inside a class are separated by a single blank
        line.
        
        Extra blank lines may be used (sparingly) to separate groups of
        related functions.  Blank lines may be omitted between a bunch of
        related one-liners (e.g. a set of dummy implementations).
        
        Use blank lines in functions, sparingly, to indicate logical
        sections.
        
        Okay: def a():\n    pass\n\n\ndef b():\n    pass
        Okay: def a():\n    pass\n\n\nasync def b():\n    pass
        Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
        Okay: default = 1\nfoo = 1
        Okay: classify = 1\nfoo = 1
        
        E301: class Foo:\n    b = 0\n    def bar():\n        pass
        E302: def a():\n    pass\n\ndef b(n):\n    pass
        E302: def a():\n    pass\n\nasync def b(n):\n    pass
        E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
        E303: def a():\n\n\n\n    pass
        E304: @decorator\n\ndef a():\n    pass
        E305: def a():\n    pass\na()
        E306: def a():\n    def b():\n        pass\n    def c():\n        pass

        Missing whitespace after ','
        Open

                    new_mps = np.repeat(modelparams[:,:,np.newaxis], n_eps, axis=2)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Missing whitespace after ','
        Open

                ud_valid = self.underlying_model.are_models_valid(modelparams[...,:self.underlying_model.n_modelparams])
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (87 > 79 characters)
        Open

                    pos_std = np.greater_equal(modelparams[...,self._srw_idxs], 0).all(axis=-1)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Continuation line under-indented for visual indent
        Open

                        else np.mean(modelparams[:, self._srw_idxs] ** 2, axis=0))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Continuation lines indentation.

        Continuation lines should align wrapped elements either vertically
        using Python's implicit line joining inside parentheses, brackets
        and braces, or using a hanging indent.
        
        When using a hanging indent these considerations should be applied:
        - there should be no arguments on the first line, and
        - further indentation should be used to clearly distinguish itself
          as a continuation line.
        
        Okay: a = (\n)
        E123: a = (\n    )
        
        Okay: a = (\n    42)
        E121: a = (\n   42)
        E122: a = (\n42)
        E123: a = (\n    42\n    )
        E124: a = (24,\n     42\n)
        E125: if (\n    b):\n    pass
        E126: a = (\n        42)
        E127: a = (24,\n      42)
        E128: a = (24,\n    42)
        E129: if (a or\n    b):\n    pass
        E131: a = (\n    42\n 24)

        Line too long (87 > 79 characters)
        Open

                        chol[(np.s_[:],) + self._srw_tri_idxs] = modelparams[:, self._srw_idxs]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (88 > 79 characters)
        Open

                    # in the latter, each particle gets dispersed by its own belief of the scale
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (80 > 79 characters)
        Open

                        # each particle gets dispersed by its own belief of the cholesky
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

          
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (92 > 79 characters)
        Open

                os = np.tile(os, (modelparams.shape[0],expparams.shape[0],1,1)).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                os = np.tile(os, (modelparams.shape[0],expparams.shape[0],1,1)).transpose((3,2,0,1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Line too long (81 > 79 characters)
        Open

                super(MultinomialModel, self).simulate_experiment(modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (90 > 79 characters)
        Open

                # Save a wee bit of time by only calculating the likelihoods of outcomes 0,...,d-2
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Missing whitespace after ','
        Open

                prs = np.empty((n_sides,n_mps,n_eps))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Each comma, semicolon or colon should be followed by whitespace.

        Okay: [a, b]
        Okay: (3,)
        Okay: a[1:4]
        Okay: a[:4]
        Okay: a[1:]
        Okay: a[1:4:2]
        E231: ['a','b']
        E231: foo(bar,baz)
        E231: [{'a':'b'}]

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (81 > 79 characters)
        Open

                super(RandomWalkModel, self).likelihood(outcomes, modelparams, expparams)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (88 > 79 characters)
        Open

                super(RandomWalkModel, self).simulate_experiment(modelparams, expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (88 > 79 characters)
        Open

                return self.underlying_model.simulate_experiment(modelparams, expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Trailing whitespace
        Open

                given experiment. This is useful if different experiments have 
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (81 > 79 characters)
        Open

                different time lengths and therefore incur different dispersion amounts.\
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (82 > 79 characters)
        Open

                                    self._srw_names.append(r"\sigma_{{{}}}".format(name1))
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                    
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (96 > 79 characters)
        Open

                super(GaussianRandomWalkModel, self).simulate_experiment(modelparams, expparams, repeat)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

                
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        Line too long (103 > 79 characters)
        Open

                    scale = self._fixed_scale if self._has_fixed_covariance else modelparams[:, self._srw_idxs]
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Line too long (84 > 79 characters)
        Open

                    # the following works when _fixed_scale has shape (n_rw) or (n_mps,n_rw)
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Limit all lines to a maximum of 79 characters.

        There are still many devices around that are limited to 80 character
        lines; plus, limiting windows to 80 characters makes it possible to
        have several windows side-by-side.  The default wrapping on such
        devices looks ugly.  Therefore, please limit all lines to a maximum
        of 79 characters. For flowing long blocks of text (docstrings or
        comments), limiting the length to 72 characters is recommended.
        
        Reports error E501.

        Blank line contains whitespace
        Open

            
        Severity: Minor
        Found in src/qinfer/derived_models.py by pep8

        Trailing whitespace is superfluous.

        The warning returned varies on whether the line itself is blank,
        for easier filtering for those who want to indent their blank lines.
        
        Okay: spam(1)\n#
        W291: spam(1) \n#
        W293: class Foo(object):\n    \n    bang = 12

        There are no issues that match your filters.

        Category
        Status