diff --git a/src/sage/manifolds/differentiable/diff_map.py b/src/sage/manifolds/differentiable/diff_map.py index 7f0c09a6b7c..4260f233e40 100644 --- a/src/sage/manifolds/differentiable/diff_map.py +++ b/src/sage/manifolds/differentiable/diff_map.py @@ -32,11 +32,17 @@ # the License, or (at your option) any later version. # https://www.gnu.org/licenses/ # **************************************************************************** +from __future__ import annotations + +from typing import TYPE_CHECKING from sage.manifolds.continuous_map import ContinuousMap from sage.parallel.decorate import parallel from sage.parallel.parallelism import Parallelism +if TYPE_CHECKING: + from sage.manifolds.point import ManifoldPoint + from sage.tensor.modules.free_module_morphism import FiniteRankFreeModuleMorphism class DiffMap(ContinuousMap): r""" @@ -515,7 +521,7 @@ def _del_derived(self): # class self._diff.clear() - def differential(self, point): + def differential(self, point: ManifoldPoint) -> FiniteRankFreeModuleMorphism: r""" Return the differential of ``self`` at a given point. @@ -949,8 +955,12 @@ def pullback(self, tensor_or_codomain_subset, name=None, latex_name=None): tensor = tensor_or_codomain_subset from sage.manifolds.differentiable.tensorfield_paral import TensorFieldParal - from sage.tensor.modules.comp import (Components, CompWithSym, - CompFullySym, CompFullyAntiSym) + from sage.tensor.modules.comp import ( + CompFullyAntiSym, + CompFullySym, + Components, + CompWithSym, + ) def _pullback_chart(diff_map, tensor, chart1, chart2): r""" @@ -1195,9 +1205,13 @@ def pushforward(self, tensor): Psi_*(u) = -sin(t) ∂/∂x + cos(t) ∂/∂y + ∂/∂z """ - from sage.tensor.modules.comp import (Components, CompWithSym, - CompFullySym, CompFullyAntiSym) from sage.manifolds.differentiable.tensorfield_paral import TensorFieldParal + from sage.tensor.modules.comp import ( + CompFullyAntiSym, + CompFullySym, + Components, + CompWithSym, + ) vmodule = tensor.base_module() dest_map = vmodule.destination_map() dom1 = tensor.domain() diff --git a/src/sage/manifolds/differentiable/scalarfield.py b/src/sage/manifolds/differentiable/scalarfield.py index 9763bf46352..1b9a3c2ae2d 100644 --- a/src/sage/manifolds/differentiable/scalarfield.py +++ b/src/sage/manifolds/differentiable/scalarfield.py @@ -38,13 +38,15 @@ #****************************************************************************** from __future__ import annotations -from typing import Union, TYPE_CHECKING + +from typing import TYPE_CHECKING, Union + from sage.manifolds.scalarfield import ScalarField if TYPE_CHECKING: from sage.manifolds.differentiable.diff_form import DiffForm - from sage.manifolds.differentiable.symplectic_form import SymplecticForm from sage.manifolds.differentiable.metric import PseudoRiemannianMetric + from sage.manifolds.differentiable.symplectic_form import SymplecticForm class DiffScalarField(ScalarField): @@ -713,7 +715,7 @@ def tensor_type(self): """ return self._tensor_type - def differential(self): + def differential(self) -> DiffForm: r""" Return the differential of ``self``. diff --git a/src/sage/manifolds/differentiable/tangent_space.py b/src/sage/manifolds/differentiable/tangent_space.py index aa14cc90f70..4b90e711a79 100644 --- a/src/sage/manifolds/differentiable/tangent_space.py +++ b/src/sage/manifolds/differentiable/tangent_space.py @@ -24,10 +24,16 @@ # the License, or (at your option) any later version. # http://www.gnu.org/licenses/ #****************************************************************************** +from __future__ import annotations +from typing import TYPE_CHECKING + +from sage.manifolds.differentiable.tangent_vector import TangentVector from sage.symbolic.ring import SR from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule -from sage.manifolds.differentiable.tangent_vector import TangentVector + +if TYPE_CHECKING: + from sage.manifolds.point import ManifoldPoint class TangentSpace(FiniteRankFreeModule): r""" @@ -222,7 +228,7 @@ class TangentSpace(FiniteRankFreeModule): """ Element = TangentVector - def __init__(self, point, base_ring=None): + def __init__(self, point: ManifoldPoint, base_ring=None): r""" Construct the tangent space at a given point. diff --git a/src/sage/manifolds/differentiable/tensorfield.py b/src/sage/manifolds/differentiable/tensorfield.py index db4a2a05aa1..1390fc8076f 100644 --- a/src/sage/manifolds/differentiable/tensorfield.py +++ b/src/sage/manifolds/differentiable/tensorfield.py @@ -69,6 +69,7 @@ from sage.manifolds.differentiable.poisson_tensor import PoissonTensorField from sage.manifolds.differentiable.symplectic_form import SymplecticForm from sage.manifolds.differentiable.vectorfield_module import VectorFieldModule + from sage.manifolds.point import ManifoldPoint from sage.tensor.modules.comp import Components @@ -3634,7 +3635,7 @@ def lie_derivative(self, vector): lie_der = lie_derivative - def at(self, point): + def at(self, point: ManifoldPoint) -> FreeModuleTensor: r""" Value of ``self`` at a point of its domain. diff --git a/src/sage/tensor/modules/free_module_element.py b/src/sage/tensor/modules/free_module_element.py index 0bde6363822..c8bec392083 100644 --- a/src/sage/tensor/modules/free_module_element.py +++ b/src/sage/tensor/modules/free_module_element.py @@ -29,9 +29,18 @@ # http://www.gnu.org/licenses/ #****************************************************************************** +from __future__ import annotations + +from typing import TYPE_CHECKING, Optional + from sage.tensor.modules.alternating_contr_tensor import AlternatingContrTensor from sage.tensor.modules.comp import Components +if TYPE_CHECKING: + from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule + from sage.tensor.modules.free_module_basis import FreeModuleBasis + + class FiniteRankFreeModuleElement(AlternatingContrTensor): r""" Element of a free module of finite rank over a commutative ring. @@ -185,7 +194,13 @@ class FiniteRankFreeModuleElement(AlternatingContrTensor): a∧b = -2 e_0∧e_1 - 6 e_0∧e_2 + 7 e_1∧e_2 """ - def __init__(self, fmodule, name=None, latex_name=None): + + def __init__( + self, + fmodule: FiniteRankFreeModule, + name: Optional[str] = None, + latex_name: Optional[str] = None, + ): r""" TESTS:: @@ -209,7 +224,7 @@ def __init__(self, fmodule, name=None, latex_name=None): AlternatingContrTensor.__init__(self, fmodule, 1, name=name, latex_name=latex_name) - def _repr_(self): + def _repr_(self) -> str: r""" Return a string representation of ``self``. @@ -227,7 +242,7 @@ def _repr_(self): description += "of the {}".format(self._fmodule) return description - def _new_comp(self, basis): + def _new_comp(self, basis: FreeModuleBasis) -> Components: r""" Create some (uninitialized) components of ``self`` in a given basis. diff --git a/src/sage/tensor/modules/free_module_morphism.py b/src/sage/tensor/modules/free_module_morphism.py index abb24e89203..c833d03094d 100644 --- a/src/sage/tensor/modules/free_module_morphism.py +++ b/src/sage/tensor/modules/free_module_morphism.py @@ -23,8 +23,15 @@ # the License, or (at your option) any later version. # https://www.gnu.org/licenses/ # ***************************************************************************** -from sage.rings.integer import Integer +from __future__ import annotations + +from typing import TYPE_CHECKING + from sage.categories.morphism import Morphism +from sage.rings.integer import Integer + +if TYPE_CHECKING: + from sage.tensor.modules.free_module_element import FiniteRankFreeModuleElement class FiniteRankFreeModuleMorphism(Morphism): @@ -764,7 +771,9 @@ def __neg__(self): # Map methods # - def _call_(self, element): + def _call_( + self, element: FiniteRankFreeModuleElement + ) -> FiniteRankFreeModuleElement: r""" Action of the homomorphism ``self`` on some free module element diff --git a/src/sage/tensor/modules/free_module_tensor.py b/src/sage/tensor/modules/free_module_tensor.py index a7865299688..da85d6c455b 100644 --- a/src/sage/tensor/modules/free_module_tensor.py +++ b/src/sage/tensor/modules/free_module_tensor.py @@ -194,17 +194,22 @@ class being: # ***************************************************************************** from __future__ import annotations -from typing import TYPE_CHECKING, Dict +from typing import TYPE_CHECKING, Dict, Optional +from sage.parallel.decorate import parallel +from sage.parallel.parallelism import Parallelism from sage.rings.integer import Integer from sage.structure.element import ModuleElementWithMutability -from sage.tensor.modules.comp import (Components, CompWithSym, CompFullySym, - CompFullyAntiSym) +from sage.tensor.modules.comp import ( + CompFullyAntiSym, + CompFullySym, + Components, + CompWithSym, +) from sage.tensor.modules.tensor_with_indices import TensorWithIndices -from sage.parallel.decorate import parallel -from sage.parallel.parallelism import Parallelism if TYPE_CHECKING: + from sage.symbolic.expression import Expression from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule from sage.tensor.modules.free_module_basis import FreeModuleBasis @@ -264,8 +269,8 @@ def __init__( self, fmodule: FiniteRankFreeModule, tensor_type, - name=None, - latex_name=None, + name: Optional[str] = None, + latex_name: Optional[str] = None, sym=None, antisym=None, parent=None, @@ -891,7 +896,7 @@ def display_comp(self, basis=None, format_spec=None, symbol=None, only_nonzero=only_nonzero, only_nonredundant=only_nonredundant) - def set_name(self, name=None, latex_name=None): + def set_name(self, name: Optional[str] = None, latex_name: Optional[str] = None): r""" Set (or change) the text name and LaTeX name of ``self``. @@ -2262,7 +2267,7 @@ def __truediv__(self, other): result._components[basis] = self._components[basis] / other return result - def __call__(self, *args): + def __call__(self, *args) -> Expression: r""" The tensor acting on linear forms and module elements as a multilinear map.