NASA-Planetary-Science / sbpy

A Python package for small bodies research
https://sbpy.org/
Other
66 stars 34 forks source link

Limit dependencies to strictly necessary packages. #383

Closed mkelley closed 6 months ago

mkelley commented 11 months ago

Make scipy, ads, astroquery, and synphot optional packages, limiting the required packages to numpy and astropy.

To do:

Addresses #382

codecov[bot] commented 11 months ago

Codecov Report

Attention: 17 lines in your changes are missing coverage. Please review.

Comparison is base (ca24266) 76.84% compared to head (e342b89) 77.52%.

Files Patch % Lines
sbpy/data/tests/test_orbit_remote.py 20.00% 4 Missing :warning:
sbpy/activity/gas/tests/test_prodrate_remote.py 25.00% 3 Missing :warning:
sbpy/calib/tests/test_sun.py 80.00% 3 Missing :warning:
sbpy/calib/tests/test_core.py 98.13% 2 Missing :warning:
sbpy/photometry/tests/test_iau.py 75.00% 2 Missing :warning:
sbpy/activity/gas/productionrate.py 93.33% 1 Missing :warning:
sbpy/data/tests/test_ephem_remote.py 50.00% 1 Missing :warning:
sbpy/utils/tests/test_decorators.py 93.75% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #383 +/- ## ========================================== + Coverage 76.84% 77.52% +0.67% ========================================== Files 78 81 +3 Lines 6974 7096 +122 ========================================== + Hits 5359 5501 +142 + Misses 1615 1595 -20 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

mkelley commented 10 months ago

Cannot build the docs. Sphinx crashes with the traceback:

Traceback (most recent call last):
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/cmd/build.py", line 298, in build_main
    app.build(args.force_all, args.filenames)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/application.py", line 355, in build
    self.builder.build_update()
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 293, in build_update
    self.build(to_build,
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 313, in build
    updated_docnames = set(self.read())
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 420, in read
    self._read_serial(docnames)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 441, in _read_serial
    self.read_doc(docname)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/builders/__init__.py", line 498, in read_doc
    publisher.publish()
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/core.py", line 234, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/io.py", line 105, in read
    self.parse()
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/sphinx/parsers.py", line 81, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 169, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct
    return method(self, expmatch)
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2104, in directive
    return self.run_directive(
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive
    result = directive_instance.run()
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/pytest_doctestplus/sphinx/doctestplus.py", line 23, in run
    if re.match('win32', self.content[0]):
  File "/home/docs/checkouts/readthedocs.org/user_builds/sbpy/envs/383/lib/python3.10/site-packages/docutils/statemachine.py", line 1136, in __getitem__
    return self.data[i]
IndexError: list index out of range

which doesn't mean anything to me. I can build ffa51150, so it is definitely something I changed with sbpy. I will look into this some more. Meanwhile, the rest of the checks are good.

mkelley commented 10 months ago

Resolving the documentation build error is pending some more information on the problem via scientific-python/pytest-doctestplus#219

mkelley commented 10 months ago

@jianyangli Remote tests are also passing locally with and without alldeps. Ready for a re-review.

mkelley commented 6 months ago

Thanks, @jianyangli !