Skip to content

Added CircularFourierFilter#273

Open
FlorianPfaff wants to merge 5 commits intomainfrom
feature/circular_fourier_filter
Open

Added CircularFourierFilter#273
FlorianPfaff wants to merge 5 commits intomainfrom
feature/circular_fourier_filter

Conversation

@FlorianPfaff
Copy link
Copy Markdown
Owner

No description provided.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 17, 2023

Test Results

0 tests   0 ✅  0s ⏱️
0 suites  0 💤
0 files    0 ❌

Results for commit 9a3cecf.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Sep 17, 2023

MegaLinter analysis: Error

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ COPYPASTE jscpd yes no no 10.89s
✅ JSON prettier 2 0 0 0 0.41s
✅ JSON v8r 2 0 0 2.01s
✅ MARKDOWN markdownlint 2 0 0 0 0.65s
✅ MARKDOWN markdown-table-formatter 2 0 0 0 0.17s
✅ PYTHON bandit 354 0 0 4.72s
✅ PYTHON black 354 10 0 0 8.12s
❌ PYTHON flake8 354 9 0 2.75s
✅ PYTHON isort 354 15 0 0 0.58s
❌ PYTHON mypy 354 3 0 4.21s
❌ PYTHON pylint 354 22 0 98.11s
❌ PYTHON ruff 354 15 5 0 0.15s
✅ REPOSITORY checkov yes no no 20.79s
✅ REPOSITORY gitleaks yes no no 5.84s
✅ REPOSITORY git_diff yes no no 0.14s
✅ REPOSITORY secretlint yes no no 7.18s
✅ REPOSITORY syft yes no no 3.3s
✅ REPOSITORY trivy-sbom yes no no 2.34s
✅ REPOSITORY trufflehog yes no no 18.38s
✅ YAML prettier 4 0 0 0 0.4s
✅ YAML v8r 4 0 0 4.35s
✅ YAML yamllint 4 0 0 0.38s

Detailed Issues

❌ PYTHON / flake8 - 9 errors
pyrecest/filters/circular_fourier_filter.py:70:181: E501 line too long (236 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:100:181: E501 line too long (233 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:115:9: E731 do not assign a lambda expression, use a def
pyrecest/filters/circular_fourier_filter.py:207:5: F811 redefinition of unused 'predict_identity' from line 66
pyrecest/filters/circular_fourier_filter.py:211:181: E501 line too long (236 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:241:5: F811 redefinition of unused 'update_identity' from line 96
pyrecest/filters/circular_fourier_filter.py:244:181: E501 line too long (233 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:257:5: F811 redefinition of unused 'predict_nonlinear' from line 112
pyrecest/filters/circular_fourier_filter.py:263:9: E731 do not assign a lambda expression, use a def
❌ PYTHON / mypy - 3 errors
pyrecest/filters/circular_fourier_filter.py:209: error: Name "predict_identity" already defined on line 68  [no-redef]
pyrecest/filters/circular_fourier_filter.py:242: error: Name "update_identity" already defined on line 98  [no-redef]
pyrecest/filters/circular_fourier_filter.py:258: error: Name "predict_nonlinear" already defined on line 114  [no-redef]
pyrecest/smoothers/unscented_rauch_tung_striebel_smoother.py:51: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
Found 3 errors in 1 file (checked 354 source files)
❌ PYTHON / pylint - 22 errors
************* Module pyrecest.filters.circular_fourier_filter
pyrecest/filters/circular_fourier_filter.py:6:0: E0401: Unable to import 'pyrecest.filters.abstract_circular_filter' (import-error)
pyrecest/filters/circular_fourier_filter.py:17:4: W0231: __init__ method from base class 'HypertoroidalFourierFilter' is not called (super-init-not-called)
pyrecest/filters/circular_fourier_filter.py:18:15: R1714: Consider merging these comparisons with 'in' by using 'transformation in ('sqrt', 'identity')'. Use a set instead if elements are hashable. (consider-using-in)
pyrecest/filters/circular_fourier_filter.py:108:22: E1123: Unexpected keyword argument 'dim' in classmethod call (unexpected-keyword-arg)
pyrecest/filters/circular_fourier_filter.py:128:89: E0606: Possibly using variable 'c_predicted_id' before assignment (possibly-used-before-assignment)
pyrecest/filters/circular_fourier_filter.py:135:4: E0102: method already defined line 46 (function-redefined)
pyrecest/filters/circular_fourier_filter.py:154:4: E0102: method already defined line 63 (function-redefined)
pyrecest/filters/circular_fourier_filter.py:162:4: E0102: method already defined line 71 (function-redefined)
pyrecest/filters/circular_fourier_filter.py:167:4: W0222: Signature differs from overridden 'update_nonlinear' method (signature-differs)
pyrecest/filters/circular_fourier_filter.py:168:18: E1101: Class 'CircularFourierDistribution' has no 'from_function' member (no-member)
pyrecest/filters/circular_fourier_filter.py:187:28: E1101: Class 'CircularFourierDistribution' has no 'from_complex' member (no-member)
pyrecest/filters/circular_fourier_filter.py:190:19: E1101: Method 'get_estimate' has no 'a' member (no-member)
pyrecest/filters/circular_fourier_filter.py:191:19: E1101: Method 'get_estimate' has no 'transformation' member (no-member)
pyrecest/filters/circular_fourier_filter.py:193:11: E1101: Method 'get_estimate' has no 'transformation' member (no-member)
pyrecest/filters/circular_fourier_filter.py:194:56: E1101: Method 'get_estimate' has no 'c' member (no-member)
pyrecest/filters/circular_fourier_filter.py:195:13: E1101: Method 'get_estimate' has no 'transformation' member (no-member)
pyrecest/filters/circular_fourier_filter.py:196:68: E1101: Method 'get_estimate' has no 'c' member (no-member)
pyrecest/filters/circular_fourier_filter.py:97:32: E0203: Access to member 'hfd' before its definition line 103 (access-member-before-definition)
pyrecest/filters/circular_fourier_filter.py:98:102: E0203: Access to member 'hfd' before its definition line 103 (access-member-before-definition)
pyrecest/filters/circular_fourier_filter.py:100:31: E0203: Access to member 'hfd' before its definition line 103 (access-member-before-definition)
pyrecest/filters/circular_fourier_filter.py:103:8: W0201: Attribute 'hfd' defined outside __init__ (attribute-defined-outside-init)
************* Module pyrecest.tests.filters.test_circular_fourier_filter
pyrecest/tests/filters/test_circular_fourier_filter.py:26:71: W0640: Cell variable xkkCurr defined in loop (cell-var-from-loop)

-----------------------------------
Your code has been rated at 9.96/10
❌ PYTHON / ruff - 5 errors
E731 Do not assign a `lambda` expression, use a `def`
   --> pyrecest/filters/circular_fourier_filter.py:117:9
    |
115 |           assert isinstance(noise_distribution, AbstractCircularDistribution)
116 |           assert callable(f)
117 | /         f_trans = lambda xkk, xk: np.reshape(
118 | |             noise_distribution.pdf(xkk.T - f(xk.T)), xk.shape
119 | |         )
    | |_________^
120 |           self.predict_nonlinear_via_transition_density(f_trans, truncate_joint_sqrt)
    |
help: Rewrite `f_trans` as a `def`

F811 Redefinition of unused `predict_identity` from line 68
   --> pyrecest/filters/circular_fourier_filter.py:209:9
    |
207 |             )
208 |
209 |     def predict_identity(self, d_sys):
    |         ^^^^^^^^^^^^^^^^ `predict_identity` redefined here
210 |         if isinstance(d_sys, AbstractCircularDistribution):
211 |             if not isinstance(d_sys, CircularFourierDistribution):
    |
   ::: pyrecest/filters/circular_fourier_filter.py:68:9
    |
 66 |         return self.filter_state.mean_direction()
 67 |
 68 |     def predict_identity(self, d_sys):
    |         ---------------- previous definition of `predict_identity` here
 69 |         if isinstance(d_sys, AbstractCircularDistribution):
 70 |             if not isinstance(d_sys, CircularFourierDistribution):
    |
help: Remove definition: `predict_identity`

F811 Redefinition of unused `update_identity` from line 98
   --> pyrecest/filters/circular_fourier_filter.py:243:9
    |
242 |     @beartype
243 |     def update_identity(self, d_meas: AbstractCircularDistribution, z):
    |         ^^^^^^^^^^^^^^^ `update_identity` redefined here
244 |         if not isinstance(d_meas, CircularFourierDistribution):
245 |             print(
    |
   ::: pyrecest/filters/circular_fourier_filter.py:98:9
    |
 96 |             raise ValueError("Input format of d_sys is not supported")
 97 |
 98 |     def update_identity(self, d_meas, z):
    |         --------------- previous definition of `update_identity` here
 99 |         assert isinstance(d_meas, AbstractCircularDistribution)
100 |         if not isinstance(d_meas, CircularFourierDistribution):
    |
help: Remove definition: `update_identity`

F811 Redefinition of unused `predict_nonlinear` from line 114
   --> pyrecest/filters/circular_fourier_filter.py:259:9
    |
258 |     @beartype
259 |     def predict_nonlinear(
    |         ^^^^^^^^^^^^^^^^^ `predict_nonlinear` redefined here
260 |         self,
261 |         f: Callable,
    |
   ::: pyrecest/filters/circular_fourier_filter.py:114:9
    |
112 |         )
113 |
114 |     def predict_nonlinear(self, f, noise_distribution, truncate_joint_sqrt=True):
    |         ----------------- previous definition of `predict_nonlinear` here
115 |         assert isinstance(noise_distribution, AbstractCircularDistribution)
116 |         assert callable(f)
    |
help: Remove definition: `predict_nonlinear`

E731 Do not assign a `lambda` expression, use a `def`
   --> pyrecest/filters/circular_fourier_filter.py:265:9
    |
263 |           truncate_joint_sqrt: bool = True,
264 |       ):
265 | /         f_trans = lambda xkk, xk: np.reshape(
266 | |             noise_distribution.pdf(xkk.T - f(xk.T)), xk.shape
267 | |         )
    | |_________^
268 |           self.predict_nonlinear_via_transition_density(f_trans, truncate_joint_sqrt)
    |
help: Rewrite `f_trans` as a `def`

Found 5 errors.
No fixes available (2 hidden fixes can be enabled with the `--unsafe-fixes` option).

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.4.0 --custom-flavor-setup --custom-flavor-linters PYTHON_PYLINT,PYTHON_BLACK,PYTHON_FLAKE8,PYTHON_ISORT,PYTHON_BANDIT,PYTHON_MYPY,PYTHON_RUFF,COPYPASTE_JSCPD,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_GITLEAKS,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@FlorianPfaff FlorianPfaff force-pushed the main branch 3 times, most recently from 9b9c4f0 to a089dfc Compare September 29, 2023 12:45
@FlorianPfaff FlorianPfaff force-pushed the feature/circular_fourier_filter branch 3 times, most recently from 827e41d to ac212e0 Compare January 17, 2024 18:43
@FlorianPfaff FlorianPfaff force-pushed the main branch 5 times, most recently from 022c55e to bb9ada8 Compare June 14, 2024 20:52
@FlorianPfaff FlorianPfaff force-pushed the feature/circular_fourier_filter branch 2 times, most recently from 27499bf to a064327 Compare March 21, 2025 21:25
@FlorianPfaff FlorianPfaff force-pushed the feature/circular_fourier_filter branch from a064327 to 1fdf91c Compare November 14, 2025 17:27
@FlorianPfaff FlorianPfaff force-pushed the main branch 3 times, most recently from cbbee9b to 22baafb Compare December 1, 2025 20:52
@FlorianPfaff
Copy link
Copy Markdown
Owner Author

@copilot Fix these

Detailed Issues
❌ PYTHON / flake8 - 9 errors
pyrecest/filters/circular_fourier_filter.py:70:181: E501 line too long (236 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:100:181: E501 line too long (233 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:115:9: E731 do not assign a lambda expression, use a def
pyrecest/filters/circular_fourier_filter.py:207:5: F811 redefinition of unused 'predict_identity' from line 66
pyrecest/filters/circular_fourier_filter.py:211:181: E501 line too long (236 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:241:5: F811 redefinition of unused 'update_identity' from line 96
pyrecest/filters/circular_fourier_filter.py:244:181: E501 line too long (233 > 180 characters)
pyrecest/filters/circular_fourier_filter.py:257:5: F811 redefinition of unused 'predict_nonlinear' from line 112
pyrecest/filters/circular_fourier_filter.py:263:9: E731 do not assign a lambda expression, use a def
❌ PYTHON / mypy - 3 errors
pyrecest/distributions/circle/wrapped_normal_distribution.py:71: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs [annotation-unchecked]
pyrecest/filters/circular_fourier_filter.py:209: error: Name "predict_identity" already defined on line 68 [no-redef]
pyrecest/filters/circular_fourier_filter.py:242: error: Name "update_identity" already defined on line 98 [no-redef]
pyrecest/filters/circular_fourier_filter.py:258: error: Name "predict_nonlinear" already defined on line 114 [no-redef]
Found 3 errors in 1 file (checked 246 source files)
❌ PYTHON / pylint - 24 errors
************* Module pyrecest.filters.circular_fourier_filter
pyrecest/filters/circular_fourier_filter.py:9:0: E0401: Unable to import 'pyrecest.distributions.hypertorus.hypertoroidal_fourier_distribution' (import-error)
pyrecest/filters/circular_fourier_filter.py:9:0: E0611: No name 'hypertoroidal_fourier_distribution' in module 'pyrecest.distributions.hypertorus' (no-name-in-module)
pyrecest/filters/circular_fourier_filter.py:10:0: E0401: Unable to import 'pyrecest.distributions.hypertorus.toroidal_fourier_distribution' (import-error)
pyrecest/filters/circular_fourier_filter.py:10:0: E0611: No name 'toroidal_fourier_distribution' in module 'pyrecest.distributions.hypertorus' (no-name-in-module)
pyrecest/filters/circular_fourier_filter.py:11:0: E0401: Unable to import 'pyrecest.filters.hypertoroidal_fourier_filter' (import-error)
pyrecest/filters/circular_fourier_filter.py:18:15: R1714: Consider merging these comparisons with 'in' by using 'transformation in ('sqrt', 'identity')'. Use a set instead if elements are hashable. (consider-using-in)
pyrecest/filters/circular_fourier_filter.py:128:89: E0606: Possibly using variable 'c_predicted_id' before assignment (possibly-used-before-assignment)
pyrecest/filters/circular_fourier_filter.py:135:4: E0102: method already defined line 46 (function-redefined)
pyrecest/filters/circular_fourier_filter.py:154:4: E0102: method already defined line 63 (function-redefined)
pyrecest/filters/circular_fourier_filter.py:162:4: E0102: method already defined line 71 (function-redefined)
pyrecest/filters/circular_fourier_filter.py:168:18: E1101: Class 'CircularFourierDistribution' has no 'from_function' member (no-member)
pyrecest/filters/circular_fourier_filter.py:187:28: E1101: Class 'CircularFourierDistribution' has no 'from_complex' member (no-member)
pyrecest/filters/circular_fourier_filter.py:190:19: E1101: Method 'get_estimate' has no 'a' member (no-member)
pyrecest/filters/circular_fourier_filter.py:191:19: E1101: Method 'get_estimate' has no 'transformation' member (no-member)
pyrecest/filters/circular_fourier_filter.py:193:11: E1101: Method 'get_estimate' has no 'transformation' member (no-member)
pyrecest/filters/circular_fourier_filter.py:194:56: E1101: Method 'get_estimate' has no 'c' member (no-member)
pyrecest/filters/circular_fourier_filter.py:195:13: E1101: Method 'get_estimate' has no 'transformation' member (no-member)
pyrecest/filters/circular_fourier_filter.py:196:68: E1101: Method 'get_estimate' has no 'c' member (no-member)
pyrecest/filters/circular_fourier_filter.py:97:32: E0203: Access to member 'hfd' before its definition line 103 (access-member-before-definition)
pyrecest/filters/circular_fourier_filter.py:98:102: E0203: Access to member 'hfd' before its definition line 103 (access-member-before-definition)
pyrecest/filters/circular_fourier_filter.py:100:31: E0203: Access to member 'hfd' before its definition line 103 (access-member-before-definition)
pyrecest/filters/circular_fourier_filter.py:103:8: W0201: Attribute 'hfd' defined outside init (attribute-defined-outside-init)
************* Module pyrecest.tests.filters.test_circular_fourier_filter
pyrecest/tests/filters/test_circular_fourier_filter.py:5:0: W0622: Redefining built-in 'abs' (redefined-builtin)
pyrecest/tests/filters/test_circular_fourier_filter.py:26:71: W0640: Cell variable xkkCurr defined in loop (cell-var-from-loop)


Your code has been rated at 9.88/10
❌ PYTHON / ruff - 5 errors
E731 Do not assign a lambda expression, use a def
--> pyrecest/filters/circular_fourier_filter.py:117:9
|
115 | assert isinstance(noise_distribution, AbstractCircularDistribution)
116 | assert callable(f)
117 | / f_trans = lambda xkk, xk: np.reshape(
118 | | noise_distribution.pdf(xkk.T - f(xk.T)), xk.shape
119 | | )
| |_________^
120 | self.predict_nonlinear_via_transition_density(f_trans, truncate_joint_sqrt)
|
help: Rewrite f_trans as a def

F811 Redefinition of unused predict_identity from line 68
--> pyrecest/filters/circular_fourier_filter.py:209:9
|
207 | )
208 |
209 | def predict_identity(self, d_sys):
| ^^^^^^^^^^^^^^^^ predict_identity redefined here
210 | if isinstance(d_sys, AbstractCircularDistribution):
211 | if not isinstance(d_sys, CircularFourierDistribution):
|
::: pyrecest/filters/circular_fourier_filter.py:68:9
|
66 | return self.filter_state.mean_direction()
67 |
68 | def predict_identity(self, d_sys):
| ---------------- previous definition of predict_identity here
69 | if isinstance(d_sys, AbstractCircularDistribution):
70 | if not isinstance(d_sys, CircularFourierDistribution):
|
help: Remove definition: predict_identity

F811 Redefinition of unused update_identity from line 98
--> pyrecest/filters/circular_fourier_filter.py:243:9
|
242 | @beartype
243 | def update_identity(self, d_meas: AbstractCircularDistribution, z):
| ^^^^^^^^^^^^^^^ update_identity redefined here
244 | if not isinstance(d_meas, CircularFourierDistribution):
245 | print(
|
::: pyrecest/filters/circular_fourier_filter.py:98:9
|
96 | raise ValueError("Input format of d_sys is not supported")
97 |
98 | def update_identity(self, d_meas, z):
| --------------- previous definition of update_identity here
99 | assert isinstance(d_meas, AbstractCircularDistribution)
100 | if not isinstance(d_meas, CircularFourierDistribution):
|
help: Remove definition: update_identity

F811 Redefinition of unused predict_nonlinear from line 114
--> pyrecest/filters/circular_fourier_filter.py:259:9
|
258 | @beartype
259 | def predict_nonlinear(
| ^^^^^^^^^^^^^^^^^ predict_nonlinear redefined here
260 | self,
261 | f: Callable,
|
::: pyrecest/filters/circular_fourier_filter.py:114:9
|
112 | )
113 |
114 | def predict_nonlinear(self, f, noise_distribution, truncate_joint_sqrt=True):
| ----------------- previous definition of predict_nonlinear here
115 | assert isinstance(noise_distribution, AbstractCircularDistribution)
116 | assert callable(f)
|
help: Remove definition: predict_nonlinear

E731 Do not assign a lambda expression, use a def
--> pyrecest/filters/circular_fourier_filter.py:265:9
|
263 | truncate_joint_sqrt: bool = True,
264 | ):
265 | / f_trans = lambda xkk, xk: np.reshape(
266 | | noise_distribution.pdf(xkk.T - f(xk.T)), xk.shape
267 | | )
| |_________^
268 | self.predict_nonlinear_via_transition_density(f_trans, truncate_joint_sqrt)
|
help: Rewrite f_trans as a def

Found 5 errors.
No fixes available (2 hidden fixes can be enabled with the --unsafe-fixes option).

@FlorianPfaff FlorianPfaff force-pushed the feature/circular_fourier_filter branch from 1fdf91c to 034fe41 Compare April 21, 2026 11:48
@FlorianPfaff FlorianPfaff force-pushed the main branch 4 times, most recently from 7b21428 to 429a157 Compare April 21, 2026 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant