Skip to content

Conversation

@atharva-2001
Copy link
Member

@atharva-2001 atharva-2001 commented Aug 19, 2025

📝 Description

Type: 🪲 bugfix | 🚀 feature | ☣️ breaking change | 🚦 testing | 📝 documentation | 🎢 infrastructure

  • Adds a sphinx method to check if its sphinx, other combinations did not work.
  • Clears up the notebook so static widgets render

📌 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 Aug 19, 2025

*beep* *bop*

Hi, human.

The docs workflow has succeeded ✔️

Click here to see your results.

@tardis-bot
Copy link
Contributor

tardis-bot commented Aug 19, 2025

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

Details
3501	      	[ ] syntax-error
100	W293  	[ ] blank-line-with-whitespace
73	E701  	[ ] multiple-statements-on-one-line-colon
26	W291  	[ ] trailing-whitespace
19	E702  	[ ] multiple-statements-on-one-line-semicolon
13	G004  	[ ] logging-f-string
 9	I001  	[*] unsorted-imports
 6	W292  	[ ] missing-newline-at-end-of-file
 5	F401  	[*] unused-import
 5	F405  	[ ] undefined-local-with-import-star-usage
 5	RET505	[*] superfluous-else-return
 4	UP015 	[*] redundant-open-modes
 3	E402  	[ ] module-import-not-at-top-of-file
 3	D204  	[*] incorrect-blank-line-after-class
 3	F821  	[ ] undefined-name
 1	E712  	[ ] true-false-comparison
 1	E722  	[ ] bare-except
 1	COM818	[ ] trailing-comma-on-bare-tuple
 1	F811  	[ ] redefined-while-unused
 1	NPY201	[ ] numpy2-deprecation
 1	PGH004	[ ] blanket-noqa
 1	RET506	[*] superfluous-else-raise
 1	RUF021	[*] parenthesize-chained-operators
 1	TRY300	[ ] try-consider-else
 1	UP009 	[*] utf8-encoding-declaration
 1	UP030 	[ ] format-literals
 1	UP032 	[*] f-string
Found 3787 errors.
[*] 59 fixable with the `--fix` option (19 hidden fixes can be enabled with the `--unsafe-fixes` option).

Complete output(might be large):

Details
docs/conf.py:1:1: UP009 [*] UTF-8 encoding declaration is unnecessary
docs/conf.py:27:1: I001 [*] Import block is un-sorted or un-formatted
docs/conf.py:30:8: F401 [*] `tardis` imported but unused
docs/conf.py:35:1: I001 [*] Import block is un-sorted or un-formatted
docs/conf.py:40:43: PGH004 Use specific rule codes when using `noqa`
docs/conf.py:50:27: UP015 [*] Unnecessary mode argument
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:73:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:74:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:75:1: F405 `exclude_patterns` may be undefined, or defined from star imports
docs/conf.py:143:1: W293 Blank line contains whitespace
docs/conf.py:178:1: W293 Blank line contains whitespace
docs/conf.py:195:13: UP030 Use implicit references for positional format fields
docs/conf.py:195:13: UP032 [*] Use f-string instead of `format` call
docs/conf.py:222:1: E402 Module level import not at top of file
docs/conf.py:294:4: E712 Avoid equality comparisons to `True`; use `toml_config_tool_dict["tardis"]['edit_on_github']:` for truth checks
docs/conf.py:316:1: E402 Module level import not at top of file
docs/conf.py:368:1: E402 Module level import not at top of file
docs/conf.py:383:37: UP015 [*] Unnecessary modes, use `w`
docs/conf.py:398:41: UP015 [*] Unnecessary modes, use `w`
docs/conf.py:413:37: UP015 [*] Unnecessary modes, use `w`
tardis/io/logger/logger.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/io/logger/logger.py:4:17: F401 [*] `panel` imported but unused
tardis/io/logger/logger.py:6:18: F401 [*] `pandas` imported but unused
tardis/io/logger/logger.py:19:5: D204 [*] 1 blank line required after class docstring
tardis/io/logger/logger.py:20:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:56:5: D204 [*] 1 blank line required after class docstring
tardis/io/logger/logger.py:57:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:75:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:84:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:99:21: G004 Logging statement uses f-string
tardis/io/logger/logger.py:161:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:173:1: W293 [*] Blank line contains whitespace
tardis/io/logger/logger.py:178:85: W291 [*] Trailing whitespace
tardis/io/logger/logger.py:182:80: W291 [*] Trailing whitespace
tardis/io/logger/logger.py:185:1: W293 [*] Blank line contains whitespace
tardis/io/logger/logger.py:192:1: W293 [*] Blank line contains whitespace
tardis/io/logger/logger.py:198:1: W293 [*] Blank line contains whitespace
tardis/io/logger/logger.py:203:5: D204 [*] 1 blank line required after class docstring
tardis/io/logger/logger.py:204:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:215:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:220:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:230:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:247:1: W293 Blank line contains whitespace
tardis/io/logger/logger.py:257:1: W293 [*] Blank line contains whitespace
tardis/io/logger/logger.py:265:1: W293 [*] Blank line contains whitespace
tardis/io/logger/logger.py:280:1: W293 [*] Blank line contains whitespace
tardis/io/logger/logger.py:283:5: RET505 [*] Unnecessary `else` after `return` statement
tardis/simulation/base.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/simulation/base.py:245:17: G004 Logging statement uses f-string
tardis/simulation/base.py:418:13: G004 Logging statement uses f-string
tardis/simulation/base.py:519:13: G004 Logging statement uses f-string
tardis/simulation/base.py:605:13: G004 Logging statement uses f-string
tardis/simulation/base.py:610:13: G004 Logging statement uses f-string
tardis/simulation/base.py:661:13: TRY300 Consider moving this statement to an `else` block
tardis/simulation/base.py:663:26: G004 Logging statement uses f-string
tardis/util/base.py:185:20: NPY201 `np.trapz` will be removed in NumPy 2.0. Use `numpy.trapezoid` on NumPy 2.0, or ignore this warning on earlier versions.
tardis/util/base.py:336:5: RET505 [*] Unnecessary `else` after `return` statement
tardis/util/base.py:510:5: E722 Do not use bare `except`
tardis/util/environment.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/util/environment.py:8:28: W291 [*] Trailing whitespace
tardis/util/environment.py:14:1: W293 [*] Blank line contains whitespace
tardis/util/environment.py:18:1: W293 Blank line contains whitespace
tardis/util/environment.py:26:9: RET505 [*] Unnecessary `elif` after `return` statement
tardis/util/environment.py:37:1: W293 [*] Blank line contains whitespace
tardis/util/environment.py:44:1: W293 [*] Blank line contains whitespace
tardis/util/environment.py:51:1: W293 [*] Blank line contains whitespace
tardis/util/environment.py:64:1: W293 [*] Blank line contains whitespace
tardis/util/environment.py:77:9: RET505 [*] Unnecessary `elif` after `return` statement
tardis/util/environment.py:86:1: W293 Blank line contains whitespace
tardis/util/environment.py:110:1: W293 Blank line contains whitespace
tardis/util/environment.py:117:1: W293 [*] Blank line contains whitespace
tardis/util/environment.py:122:1: W293 Blank line contains whitespace
tardis/util/environment.py:128:45: W291 [*] Trailing whitespace
tardis/util/environment.py:129:43: W291 [*] Trailing whitespace
tardis/util/environment.py:130:42: W291 [*] Trailing whitespace
tardis/util/panel_init.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/util/panel_init.py:4:8: F401 [*] `os` imported but unused
tardis/util/panel_init.py:11:92: W291 [*] Trailing whitespace
tardis/util/panel_init.py:43:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/custom_abundance.py:737:16: RUF021 [*] Parenthesize `a and b` expressions when chaining `and` and `or` together, to make the precedence clear
tardis/visualization/widgets/custom_abundance.py:1127:9: RET505 [*] Unnecessary `else` after `return` statement
tardis/visualization/widgets/custom_abundance.py:1418:9: RET506 [*] Unnecessary `else` after `raise` statement
tardis/visualization/widgets/custom_abundance.py:1721:9: F811 Redefinition of unused `input_d_time_0_eventhandler` from line 1710
tardis/visualization/widgets/custom_abundance.py:1751:13: F821 Undefined name `display`
tardis/visualization/widgets/custom_abundance.py:1753:13: F821 Undefined name `display`
tardis/visualization/widgets/custom_abundance.py:1755:13: F821 Undefined name `display`
tardis/visualization/widgets/line_info.py:3:1: I001 [*] Import block is un-sorted or un-formatted
tardis/visualization/widgets/line_info.py:450:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/line_info.py:454:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/line_info.py:458:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/line_info.py:462:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/line_info.py:467:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/line_info.py:476:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/line_info.py:531:1: W293 [*] Blank line contains whitespace
tardis/visualization/widgets/line_info.py:715:1: W293 [*] Blank line contains whitespace
tardis/workflows/simple_tardis_workflow.py:1:1: I001 [*] Import block is un-sorted or un-formatted
tardis/workflows/simple_tardis_workflow.py:249:17: G004 Logging statement uses f-string
tardis/workflows/simple_tardis_workflow.py:470:17: G004 Logging statement uses f-string
tardis/workflows/standard_tardis_workflow.py:170:13: G004 Logging statement uses f-string
tardis/workflows/standard_tardis_workflow.py:210:17: G004 Logging statement uses f-string
tardis/workflows/workflow_logging.py:69:13: G004 Logging statement uses f-string
tardis/workflows/workflow_logging.py:107:21: G004 Logging statement uses f-string
Found 104 errors.
[*] 57 fixable with the `--fix` option (19 hidden fixes can be enabled with the `--unsafe-fixes` option).

@codecov
Copy link

codecov bot commented Aug 19, 2025

Codecov Report

❌ Patch coverage is 78.57143% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.90%. Comparing base (37efba0) to head (3c1510a).
⚠️ Report is 5 commits behind head on master.

Files with missing lines Patch % Lines
tardis/util/panel_init.py 57.14% 3 Missing ⚠️
tardis/io/logger/logger.py 66.66% 1 Missing ⚠️
tardis/util/environment.py 90.00% 1 Missing ⚠️
tardis/workflows/standard_tardis_workflow.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3248      +/-   ##
==========================================
- Coverage   74.10%   73.90%   -0.21%     
==========================================
  Files         259      259              
  Lines       17855    17866      +11     
==========================================
- Hits        13232    13203      -29     
- Misses       4623     4663      +40     

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@atharva-2001 atharva-2001 marked this pull request as ready for review August 20, 2025 06:08
@atharva-2001 atharva-2001 marked this pull request as draft August 20, 2025 06:46
@tardis-bot
Copy link
Contributor

tardis-bot commented Aug 20, 2025

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

Significantly changed benchmarks:

Details

All benchmarks:

Details
Benchmarks that have stayed the same:

| Change   | Before [5dffe7ad] <master>   | After [3c1510ae]    | Ratio   | Benchmark (Parameter)                                                                                                               |
|----------|------------------------------|---------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------|
|          | 591±100ns                    | 792±200ns           | ~1.34   | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_photoabsorption_opacity_calculation                              |
|          | 451±200ns                    | 592±100ns           | ~1.31   | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_compton_opacity_calculation                                      |
|          | 42.2±30μs                    | 51.1±20μs           | ~1.21   | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_line_emission                                         |
|          | 1.29±0.4μs                   | 1.55±0.4μs          | ~1.20   | transport_geometry_calculate_distances.BenchmarkTransportGeometryCalculateDistances.time_calculate_distance_line                    |
|          | 2.65±0.8μs                   | 3.15±0.5μs          | ~1.19   | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_bad_vpacket                                       |
|          | 3.94±0.02ms                  | 4.40±0.01ms         | ~1.12   | opacities_opacity_state.BenchmarkOpacitiesOpacityState.time_opacity_state_initialize('macroatom')                                   |
|          | 2.43±1μs                     | 2.15±1μs            | ~0.89   | transport_montecarlo_estimators_radfield_estimator_calcs.BenchmarkMontecarloMontecarloNumbaPacket.time_update_line_estimators       |
|          | 65.0±30μs                    | 52.4±30μs           | ~0.81   | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_line_scatter                                          |
|          | 2.81±0.02ms                  | 3.09±0.01ms         | 1.10    | opacities_opacity_state.BenchmarkOpacitiesOpacityState.time_opacity_state_initialize('scatter')                                     |
|          | 530±100ns                    | 571±100ns           | 1.08    | opacities_opacity.BenchmarkMontecarloMontecarloNumbaOpacities.time_pair_creation_opacity_calculation                                |
|          | 5.73±0.9μs                   | 6.10±0.5μs          | 1.06    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket                                           |
|          | 192±0.6ns                    | 196±0.4ns           | 1.02    | spectrum_formal_integral.BenchmarkTransportMontecarloFormalIntegral.time_intensity_black_body                                       |
|          | 674±1ns                      | 685±2ns             | 1.02    | transport_montecarlo_interaction.BenchmarkTransportMontecarloInteraction.time_thomson_scatter                                       |
|          | 37.8±0.01s                   | 38.0±0.02s          | 1.00    | run_tardis.BenchmarkRunTardis.time_run_tardis                                                                                       |
|          | 2.10±0m                      | 2.10±0m             | 1.00    | spectrum_formal_integral.BenchmarkTransportMontecarloFormalIntegral.time_FormalIntegrator_functions                                 |
|          | 1.20±0μs                     | 1.19±0μs            | 1.00    | transport_geometry_calculate_distances.BenchmarkTransportGeometryCalculateDistances.time_calculate_distance_boundary                |
|          | 60.9±0.6ms                   | 60.5±0.3ms          | 0.99    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_rpacket_trackers_to_dataframe                  |
|          | 3.84±0.3μs                   | 3.81±0.3μs          | 0.99    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket_within_shell                              |
|          | 2.56±0.01ms                  | 2.49±0.01ms         | 0.97    | transport_montecarlo_main_loop.BenchmarkTransportMontecarloMontecarloMainLoop.time_montecarlo_main_loop                             |
|          | 1.03±0.01m                   | 59.8±0.1s           | 0.96    | run_tardis.BenchmarkRunTardis.time_run_tardis_rpacket_tracking                                                                      |
|          | 2.74±0.5ms                   | 2.64±0.3ms          | 0.96    | transport_montecarlo_single_packet_loop.BenchmarkTransportMontecarloSinglePacketLoop.time_single_packet_loop                        |
|          | 25.5±7μs                     | 24.0±6μs            | 0.94    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_last_interaction_tracker_list |
|          | 40.1±0.04μs                  | 37.8±0.01μs         | 0.94    | transport_montecarlo_packet_trackers.BenchmarkTransportMontecarloPacketTrackers.time_generate_rpacket_tracker_list                  |
|          | 7.76±2μs                     | 7.05±2μs            | 0.91    | transport_montecarlo_vpacket.BenchmarkMontecarloMontecarloNumbaVpacket.time_trace_vpacket_volley                                    |

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

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@tardis-bot
Copy link
Contributor

*beep* *bop*

Hi, human.

I'm the @tardis-bot and I noticed that your email is not associated with an ORCID ID in our database.

Please add your email and ORCID ID to the .orcid.csv file in your current branch and push the changes to this pull request.

If you don't have an ORCID ID yet, you can create one for free at orcid.org. ORCID IDs help ensure you get proper credit for your scientific contributions.

The format should be:

email,orcid
[email protected],0000-0000-0000-0000

@atharva-2001 atharva-2001 marked this pull request as ready for review August 20, 2025 11:29
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.

Update description, find out which panel activation is actually needed

Copy link
Contributor

Choose a reason for hiding this comment

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

Add a warning before each widget saying that they aren't fully interactive on docs page


def sphinx():
"""Initialize panel for Sphinx documentation builds"""
print("Sphinx build detected, using ipywidgets panel extension")
Copy link
Contributor

Choose a reason for hiding this comment

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

Remove these print statements now

@andrewfullard andrewfullard merged commit f70fee8 into tardis-sn:master Aug 26, 2025
23 of 24 checks passed
@github-project-automation github-project-automation bot moved this from Todo to Done in DevOps Aug 26, 2025
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.

3 participants