Commit 7b97cfd
Release Manager
gh-35716: `sage.functions`: Decouple from `sage.symbolic.expression` and `mpmath`, update `# needs`
<!-- Please provide a concise, informative and self-explanatory title.
-->
<!-- Don't put issue numbers in the title. Put it in the Description
below. -->
<!-- For example, instead of "Fixes #12345", use "Add a new method to
multiply two integers" -->
### 📚 Description
`sage.functions` advertises itself as providing symbolic functions, but
it also provides the mechanism that dispatches `sin(1.0)` to field
methods such as `RealNumber.sin`, `RealBall.sin` etc.
Here we make the modules from `sage.functions` at least *importable*
when the symbolic subsystem (pynac) is not available. (Evaluating the
functions still goes through the symbolic subsystem as of this PR.) This
is achieved by using `lazy_import` and by moving the symbol table from
`sage.symbolic.expression` (containing pynac) to a new pure Python
module `sage.symbolic.symbols`.
We also use `lazy_import` for imports from `mpmath` and mutual imports
from other modules in `sage.functions`.
A `lazy_import` of `RR` added here reveals a weakness of
`sage.misc.dev_tools.find_objects_from_name` regarding `lazy_import`s
(because `RR` happens to be used in an example for this function.) We
fix it here.
<!-- Describe your changes here in detail. -->
<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes #12345". -->
- Part of: #29705
- Cherry-picked from: #35095
<!-- If your change requires a documentation PR, please link it
appropriately. -->
### 📝 Checklist
<!-- Put an `x` in all the boxes that apply. It should be `[x]` not `[x
]`. -->
- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.
### ⌛ Dependencies
<!-- List all open PRs that this PR logically depends on
- #12345: short description why this is a dependency
- #34567: ...
-->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
URL: #35716
Reported by: Matthias Köppe
Reviewer(s): Kwankyu Lee, Matthias Köppe
File tree
38 files changed
+3939
-3383
lines changed- src/sage
- calculus
- functions
- misc
- symbolic
- ginac
- integration
38 files changed
+3939
-3383
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
429 | 429 | | |
430 | 430 | | |
431 | 431 | | |
432 | | - | |
| 432 | + | |
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
| |||
Large diffs are not rendered by default.
0 commit comments