WenjieDu/PyPOTS

View on GitHub

Showing 455 of 455 total issues

File layers.py has 711 lines of code (exceeds 250 allowed). Consider refactoring.
Open

"""

"""

# Created by Wenjie Du <wenjay.du@gmail.com>
Severity: Major
Found in pypots/nn/modules/fedformer/layers.py - About 1 day to fix

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

        @staticmethod
        def time_embedding(pos, d_model=128):
            pe = torch.zeros(pos.shape[0], pos.shape[1], d_model).to(pos.device)
            position = pos.unsqueeze(2)
            div_term = 1 / torch.pow(10000.0, torch.arange(0, d_model, 2, device=pos.device) / d_model)
    Severity: Major
    Found in pypots/imputation/csdi/core.py and 1 other location - About 1 day to fix
    pypots/forecasting/csdi/core.py on lines 58..65

    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 158.

    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

        @staticmethod
        def time_embedding(pos, d_model=128):
            pe = torch.zeros(pos.shape[0], pos.shape[1], d_model).to(pos.device)
            position = pos.unsqueeze(2)
            div_term = 1 / torch.pow(10000.0, torch.arange(0, d_model, 2, device=pos.device) / d_model)
    Severity: Major
    Found in pypots/forecasting/csdi/core.py and 1 other location - About 1 day to fix
    pypots/imputation/csdi/core.py on lines 56..63

    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 158.

    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

            if self.individual:
                self.linears = nn.ModuleList()
                self.dropouts = nn.ModuleList()
                self.flattens = nn.ModuleList()
                for i in range(self.n_features):
    Severity: Major
    Found in pypots/nn/modules/patchtst/layers.py and 1 other location - About 1 day to fix
    pypots/nn/modules/patchtst/layers.py on lines 154..165

    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 148.

    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

            if self.individual:
                self.linears = nn.ModuleList()
                self.dropouts = nn.ModuleList()
                self.flattens = nn.ModuleList()
                for i in range(self.n_features):
    Severity: Major
    Found in pypots/nn/modules/patchtst/layers.py and 1 other location - About 1 day to fix
    pypots/nn/modules/patchtst/layers.py on lines 107..118

    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 148.

    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

            if self.individual:
                x_out = []
                for i in range(self.n_features):
                    z = self.flattens[i](x[:, i, :, :])  # z: [bs x d_model * num_patch]
                    z = self.linears[i](z)  # z: [bs x forecast_len]
    Severity: Major
    Found in pypots/nn/modules/patchtst/layers.py and 1 other location - About 1 day to fix
    pypots/nn/modules/patchtst/layers.py on lines 168..179

    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 143.

    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

            if self.individual:
                x_out = []
                for i in range(self.n_features):
                    z = self.flattens[i](x[:, i, :, :])  # z: [bs x d_model * patch_num]
                    z = self.linears[i](z)  # z: [bs x target_window]
    Severity: Major
    Found in pypots/nn/modules/patchtst/layers.py and 1 other location - About 1 day to fix
    pypots/nn/modules/patchtst/layers.py on lines 125..136

    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 143.

    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 4 locations. Consider refactoring.
    Open

            modules_P += [
                nn.ReplicationPad1d((pad_l, pad_r)),
                nn.Conv1d(
                    in_planes * prev_size,
                    int(in_planes * size_hidden),
    Severity: Major
    Found in pypots/nn/modules/scinet/layers.py and 3 other locations - About 7 hrs to fix
    pypots/nn/modules/scinet/layers.py on lines 83..102
    pypots/nn/modules/scinet/layers.py on lines 105..124
    pypots/nn/modules/scinet/layers.py on lines 126..145

    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 117.

    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 4 locations. Consider refactoring.
    Open

            modules_U += [
                nn.ReplicationPad1d((pad_l, pad_r)),
                nn.Conv1d(
                    in_planes * prev_size,
                    int(in_planes * size_hidden),
    Severity: Major
    Found in pypots/nn/modules/scinet/layers.py and 3 other locations - About 7 hrs to fix
    pypots/nn/modules/scinet/layers.py on lines 62..81
    pypots/nn/modules/scinet/layers.py on lines 105..124
    pypots/nn/modules/scinet/layers.py on lines 126..145

    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 117.

    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 4 locations. Consider refactoring.
    Open

            modules_psi += [
                nn.ReplicationPad1d((pad_l, pad_r)),
                nn.Conv1d(
                    in_planes * prev_size,
                    int(in_planes * size_hidden),
    Severity: Major
    Found in pypots/nn/modules/scinet/layers.py and 3 other locations - About 7 hrs to fix
    pypots/nn/modules/scinet/layers.py on lines 62..81
    pypots/nn/modules/scinet/layers.py on lines 83..102
    pypots/nn/modules/scinet/layers.py on lines 105..124

    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 117.

    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 4 locations. Consider refactoring.
    Open

            modules_phi += [
                nn.ReplicationPad1d((pad_l, pad_r)),
                nn.Conv1d(
                    in_planes * prev_size,
                    int(in_planes * size_hidden),
    Severity: Major
    Found in pypots/nn/modules/scinet/layers.py and 3 other locations - About 7 hrs to fix
    pypots/nn/modules/scinet/layers.py on lines 62..81
    pypots/nn/modules/scinet/layers.py on lines 83..102
    pypots/nn/modules/scinet/layers.py on lines 126..145

    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 117.

    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

    File lsh_attention.py has 471 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    """
    Locality-Sensitive Hashing (LSH) Attention from https://github.com/lucidrains/reformer-pytorch
    """
    
    # Created by Wenjie Du <wenjay.du@gmail.com>
    Severity: Minor
    Found in pypots/nn/modules/reformer/lsh_attention.py - About 7 hrs to fix

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

              for i in range(len(trend_list_reverse) - 1):
                  out_high_res = self.up_sampling_layers[i](out_low)
                  out_high = out_high + out_high_res
                  out_low = out_high
                  if i + 2 <= len(trend_list_reverse) - 1:
      Severity: Major
      Found in pypots/nn/modules/timemixer/layers.py and 1 other location - About 7 hrs to fix
      pypots/nn/modules/timemixer/layers.py on lines 71..77

      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 113.

      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

              for i in range(len(season_list) - 1):
                  out_low_res = self.downsampling_layers[i](out_high)
                  out_low = out_low + out_low_res
                  out_high = out_low
                  if i + 2 <= len(season_list) - 1:
      Severity: Major
      Found in pypots/nn/modules/timemixer/layers.py and 1 other location - About 7 hrs to fix
      pypots/nn/modules/timemixer/layers.py on lines 121..127

      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 113.

      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

              for i, x in zip(
                  range(len(x_enc)),
                  x_enc,
              ):
                  B, T, N = x.size()
      Severity: Major
      Found in pypots/nn/modules/timemixer/backbone.py and 1 other location - About 6 hrs to fix
      pypots/nn/modules/timemixer/backbone.py on lines 207..225

      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 105.

      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 x_mark_enc is not None:
                  for i, x, x_mark in zip(range(len(x_enc)), x_enc, x_mark_enc):
                      B, T, N = x.size()
                      x = self.normalize_layers[i](x, "norm")
                      if self.channel_independence == 1:
      Severity: Major
      Found in pypots/nn/modules/timemixer/backbone.py and 1 other location - About 6 hrs to fix
      pypots/nn/modules/timemixer/backbone.py on lines 304..312

      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 105.

      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

      File base.py has 423 lines of code (exceeds 250 allowed). Consider refactoring.
      Open

      """
      The base (abstract) classes for models in PyPOTS.
      """
      
      # Created by Wenjie Du <wenjay.du@gmail.com>
      Severity: Minor
      Found in pypots/base.py - About 6 hrs to fix

        File model.py has 396 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        """
        The implementation of VaDER for the partially-observed time-series clustering task.
        
        """
        
        
        Severity: Minor
        Found in pypots/clustering/vader/model.py - About 5 hrs to fix

          File model.py has 386 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          """
          The implementation of CSDI for the partially-observed time-series forecasting task.
          
          """
          
          
          Severity: Minor
          Found in pypots/forecasting/csdi/model.py - About 5 hrs to fix

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

                    if training:  # for training
                        (observed_data, indicating_mask, cond_mask, observed_tp, feature_id) = (
                            inputs["X_ori"],
                            inputs["indicating_mask"],
                            inputs["cond_mask"],
            Severity: Major
            Found in pypots/forecasting/csdi/core.py and 1 other location - About 5 hrs to fix
            pypots/forecasting/csdi/core.py on lines 102..114

            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 89.

            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

            Severity
            Category
            Status
            Source
            Language