kececinumbers 0.6.5__py3-none-any.whl → 0.6.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
kececinumbers/__init__.py CHANGED
@@ -22,7 +22,7 @@ import warnings
22
22
  # importlib.reload(kececinumbers) # F821 undefined name 'kececinumbers'
23
23
 
24
24
  # Paket sürüm numarası
25
- __version__ = "0.6.5"
25
+ __version__ = "0.6.6"
26
26
  __author__ = "Mehmet Keçeci"
27
27
  __email__ = "mkececi@yaani.com"
28
28
 
kececinumbers/_version.py CHANGED
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # _version.py
3
3
 
4
- __version__ = "0.6.5"
4
+ __version__ = "0.6.6"
5
5
  __license__ = "MIT"
6
6
  __description__ = "Keçeci Numbers: An Exploration of a Dynamic Sequence Across Diverse Number Sets."
7
7
  __author__ = "Mehmet Keçeci"
@@ -1024,25 +1024,60 @@ def unified_generator(kececi_type: int, start_input_raw: str, add_input_raw: str
1024
1024
  try:
1025
1025
  # Her sayı tipi, kendi `elif` bloğu içinde kendi girdisini işler.
1026
1026
  if kececi_type in [TYPE_POSITIVE_REAL, TYPE_NEGATIVE_REAL]:
1027
- current_value = int(float(start_input_raw)); add_value_typed = int(float(add_input_raw)); ask_unit = 1; use_integer_division = True
1027
+ current_value = int(float(start_input_raw));
1028
+ add_value_typed = int(float(add_input_raw));
1029
+ ask_unit = 1;
1030
+ use_integer_division = True
1028
1031
  elif kececi_type == TYPE_FLOAT:
1029
- current_value = float(start_input_raw); add_value_typed = float(add_input_raw); ask_unit = 1.0
1032
+ current_value = float(start_input_raw);
1033
+ add_value_typed = float(add_input_raw);
1034
+ ask_unit = 1.0
1030
1035
  elif kececi_type == TYPE_RATIONAL:
1031
- current_value = Fraction(start_input_raw); add_value_typed = Fraction(add_input_raw); ask_unit = Fraction(1)
1036
+ current_value = Fraction(start_input_raw);
1037
+ add_value_typed = Fraction(add_input_raw);
1038
+ ask_unit = Fraction(1)
1032
1039
  elif kececi_type == TYPE_COMPLEX:
1033
- current_value = _parse_complex(start_input_raw); a_float = float(add_input_raw); add_value_typed = complex(a_float, a_float); ask_unit = 1 + 1j
1040
+ current_value = _parse_complex(start_input_raw);
1041
+ a_float = float(add_input_raw);
1042
+ add_value_typed = complex(a_float, a_float);
1043
+ ask_unit = 1 + 1j
1034
1044
  elif kececi_type == TYPE_QUATERNION:
1035
- current_value = _parse_quaternion_from_csv(start_input_raw); add_value_typed = _parse_quaternion_from_csv(add_input_raw); ask_unit = np.quaternion(1, 1, 1, 1)
1045
+ current_value = _parse_quaternion_from_csv(start_input_raw);
1046
+ add_value_typed = _parse_quaternion_from_csv(add_input_raw);
1047
+ ask_unit = np.quaternion(1, 1, 1, 1)
1036
1048
  elif kececi_type == TYPE_NEUTROSOPHIC:
1037
- a, b = _parse_neutrosophic(start_input_raw); current_value = NeutrosophicNumber(a, b); a_float = float(add_input_raw); add_value_typed = NeutrosophicNumber(a_float, 0); ask_unit = NeutrosophicNumber(1, 1)
1049
+ a, b = _parse_neutrosophic(start_input_raw);
1050
+ current_value = NeutrosophicNumber(a, b);
1051
+ a_float = float(add_input_raw);
1052
+ add_value_typed = NeutrosophicNumber(a_float, 0);
1053
+ ask_unit = NeutrosophicNumber(1, 1)
1038
1054
  elif kececi_type == TYPE_NEUTROSOPHIC_COMPLEX:
1039
- s_complex = _parse_complex(start_input_raw); current_value = NeutrosophicComplexNumber(s_complex.real, s_complex.imag, 0.0); a_float = float(add_input_raw); add_value_typed = NeutrosophicComplexNumber(a_float, 0.0, 0.0); ask_unit = NeutrosophicComplexNumber(1, 1, 1)
1055
+ s_complex = _parse_complex(start_input_raw);
1056
+ current_value = NeutrosophicComplexNumber(s_complex.real, s_complex.imag, 0.0);
1057
+ a_float = float(add_input_raw);
1058
+ add_value_typed = NeutrosophicComplexNumber(a_float, 0.0, 0.0);
1059
+ ask_unit = NeutrosophicComplexNumber(1, 1, 1)
1040
1060
  elif kececi_type == TYPE_HYPERREAL:
1041
- a, b = _parse_hyperreal(start_input_raw); sequence_list = [a + b / n for n in range(1, 11)]; current_value = HyperrealNumber(sequence_list); a_float = float(add_input_raw); add_sequence = [a_float] + [0.0] * 9; add_value_typed = HyperrealNumber(add_sequence); ask_unit = HyperrealNumber([1.0] * 10)
1061
+ a, b = _parse_hyperreal(start_input_raw);
1062
+ sequence_list = [a + b / n for n in range(1, 11)];
1063
+ current_value = HyperrealNumber(sequence_list);
1064
+ a_float = float(add_input_raw);
1065
+ add_sequence = [a_float] + [0.0] * 9;
1066
+ add_value_typed = HyperrealNumber(add_sequence);
1067
+ ask_unit = HyperrealNumber([1.0] * 10)
1042
1068
  elif kececi_type == TYPE_BICOMPLEX:
1043
- s_complex = _parse_complex(start_input_raw); a_float = float(add_input_raw); a_complex = complex(a_float); current_value = BicomplexNumber(s_complex, s_complex / 2); add_value_typed = BicomplexNumber(a_complex, a_complex / 2); ask_unit = BicomplexNumber(complex(1, 1), complex(0.5, 0.5))
1069
+ s_complex = _parse_complex(start_input_raw);
1070
+ a_float = float(add_input_raw);
1071
+ a_complex = complex(a_float);
1072
+ current_value = BicomplexNumber(s_complex, s_complex / 2);
1073
+ add_value_typed = BicomplexNumber(a_complex, a_complex / 2);
1074
+ ask_unit = BicomplexNumber(complex(1, 1), complex(0.5, 0.5))
1044
1075
  elif kececi_type == TYPE_NEUTROSOPHIC_BICOMPLEX:
1045
- s_complex = _parse_complex(start_input_raw); current_value = NeutrosophicBicomplexNumber(s_complex.real, s_complex.imag, 0, 0, 0, 0, 0, 0); a_float = float(add_input_raw); add_value_typed = NeutrosophicBicomplexNumber(a_float, 0, 0, 0, 0, 0, 0, 0); ask_unit = NeutrosophicBicomplexNumber(*([1.0] * 8))
1076
+ s_complex = _parse_complex(start_input_raw);
1077
+ current_value = NeutrosophicBicomplexNumber(s_complex.real, s_complex.imag, 0, 0, 0, 0, 0, 0);
1078
+ a_float = float(add_input_raw);
1079
+ add_value_typed = NeutrosophicBicomplexNumber(a_float, 0, 0, 0, 0, 0, 0, 0);
1080
+ ask_unit = NeutrosophicBicomplexNumber(*([1.0] * 8))
1046
1081
  except (ValueError, TypeError) as e:
1047
1082
  print(f"ERROR: Failed to initialize type {kececi_type} with start='{start_input_raw}' and increment='{add_input_raw}': {e}")
1048
1083
  return []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kececinumbers
3
- Version: 0.6.5
3
+ Version: 0.6.7
4
4
  Summary: Keçeci Numbers: An Exploration of a Dynamic Sequence Across Diverse Number Sets
5
5
  Home-page: https://github.com/WhiteSymmetry/kececinumbers
6
6
  Author: Mehmet Keçeci
@@ -41,9 +41,12 @@ Description-Content-Type: text/markdown
41
41
  License-File: LICENSE
42
42
  Requires-Dist: numpy
43
43
  Requires-Dist: matplotlib
44
- Requires-Dist: numpy-quaternion
45
44
  Requires-Dist: scipy
46
45
  Requires-Dist: sympy
46
+ Provides-Extra: quaternion-pip
47
+ Requires-Dist: numpy-quaternion; extra == "quaternion-pip"
48
+ Provides-Extra: quaternion-conda
49
+ Requires-Dist: quaternion; extra == "quaternion-conda"
47
50
  Provides-Extra: test
48
51
  Requires-Dist: pytest; extra == "test"
49
52
  Requires-Dist: pytest-cov; extra == "test"
@@ -51,9 +54,10 @@ Requires-Dist: pytest-mock; extra == "test"
51
54
  Requires-Dist: ruff; extra == "test"
52
55
  Requires-Dist: numpy; extra == "test"
53
56
  Requires-Dist: matplotlib; extra == "test"
54
- Requires-Dist: numpy-quaternion; extra == "test"
55
57
  Requires-Dist: scipy; extra == "test"
56
58
  Requires-Dist: sympy; extra == "test"
59
+ Provides-Extra: all
60
+ Requires-Dist: numpy-quaternion; extra == "all"
57
61
  Dynamic: author
58
62
  Dynamic: home-page
59
63
  Dynamic: license-file
@@ -520,6 +524,8 @@ If this library was useful to you in your research, please cite us. Following th
520
524
 
521
525
  ```
522
526
 
527
+ Loeb, F., & Keçeci, M. (2025). Chaos Slicer: Keçeci Number System. GitHub. https://github.com/numberwonderman/Collatz-box-universes/blob/main/chaosSlicer.html
528
+
523
529
  Keçeci, M. (2025). Keçeci Varsayımının Kuramsal ve Karşılaştırmalı Analizi. ResearchGate. https://dx.doi.org/10.13140/RG.2.2.21825.88165
524
530
 
525
531
  Keçeci, M. (2025). Keçeci Varsayımı'nın Hesaplanabilirliği: Sonlu Adımda Kararlı Yapıya Yakınsama Sorunu. WorkflowHub. https://doi.org/10.48546/workflowhub.document.44.1
@@ -0,0 +1,10 @@
1
+ docs/conf.py,sha256=jkpH_TchRJcC_EspKeY1E_rml2ODmIWhWoqvyCPu_ok,1116
2
+ kececinumbers/__init__.py,sha256=3PmycZDlbfLbEFV8p3mxLr-_5jdRY1NUf6OYvNJTVrk,4225
3
+ kececinumbers/_version.py,sha256=zQ8KFNeQFvKEDdd8PvxTupP2udoIHt1kUD-v03BQNqw,453
4
+ kececinumbers/kececinumbers.py,sha256=1e8-wRL4su4dyPtTNwn48EqTDaBR3E1-2kCV69PwIac,60218
5
+ kececinumbers-0.6.7.dist-info/licenses/LICENSE,sha256=NJZsJEbQuKzxn1mWPWCbRx8jRUqGS22thl8wwuRQJ9c,1071
6
+ tests/test_sample.py,sha256=vwGbEZ6gcEFq60P5Sqrnc_DVw2QFXOSU1vm3GyzQMnc,9628
7
+ kececinumbers-0.6.7.dist-info/METADATA,sha256=Gv9PiPmqccJSu44R8yazGWxjJ3zgyEHZTTv5cPBH9UY,34047
8
+ kececinumbers-0.6.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
+ kececinumbers-0.6.7.dist-info/top_level.txt,sha256=ABQEKRH9iYb4sWnFdx7gIx7Hg899YktRkQpbRlSSqwU,25
10
+ kececinumbers-0.6.7.dist-info/RECORD,,
tests/test_sample.py CHANGED
@@ -50,7 +50,7 @@ class TestKececiNumbers(unittest.TestCase):
50
50
  seq = unified_generator(
51
51
  kececi_type=TYPE_POSITIVE_REAL,
52
52
  start_input_raw="5",
53
- add_input_base_scalar=3.0,
53
+ add_input_raw=3.0,
54
54
  iterations=self.iterations
55
55
  )
56
56
  self.assertTrue(len(seq) > 0)
@@ -62,7 +62,7 @@ class TestKececiNumbers(unittest.TestCase):
62
62
  seq = unified_generator(
63
63
  kececi_type=TYPE_NEGATIVE_REAL,
64
64
  start_input_raw="-7",
65
- add_input_base_scalar=2.0,
65
+ add_input_raw=2.0,
66
66
  iterations=self.iterations
67
67
  )
68
68
  self.assertTrue(len(seq) > 0)
@@ -74,7 +74,7 @@ class TestKececiNumbers(unittest.TestCase):
74
74
  seq = unified_generator(
75
75
  kececi_type=TYPE_FLOAT,
76
76
  start_input_raw="3.14",
77
- add_input_base_scalar=1.5,
77
+ add_input_raw=1.5,
78
78
  iterations=self.iterations
79
79
  )
80
80
  self.assertTrue(len(seq) > 0)
@@ -85,7 +85,7 @@ class TestKececiNumbers(unittest.TestCase):
85
85
  seq = unified_generator(
86
86
  kececi_type=TYPE_COMPLEX,
87
87
  start_input_raw="2+3j",
88
- add_input_base_scalar=1.0,
88
+ add_input_raw=1.0,
89
89
  iterations=self.iterations
90
90
  )
91
91
  self.assertTrue(len(seq) > 0)
@@ -98,7 +98,7 @@ class TestKececiNumbers(unittest.TestCase):
98
98
  seq = unified_generator(
99
99
  kececi_type=TYPE_RATIONAL,
100
100
  start_input_raw="7/3",
101
- add_input_base_scalar=2.0,
101
+ add_input_raw=2.0,
102
102
  iterations=self.iterations
103
103
  )
104
104
  self.assertTrue(len(seq) > 0)
@@ -110,8 +110,8 @@ class TestKececiNumbers(unittest.TestCase):
110
110
  """Test sequence generation for quaternions."""
111
111
  seq = unified_generator(
112
112
  kececi_type=TYPE_QUATERNION,
113
- start_input_raw="1+2i-3j+k",
114
- add_input_base_scalar=1.0,
113
+ start_input_raw="1.0,2.0,3.0,4.0",
114
+ add_input_raw="1.0,0,0,0",
115
115
  iterations=self.iterations
116
116
  )
117
117
  self.assertTrue(len(seq) > 0)
@@ -120,15 +120,15 @@ class TestKececiNumbers(unittest.TestCase):
120
120
  q = seq[0]
121
121
  self.assertAlmostEqual(q.w, 1.0)
122
122
  self.assertAlmostEqual(q.x, 2.0)
123
- self.assertAlmostEqual(q.y, -3.0)
124
- self.assertAlmostEqual(q.z, 1.0)
123
+ self.assertAlmostEqual(q.y, 3.0)
124
+ self.assertAlmostEqual(q.z, 4.0)
125
125
 
126
126
  def test_neutrosophic_generation(self):
127
127
  """Test sequence generation for neutrosophic numbers."""
128
128
  seq = unified_generator(
129
129
  kececi_type=TYPE_NEUTROSOPHIC,
130
130
  start_input_raw="5+2I",
131
- add_input_base_scalar=1.0,
131
+ add_input_raw=1.0,
132
132
  iterations=self.iterations
133
133
  )
134
134
  self.assertTrue(len(seq) > 0)
@@ -141,7 +141,7 @@ class TestKececiNumbers(unittest.TestCase):
141
141
  seq = unified_generator(
142
142
  kececi_type=TYPE_NEUTROSOPHIC_COMPLEX,
143
143
  start_input_raw="1-2j",
144
- add_input_base_scalar=1.0,
144
+ add_input_raw=1.0,
145
145
  iterations=self.iterations
146
146
  )
147
147
  self.assertTrue(len(seq) > 0)
@@ -155,7 +155,7 @@ class TestKececiNumbers(unittest.TestCase):
155
155
  seq = unified_generator(
156
156
  kececi_type=TYPE_HYPERREAL,
157
157
  start_input_raw="5+3e",
158
- add_input_base_scalar=1.0,
158
+ add_input_raw=1.0,
159
159
  iterations=self.iterations
160
160
  )
161
161
  self.assertTrue(len(seq) > 0)
@@ -167,7 +167,7 @@ class TestKececiNumbers(unittest.TestCase):
167
167
  seq = unified_generator(
168
168
  kececi_type=TYPE_BICOMPLEX,
169
169
  start_input_raw="2+1j",
170
- add_input_base_scalar=1.0,
170
+ add_input_raw=1.0,
171
171
  iterations=self.iterations
172
172
  )
173
173
  self.assertTrue(len(seq) > 0)
@@ -181,7 +181,7 @@ class TestKececiNumbers(unittest.TestCase):
181
181
  seq = unified_generator(
182
182
  kececi_type=TYPE_NEUTROSOPHIC_BICOMPLEX,
183
183
  start_input_raw="1+2j",
184
- add_input_base_scalar=1.0,
184
+ add_input_raw=1.0,
185
185
  iterations=self.iterations
186
186
  )
187
187
  self.assertTrue(len(seq) > 0)
@@ -249,7 +249,7 @@ class TestKececiNumbers(unittest.TestCase):
249
249
  seq = unified_generator(
250
250
  kececi_type=TYPE_POSITIVE_REAL,
251
251
  start_input_raw="10",
252
- add_input_base_scalar=2.0,
252
+ add_input_raw=2.0,
253
253
  iterations=5
254
254
  )
255
255
  self.assertGreater(len(seq), 5)
@@ -262,7 +262,7 @@ class TestKececiNumbers(unittest.TestCase):
262
262
  seq = unified_generator(
263
263
  kececi_type=TYPE_FLOAT,
264
264
  start_input_raw="", # empty
265
- add_input_base_scalar=1.0,
265
+ add_input_raw=1.0,
266
266
  iterations=1
267
267
  )
268
268
  self.assertEqual(len(seq), 0) # should fail gracefully
@@ -273,11 +273,10 @@ class TestKececiNumbers(unittest.TestCase):
273
273
  unified_generator(
274
274
  kececi_type=99, # invalid
275
275
  start_input_raw="0",
276
- add_input_base_scalar=1.0,
276
+ add_input_raw=1.0,
277
277
  iterations=1
278
278
  )
279
279
 
280
280
 
281
281
  if __name__ == '__main__':
282
282
  unittest.main()
283
-
@@ -1,10 +0,0 @@
1
- docs/conf.py,sha256=jkpH_TchRJcC_EspKeY1E_rml2ODmIWhWoqvyCPu_ok,1116
2
- kececinumbers/__init__.py,sha256=s2_zWrTMEhl--tBf2xp981CSG6Perq4-lUs4zYlaAYY,4225
3
- kececinumbers/_version.py,sha256=pzo7Vd3ivKiGiCuF1pOxJt2NbhNXjLrSr8afRu5Wr7o,453
4
- kececinumbers/kececinumbers.py,sha256=n7o4NDZlzneIfCTa9j-aXQTX5f_8OpQfMlWprgmnPdk,59763
5
- kececinumbers-0.6.5.dist-info/licenses/LICENSE,sha256=NJZsJEbQuKzxn1mWPWCbRx8jRUqGS22thl8wwuRQJ9c,1071
6
- tests/test_sample.py,sha256=qMWUBGQtlF1gZHZ_e6Gye1vHtyNnUWH7iXK72a1y6VQ,9728
7
- kececinumbers-0.6.5.dist-info/METADATA,sha256=qc2oK-7YzshCBJ64nOL76LKtmWcIF7fK_LDRzTJsLdM,33720
8
- kececinumbers-0.6.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
- kececinumbers-0.6.5.dist-info/top_level.txt,sha256=ABQEKRH9iYb4sWnFdx7gIx7Hg899YktRkQpbRlSSqwU,25
10
- kececinumbers-0.6.5.dist-info/RECORD,,