summaryrefslogtreecommitdiff
path: root/pint/delegates/txt_defparser/plain.py
diff options
context:
space:
mode:
authorHernan Grecco <hgrecco@gmail.com>2023-05-01 10:00:26 -0300
committerHernan Grecco <hgrecco@gmail.com>2023-05-01 19:12:18 -0300
commitd0442e776bff3053ef900143cd64facf173e1650 (patch)
treec25053cb5391121c785222320f1a8829db878a37 /pint/delegates/txt_defparser/plain.py
parenta814d1bc4a2e1b0786ca1e56e0f9bf7e363434b4 (diff)
downloadpint-d0442e776bff3053ef900143cd64facf173e1650.tar.gz
Typing improvements
While there is still a lot of work to do (mainly in Registry, Quantity, Unit), this large PR makes several changes all around the code. There has not been any intended functional change, but certain typing improvements required code minor code refactoring to streamline input and output types of functions. An important experimental idea is the PintScalar and PintArray protocols, and Magnitude type. This is to overcome the lack of a proper numerical hierarchy in Python.
Diffstat (limited to 'pint/delegates/txt_defparser/plain.py')
-rw-r--r--pint/delegates/txt_defparser/plain.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/pint/delegates/txt_defparser/plain.py b/pint/delegates/txt_defparser/plain.py
index 749e7fd..9c7bd42 100644
--- a/pint/delegates/txt_defparser/plain.py
+++ b/pint/delegates/txt_defparser/plain.py
@@ -29,12 +29,12 @@ from ..._vendor import flexparser as fp
from ...converters import Converter
from ...facets.plain import definitions
from ...util import UnitsContainer
-from ..base_defparser import ParserConfig
+from ..base_defparser import ParserConfig, PintParsedStatement
from . import common
@dataclass(frozen=True)
-class Equality(fp.ParsedStatement, definitions.Equality):
+class Equality(PintParsedStatement, definitions.Equality):
"""An equality statement contains a left and right hand separated
lhs and rhs should be space stripped.
@@ -53,7 +53,7 @@ class Equality(fp.ParsedStatement, definitions.Equality):
@dataclass(frozen=True)
-class CommentDefinition(fp.ParsedStatement, definitions.CommentDefinition):
+class CommentDefinition(PintParsedStatement, definitions.CommentDefinition):
"""Comments start with a # character.
# This is a comment.
@@ -63,14 +63,14 @@ class CommentDefinition(fp.ParsedStatement, definitions.CommentDefinition):
"""
@classmethod
- def from_string(cls, s: str) -> fp.FromString[fp.ParsedStatement]:
+ def from_string(cls, s: str) -> fp.FromString[CommentDefinition]:
if not s.startswith("#"):
return None
return cls(s[1:].strip())
@dataclass(frozen=True)
-class PrefixDefinition(fp.ParsedStatement, definitions.PrefixDefinition):
+class PrefixDefinition(PintParsedStatement, definitions.PrefixDefinition):
"""Definition of a prefix::
<prefix>- = <value> [= <symbol>] [= <alias>] [ = <alias> ] [...]
@@ -119,7 +119,7 @@ class PrefixDefinition(fp.ParsedStatement, definitions.PrefixDefinition):
@dataclass(frozen=True)
-class UnitDefinition(fp.ParsedStatement, definitions.UnitDefinition):
+class UnitDefinition(PintParsedStatement, definitions.UnitDefinition):
"""Definition of a unit::
<canonical name> = <relation to another unit or dimension> [= <symbol>] [= <alias>] [ = <alias> ] [...]
@@ -194,7 +194,7 @@ class UnitDefinition(fp.ParsedStatement, definitions.UnitDefinition):
@dataclass(frozen=True)
-class DimensionDefinition(fp.ParsedStatement, definitions.DimensionDefinition):
+class DimensionDefinition(PintParsedStatement, definitions.DimensionDefinition):
"""Definition of a root dimension::
[dimension name]
@@ -221,7 +221,7 @@ class DimensionDefinition(fp.ParsedStatement, definitions.DimensionDefinition):
@dataclass(frozen=True)
class DerivedDimensionDefinition(
- fp.ParsedStatement, definitions.DerivedDimensionDefinition
+ PintParsedStatement, definitions.DerivedDimensionDefinition
):
"""Definition of a derived dimension::
@@ -261,7 +261,7 @@ class DerivedDimensionDefinition(
@dataclass(frozen=True)
-class AliasDefinition(fp.ParsedStatement, definitions.AliasDefinition):
+class AliasDefinition(PintParsedStatement, definitions.AliasDefinition):
"""Additional alias(es) for an already existing unit::
@alias <canonical name or previous alias> = <alias> [ = <alias> ] [...]