Skip to content

Commit b9783d9

Browse files
committed
Deprecate useless copies of basic_mul_dict
These are all trivially extractable from `basic_mul_dict`. It's not clear if they're intended to be public, but this errs on the side of caution and deprecates them.
1 parent a8b293b commit b9783d9

File tree

3 files changed

+50
-16
lines changed

3 files changed

+50
-16
lines changed

doc/changelog.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22
Changelog
33
=========
44

5-
- :support:`245` The following attributes have been deprecated to reduce the number of similar members in :class:`~galgebra.ga.Ga`.
5+
- :support:`245` (also :issue:`248`) The following attributes have been deprecated to reduce the number of similar members in :class:`~galgebra.ga.Ga`.
6+
7+
* Unified into :attr:`galgebra.ga.Ga.basic_mul_table_dict`:
8+
9+
* :attr:`galgebra.ga.Ga.basic_mul_table` |rarr| ``basic_mul_table_dict.items()``
10+
* :attr:`galgebra.ga.Ga.basic_mul_keys` |rarr| ``basic_mul_table_dict.keys()``
11+
* :attr:`galgebra.ga.Ga.basic_mul_values` |rarr| ``basic_mul_table_dict.values()``
612

713
* Unified into :attr:`galgebra.ga.Ga.indexes_to_bases_dict`:
814

galgebra/ga.py

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ def geometric_product_basis_blades(self, blade12):
10261026
base1 = self.blade_to_base_rep(blade1)
10271027
base2 = self.blade_to_base_rep(blade2)
10281028
base12 = expand(base1 * base2)
1029-
base12 = nc_subs(base12, self.basic_mul_keys, self.basic_mul_values)
1029+
base12 = nc_subs(base12, self.basic_mul_table_dict.items())
10301030
return self.base_to_blade_rep(base12)
10311031

10321032
def reduce_basis(self, blst):
@@ -1290,21 +1290,38 @@ def non_orthogonal_dot_product_basis_blades(self, blade12, mode): # blade12 = (
12901290
############# Non-Orthogonal Tables and Dictionaries ###############
12911291

12921292
def _build_non_orthogonal_mul_table(self):
1293-
mul_table = []
1294-
self.basic_mul_keys = []
1295-
self.basic_mul_values = []
1296-
for base1 in self.bases.flat:
1297-
for base2 in self.bases.flat:
1298-
key = base1 * base2
1299-
value = self.non_orthogonal_bases_products((base1, base2))
1300-
mul_table.append((key, value))
1301-
self.basic_mul_keys.append(key)
1302-
self.basic_mul_values.append(value)
1303-
self.basic_mul_table = mul_table
1304-
self.basic_mul_table_dict = OrderedDict(mul_table)
1293+
self.basic_mul_table_dict = OrderedDict(
1294+
(base1 * base2, self.non_orthogonal_bases_products((base1, base2)))
1295+
for base1 in self.bases.flat
1296+
for base2 in self.bases.flat
1297+
)
13051298

13061299
if self.debug:
1307-
print('basic_mul_table =\n', self.basic_mul_table)
1300+
print('basic_mul_table =\n', self.basic_mul_table_dict)
1301+
1302+
@property
1303+
def basic_mul_table(self):
1304+
# galgebra 0.5.0
1305+
warnings.warn(
1306+
"`ga.basic_mul_table` is deprecated, use `ga.basic_mul_table_dict.items()`",
1307+
DeprecationWarning, stacklevel=2)
1308+
return list(self.basic_mul_table_dict.items())
1309+
1310+
@property
1311+
def basic_mul_keys(self):
1312+
# galgebra 0.5.0
1313+
warnings.warn(
1314+
"`ga.basic_mul_keys` is deprecated, use `ga.basic_mul_table_dict.keys()`",
1315+
DeprecationWarning, stacklevel=2)
1316+
return list(self.basic_mul_table_dict.keys())
1317+
1318+
@property
1319+
def basic_mul_values(self):
1320+
# galgebra 0.5.0
1321+
warnings.warn(
1322+
"`ga.basic_mul_values` is deprecated, use `ga.basic_mul_table_dict.values()`",
1323+
DeprecationWarning, stacklevel=2)
1324+
return list(self.basic_mul_table_dict.values())
13081325

13091326
def non_orthogonal_bases_products(self, base12): # base12 = (base1, base2)
13101327
# geometric product of bases for non-orthogonal basis vectors
@@ -1388,7 +1405,7 @@ def blade_to_base_rep(self, A):
13881405
def basic_mul(self, A, B): # geometric product (*) of base representations
13891406
# only multiplicative operation to assume A and B are in base representation
13901407
AxB = expand(A * B)
1391-
AxB = nc_subs(AxB, self.basic_mul_keys, self.basic_mul_values)
1408+
AxB = nc_subs(AxB, self.basic_mul_table_dict.items())
13921409
return expand(AxB)
13931410

13941411
def Mul(self, A, B, mode='*'): # Unifies all products into one function

test/test_test.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,3 +454,14 @@ def test_deprecations(self):
454454
# deprecated
455455
ga.indexes_to_blades_dict
456456
ga.indexes_to_bases_dict
457+
458+
# deprecated to reduce the number of similar members
459+
with pytest.warns(DeprecationWarning):
460+
ga.basic_mul_table
461+
with pytest.warns(DeprecationWarning):
462+
ga.basic_mul_keys
463+
with pytest.warns(DeprecationWarning):
464+
ga.basic_mul_values
465+
466+
# all derived from
467+
ga.basic_mul_table_dict

0 commit comments

Comments
 (0)