Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cache benchmark functions #2749

Merged

Conversation

officialasishkumar
Copy link
Member

@officialasishkumar officialasishkumar commented Jul 26, 2024

📝 Description

Type: 🚀 feature

  • Cache benchmark properties
  • use setup functions to reduce noise
  • Clean up code

📌 Resources

Examples, notebooks, and links to useful references.

🚦 Testing

How did you test these changes?

  • Testing pipeline
  • Other method (describe)
  • My changes can't be tested (explain why)

☑️ Checklist

  • I requested two reviewers for this pull request
  • I updated the documentation according to my changes
  • I built the documentation by applying the build_docs label

Note: If you are not allowed to perform any of these actions, ping (@) a contributor.

@tardis-bot
Copy link
Contributor

tardis-bot commented Jul 26, 2024

*beep* *bop*
Hi human,
I ran ruff on the latest commit (bf217a0).
Here are the outputs produced.
Results can also be downloaded as artifacts here.
Summarised output:

164	F401   	[*] `PySide2.QtCore` imported but unused
137	I001   	[*] Import block is un-sorted or un-formatted
123	F405   	[ ] `Abundance` may be undefined, or defined from star imports
49	RET505 	[ ] Unnecessary `elif` after `return` statement
47	D202   	[*] No blank lines allowed after function docstring (found 1)
40	G004   	[ ] Logging statement uses f-string
35	UP008  	[*] Use `super()` instead of `super(__class__, self)`
28	F821   	[ ] Undefined name `GET_NEAREST_LINE_REDWARD_FUNCTION`
22	F403   	[ ] `from astropy.constants.astropyconst13 import *` used; unable to detect undefined names
20	INP001 	[ ] File `.ci-helpers/update_credits.py` is part of an implicit namespace package. Add an `__init__.py`.
19	E712   	[*] Avoid equality comparisons to `False`; use `if not ...:` for false checks
19	F811   	[ ] Redefinition of unused `OpacityState` from line 14
18	UP004  	[*] Class `ConvergencePlots` inherits from `object`
15	B011   	[*] Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
15	PT015  	[ ] Assertion always fails, replace with `pytest.fail()`
15	W291   	[*] Trailing whitespace
13	UP015  	[*] Unnecessary open mode parameters
13	UP031  	[*] Use format specifiers instead of percent format
12	D209   	[*] Multi-line docstring closing quotes should be on a separate line
11	RET506 	[ ] Unnecessary `elif` after `raise` statement
11	E722   	[ ] Do not use bare `except`
9	C408   	[*] Unnecessary `dict` call (rewrite as a literal)
9	E402   	[ ] Module level import not at top of file
9	UP032  	[*] Use f-string instead of `format` call
6	UP024  	[*] Replace aliased errors with `OSError`
5	ISC003 	[ ] Explicitly concatenated string should be implicitly concatenated
5	D411   	[*] Missing blank line before section ("Parameters")
4	FA100  	[ ] Add `from __future__ import annotations` to simplify `typing.Tuple`
4	ICN001 	[*] `matplotlib` should be imported as `mpl`
4	PIE808 	[*] Unnecessary `start` argument in `range`
4	FLY002 	[*] Consider `"\n---\n"` instead of string join
4	D409   	[*] Section underline should match the length of its name ("Parameters")
4	D412   	[*] No blank lines allowed between a section header and its content ("Parameters")
4	PLR1711	[*] Useless `return` statement at end of function
4	PLW0127	[ ] Self-assignment of variable `atom_data`
3	EXE001 	[ ] Shebang is present but file is not executable
3	PIE790 	[*] Unnecessary `pass` statement
3	RET508 	[ ] Unnecessary `elif` after `break` statement
3	PTH117 	[ ] `os.path.isabs()` should be replaced by `Path.is_absolute()`
3	D406   	[*] Section name should end with a newline ("Returns")
3	D407   	[*] Missing dashed underline after section ("Returns")
3	F631   	[ ] Assert test is a non-empty tuple, which is always `True`
3	PGH004 	[ ] Use specific rule codes when using `noqa`
2	ANN204 	[ ] Missing return type annotation for special method `__getitem__`
2	ANN205 	[ ] Missing return type annotation for staticmethod `get_relative_path`
2	B010   	[*] Do not call `setattr` with a constant attribute value. It is not any safer than normal property access.
2	C403   	[*] Unnecessary `list` comprehension (rewrite as a `set` comprehension)
2	G001   	[ ] Logging statement uses `str.format`
2	PT013  	[ ] Incorrect import of `pytest`; use `import pytest` instead
2	N812   	[ ] Lowercase `__path__` imported as non-lowercase `TARDIS_PATH`
2	N999   	[ ] Invalid module name: 'GXPacket'
2	E713   	[*] Test for membership should be `not in`
2	W293   	[*] Blank line contains whitespace
2	UP030  	[*] Use implicit references for positional format fields
1	S113   	[ ] Probable use of requests call without timeout
1	S604   	[ ] Function call with truthy `shell` parameter identified, security issue
1	S605   	[ ] Starting a process with a shell: seems safe, but may be changed in the future; consider rewriting without `shell`
1	B009   	[*] Do not call `getattr` with a constant attribute value. It is not any safer than normal property access.
1	B017   	[ ] `pytest.raises(Exception)` should be considered evil
1	B018   	[ ] Found useless expression. Either assign it to a variable or remove it.
1	B020   	[ ] Loop control variable `isotope_dict` overrides iterable it iterates
1	C405   	[*] Unnecessary `list` literal (rewrite as a `set` literal)
1	C414   	[*] Unnecessary `list` call within `set()`
1	C416   	[*] Unnecessary `list` comprehension (rewrite using `list()`)
1	DTZ011 	[ ] `datetime.date.today()` used
1	G010   	[*] Logging statement uses `warn` instead of `warning`
1	PT014  	[*] Duplicate of test case at index 1 in `@pytest_mark.parametrize`
1	PT020  	[ ] `@pytest.yield_fixture` is deprecated, use `@pytest.fixture`
1	PT021  	[ ] Use `yield` instead of `request.addfinalizer`
1	SIM103 	[*] Return the condition directly
1	SIM210 	[*] Remove unnecessary `True if ... else False`
1	TD006  	[*] Invalid TODO capitalization: `todo` should be `TODO`
1	NPY201 	[ ] `np.recfromtxt` will be removed in NumPy 2.0. Use `np.genfromtxt` instead.
1	PERF102	[*] When using only the values of a dict use the `values()` method
1	E401   	[*] Multiple imports on one line
1	D106   	[ ] Missing docstring in public nested class
1	PLR0911	[ ] Too many return statements (8 > 6)
1	UP009  	[*] UTF-8 encoding declaration is unnecessary
1	UP028  	[*] Replace `yield` over `for` loop with `yield from`
1	UP034  	[*] Avoid extraneous parentheses
1	RUF015 	[*] Prefer `next(iter(unique_v))` over single element slice
1	TRY300 	[ ] Consider moving this statement to an `else` block

Complete output(might be large):

.ci-helpers/get_current_version.py:1:1: EXE001 Shebang is present but file is not executable
.ci-helpers/get_current_version.py:3:1: I001 [*] Import block is un-sorted or un-formatted
.ci-helpers/get_min_docstr_cov.py:1:1: EXE001 Shebang is present but file is not executable
.ci-helpers/get_min_docstr_cov.py:3:1: I001 [*] Import block is un-sorted or un-formatted
.ci-helpers/get_min_docstr_cov.py:5:1: F403 `from parse import *` used; unable to detect undefined names
.ci-helpers/get_min_docstr_cov.py:8:10: F405 `parse` may be undefined, or defined from star imports
.ci-helpers/get_next_version.py:1:1: EXE001 Shebang is present but file is not executable
.ci-helpers/get_next_version.py:3:1: I001 [*] Import block is un-sorted or un-formatted
.ci-helpers/update_credits.py:1:1: INP001 File `.ci-helpers/update_credits.py` is part of an implicit namespace package. Add an `__init__.py`.
.ci-helpers/update_credits.py:1:1: D209 [*] Multi-line docstring closing quotes should be on a separate line
.ci-helpers/update_credits.py:15:5: D202 [*] No blank lines allowed after function docstring (found 1)
.ci-helpers/update_credits.py:15:5: D209 [*] Multi-line docstring closing quotes should be on a separate line
.ci-helpers/update_credits.py:20:12: DTZ011 `datetime.date.today()` used
.ci-helpers/update_credits.py:24:20: S113 Probable use of requests call without timeout
.ci-helpers/update_credits.py:46:91: W291 Trailing whitespace
benchmarks/benchmark_base.py:46:9: ANN205 Missing return type annotation for staticmethod `get_relative_path`
benchmarks/benchmark_base.py:95:9: RET506 Unnecessary `else` after `raise` statement
benchmarks/benchmark_base.py:180:11: D106 Missing docstring in public nested class
benchmarks/benchmark_base.py:237:9: ANN205 Missing return type annotation for staticmethod `regression_data`
benchmarks/benchmark_base.py:362:9: RET505 Unnecessary `else` after `return` statement
benchmarks/opacities_opacity_state.py:5:1: I001 [*] Import block is un-sorted or un-formatted
benchmarks/opacities_opacity_state.py:5:17: F401 [*] `numpy` imported but unused
benchmarks/transport_montecarlo_estimators_radfield_estimator_calcs.py:5:1: I001 [*] Import block is un-sorted or un-formatted
benchmarks/transport_montecarlo_estimators_radfield_estimator_calcs.py:5:38: F401 [*] `tardis.opacities.opacities` imported but unused
benchmarks/transport_montecarlo_estimators_radfield_estimator_calcs.py:6:57: F401 [*] `tardis.transport.geometry.calculate_distances` imported but unused
benchmarks/transport_montecarlo_estimators_radfield_estimator_calcs.py:7:58: F401 [*] `tardis.transport.montecarlo.r_packet_transport` imported but unused
benchmarks/transport_montecarlo_estimators_radfield_estimator_calcs.py:8:45: F401 [*] `tardis.transport.montecarlo.utils` imported but unused
benchmarks/transport_montecarlo_interaction.py:5:1: I001 [*] Import block is un-sorted or un-formatted
benchmarks/transport_montecarlo_packet_trackers.py:4:1: I001 [*] Import block is un-sorted or un-formatted
benchmarks/transport_montecarlo_single_packet_loop.py:5:1: I001 [*] Import block is un-sorted or un-formatted
benchmarks/transport_montecarlo_vpacket.py:5:1: I001 [*] Import block is un-sorted or un-formatted
benchmarks/util/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
benchmarks/util/base.py:1:40: F401 [*] `os.path.join` imported but unused
benchmarks/util/base.py:2:27: F401 [*] `pathlib.PosixPath` imported but unused
benchmarks/util/nlte.py:1:1: I001 [*] Import block is un-sorted or un-formatted
docs/conf.py:1:1: UP009 [*] UTF-8 encoding declaration is unnecessary
docs/conf.py:28:1: I001 [*] Import block is un-sorted or un-formatted
docs/conf.py:31:8: F401 [*] `tardis` imported but unused
docs/conf.py:37:43: PGH004 Use specific rule codes when using `noqa`
docs/conf.py:47:6: UP015 [*] Unnecessary open mode parameters
docs/conf.py:68:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:69:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:70:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:71:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:72:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:139:1: W293 Blank line contains whitespace
docs/conf.py:174:1: W293 Blank line contains whitespace
docs/conf.py:191:13: UP030 Use implicit references for positional format fields
docs/conf.py:191:13: UP032 [*] Use f-string instead of `format` call
docs/conf.py:218:1: E402 Module level import not at top of file
docs/conf.py:291:4: E712 Avoid equality comparisons to `True`; use `if toml_config_tool_dict["tardis"]['edit_on_github']:` for truth checks
docs/conf.py:352:1: E402 Module level import not at top of file
docs/conf.py:367:10: UP015 [*] Unnecessary open mode parameters, use ""w""
docs/conf.py:382:10: UP015 [*] Unnecessary open mode parameters, use ""w""
docs/physics/pyplot/lte_ionization_balance.py:1:1: I001 [*] Import block is un-sorted or un-formatted
docs/physics/pyplot/lte_ionization_balance.py:1:8: F401 [*] `os` imported but unused
docs/physics/pyplot/lte_ionization_balance.py:22:31: F821 Undefined name `atom_fname`
docs/physics/pyplot/lte_ionization_balance.py:73:9: UP031 Use format specifiers instead of percent format
docs/physics/pyplot/lte_ionization_balance.py:74:15: UP031 Use format specifiers instead of percent format
docs/physics/pyplot/nebular_ionization_balance.py:1:1: I001 [*] Import block is un-sorted or un-formatted
docs/physics/pyplot/nebular_ionization_balance.py:33:18: F821 Undefined name `plasma`
docs/physics/pyplot/nebular_ionization_balance.py:71:9: UP031 Use format specifiers instead of percent format
docs/physics/pyplot/nebular_ionization_balance.py:72:15: UP031 Use format specifiers instead of percent format
docs/physics/pyplot/nebular_ionization_balance.py:117:9: UP031 Use format specifiers instead of percent format
docs/physics/pyplot/nebular_ionization_balance.py:118:15: UP031 Use format specifiers instead of percent format
docs/physics/pyplot/plot_mu_in_out_packet.py:1:1: F403 `from pylab import *` used; unable to detect undefined names
docs/physics/pyplot/plot_mu_in_out_packet.py:1:1: I001 [*] Import block is un-sorted or un-formatted
docs/physics/pyplot/plot_mu_in_out_packet.py:5:1: PLW0127 Self-assignment of variable `x`
docs/physics/pyplot/plot_mu_in_out_packet.py:5:4: PLW0127 Self-assignment of variable `y`
docs/physics/pyplot/plot_mu_in_out_packet.py:5:15: F405 `mgrid` may be undefined, or defined from star imports
docs/physics/pyplot/plot_mu_in_out_packet.py:10:1: F405 `xlabel` may be undefined, or defined from star imports
docs/physics/pyplot/plot_mu_in_out_packet.py:11:1: F405 `ylabel` may be undefined, or defined from star imports
docs/physics/pyplot/plot_mu_in_out_packet.py:12:1: F405 `imshow` may be undefined, or defined from star imports
docs/physics/pyplot/plot_mu_in_out_packet.py:12:8: F405 `np` may be undefined, or defined from star imports
docs/physics/pyplot/plot_mu_in_out_packet.py:13:1: F405 `colorbar` may be undefined, or defined from star imports
docs/physics/pyplot/plot_mu_in_out_packet.py:14:1: F405 `show` may be undefined, or defined from star imports
setup.py:7:1: I001 [*] Import block is un-sorted or un-formatted
tardis/__init__.py:6:31: PGH004 Use specific rule codes when using `noqa`
tardis/__init__.py:25:1: I001 [*] Import block is un-sorted or un-formatted
tardis/__init__.py:32:25: F401 `tardis.base.run_tardis` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/__init__.py:33:46: F401 `tardis.io.util.yaml_load_file` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/_astropy_init.py:12:1: I001 [*] Import block is un-sorted or un-formatted
tardis/analysis.py:96:9: E722 Do not use bare `except`
tardis/analysis.py:110:9: E722 Do not use bare `except`
tardis/analysis.py:121:9: E722 Do not use bare `except`
tardis/analysis.py:136:9: E722 Do not use bare `except`
tardis/analysis.py:374:9: RET505 Unnecessary `else` after `return` statement
tardis/analysis.py:396:9: RET505 Unnecessary `else` after `return` statement
tardis/analysis.py:421:9: RET505 Unnecessary `else` after `return` statement
tardis/analysis/opacities.py:1:1: INP001 File `tardis/analysis/opacities.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/analysis/opacities.py:1:1: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/analysis/opacities.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/analysis/opacities.py:12:26: UP004 [*] Class `opacity_calculator` inherits from `object`
tardis/analysis/opacities.py:225:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/analysis/opacities.py:274:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/analysis/opacities.py:282:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/analysis/opacities.py:329:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/analysis/opacities.py:360:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/analysis/opacities.py:388:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/base.py:5:1: I001 [*] Import block is un-sorted or un-formatted
tardis/base.py:73:1: I001 [*] Import block is un-sorted or un-formatted
tardis/base.py:101:13: PLW0127 Self-assignment of variable `atom_data`
tardis/conftest.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/conftest.py:11:1: F403 `from tardis.tests.fixtures.atom_data import *` used; unable to detect undefined names
tardis/conftest.py:30:49: PGH004 Use specific rule codes when using `noqa`
tardis/conftest.py:32:9: F821 Undefined name `pytest_report_header`
tardis/conftest.py:145:5: RET505 Unnecessary `else` after `return` statement
tardis/conftest.py:169:1: PT020 `@pytest.yield_fixture` is deprecated, use `@pytest.fixture`
tardis/conftest.py:240:19: F405 `deepcopy` may be undefined, or defined from star imports
tardis/conftest.py:249:19: F405 `deepcopy` may be undefined, or defined from star imports
tardis/conftest.py:278:19: F405 `deepcopy` may be undefined, or defined from star imports
tardis/constants.py:1:1: F403 `from astropy.constants.astropyconst13 import *` used; unable to detect undefined names
tardis/energy_input/GXPacket.py:1:1: N999 Invalid module name: 'GXPacket'
tardis/energy_input/GXPacket.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/GXPacket.py:40:16: UP004 [*] Class `GXPacket` inherits from `object`
tardis/energy_input/GXPacket.py:72:9: D407 [*] Missing dashed underline after section ("Returns")
tardis/energy_input/GXPacket.py:72:9: D406 [*] Section name should end with a newline ("Returns")
tardis/energy_input/GXPacket.py:198:13: F821 Undefined name `get_chain_decay_power_per_ejectamass`
tardis/energy_input/GXPacket.py:199:17: F821 Undefined name `inventory`
tardis/energy_input/energy_source.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/energy_source.py:96:11: E712 Avoid equality comparisons to `True`; use `if check:` for truth checks
tardis/energy_input/energy_source.py:112:16: C416 Unnecessary `list` comprehension (rewrite using `list()`)
tardis/energy_input/energy_source.py:198:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/energy_input/gamma_packet_loop.py:273:17: RET508 Unnecessary `else` after `break` statement
tardis/energy_input/gamma_ray_channel.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/gamma_ray_channel.py:2:17: F401 [*] `numpy` imported but unused
tardis/energy_input/gamma_ray_channel.py:54:5: D411 [*] Missing blank line before section ("Returns")
tardis/energy_input/gamma_ray_channel.py:111:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/energy_input/gamma_ray_estimators.py:47:18: F821 Undefined name `GET_NEAREST_LINE_REDWARD_FUNCTION`
tardis/energy_input/gamma_ray_grid.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/gamma_ray_grid.py:14:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/energy_input/gamma_ray_transport.py:456:39: PERF102 When using only the values of a dict use the `values()` method
tardis/energy_input/main_gamma_ray_loop.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/main_gamma_ray_loop.py:8:5: F401 [*] `tardis.energy_input.energy_source.get_nuclear_lines_database` imported but unused
tardis/energy_input/main_gamma_ray_loop.py:12:5: F401 [*] `tardis.energy_input.gamma_ray_channel.calculate_total_decays` imported but unused
tardis/energy_input/main_gamma_ray_loop.py:13:5: F401 [*] `tardis.energy_input.gamma_ray_channel.create_inventories_dict` imported but unused
tardis/energy_input/main_gamma_ray_loop.py:14:5: F401 [*] `tardis.energy_input.gamma_ray_channel.create_isotope_dicts` imported but unused
tardis/energy_input/main_gamma_ray_loop.py:152:17: G004 Logging statement uses f-string
tardis/energy_input/main_gamma_ray_loop.py:156:17: G004 Logging statement uses f-string
tardis/energy_input/main_gamma_ray_loop.py:158:17: G004 Logging statement uses f-string
tardis/energy_input/main_gamma_ray_loop.py:213:17: G004 Logging statement uses f-string
tardis/energy_input/main_gamma_ray_loop.py:214:17: G004 Logging statement uses f-string
tardis/energy_input/tests/conftest.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/tests/conftest.py:24:9: S604 Function call with truthy `shell` parameter identified, security issue
tardis/energy_input/tests/test_energy_source.py:35:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_energy_source.py:35:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_energy_source.py:41:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_energy_source.py:41:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_energy_source.py:47:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_energy_source.py:47:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_gamma_ray_channel.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/tests/test_gamma_ray_channel.py:8:30: F401 [*] `radioactivedecay.converters` imported but unused
tardis/energy_input/tests/test_gamma_ray_channel.py:13:5: F401 [*] `tardis.energy_input.energy_source.get_nuclear_lines_database` imported but unused
tardis/energy_input/tests/test_gamma_ray_channel.py:118:9: B020 Loop control variable `isotope_dict` overrides iterable it iterates
tardis/energy_input/tests/test_gamma_ray_grid.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/tests/test_gamma_ray_grid.py:3:17: F401 [*] `numpy` imported but unused
tardis/energy_input/tests/test_gamma_ray_grid.py:6:5: F401 [*] `tardis.energy_input.gamma_ray_grid.calculate_distance_radial` imported but unused
tardis/energy_input/tests/test_gamma_ray_grid.py:7:5: F401 [*] `tardis.energy_input.gamma_ray_grid.distance_trace` imported but unused
tardis/energy_input/tests/test_gamma_ray_grid.py:15:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_gamma_ray_grid.py:15:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_gamma_ray_grid.py:21:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_gamma_ray_grid.py:21:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_gamma_ray_interactions.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/energy_input/tests/test_gamma_ray_interactions.py:6:5: F401 [*] `tardis.energy_input.gamma_ray_interactions.compton_scatter` imported but unused
tardis/energy_input/tests/test_gamma_ray_interactions.py:18:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_gamma_ray_interactions.py:18:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_gamma_ray_interactions.py:24:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_gamma_ray_interactions.py:24:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_gamma_ray_transport.py:4:17: F401 [*] `numpy` imported but unused
tardis/energy_input/tests/test_gamma_ray_transport.py:5:25: F401 [*] `numpy.testing` imported but unused
tardis/energy_input/tests/test_gamma_ray_transport.py:7:28: F401 [*] `radioactivedecay` imported but unused
tardis/energy_input/tests/test_gamma_ray_transport.py:8:30: F401 [*] `radioactivedecay.converters` imported but unused
tardis/energy_input/tests/test_gamma_ray_transport.py:11:5: F401 [*] `tardis.energy_input.gamma_ray_channel.calculate_total_decays` imported but unused
tardis/energy_input/tests/test_gamma_ray_transport.py:12:5: F401 [*] `tardis.energy_input.gamma_ray_channel.create_inventories_dict` imported but unused
tardis/energy_input/tests/test_gamma_ray_transport.py:13:5: F401 [*] `tardis.energy_input.gamma_ray_channel.create_isotope_dicts` imported but unused
tardis/energy_input/tests/test_util.py:38:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_util.py:38:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_util.py:44:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_util.py:44:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_util.py:50:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_util.py:50:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/tests/test_util.py:56:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/energy_input/tests/test_util.py:56:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/energy_input/util.py:383:5: RET505 Unnecessary `elif` after `return` statement
tardis/grid/__init__.py:2:41: W291 Trailing whitespace
tardis/grid/__init__.py:3:37: W291 Trailing whitespace
tardis/grid/__init__.py:7:1: F403 `from tardis.grid.base import *` used; unable to detect undefined names
tardis/grid/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/grid/base.py:7:33: F401 [*] `tardis.io.atom_data.AtomData` imported but unused
tardis/grid/base.py:33:5: PLR1711 [*] Useless `return` statement at end of function
tardis/grid/base.py:70:9: PLR1711 [*] Useless `return` statement at end of function
tardis/grid/base.py:147:9: PLR1711 [*] Useless `return` statement at end of function
tardis/grid/tests/test_grid.py:1:1: INP001 File `tardis/grid/tests/test_grid.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/grid/tests/test_grid.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/grid/tests/test_grid.py:8:21: F811 [*] Redefinition of unused `Path` from line 1
tardis/gui/__init__.py:4:57: W291 Trailing whitespace
tardis/gui/__init__.py:5:60: W291 Trailing whitespace
tardis/gui/__init__.py:6:56: W291 Trailing whitespace
tardis/gui/datahandler.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/datahandler.py:4:17: F401 [*] `numpy` imported but unused
tardis/gui/datahandler.py:5:8: ICN001 `matplotlib` should be imported as `mpl`
tardis/gui/datahandler.py:6:28: F401 [*] `matplotlib.pylab` imported but unused
tardis/gui/datahandler.py:10:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/datahandler.py:12:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/datahandler.py:19:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/datahandler.py:19:8: F401 [*] `yaml` imported but unused
tardis/gui/datahandler.py:21:20: F401 [*] `tardis.run_tardis` imported but unused
tardis/gui/datahandler.py:22:32: F401 [*] `tardis.gui.widgets.MatplotlibWidget` imported but unused
tardis/gui/datahandler.py:22:50: F401 [*] `tardis.gui.widgets.ModelViewer` imported but unused
tardis/gui/datahandler.py:22:63: F401 [*] `tardis.gui.widgets.ShellInfo` imported but unused
tardis/gui/datahandler.py:23:32: F401 [*] `tardis.gui.widgets.LineInfo` imported but unused
tardis/gui/datahandler.py:23:42: F401 [*] `tardis.gui.widgets.LineInteractionTables` imported but unused
tardis/gui/datahandler.py:37:12: UP004 [*] Class `Node` inherits from `object`
tardis/gui/datahandler.py:113:9: RET505 Unnecessary `else` after `return` statement
tardis/gui/datahandler.py:145:9: RET505 Unnecessary `else` after `return` statement
tardis/gui/datahandler.py:199:9: RET505 Unnecessary `else` after `return` statement
tardis/gui/datahandler.py:203:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/gui/datahandler.py:271:9: RET505 Unnecessary `else` after `return` statement
tardis/gui/datahandler.py:412:9: RET505 Unnecessary `elif` after `return` statement
tardis/gui/datahandler.py:436:9: RET505 Unnecessary `else` after `return` statement
tardis/gui/datahandler.py:503:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/datahandler.py:518:9: PLR0911 Too many return statements (8 > 6)
tardis/gui/datahandler.py:523:13: RET505 Unnecessary `elif` after `return` statement
tardis/gui/datahandler.py:526:17: RET505 Unnecessary `else` after `return` statement
tardis/gui/datahandler.py:536:13: RET505 Unnecessary `elif` after `return` statement
tardis/gui/datahandler.py:547:9: RET505 Unnecessary `elif` after `return` statement
tardis/gui/datahandler.py:552:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/gui/datahandler.py:556:9: RET505 Unnecessary `elif` after `return` statement
tardis/gui/interface.py:6:25: F401 [*] `PySide2.QtCore` imported but unused
tardis/gui/interface.py:16:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/interface.py:23:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/tests/test_gui.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/tests/test_gui.py:5:25: F401 [*] `astropy.units` imported but unused
tardis/gui/tests/test_gui.py:8:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/widgets.py:6:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/widgets.py:8:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/widgets.py:16:1: I001 [*] Import block is un-sorted or un-formatted
tardis/gui/widgets.py:16:8: ICN001 `matplotlib` should be imported as `mpl`
tardis/gui/widgets.py:17:1: F403 `from matplotlib.figure import *` used; unable to detect undefined names
tardis/gui/widgets.py:24:32: F401 [*] `matplotlib.patches.Circle` imported but unused
tardis/gui/widgets.py:29:30: F401 [*] `tardis.util` imported but unused
tardis/gui/widgets.py:36:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/gui/widgets.py:43:23: F405 `Figure` may be undefined, or defined from star imports
tardis/gui/widgets.py:54:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:55:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:58:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:164:27: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/gui/widgets.py:167:26: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/gui/widgets.py:168:23: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/gui/widgets.py:186:9: RET505 Unnecessary `elif` after `return` statement
tardis/gui/widgets.py:198:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:226:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:229:22: F405 `yaml` may be undefined, or defined from star imports
tardis/gui/widgets.py:229:61: F405 `yaml` may be undefined, or defined from star imports
tardis/gui/widgets.py:353:24: F405 `TreeModel` may be undefined, or defined from star imports
tardis/gui/widgets.py:358:38: F405 `TreeDelegate` may be undefined, or defined from star imports
tardis/gui/widgets.py:429:35: UP024 [*] Replace aliased errors with `OSError`
tardis/gui/widgets.py:444:9: PIE790 [*] Unnecessary `pass` statement
tardis/gui/widgets.py:528:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/gui/widgets.py:646:41: F405 `np` may be undefined, or defined from star imports
tardis/gui/widgets.py:657:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/gui/widgets.py:660:41: F405 `np` may be undefined, or defined from star imports
tardis/gui/widgets.py:688:41: F405 `np` may be undefined, or defined from star imports
tardis/gui/widgets.py:815:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:851:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/gui/widgets.py:927:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/gui/widgets.py:929:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:1124:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/gui/widgets.py:1231:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/atom_data/__init__.py:2:38: W291 Trailing whitespace
tardis/io/atom_data/__init__.py:5:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/atom_data/__init__.py:5:38: F401 `tardis.io.atom_data.base.AtomData` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/io/atom_data/__init__.py:6:51: F401 `tardis.io.atom_data.atom_web_download.download_atom_data` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/io/atom_data/atom_web_download.py:51:13: G004 Logging statement uses f-string
tardis/io/atom_data/atom_web_download.py:58:17: G004 Logging statement uses f-string
tardis/io/atom_data/base.py:171:22: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/io/atom_data/base.py:172:24: C408 Unnecessary `list` call (rewrite as a literal)
tardis/io/atom_data/base.py:181:34: G004 Logging statement uses f-string
tardis/io/atom_data/base.py:259:17: G004 Logging statement uses f-string
tardis/io/atom_data/base.py:263:21: UP030 Use implicit references for positional format fields
tardis/io/atom_data/base.py:263:21: G001 Logging statement uses `str.format`
tardis/io/atom_data/util.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/atom_data/util.py:8:5: F401 [*] `tardis.io.atom_data.atom_web_download.download_atom_data` imported but unused
tardis/io/atom_data/util.py:15:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/atom_data/util.py:37:13: G004 Logging statement uses f-string
tardis/io/atom_data/util.py:44:15: UP024 [*] Replace aliased errors with `OSError`
tardis/io/atom_data/util.py:50:11: UP024 [*] Replace aliased errors with `OSError`
tardis/io/configuration/config_internal.py:1:1: E401 [*] Multiple imports on one line
tardis/io/configuration/config_internal.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/configuration/config_internal.py:6:20: N812 Lowercase `__path__` imported as non-lowercase `TARDIS_PATH`
tardis/io/configuration/config_internal.py:23:13: G004 Logging statement uses f-string
tardis/io/configuration/config_internal.py:36:13: G004 Logging statement uses f-string
tardis/io/configuration/config_internal.py:49:15: UP024 [*] Replace aliased errors with `OSError`
tardis/io/configuration/config_reader.py:53:29: G004 Logging statement uses f-string
tardis/io/configuration/config_reader.py:88:21: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/io/configuration/config_reader.py:112:21: UP008 Use `super()` instead of `super(__class__, self)`
tardis/io/configuration/config_reader.py:117:9: RET505 Unnecessary `else` after `return` statement
tardis/io/configuration/config_reader.py:118:18: UP008 Use `super()` instead of `super(__class__, self)`
tardis/io/configuration/config_reader.py:141:13: RET505 Unnecessary `else` after `return` statement
tardis/io/configuration/config_reader.py:218:29: G004 Logging statement uses f-string
tardis/io/configuration/config_reader.py:450:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/io/configuration/config_validator.py:43:9: UP028 Replace `yield` over `for` loop with `yield from`
tardis/io/configuration/tests/test_config_reader.py:1:1: INP001 File `tardis/io/configuration/tests/test_config_reader.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/configuration/tests/test_config_reader.py:2:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/configuration/tests/test_config_reader.py:2:8: F401 [*] `os` imported but unused
tardis/io/configuration/tests/test_config_reader.py:3:18: F401 [*] `attr.validate` imported but unused
tardis/io/configuration/tests/test_config_validator.py:1:1: INP001 File `tardis/io/configuration/tests/test_config_validator.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/configuration/tests/test_configuration_namespace.py:1:1: INP001 File `tardis/io/configuration/tests/test_configuration_namespace.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/configuration/tests/test_configuration_namespace.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/logger/__init__.py:2:29: W291 Trailing whitespace
tardis/io/logger/colored_logger.py:83:9: PLR1711 [*] Useless `return` statement at end of function
tardis/io/logger/logger.py:4:63: F401 [*] `tardis.io.logger.colored_logger.formatter_message` imported but unused
tardis/io/logger/logger.py:28:17: UP004 [*] Class `FilterLog` inherits from `object`
tardis/io/logger/logger.py:66:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/logger/logger.py:118:12: E713 [*] Test for membership should be `not in`
tardis/io/logger/montecarlo_tracking.py:2:23: F401 [*] `functools.wraps` imported but unused
tardis/io/logger/montecarlo_tracking.py:63:30: G004 Logging statement uses f-string
tardis/io/logger/montecarlo_tracking.py:64:30: G004 Logging statement uses f-string
tardis/io/logger/tests/test_logging.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/logger/tests/test_logging.py:8:8: F811 [*] Redefinition of unused `pytest` from line 1
tardis/io/logger/tests/test_logging.py:70:16: E712 Avoid equality comparisons to `True`; use `if specific_log_level:` for truth checks
tardis/io/logger/tests/test_logging.py:88:16: E712 Avoid equality comparisons to `True`; use `if specific_log_level:` for truth checks
tardis/io/logger/tests/test_logging.py:110:16: E712 Avoid equality comparisons to `True`; use `if specific_log_level:` for truth checks
tardis/io/model/__init__.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/__init__.py:1:44: F401 `tardis.io.model.readers.stella.read_stella_model` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/io/model/__init__.py:4:44: F401 `tardis.io.model.readers.cmfgen.read_cmfgen_model` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/io/model/parse_atom_data.py:40:21: G004 Logging statement uses f-string
tardis/io/model/parse_density_configuration.py:23:6: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
tardis/io/model/parse_geometry_configuration.py:50:12: PTH117 `os.path.isabs()` should be replaced by `Path.is_absolute()`
tardis/io/model/parse_mass_fraction_configuration.py:62:12: PTH117 `os.path.isabs()` should be replaced by `Path.is_absolute()`
tardis/io/model/parse_radiation_field_configuration.py:118:13: G004 Logging statement uses f-string
tardis/io/model/readers/arepo.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/arepo.py:19:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/arepo.py:129:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/arepo.py:178:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/arepo.py:256:19: UP032 [*] Use f-string instead of `format` call
tardis/io/model/readers/arepo.py:268:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/arepo.py:384:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/arepo.py:429:25: UP032 [*] Use f-string instead of `format` call
tardis/io/model/readers/arepo.py:432:25: UP032 [*] Use f-string instead of `format` call
tardis/io/model/readers/arepo.py:453:29: UP031 Use format specifiers instead of percent format
tardis/io/model/readers/arepo.py:454:29: UP031 Use format specifiers instead of percent format
tardis/io/model/readers/arepo.py:461:17: FLY002 Consider `"\n---\n"` instead of string join
tardis/io/model/readers/arepo.py:472:35: UP031 Use format specifiers instead of percent format
tardis/io/model/readers/arepo.py:473:31: UP031 Use format specifiers instead of percent format
tardis/io/model/readers/arepo.py:501:29: UP031 Use format specifiers instead of percent format
tardis/io/model/readers/arepo.py:502:25: UP031 Use format specifiers instead of percent format
tardis/io/model/readers/arepo.py:537:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/arepo.py:707:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/artis.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/artis.py:7:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/base.py:25:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/blondin_toymodel.py:31:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/blondin_toymodel.py:94:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/cmfgen.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/cmfgen.py:4:21: F401 [*] `pathlib.Path` imported but unused
tardis/io/model/readers/cmfgen.py:27:5: D412 [*] No blank lines allowed between a section header and its content ("Parameters")
tardis/io/model/readers/cmfgen_deprecated.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/cmfgen_deprecated.py:73:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/csvy.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/csvy.py:100:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/model/readers/generic_readers.py:1:21: F401 [*] `pathlib.Path` imported but unused
tardis/io/model/readers/generic_readers.py:21:6: FA100 Add `from __future__ import annotations` to simplify `typing.Tuple`
tardis/io/model/readers/generic_readers.py:48:12: NPY201 `np.recfromtxt` will be removed in NumPy 2.0. Use `np.genfromtxt` instead.
tardis/io/model/readers/stella.py:32:5: D412 [*] No blank lines allowed between a section header and its content ("Parameters")
tardis/io/model/readers/stella.py:53:17: RET508 Unnecessary `else` after `break` statement
tardis/io/model/readers/tests/test_arepo_parser.py:1:1: INP001 File `tardis/io/model/readers/tests/test_arepo_parser.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/model/readers/tests/test_arepo_parser.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/tests/test_arepo_parser.py:16:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/tests/test_arepo_parser.py:48:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/tests/test_arepo_parser.py:59:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/tests/test_arepo_parser.py:89:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/tests/test_arepo_parser.py:99:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/tests/test_arepo_parser.py:109:10: UP015 [*] Unnecessary open mode parameters
tardis/io/model/readers/tests/test_ascii_readers.py:1:1: INP001 File `tardis/io/model/readers/tests/test_ascii_readers.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/model/readers/tests/test_ascii_readers.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/tests/test_ascii_readers.py:3:20: F401 [*] `tardis.io` imported but unused
tardis/io/model/readers/tests/test_ascii_readers.py:10:17: F401 [*] `numpy` imported but unused
tardis/io/model/readers/tests/test_ascii_readers.py:12:21: F401 [*] `pathlib.Path` imported but unused
tardis/io/model/readers/tests/test_cmfgen_reader.py:1:1: INP001 File `tardis/io/model/readers/tests/test_cmfgen_reader.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/model/readers/tests/test_cmfgen_reader.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/tests/test_cmfgen_reader.py:5:1: PT013 Incorrect import of `pytest`; use `import pytest` instead
tardis/io/model/readers/tests/test_cmfgen_reader.py:6:30: F401 [*] `astropy.units` imported but unused
tardis/io/model/readers/tests/test_csvy_reader.py:1:1: INP001 File `tardis/io/model/readers/tests/test_csvy_reader.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/model/readers/tests/test_csvy_reader.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/tests/test_csvy_reader.py:5:38: F401 [*] `jsonschema.exceptions` imported but unused
tardis/io/model/readers/tests/test_csvy_reader.py:8:30: F401 [*] `astropy.units` imported but unused
tardis/io/model/readers/tests/test_csvy_reader.py:48:10: B017 `pytest.raises(Exception)` should be considered evil
tardis/io/model/readers/tests/test_stella_reader.py:1:1: INP001 File `tardis/io/model/readers/tests/test_stella_reader.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/io/model/readers/tests/test_stella_reader.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/model/readers/tests/test_stella_reader.py:5:1: PT013 Incorrect import of `pytest`; use `import pytest` instead
tardis/io/tests/test_HDFWriter.py:1:1: N999 Invalid module name: 'test_HDFWriter'
tardis/io/tests/test_HDFWriter.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/tests/test_HDFWriter.py:6:27: F401 [*] `numpy.testing.assert_almost_equal` imported but unused
tardis/io/tests/test_atomic.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/tests/test_decay.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/tests/test_model_reader.py:1:8: F401 [*] `h5py` imported but unused
tardis/io/util.py:18:20: N812 Lowercase `__path__` imported as non-lowercase `TARDIS_PATH`
tardis/io/util.py:62:24: UP004 [*] Class `MockRegexPattern` inherits from `object`
tardis/io/util.py:163:34: F821 Undefined name `basestring`
tardis/io/util.py:191:22: UP004 [*] Class `HDFWriterMixin` inherits from `object`
tardis/io/util.py:193:25: UP008 Use `super()` instead of `super(__class__, self)`
tardis/io/util.py:239:9: RET506 Unnecessary `else` after `raise` statement
tardis/io/util.py:328:21: G004 Logging statement uses f-string
tardis/io/util.py:385:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/io/util.py:392:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/io/util.py:415:13: G004 Logging statement uses f-string
tardis/model/__init__.py:2:44: W291 Trailing whitespace
tardis/model/__init__.py:4:53: W291 Trailing whitespace
tardis/model/__init__.py:5:46: W291 Trailing whitespace
tardis/model/__init__.py:9:31: F401 `tardis.model.base.SimulationState` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/model/base.py:339:12: PTH117 `os.path.isabs()` should be replaced by `Path.is_absolute()`
tardis/model/base.py:352:27: C403 Unnecessary `list` comprehension (rewrite as a `set` comprehension)
tardis/model/base.py:365:27: C403 Unnecessary `list` comprehension (rewrite as a `set` comprehension)
tardis/model/base.py:376:21: G004 Logging statement uses f-string
tardis/model/geometry/radial1d.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/model/geometry/radial1d.py:196:29: UP004 [*] Class `NumbaRadial1DGeometry` inherits from `object`
tardis/model/geometry/tests/test_radial1d.py:1:1: INP001 File `tardis/model/geometry/tests/test_radial1d.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/model/geometry/tests/test_radial1d.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/model/matter/__init__.py:1:45: F401 `tardis.model.matter.composition.Composition` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/model/matter/composition.py:206:9: RET505 Unnecessary `else` after `return` statement
tardis/model/matter/decay.py:20:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/model/matter/decay.py:28:28: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/model/matter/decay.py:36:30: C405 Unnecessary `list` literal (rewrite as a `set` literal)
tardis/model/matter/decay.py:71:23: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/model/matter/decay.py:101:21: G004 Logging statement uses f-string
tardis/model/matter/decay.py:104:17: G004 Logging statement uses f-string
tardis/model/tests/test_base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/model/tests/test_base.py:1:8: F401 [*] `os` imported but unused
tardis/model/tests/test_base.py:2:21: F401 [*] `pathlib.Path` imported but unused
tardis/model/tests/test_csvy_model.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/model/tests/test_csvy_model.py:1:21: F401 [*] `pathlib.Path` imported but unused
tardis/model/tests/test_csvy_model.py:6:30: F401 [*] `astropy.units` imported but unused
tardis/model/tests/test_csvy_model.py:8:38: F401 [*] `tardis.io.atom_data.base.AtomData` imported but unused
tardis/model/tests/test_density.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/model/tests/test_density.py:1:8: F401 [*] `os` imported but unused
tardis/opacities/macro_atom/base.py:22:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/opacities/macro_atom/base.py:133:9: E722 Do not use bare `except`
tardis/opacities/macro_atom/util.py:4:33: F401 [*] `tardis.constants` imported but unused
tardis/opacities/opacity_state.py:109:9: ANN204 Missing return type annotation for special method `__getitem__`
tardis/opacities/opacity_state.py:115:9: D407 [*] Missing dashed underline after section ("Returns")
tardis/opacities/opacity_state.py:115:9: D406 [*] Section name should end with a newline ("Returns")
tardis/opacities/tau_sobolev.py:92:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/__init__.py:2:63: W291 Trailing whitespace
tardis/plasma/__init__.py:5:32: F401 `tardis.plasma.base.BasePlasma` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/base.py:11:1: F403 `from tardis.plasma.properties.base import *` used; unable to detect undefined names
tardis/plasma/base.py:45:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/base.py:46:18: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/base.py:53:9: RET506 Unnecessary `else` after `raise` statement
tardis/plasma/base.py:54:18: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/base.py:111:17: E722 Do not use bare `except`
tardis/plasma/base.py:144:44: F405 `PreviousIterationProperty` may be undefined, or defined from star imports
tardis/plasma/base.py:153:46: F405 `Input` may be undefined, or defined from star imports
tardis/plasma/base.py:273:13: G004 Logging statement uses f-string
tardis/plasma/base.py:296:20: F401 [*] `pygraphviz` imported but unused
tardis/plasma/base.py:297:9: E722 Do not use bare `except`
tardis/plasma/base.py:306:16: E712 Avoid equality comparisons to `True`; use `if latex_label:` for truth checks
tardis/plasma/base.py:327:16: E712 Avoid equality comparisons to `True`; use `if latex_label:` for truth checks
tardis/plasma/base.py:333:16: E712 Avoid equality comparisons to `True`; use `if latex_label:` for truth checks
tardis/plasma/base.py:383:9: E722 Do not use bare `except`
tardis/plasma/base.py:429:35: F405 `HiddenPlasmaProperty` may be undefined, or defined from star imports
tardis/plasma/base.py:447:29: E722 Do not use bare `except`
tardis/plasma/properties/__init__.py:8:1: F403 `from tardis.opacities.macro_atom.transition_probabilities import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:9:1: F403 `from tardis.plasma.properties.atomic import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:10:1: F403 `from tardis.plasma.properties.continuum_processes import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:11:1: F403 `from tardis.plasma.properties.general import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:12:1: F403 `from tardis.plasma.properties.helium_nlte import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:13:1: F403 `from tardis.plasma.properties.ion_population import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:14:1: F403 `from tardis.plasma.properties.level_population import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:15:1: F403 `from tardis.plasma.properties.nlte import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:16:1: F403 `from tardis.plasma.properties.nlte_rate_equation_solver import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:17:1: F403 `from tardis.plasma.properties.partition_function import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:18:1: F403 `from tardis.plasma.properties.plasma_input import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:19:1: F403 `from tardis.plasma.properties.radiative_properties import *` used; unable to detect undefined names
tardis/plasma/properties/__init__.py:20:1: F403 `from tardis.plasma.properties.rate_matrix_index import *` used; unable to detect undefined names
tardis/plasma/properties/atomic.py:6:28: F401 [*] `radioactivedecay` imported but unused
tardis/plasma/properties/atomic.py:11:33: F401 [*] `tardis.constants` imported but unused
tardis/plasma/properties/atomic.py:379:17: UP032 [*] Use f-string instead of `format` call
tardis/plasma/properties/atomic.py:558:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/atomic.py:589:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/atomic.py:602:17: G004 Logging statement uses f-string
tardis/plasma/properties/atomic.py:643:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/base.py:78:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/base.py:117:25: G004 Logging statement uses f-string
tardis/plasma/properties/base.py:135:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/base.py:163:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/base.py:178:9: RET505 Unnecessary `else` after `return` statement
tardis/plasma/properties/continuum_processes/__init__.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/continuum_processes/__init__.py:2:5: F401 `tardis.plasma.properties.continuum_processes.photo_ion_rate_coeff.PhotoIonRateCoeff` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/__init__.py:4:1: F403 `from tardis.plasma.properties.continuum_processes.rates import *` used; unable to detect undefined names
tardis/plasma/properties/continuum_processes/__init__.py:6:5: F401 `tardis.plasma.properties.continuum_processes.recomb_rate_coeff.StimRecombRateFactor` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/__init__.py:7:5: F401 `tardis.plasma.properties.continuum_processes.recomb_rate_coeff.SpontRecombRateCoeff` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/__init__.py:8:5: F401 `tardis.plasma.properties.continuum_processes.recomb_rate_coeff.StimRecombRateCoeff` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/properties/continuum_processes/fast_array_util.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/general.py:4:30: F401 [*] `astropy.units` imported but unused
tardis/plasma/properties/general.py:33:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/general.py:74:21: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/general.py:118:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/helium_nlte.py:51:13: UP034 [*] Avoid extraneous parentheses
tardis/plasma/properties/helium_nlte.py:126:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/helium_nlte.py:178:21: E722 Do not use bare `except`
tardis/plasma/properties/helium_nlte.py:181:29: G004 Logging statement uses f-string
tardis/plasma/properties/helium_nlte.py:214:23: S605 Starting a process with a shell: seems safe, but may be changed in the future; consider rewriting without `shell`
tardis/plasma/properties/helium_nlte.py:231:18: UP015 [*] Unnecessary open mode parameters
tardis/plasma/properties/helium_nlte.py:234:36: PIE808 [*] Unnecessary `start` argument in `range`
tardis/plasma/properties/helium_nlte.py:257:69: F821 Undefined name `s1`
tardis/plasma/properties/ion_population.py:206:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/ion_population.py:289:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/ion_population.py:368:25: G004 Logging statement uses f-string
tardis/plasma/properties/ion_population.py:422:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/ion_population.py:489:25: G004 Logging statement uses f-string
tardis/plasma/properties/level_population.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/level_population.py:28:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/nlte.py:2:8: F401 [*] `os` imported but unused
tardis/plasma/properties/nlte.py:4:17: F401 [*] `numpy` imported but unused
tardis/plasma/properties/nlte.py:10:53: F401 [*] `tardis.plasma.properties.ion_population.PhiSahaNebular` imported but unused
tardis/plasma/properties/nlte_excitation_data.py:8:26: UP004 [*] Class `NLTEExcitationData` inherits from `object`
tardis/plasma/properties/nlte_rate_equation_solver.py:302:25: UP032 [*] Use f-string instead of `format` call
tardis/plasma/properties/nlte_rate_equation_solver.py:302:25: G001 Logging statement uses `str.format`
tardis/plasma/properties/nlte_rate_equation_solver.py:311:25: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/properties/partition_function.py:145:9: RET505 Unnecessary `elif` after `return` statement
tardis/plasma/properties/partition_function.py:161:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/partition_function.py:181:25: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:192:21: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:199:21: G004 Logging statement uses f-string
tardis/plasma/properties/partition_function.py:252:21: RET506 Unnecessary `else` after `raise` statement
tardis/plasma/properties/partition_function.py:395:21: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/plasma_input.py:2:5: F401 [*] `tardis.plasma.properties.base.ArrayInput` imported but unused
tardis/plasma/properties/property_collections.py:10:1: F403 `from tardis.plasma.properties import *` used; unable to detect undefined names
tardis/plasma/properties/property_collections.py:19:9: F405 `DilutePlanckianRadField` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:20:9: F405 `Abundance` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:21:9: F405 `NumberDensity` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:22:9: F405 `TimeExplosion` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:23:9: F405 `AtomicData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:24:9: F405 `JBlues` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:25:9: F405 `LinkTRadTElectron` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:26:9: F405 `HeliumTreatment` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:27:9: F405 `ContinuumInteractionSpecies` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:28:9: F405 `NLTEIonizationSpecies` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:29:9: F405 `NLTEExcitationSpecies` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:34:9: F405 `TRadiative` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:35:9: F405 `DilutionFactor` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:36:9: F405 `BetaRadiation` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:37:9: F405 `Levels` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:38:9: F405 `Lines` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:39:9: F405 `PartitionFunction` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:40:9: F405 `GElectron` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:41:9: F405 `IonizationData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:42:9: F405 `LinesLowerLevelIndex` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:43:9: F405 `LinesUpperLevelIndex` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:45:9: F405 `StimulatedEmissionFactor` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:46:9: F405 `SelectedAtoms` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:47:9: F405 `ElectronTemperature` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:50:55: F405 `PhiSahaLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:51:55: F405 `LevelBoltzmannFactorLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:53:6: F405 `BetaSobolev` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:53:44: F405 `MacroAtomData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:56:6: F405 `PhiSahaNebular` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:56:22: F405 `ZetaData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:56:32: F405 `BetaElectron` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:56:46: F405 `RadiationFieldCorrection` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:59:6: F405 `LevelBoltzmannFactorDiluteLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:61:49: F405 `LevelBoltzmannFactorNoNLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:64:9: F405 `LevelBoltzmannFactorNLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:65:9: F405 `NLTEData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:66:9: F405 `PreviousElectronDensities` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:67:9: F405 `PreviousBetaSobolev` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:68:9: F405 `BetaSobolev` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:72:6: F405 `NLTEIndexHelper` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:72:23: F405 `NLTEPopulationSolverRoot` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:75:6: F405 `NLTEIndexHelper` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:75:23: F405 `NLTEPopulationSolverLU` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:79:9: F405 `HeliumNLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:80:9: F405 `RadiationFieldCorrection` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:81:9: F405 `ZetaData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:82:9: F405 `BetaElectron` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:83:9: F405 `LevelNumberDensityHeNLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:84:9: F405 `IonNumberDensityHeNLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:88:6: F405 `LevelNumberDensity` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:88:26: F405 `IonNumberDensity` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:91:6: F405 `HeliumNumericalNLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:95:9: F405 `PhotoIonRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:96:9: F405 `StimRecombRateFactor` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:97:9: F405 `BfHeatingRateCoeffEstimator` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:98:9: F405 `StimRecombCoolingRateCoeffEstimator` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:99:9: F405 `YgData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:104:9: F405 `StimRecombRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:105:9: F405 `PhotoIonizationData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:106:9: F405 `SpontRecombRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:107:9: F405 `ThermalLevelBoltzmannFactorLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:108:9: F405 `ThermalLTEPartitionFunction` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:109:9: F405 `BetaElectron` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:110:9: F405 `ThermalGElectron` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:111:9: F405 `ThermalPhiSahaLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:112:9: F405 `SahaFactor` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:113:9: F405 `CorrPhotoIonRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:114:9: F405 `SpontRecombCoolingRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:115:9: F405 `RawRecombTransProbs` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:116:9: F405 `RawPhotoIonTransProbs` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:117:9: F405 `RawRadBoundBoundTransProbs` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:118:9: F405 `MarkovChainTransProbs` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:119:9: F405 `NonContinuumTransProbsMask` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:120:9: F405 `YgInterpolator` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:121:9: F405 `CollExcRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:122:9: F405 `CollDeexcRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:123:9: F405 `RawCollisionTransProbs` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:124:9: F405 `MarkovChainIndex` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:125:9: F405 `MarkovChainTransProbsCollector` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:127:9: F405 `MonteCarloTransProbs` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:128:9: F405 `FreeFreeCoolingRate` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:129:9: F405 `FreeBoundCoolingRate` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:131:9: F405 `LevelNumberDensityLTE` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:132:9: F405 `PhotoIonBoltzmannFactor` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:133:9: F405 `FreeBoundEmissionCDF` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:134:9: F405 `LevelIdxs2LineIdx` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:135:9: F405 `LevelIdxs2TransitionIdx` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:136:9: F405 `CollIonRateCoeffSeaton` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:137:9: F405 `CollRecombRateCoeff` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:139:9: F405 `ContinuumInteractionHandler` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:140:9: F405 `BetaSobolev` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:143:58: F405 `AdiabaticCoolingRate` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:146:9: F405 `RawTwoPhotonTransProbs` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:147:9: F405 `TwoPhotonData` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:148:9: F405 `TwoPhotonEmissionCDF` may be undefined, or defined from star imports
tardis/plasma/properties/property_collections.py:149:9: F405 `TwoPhotonFrequencySampler` may be undefined, or defined from star imports
tardis/plasma/properties/radiative_properties.py:40:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/radiative_properties.py:176:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/plasma/properties/rate_matrix_index.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/radiation_field/__init__.py:2:5: F401 `tardis.plasma.radiation_field.planck_rad_field.DilutePlanckianRadiationField` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/plasma/radiation_field/planck_rad_field.py:58:44: FA100 Add `from __future__ import annotations` to simplify `typing.Union`
tardis/plasma/radiation_field/planck_rad_field.py:117:44: FA100 Add `from __future__ import annotations` to simplify `typing.Union`
tardis/plasma/standard_plasmas.py:316:9: RET506 Unnecessary `else` after `raise` statement
tardis/plasma/tests/test_complete_plasmas.py:147:27: FLY002 Consider `f"{hash_string}_{prop}"` instead of string join
tardis/plasma/tests/test_complete_plasmas.py:152:39: FLY002 Consider `f"{hash_string}_{nlte_prop}"` instead of string join
tardis/plasma/tests/test_hdf_plasma.py:1:17: F401 [*] `numpy` imported but unused
tardis/plasma/tests/test_nlte_excitation.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/tests/test_nlte_excitation.py:5:27: F401 [*] `numpy.testing.assert_allclose` imported but unused
tardis/plasma/tests/test_nlte_solver.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/plasma/tests/test_nlte_solver.py:5:25: F811 [*] Redefinition of unused `npt` from line 2
tardis/plasma/tests/test_plasma_continuum.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/radiation_field/base.py:1:1: INP001 File `tardis/radiation_field/base.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/radiation_field/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/scripts/cmfgen2tardis.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/scripts/cmfgen2tardis.py:2:8: F401 [*] `sys` imported but unused
tardis/scripts/cmfgen2tardis.py:7:33: F401 [*] `tardis.io.atom_data.AtomData` imported but unused
tardis/scripts/cmfgen2tardis.py:15:27: F821 Undefined name `atomic_dataset`
tardis/scripts/cmfgen2tardis.py:43:10: UP015 [*] Unnecessary open mode parameters
tardis/scripts/cmfgen2tardis.py:70:34: F821 Undefined name `atomic_dataset`
tardis/scripts/cmfgen2tardis.py:105:18: FLY002 Consider `f"{filename}.csv"` instead of string join
tardis/scripts/debug/run_numba_single.py:1:1: INP001 File `tardis/scripts/debug/run_numba_single.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/simulation/__init__.py:5:36: F401 `tardis.simulation.base.Simulation` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/simulation/base.py:145:14: UP008 Use `super()` instead of `super(__class__, self)`
tardis/simulation/base.py:187:13: RET506 Unnecessary `else` after `raise` statement
tardis/simulation/base.py:251:17: G004 Logging statement uses f-string
tardis/simulation/base.py:258:9: RET505 Unnecessary `else` after `return` statement
tardis/simulation/base.py:439:13: G004 Logging statement uses f-string
tardis/simulation/base.py:521:13: G004 Logging statement uses f-string
tardis/simulation/base.py:622:25: G004 Logging statement uses f-string
tardis/simulation/base.py:625:13: G004 Logging statement uses f-string
tardis/simulation/base.py:630:13: G004 Logging statement uses f-string
tardis/simulation/base.py:681:13: TRY300 Consider moving this statement to an `else` block
tardis/simulation/base.py:683:26: G004 Logging statement uses f-string
tardis/simulation/tests/test_simulation.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/simulation/tests/test_simulation.py:1:8: F401 [*] `os` imported but unused
tardis/simulation/tests/test_simulation.py:6:8: F401 [*] `logging` imported but unused
tardis/simulation/tests/test_simulation.py:10:20: F401 [*] `tardis.run_tardis` imported but unused
tardis/simulation/tests/test_simulation.py:50:5: RET505 Unnecessary `else` after `return` statement
tardis/spectrum/formal_integral.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/spectrum/formal_integral.py:9:25: F401 [*] `numba.char` imported but unused
tardis/spectrum/formal_integral.py:9:31: F401 [*] `numba.float64` imported but unused
tardis/spectrum/formal_integral.py:9:40: F401 [*] `numba.int64` imported but unused
tardis/spectrum/formal_integral.py:9:47: F401 [*] `numba.typeof` imported but unused
tardis/spectrum/formal_integral.py:9:55: F401 [*] `numba.byte` imported but unused
tardis/spectrum/formal_integral.py:10:32: F401 [*] `numba.experimental.jitclass` imported but unused
tardis/spectrum/formal_integral.py:21:5: F811 Redefinition of unused `opacity_state_initialize` from line 15
tardis/spectrum/formal_integral.py:22:5: F811 Redefinition of unused `OpacityState` from line 14
tardis/spectrum/formal_integral.py:22:5: F401 [*] `tardis.transport.montecarlo.numba_interface.OpacityState` imported but unused
tardis/spectrum/formal_integral.py:55:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/spectrum/formal_integral.py:65:7: TD006 [*] Invalid TODO capitalization: `todo` should be `TODO`
tardis/spectrum/formal_integral.py:218:29: UP004 [*] Class `NumbaFormalIntegrator` inherits from `object`
tardis/spectrum/formal_integral.py:261:24: UP004 [*] Class `FormalIntegrator` inherits from `object`
tardis/spectrum/formal_integral.py:299:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/spectrum/formal_integral.py:344:13: RET506 Unnecessary `else` after `raise` statement
tardis/spectrum/formal_integral.py:356:16: E713 [*] Test for membership should be `not in`
tardis/spectrum/formal_integral.py:615:9: D209 [*] Multi-line docstring closing quotes should be on a separate line
tardis/spectrum/formal_integral.py:684:5: RET505 Unnecessary `else` after `return` statement
tardis/spectrum/formal_integral.py:720:5: RET505 Unnecessary `else` after `return` statement
tardis/spectrum/formal_integral_cuda.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/spectrum/formal_integral_cuda.py:1:8: F401 [*] `sys` imported but unused
tardis/spectrum/formal_integral_cuda.py:3:30: F401 [*] `astropy.units` imported but unused
tardis/spectrum/formal_integral_cuda.py:4:19: F401 [*] `numba.float64` imported but unused
tardis/spectrum/formal_integral_cuda.py:4:28: F401 [*] `numba.int64` imported but unused
tardis/spectrum/formal_integral_cuda.py:17:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/spectrum/formal_integral_cuda.py:58:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/spectrum/formal_integral_cuda.py:237:28: UP004 [*] Class `CudaFormalIntegrator` inherits from `object`
tardis/spectrum/formal_integral_cuda.py:378:5: RET505 Unnecessary `else` after `return` statement
tardis/spectrum/formal_integral_cuda.py:423:5: RET505 Unnecessary `else` after `return` statement
tardis/spectrum/formal_integral_cuda.py:433:5: PIE790 [*] Unnecessary `pass` statement
tardis/spectrum/formal_integral_cuda.py:513:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/spectrum/formal_integral_cuda.py:555:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/spectrum/tests/test_cuda_formal_integral.py:1:1: INP001 File `tardis/spectrum/tests/test_cuda_formal_integral.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/spectrum/tests/test_cuda_formal_integral.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/spectrum/tests/test_cuda_formal_integral.py:15:46: F401 [*] `tardis.transport.montecarlo.base.MonteCarloTransportSolver` imported but unused
tardis/spectrum/tests/test_numba_formal_integral.py:1:1: INP001 File `tardis/spectrum/tests/test_numba_formal_integral.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/spectrum/tests/test_numba_formal_integral.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/spectrum/tests/test_numba_formal_integral.py:5:18: F401 [*] `copy.deepcopy` imported but unused
tardis/spectrum/tests/test_spectrum.py:1:1: INP001 File `tardis/spectrum/tests/test_spectrum.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/spectrum/tests/test_spectrum.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/spectrum/tests/test_spectrum_solver.py:1:1: INP001 File `tardis/spectrum/tests/test_spectrum_solver.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/tests/fixtures/atom_data.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/tests/fixtures/atom_data.py:2:21: F401 [*] `pathlib.Path` imported but unused
tardis/tests/integration_tests/conftest.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/tests/integration_tests/conftest.py:42:13: F821 Undefined name `tardis_githash`
tardis/tests/integration_tests/conftest.py:87:5: RET505 Unnecessary `else` after `return` statement
tardis/tests/integration_tests/conftest.py:90:16: UP024 [*] Replace aliased errors with `OSError`
tardis/tests/integration_tests/conftest.py:91:19: UP024 [*] Replace aliased errors with `OSError`
tardis/tests/integration_tests/test_integration.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/tests/integration_tests/test_integration.py:5:8: ICN001 `matplotlib` should be imported as `mpl`
tardis/tests/integration_tests/test_integration.py:8:1: I001 [*] Import block is un-sorted or un-formatted
tardis/tests/integration_tests/test_integration.py:74:23: UP004 [*] Class `TestIntegration` inherits from `object`
tardis/tests/test_tardis_full_formal_integral.py:61:9: RET505 Unnecessary `else` after `return` statement
tardis/tests/test_util.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/tests/test_util.py:3:25: F401 [*] `numpy.testing` imported but unused
tardis/tests/test_util.py:15:5: F401 [*] `tardis.util.base.create_synpp_yaml` imported but unused
tardis/transport/frame_transformations.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/frame_transformations.py:19:5: RET505 Unnecessary `else` after `return` statement
tardis/transport/frame_transformations.py:49:5: RET505 Unnecessary `else` after `return` statement
tardis/transport/geometry/calculate_distances.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/geometry/calculate_distances.py:18:5: F401 [*] `tardis.transport.montecarlo.r_packet.print_r_packet_properties` imported but unused
tardis/transport/geometry/calculate_distances.py:24:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/transport/geometry/calculate_distances.py:73:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/transport/montecarlo/__init__.py:2:39: W291 Trailing whitespace
tardis/transport/montecarlo/__init__.py:6:69: W291 Trailing whitespace
tardis/transport/montecarlo/__init__.py:14:1: E402 Module level import not at top of file
tardis/transport/montecarlo/__init__.py:24:1: E402 Module level import not at top of file
tardis/transport/montecarlo/__init__.py:24:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/__init__.py:24:50: F401 `tardis.transport.montecarlo.r_packet.RPacket` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/transport/montecarlo/__init__.py:25:1: E402 Module level import not at top of file
tardis/transport/montecarlo/__init__.py:26:5: F401 `tardis.transport.montecarlo.packet_collections.PacketCollection` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/transport/montecarlo/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/configuration/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/configuration/base.py:7:41: F401 [*] `tardis.transport.montecarlo.montecarlo_main_loop` imported but unused
tardis/transport/montecarlo/configuration/base.py:32:31: UP004 [*] Class `MonteCarloConfiguration` inherits from `object`
tardis/transport/montecarlo/estimators/__init__.py:2:5: F401 `tardis.transport.montecarlo.estimators.base.EstimatedRadiationFieldProperties` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/transport/montecarlo/estimators/radfield_estimator_calcs.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/estimators/tests/test_continuum_property_solver.py:1:1: INP001 File `tardis/transport/montecarlo/estimators/tests/test_continuum_property_solver.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/transport/montecarlo/estimators/tests/test_continuum_property_solver.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/estimators/tests/test_continuum_property_solver.py:3:25: F401 [*] `numpy.testing` imported but unused
tardis/transport/montecarlo/interaction.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/macro_atom.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/macro_atom.py:5:41: F401 [*] `tardis.transport.montecarlo.njit_dict` imported but unused
tardis/transport/montecarlo/nonhomologous_grid.py:20:5: D409 [*] Section underline should match the length of its name ("Returns")
tardis/transport/montecarlo/nonhomologous_grid.py:36:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/transport/montecarlo/nonhomologous_grid.py:40:5: D411 [*] Missing blank line before section ("Parameters")
tardis/transport/montecarlo/nonhomologous_grid.py:46:5: D409 [*] Section underline should match the length of its name ("Returns")
tardis/transport/montecarlo/nonhomologous_grid.py:64:5: D409 [*] Section underline should match the length of its name ("Parameters")
tardis/transport/montecarlo/nonhomologous_grid.py:67:5: D411 [*] Missing blank line before section ("Returns")
tardis/transport/montecarlo/nonhomologous_grid.py:68:5: D409 [*] Section underline should match the length of its name ("Returns")
tardis/transport/montecarlo/numba_interface.py:40:20: UP004 [*] Class `OpacityState` inherits from `object`
tardis/transport/montecarlo/numba_interface.py:66:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/transport/montecarlo/numba_interface.py:115:9: ANN204 Missing return type annotation for special method `__getitem__`
tardis/transport/montecarlo/numba_interface.py:121:9: D407 [*] Missing dashed underline after section ("Returns")
tardis/transport/montecarlo/numba_interface.py:121:9: D406 [*] Section name should end with a newline ("Returns")
tardis/transport/montecarlo/numba_interface.py:156:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/transport/montecarlo/packet_source.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/packet_source.py:228:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/transport/montecarlo/packet_source.py:246:9: RET505 Unnecessary `else` after `return` statement
tardis/transport/montecarlo/packet_source.py:270:9: D412 [*] No blank lines allowed between a section header and its content ("Parameters")
tardis/transport/montecarlo/packet_trackers.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/packet_trackers.py:24:22: UP004 [*] Class `RPacketTracker` inherits from `object`
tardis/transport/montecarlo/packet_trackers.py:27:5: D411 [*] Missing blank line before section ("Parameters")
tardis/transport/montecarlo/packet_trackers.py:149:48: B009 [*] Do not call `getattr` with a constant attribute value. It is not any safer than normal property access.
tardis/transport/montecarlo/packet_trackers.py:169:37: UP004 [*] Class `RPacketLastInteractionTracker` inherits from `object`
tardis/transport/montecarlo/packet_trackers.py:172:5: D411 [*] Missing blank line before section ("Parameters")
tardis/transport/montecarlo/r_packet.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/r_packet.py:4:18: F401 [*] `pandas` imported but unused
tardis/transport/montecarlo/r_packet.py:14:41: F811 [*] Redefinition of unused `njit_dict_no_parallel` from line 9
tardis/transport/montecarlo/r_packet.py:51:15: UP004 [*] Class `RPacket` inherits from `object`
tardis/transport/montecarlo/r_packet_transport.py:115:13: RET508 Unnecessary `elif` after `break` statement
tardis/transport/montecarlo/single_packet_loop.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/conftest.py:14:5: F811 Redefinition of unused `opacity_state_initialize` from line 7
tardis/transport/montecarlo/tests/test_base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_base.py:1:8: F401 [*] `os` imported but unused
tardis/transport/montecarlo/tests/test_base.py:3:17: F401 [*] `numpy` imported but unused
tardis/transport/montecarlo/tests/test_base.py:5:30: F401 [*] `astropy.units` imported but unused
tardis/transport/montecarlo/tests/test_base.py:7:21: F401 [*] `pathlib.Path` imported but unused
tardis/transport/montecarlo/tests/test_interaction.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_macro_atom.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_macro_atom.py:3:17: F401 [*] `numpy` imported but unused
tardis/transport/montecarlo/tests/test_montecarlo.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_montecarlo.py:27:1: E402 Module level import not at top of file
tardis/transport/montecarlo/tests/test_montecarlo.py:32:1: E402 Module level import not at top of file
tardis/transport/montecarlo/tests/test_montecarlo.py:48:5: PT021 Use `yield` instead of `request.addfinalizer`
tardis/transport/montecarlo/tests/test_montecarlo.py:204:5: F811 Redefinition of unused `test_get_random_mu_different_output` from line 195
tardis/transport/montecarlo/tests/test_montecarlo.py:484:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:570:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:571:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:579:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:592:9: PT014 Duplicate of test case at index 1 in `@pytest_mark.parametrize`
tardis/transport/montecarlo/tests/test_montecarlo.py:597:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:602:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:625:9: F821 Undefined name `transport`
tardis/transport/montecarlo/tests/test_montecarlo.py:626:9: F821 Undefined name `transport`
tardis/transport/montecarlo/tests/test_montecarlo.py:627:9: F821 Undefined name `transport`
tardis/transport/montecarlo/tests/test_montecarlo.py:628:9: F821 Undefined name `transport`
tardis/transport/montecarlo/tests/test_montecarlo.py:630:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:643:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:667:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo.py:680:5: F821 Undefined name `mc`
tardis/transport/montecarlo/tests/test_montecarlo_main_loop.py:11:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/transport/montecarlo/tests/test_montecarlo_main_loop.py:11:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/transport/montecarlo/tests/test_numba_interface.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_numba_interface.py:80:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/transport/montecarlo/tests/test_numba_interface.py:80:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/transport/montecarlo/tests/test_opacities.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_packet.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_packet.py:8:38: F811 [*] Redefinition of unused `opacities` from line 4
tardis/transport/montecarlo/tests/test_packet.py:9:50: F811 [*] Redefinition of unused `frame_transformations` from line 5
tardis/transport/montecarlo/tests/test_packet.py:10:57: F811 [*] Redefinition of unused `calculate_distances` from line 6
tardis/transport/montecarlo/tests/test_packet.py:12:55: F401 [*] `tardis.transport.montecarlo.numba_interface` imported but unused
tardis/transport/montecarlo/tests/test_packet.py:15:50: F811 [*] Redefinition of unused `frame_transformations` from line 9
tardis/transport/montecarlo/tests/test_packet.py:16:57: F811 [*] Redefinition of unused `calculate_distances` from line 10
tardis/transport/montecarlo/tests/test_packet.py:27:1: E402 Module level import not at top of file
tardis/transport/montecarlo/tests/test_packet_source.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_packet_source.py:1:8: F401 [*] `os` imported but unused
tardis/transport/montecarlo/tests/test_packet_source.py:5:18: F401 [*] `pandas` imported but unused
tardis/transport/montecarlo/tests/test_packet_source.py:13:51: F401 [*] `tardis.tests.fixtures.regression_data.RegressionData` imported but unused
tardis/transport/montecarlo/tests/test_rpacket_last_interaction_tracker.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_rpacket_tracker.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_single_packet_loop.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_single_packet_loop.py:52:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/transport/montecarlo/tests/test_single_packet_loop.py:52:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/transport/montecarlo/tests/test_single_packet_loop.py:57:5: PT015 Assertion always fails, replace with `pytest.fail()`
tardis/transport/montecarlo/tests/test_single_packet_loop.py:57:12: B011 Do not `assert False` (`python -O` removes these calls), raise `AssertionError()`
tardis/transport/montecarlo/tests/test_tracker_utils.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_tracker_utils.py:1:8: F401 [*] `pytest` imported but unused
tardis/transport/montecarlo/tests/test_vpacket.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_vpacket.py:1:8: F401 [*] `os` imported but unused
tardis/transport/montecarlo/tests/test_vpacket.py:4:18: F401 [*] `pandas` imported but unused
tardis/transport/montecarlo/tests/test_vpacket.py:14:1: E402 Module level import not at top of file
tardis/transport/montecarlo/tests/test_weighted_packet_source.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/tests/test_weighted_packet_source.py:1:8: F401 [*] `os` imported but unused
tardis/transport/montecarlo/tests/test_weighted_packet_source.py:4:17: F401 [*] `numpy` imported but unused
tardis/transport/montecarlo/tests/test_weighted_packet_source.py:5:18: F401 [*] `pandas` imported but unused
tardis/transport/montecarlo/tests/test_weighted_packet_source.py:12:51: F401 [*] `tardis.tests.fixtures.regression_data.RegressionData` imported but unused
tardis/transport/montecarlo/utils.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/weighted_packet_source.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/montecarlo/weighted_packet_source.py:1:19: F401 [*] `numexpr` imported but unused
tardis/transport/montecarlo/weighted_packet_source.py:2:17: F401 [*] `numpy` imported but unused
tardis/transport/montecarlo/weighted_packet_source.py:3:34: F401 [*] `astropy.constants` imported but unused
tardis/transport/montecarlo/weighted_packet_source.py:7:5: F401 [*] `tardis.transport.montecarlo.packet_source.BasePacketSource` imported but unused
tardis/transport/montecarlo/weighted_packet_source.py:8:5: F401 [*] `tardis.transport.montecarlo.packet_source.HDFWriterMixin` imported but unused
tardis/transport/montecarlo/weighted_packet_source.py:84:13: B018 Found useless expression. Either assign it to a variable or remove it.
tardis/transport/tests/test_doppler_factor.py:1:1: INP001 File `tardis/transport/tests/test_doppler_factor.py` is part of an implicit namespace package. Add an `__init__.py`.
tardis/transport/tests/test_doppler_factor.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/transport/tests/test_doppler_factor.py:2:17: F401 [*] `numpy` imported but unused
tardis/transport/tests/test_doppler_factor.py:5:48: F401 [*] `tardis.transport.montecarlo.r_packet` imported but unused
tardis/util/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/util/base.py:12:30: F401 [*] `radioactivedecay.Nuclide` imported but unused
tardis/util/base.py:119:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/util/base.py:135:12: C414 Unnecessary `list` call within `set()`
tardis/util/base.py:196:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/util/base.py:234:13: PIE790 [*] Unnecessary `pass` statement
tardis/util/base.py:344:5: RET505 Unnecessary `else` after `return` statement
tardis/util/base.py:349:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/util/base.py:405:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/util/base.py:483:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/util/base.py:502:5: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/util/base.py:522:5: E722 Do not use bare `except`
tardis/util/base.py:523:22: SIM210 Remove unnecessary `True if ... else False`
tardis/util/base.py:630:5: RET505 Unnecessary `elif` after `return` statement
tardis/util/base.py:776:5: D412 [*] No blank lines allowed between a section header and its content ("Parameters")
tardis/visualization/__init__.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/__init__.py:3:57: F401 `tardis.visualization.tools.convergence_plot.ConvergencePlots` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:6:5: F401 `tardis.visualization.widgets.shell_info.shell_info_from_simulation` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:7:5: F401 `tardis.visualization.widgets.shell_info.shell_info_from_hdf` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:9:52: F401 `tardis.visualization.widgets.line_info.LineInfoWidget` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:10:51: F401 `tardis.visualization.widgets.grotrian.GrotrianWidget` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:11:59: F401 `tardis.visualization.widgets.custom_abundance.CustomAbundanceWidget` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:12:50: F401 `tardis.visualization.tools.sdec_plot.SDECPlotter` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:13:53: F401 `tardis.visualization.tools.rpacket_plot.RPacketPlotter` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/__init__.py:14:49: F401 `tardis.visualization.tools.liv_plot.LIVPlotter` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
tardis/visualization/plot_util.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/plot_util.py:42:5: RET505 Unnecessary `else` after `return` statement
tardis/visualization/tools/convergence_plot.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/tools/convergence_plot.py:4:25: F401 [*] `matplotlib.cm` imported but unused
tardis/visualization/tools/convergence_plot.py:5:29: F401 [*] `matplotlib.colors` imported but unused
tardis/visualization/tools/convergence_plot.py:39:24: UP004 [*] Class `ConvergencePlots` inherits from `object`
tardis/visualization/tools/convergence_plot.py:321:13: ISC003 Explicitly concatenated string should be implicitly concatenated
tardis/visualization/tools/liv_plot.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/tools/liv_plot.py:25:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/visualization/tools/liv_plot.py:48:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/visualization/tools/liv_plot.py:312:13: RET506 Unnecessary `elif` after `raise` statement
tardis/visualization/tools/liv_plot.py:313:24: G010 [*] Logging statement uses `warn` instead of `warning`
tardis/visualization/tools/rpacket_plot.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/tools/rpacket_plot.py:3:18: F401 [*] `pandas` imported but unused
tardis/visualization/tools/rpacket_plot.py:6:26: F401 [*] `plotly.express` imported but unused
tardis/visualization/tools/rpacket_plot.py:101:13: RET505 Unnecessary `else` after `return` statement
tardis/visualization/tools/rpacket_plot.py:110:114: W291 Trailing whitespace
tardis/visualization/tools/rpacket_plot.py:115:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/visualization/tools/rpacket_plot.py:231:35: ISC003 Explicitly concatenated string should be implicitly concatenated
tardis/visualization/tools/rpacket_plot.py:481:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/visualization/tools/rpacket_plot.py:615:35: ISC003 Explicitly concatenated string should be implicitly concatenated
tardis/visualization/tools/rpacket_plot.py:646:9: D202 [*] No blank lines allowed after function docstring (found 1)
tardis/visualization/tools/sdec_plot.py:202:9: RET505 Unnecessary `elif` after `return` statement
tardis/visualization/tools/sdec_plot.py:343:13: RET505 Unnecessary `elif` after `return` statement
tardis/visualization/tools/sdec_plot.py:460:9: RET505 Unnecessary `else` after `return` statement
tardis/visualization/tools/sdec_plot.py:496:9: RET505 Unnecessary `elif` after `return` statement
tardis/visualization/tools/sdec_plot.py:531:13: RET506 Unnecessary `else` after `raise` statement
tardis/visualization/tools/sdec_plot.py:699:13: RET506 Unnecessary `else` after `raise` statement
tardis/visualization/tools/tests/test_convergence_plot.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/tools/tests/test_convergence_plot.py:6:36: F401 [*] `tardis.tests.test_util.monkeysession` imported but unused
tardis/visualization/tools/tests/test_convergence_plot.py:87:24: PIE808 [*] Unnecessary `start` argument in `range`
tardis/visualization/tools/tests/test_convergence_plot.py:111:22: PIE808 [*] Unnecessary `start` argument in `range`
tardis/visualization/tools/tests/test_convergence_plot.py:198:9: E712 Avoid equality comparisons to `False`; use `if not ...:` for false checks
tardis/visualization/tools/tests/test_convergence_plot.py:215:9: E712 Avoid equality comparisons to `False`; use `if not ...:` for false checks
tardis/visualization/tools/tests/test_convergence_plot.py:220:40: F811 Redefinition of unused `monkeysession` from line 6
tardis/visualization/tools/tests/test_rpacket_plot.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/tools/tests/test_sdec_plot.py:343:17: F631 Assert test is a non-empty tuple, which is always `True`
tardis/visualization/tools/tests/test_sdec_plot.py:475:13: F631 Assert test is a non-empty tuple, which is always `True`
tardis/visualization/tools/tests/test_sdec_plot.py:557:13: PLW0127 Self-assignment of variable `observed_spectrum`
tardis/visualization/tools/tests/test_sdec_plot.py:618:13: F631 Assert test is a non-empty tuple, which is always `True`
tardis/visualization/widgets/custom_abundance.py:2:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/custom_abundance.py:32:60: F811 [*] Redefinition of unused `quantity_linspace` from line 16
tardis/visualization/widgets/custom_abundance.py:604:47: UP032 [*] Use f-string instead of `format` call
tardis/visualization/widgets/custom_abundance.py:737:9: SIM103 Return the condition directly
tardis/visualization/widgets/custom_abundance.py:741:9: RET505 Unnecessary `else` after `return` statement
tardis/visualization/widgets/custom_abundance.py:917:12: E712 Avoid equality comparisons to `True`; use `if obj.new:` for truth checks
tardis/visualization/widgets/custom_abundance.py:1130:9: RET505 Unnecessary `else` after `return` statement
tardis/visualization/widgets/custom_abundance.py:1421:9: RET506 Unnecessary `else` after `raise` statement
tardis/visualization/widgets/custom_abundance.py:1473:27: UP031 Use format specifiers instead of percent format
tardis/visualization/widgets/custom_abundance.py:1688:36: UP032 [*] Use f-string instead of `format` call
tardis/visualization/widgets/custom_abundance.py:1724:9: F811 Redefinition of unused `input_d_time_0_eventhandler` from line 1713
tardis/visualization/widgets/custom_abundance.py:1754:13: F821 Undefined name `display`
tardis/visualization/widgets/custom_abundance.py:1756:13: F821 Undefined name `display`
tardis/visualization/widgets/custom_abundance.py:1758:13: F821 Undefined name `display`
tardis/visualization/widgets/grotrian.py:6:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/grotrian.py:13:8: ICN001 `matplotlib` should be imported as `mpl`
tardis/visualization/widgets/grotrian.py:608:35: ISC003 Explicitly concatenated string should be implicitly concatenated
tardis/visualization/widgets/grotrian.py:753:35: ISC003 Explicitly concatenated string should be implicitly concatenated
tardis/visualization/widgets/grotrian.py:923:20: C408 Unnecessary `dict` call (rewrite as a literal)
tardis/visualization/widgets/grotrian.py:1157:9: B010 [*] Do not call `setattr` with a constant attribute value. It is not any safer than normal property access.
tardis/visualization/widgets/grotrian.py:1158:9: B010 [*] Do not call `setattr` with a constant attribute value. It is not any safer than normal property access.
tardis/visualization/widgets/grotrian.py:1176:9: RET505 Unnecessary `elif` after `return` statement
tardis/visualization/widgets/line_info.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/line_info.py:3:8: F401 [*] `re` imported but unused
tardis/visualization/widgets/line_info.py:8:8: F401 [*] `qgrid` imported but unused
tardis/visualization/widgets/line_info.py:306:21: E712 Avoid equality comparisons to `False`; use `if not ...:` for false checks
tardis/visualization/widgets/shell_info.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/shell_info.py:1:25: F401 [*] `tardis.base.run_tardis` imported but unused
tardis/visualization/widgets/shell_info.py:2:51: F401 [*] `tardis.io.atom_data.atom_web_download.download_atom_data` imported but unused
tardis/visualization/widgets/shell_info.py:12:17: F401 [*] `numpy` imported but unused
tardis/visualization/widgets/shell_info.py:299:25: PIE808 [*] Unnecessary `start` argument in `range`
tardis/visualization/widgets/tests/test_custom_abundance.py:2:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/tests/test_custom_abundance.py:4:8: F401 [*] `tardis` imported but unused
tardis/visualization/widgets/tests/test_custom_abundance.py:8:36: F401 [*] `tardis.tests.test_util.monkeysession` imported but unused
tardis/visualization/widgets/tests/test_custom_abundance.py:34:19: F811 Redefinition of unused `monkeysession` from line 8
tardis/visualization/widgets/tests/test_custom_abundance.py:156:20: E712 Avoid equality comparisons to `True`; use `if caw.btn_next.disabled:` for truth checks
tardis/visualization/widgets/tests/test_custom_abundance.py:157:20: E712 Avoid equality comparisons to `True`; use `if caw.btn_prev.disabled:` for truth checks
tardis/visualization/widgets/tests/test_custom_abundance.py:225:34: UP032 [*] Use f-string instead of `format` call
tardis/visualization/widgets/tests/test_custom_abundance.py:225:50: RUF015 Prefer `next(iter(unique_v))` over single element slice
tardis/visualization/widgets/tests/test_line_info.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/tests/test_line_info.py:7:36: F401 [*] `tardis.tests.test_util.monkeysession` imported but unused
tardis/visualization/widgets/tests/test_line_info.py:43:20: E712 Avoid equality comparisons to `False`; use `if not species_interactions_df.all(axis=None):` for false checks
tardis/visualization/widgets/tests/test_line_info.py:66:12: E712 Avoid equality comparisons to `False`; use `if not species_interactions_df.all(axis=None):` for false checks
tardis/visualization/widgets/tests/test_line_info.py:89:20: E712 Avoid equality comparisons to `False`; use `if not last_line_counts_df.all(axis=None):` for false checks
tardis/visualization/widgets/tests/test_line_info.py:145:66: F811 Redefinition of unused `monkeysession` from line 7
tardis/visualization/widgets/tests/test_line_info.py:289:16: E712 Avoid equality comparisons to `False`; use `if not bool(selected_species):` for false checks
tardis/visualization/widgets/tests/test_line_info.py:335:12: E712 Avoid equality comparisons to `False`; use `if not ...:` for false checks
tardis/visualization/widgets/tests/test_shell_info.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/tests/test_shell_info.py:5:36: F401 [*] `tardis.tests.test_util.monkeysession` imported but unused
tardis/visualization/widgets/tests/test_shell_info.py:142:50: F811 Redefinition of unused `monkeysession` from line 5
tardis/visualization/widgets/util.py:3:1: I001 [*] Import block is un-sorted or un-formatted
Found 975 errors.
[*] 429 fixable with the `--fix` option (129 hidden fixes can be enabled with the `--unsafe-fixes` option).

@officialasishkumar
Copy link
Member Author

I will add more updates to this PR in the next 2 days.

Copy link

codecov bot commented Jul 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 69.42%. Comparing base (c57d74d) to head (bf217a0).
Report is 6 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2749      +/-   ##
==========================================
- Coverage   69.81%   69.42%   -0.40%     
==========================================
  Files         196      196              
  Lines       15002    15008       +6     
==========================================
- Hits        10474    10419      -55     
- Misses       4528     4589      +61     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@officialasishkumar officialasishkumar changed the title [WIP] Cache benchmark functions Cache benchmark functions Jul 29, 2024
@officialasishkumar
Copy link
Member Author

I will share the action run in a couple of hours.

Will update this comment.

@officialasishkumar officialasishkumar changed the title Cache benchmark functions [WIP] Cache benchmark functions Jul 29, 2024
@tardis-bot
Copy link
Contributor

tardis-bot commented Jul 29, 2024

*beep* *bop*
Hi human,
I ran benchmarks as you asked comparing master (c57d74d) and the latest commit (7eff8e8).
Here are the logs produced by ASV.
Results can also be downloaded as artifacts here.

Significantly changed benchmarks:

All benchmarks:

All benchmarks:

| Change   | Before [c57d74d1] <master>   | After [7eff8e88]    | Ratio   | Benchmark (Parameter)                                                                                                                        |
|----------|------------------------------|---------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------|
|          | 2.96±1μs                     | 2.55±0.9μs          | ~0.86   | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_compton_opacity_calculation                                               |
|          | 4.41±2μs                     | 1.98±0.6μs          | ~0.45   | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_pair_creation_opacity_calculation                                         |
|          | 6.10±3μs                     | 2.78±0.9μs          | ~0.46   | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_photoabsorption_opacity_calculation                                       |
|          | 5.83±0.3ms                   | 6.66±0.2ms          | ~1.14   | opacities_opacity_state.BenchmarkOpacitiesOpacityState.time_opacity_state_initialize('macroatom')                                            |
|          | 3.52±0.2ms                   | 3.67±0.2ms          | 1.04    | opacities_opacity_state.BenchmarkOpacitiesOpacityState.time_opacity_state_initialize('scatter')                                              |
|          | 40.3±0.09s                   | 40.3±0.1s           | 1.00    | run_tardis.BenchmarkRunTardis.time_run_tardis                                                                                                |
|          | 1.06±0m                      | 1.05±0m             | 1.00    | run_tardis.BenchmarkRunTardis.time_run_tardis_rpacket_tracking                                                                               |
|          | 2.07±0m                      | 2.08±0m             | 1.01    | spectrum_formal_integral.BenchmarkTransportMontecarloFormalIntegral.time_FormalIntegrator_functions                                          |
|          | 204±0.4ns                    | 206±0.03ns          | 1.01    | spectrum_formal_integral.BenchmarkTransportMontecarloFormalIntegral.time_intensity_black_body                                                |
|          | 1.21±0μs                     | 1.20±0μs            | 0.99    | transport_geometry_calculate_distances.BenchmarkTransportGeometryCalculateDistances.time_calculate_distance_boundary                         |
|          | 7.11±3μs                     | 6.83±2μs            | 0.96    | transport_geometry_calculate_distances.BenchmarkTransportGeometryCalculateDistances.time_calculate_distance_line                             |
|          | 4.80±1μs                     | 5.77±2μs            | ~1.20   | transport_montecarlo_estimators_radfield_estimator_calcs.BenchmarkMontecarloMontecarloNumbaPacket.time_update_line_estimators                |
|          | 20.3±0.05μs                  | 19.8±0.02μs         | 0.98    | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_line_emission                                                  |
|          | 81.9±20μs                    | 88.6±20μs           | 1.08    | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_line_scatter                                                   |
|          | 703±0.1ns                    | 721±0.2ns           | 1.02    | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_thomson_scatter                                                |
|          | 1.72±0.01ms                  | 1.88±0ms            | 1.09    | transport_montecarlo_main_loop.BenchmarkTransportMontecarloMontecarloMainLoop.time_montecarlo_main_loop                                      |
|          | 25.3±8μs                     | 22.3±7μs            | ~0.88   | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_last_interaction_tracker_list(10, 10)  |
|          | 28.1±9μs                     | 25.9±8μs            | 0.92    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_last_interaction_tracker_list(10, 50)  |
|          | 32.6±8μs                     | 30.8±8μs            | 0.94    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_last_interaction_tracker_list(100, 10) |
|          | 33.6±9μs                     | 32.1±8μs            | 0.95    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_last_interaction_tracker_list(100, 50) |
|          | 7.33±0μs                     | 7.16±0.01μs         | 0.98    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_tracker_list(10, 10)                   |
|          | 7.96±0μs                     | 8.00±0.01μs         | 1.00    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_tracker_list(10, 50)                   |
|          | 56.0±0.04μs                  | 55.4±0.05μs         | 0.99    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_tracker_list(100, 10)                  |
|          | 55.6±0.2μs                   | 56.2±0.01μs         | 1.01    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_tracker_list(100, 50)                  |
|          | 66.0±0.04ms                  | 66.5±0.2ms          | 1.01    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_rpacket_trackers_to_dataframe(10, 10)                   |
|          | 64.1±0.02ms                  | 65.3±0.04ms         | 1.02    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_rpacket_trackers_to_dataframe(10, 50)                   |
|          | 64.7±0.1ms                   | 66.8±0.09ms         | 1.03    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_rpacket_trackers_to_dataframe(100, 10)                  |
|          | 64.7±0.2ms                   | 65.2±0.02ms         | 1.01    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_rpacket_trackers_to_dataframe(100, 50)                  |
|          | 2.25±0.7ms                   | 2.35±0.8ms          | 1.04    | transport_montecarlo_single_packet_loop.BenchmarkTransportMontecarloSinglePacketLoop.time_single_packet_loop                                 |
|          | 1.60±0μs                     | 1.60±0μs            | 1.00    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_bad_vpacket                                                |
|          | 3.91±0μs                     | 3.92±0μs            | 1.00    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket                                                    |
|          | 14.8±4μs                     | 19.6±6μs            | ~1.33   | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket_volley                                             |
|          | 1.71±0μs                     | 1.71±0μs            | 1.00    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket_within_shell                                       |

If you want to see the graph of the results, you can check it here

@Knights-Templars Knights-Templars marked this pull request as draft July 29, 2024 14:10
@officialasishkumar officialasishkumar marked this pull request as ready for review July 31, 2024 12:00
@officialasishkumar officialasishkumar changed the title [WIP] Cache benchmark functions Cache benchmark functions Jul 31, 2024
Signed-off-by: Asish Kumar <[email protected]>
Signed-off-by: Asish Kumar <[email protected]>
Copy link
Contributor

@andrewfullard andrewfullard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please resolve the file conflict

.github/workflows/benchmarks.yml Outdated Show resolved Hide resolved
@officialasishkumar officialasishkumar force-pushed the cache-benchmark-functions branch from c703d1b to cb2f557 Compare July 31, 2024 17:54
@andrewfullard andrewfullard self-requested a review July 31, 2024 18:59
@andrewfullard
Copy link
Contributor

https://github.com/officialasishkumar/tardis/actions/runs/10185827591/job/28176215185

Unfortunately there seem to be some failures. Definitely faster though, and actually has uncertainties reported.

@officialasishkumar
Copy link
Member Author

Oh i see. Will fix the failing benchmarks tomorrow morning.

Signed-off-by: Asish Kumar <[email protected]>
@officialasishkumar
Copy link
Member Author

officialasishkumar commented Aug 1, 2024

https://github.com/officialasishkumar/tardis/actions/runs/10193682770/job/28198756234

Changes to the master are made by merging a branch that is on top of this branch.

Signed-off-by: Asish Kumar <[email protected]>
Signed-off-by: Asish Kumar <[email protected]>
andrewfullard
andrewfullard previously approved these changes Aug 1, 2024
Copy link
Contributor

@andrewfullard andrewfullard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, well done

Signed-off-by: Asish Kumar <[email protected]>
@andrewfullard
Copy link
Contributor

Do you know why one of the benchmarks is failing @officialasishkumar ?

@officialasishkumar
Copy link
Member Author

Not sure why it's failing here.

I quickly tested it in my fork by running it on that function and it works.

PR: officialasishkumar#82
Action: https://github.com/officialasishkumar/tardis/actions/runs/10220375847/job/28280596608

@andrewfullard

@officialasishkumar
Copy link
Member Author

officialasishkumar commented Aug 2, 2024

I started another runner after merging the latest changes in master.

https://github.com/officialasishkumar/tardis/actions/runs/10220599741

@andrewfullard andrewfullard merged commit 0349e7a into tardis-sn:master Aug 2, 2024
16 of 17 checks passed
)
def time_pair_creation_opacity_calculation(self, parameters):
def time_pair_creation_opacity_calculation(self):
energy = 255.9
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

255 (I guess keV?) for pair creation?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on which basis are these values chosen? 100000.009 seems to be quite specific

def time_compton_opacity_calculation(self, electron_number_density, energy):
compton_opacity_calculation(energy, electron_number_density)
def time_compton_opacity_calculation(self):
energy = 511.0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

511keV is quite low for the Compton opacity (almost at the Thomson limit), though it might not matter in this case.

@afloers
Copy link
Contributor

afloers commented Aug 6, 2024

Just added some minor comments, other than that the PR looks good to me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

5 participants