kececinumbers 0.5.2__py3-none-any.whl → 0.5.3__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.5.2"
25
+ __version__ = "0.5.3"
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.5.2"
4
+ __version__ = "0.5.3"
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"
@@ -548,8 +548,12 @@ def _parse_quaternion_from_csv(s: str) -> np.quaternion:
548
548
  # --- CORE GENERATOR ---
549
549
  # ==============================================================================
550
550
 
551
- def unified_generator(kececi_type: int, start_input_raw: str, add_input_base_scalar: float, iterations: int) -> List[Any]:
552
- """Core engine to generate Keçeci Number sequences."""
551
+ def unified_generator(kececi_type: int, start_input_raw: str, add_input_raw: str, iterations: int) -> List[Any]:
552
+ """
553
+ Core engine to generate Keçeci Number sequences.
554
+ Bu güncellenmiş versiyon, tüm sayı tipleri için esnek girdi işleme ve
555
+ kuaterniyonlar için tam vektörel toplama desteği sunar.
556
+ """
553
557
 
554
558
  if not (TYPE_POSITIVE_REAL <= kececi_type <= TYPE_NEUTROSOPHIC_BICOMPLEX):
555
559
  raise ValueError(f"Invalid Keçeci Number Type: {kececi_type}. Must be between {TYPE_POSITIVE_REAL} and {TYPE_NEUTROSOPHIC_BICOMPLEX}.")
@@ -560,66 +564,82 @@ def unified_generator(kececi_type: int, start_input_raw: str, add_input_base_sca
560
564
  use_integer_division = False
561
565
 
562
566
  try:
563
- a_float = float(add_input_base_scalar)
567
+ # DEĞİŞİKLİK 1: Fonksiyonun başındaki genel `float()` dönüştürmesi kaldırıldı.
568
+ # Artık her sayı tipi, kendi `elif` bloğu içinde kendi girdisini işleyecek.
564
569
 
565
570
  if kececi_type in [TYPE_POSITIVE_REAL, TYPE_NEGATIVE_REAL]:
566
571
  current_value = int(float(start_input_raw))
567
- add_value_typed = int(a_float)
572
+ add_value_typed = int(float(add_input_raw)) # Girdi işleme bu bloğun içine taşındı
568
573
  ask_unit = 1
569
574
  use_integer_division = True
575
+
570
576
  elif kececi_type == TYPE_FLOAT:
571
577
  current_value = float(start_input_raw)
572
- add_value_typed = a_float
578
+ add_value_typed = float(add_input_raw) # Girdi işleme bu bloğun içine taşındı
573
579
  ask_unit = 1.0
580
+
574
581
  elif kececi_type == TYPE_RATIONAL:
575
582
  current_value = Fraction(start_input_raw)
576
- add_value_typed = Fraction(add_input_base_scalar)
583
+ add_value_typed = Fraction(add_input_raw) # Girdi işleme bu bloğun içine taşındı
577
584
  ask_unit = Fraction(1)
585
+
578
586
  elif kececi_type == TYPE_COMPLEX:
579
587
  current_value = _parse_complex(start_input_raw)
588
+ a_float = float(add_input_raw) # Girdi işleme bu bloğun içine taşındı
580
589
  add_value_typed = complex(a_float, a_float)
581
590
  ask_unit = 1 + 1j
591
+
592
+ # DEĞİŞİKLİK 2: Kuaterniyon bloğu artık tamamen farklı ve doğru çalışıyor.
593
+ elif kececi_type == TYPE_QUATERNION:
594
+ # Hem başlangıç hem de eklenen değer için virgülle ayrılmış formatı işler.
595
+ current_value = _parse_quaternion_from_csv(start_input_raw)
596
+ add_value_typed = _parse_quaternion_from_csv(add_input_raw)
597
+ ask_unit = np.quaternion(1, 1, 1, 1)
598
+
582
599
  elif kececi_type == TYPE_NEUTROSOPHIC:
583
600
  a, b = _parse_neutrosophic(start_input_raw)
584
601
  current_value = NeutrosophicNumber(a, b)
602
+ a_float = float(add_input_raw) # Girdi işleme bu bloğun içine taşındı
585
603
  add_value_typed = NeutrosophicNumber(a_float, 0)
586
604
  ask_unit = NeutrosophicNumber(1, 1)
605
+
587
606
  elif kececi_type == TYPE_NEUTROSOPHIC_COMPLEX:
588
607
  s_complex = _parse_complex(start_input_raw)
589
608
  current_value = NeutrosophicComplexNumber(s_complex.real, s_complex.imag, 0.0)
609
+ a_float = float(add_input_raw) # Girdi işleme bu bloğun içine taşındı
590
610
  add_value_typed = NeutrosophicComplexNumber(a_float, 0.0, 0.0)
591
611
  ask_unit = NeutrosophicComplexNumber(1, 1, 1)
612
+
592
613
  elif kececi_type == TYPE_HYPERREAL:
593
614
  a, b = _parse_hyperreal(start_input_raw)
594
615
  sequence_list = [a + b / n for n in range(1, 11)]
595
616
  current_value = HyperrealNumber(sequence_list)
617
+ a_float = float(add_input_raw) # Girdi işleme bu bloğun içine taşındı
596
618
  add_sequence = [a_float] + [0.0] * 9
597
619
  add_value_typed = HyperrealNumber(add_sequence)
598
620
  ask_unit = HyperrealNumber([1.0] * 10)
621
+
599
622
  elif kececi_type == TYPE_BICOMPLEX:
600
623
  s_complex = _parse_complex(start_input_raw)
624
+ a_float = float(add_input_raw) # Girdi işleme bu bloğun içine taşındı
601
625
  a_complex = complex(a_float)
602
626
  current_value = BicomplexNumber(s_complex, s_complex / 2)
603
627
  add_value_typed = BicomplexNumber(a_complex, a_complex / 2)
604
628
  ask_unit = BicomplexNumber(complex(1, 1), complex(0.5, 0.5))
629
+
605
630
  elif kececi_type == TYPE_NEUTROSOPHIC_BICOMPLEX:
606
631
  s_complex = _parse_complex(start_input_raw)
607
632
  current_value = NeutrosophicBicomplexNumber(s_complex.real, s_complex.imag, 0, 0, 0, 0, 0, 0)
633
+ a_float = float(add_input_raw) # Girdi işleme bu bloğun içine taşındı
608
634
  add_value_typed = NeutrosophicBicomplexNumber(a_float, 0, 0, 0, 0, 0, 0, 0)
609
635
  ask_unit = NeutrosophicBicomplexNumber(*([1.0] * 8))
610
- #elif kececi_type == TYPE_QUATERNION:
611
- #current_value = _parse_quaternion(start_input_raw)
612
- #add_value_typed = np.quaternion(a_float, a_float, a_float, a_float)
613
- #ask_unit = np.quaternion(1, 1, 1, 1)
614
- elif kececi_type == TYPE_QUATERNION:
615
- current_value = _parse_quaternion_from_csv(start_input_raw)
616
- add_value_typed = _parse_quaternion_from_csv(add_input_base_scalar) # Değişiklik burada
617
- ask_unit = np.quaternion(1, 1, 1, 1)
618
636
 
619
637
  except (ValueError, TypeError) as e:
620
- print(f"ERROR: Failed to initialize type {kececi_type} with input '{start_input_raw}': {e}")
638
+ # Hata mesajı artık her iki girdiyi de göstererek daha faydalı
639
+ print(f"ERROR: Failed to initialize type {kececi_type} with start='{start_input_raw}' and increment='{add_input_raw}': {e}")
621
640
  return []
622
641
 
642
+ # Fonksiyonun geri kalan üreteç mantığı (döngü kısmı) aynı kalır.
623
643
  sequence = [current_value]
624
644
  last_divisor_used = None
625
645
  ask_counter = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kececinumbers
3
- Version: 0.5.2
3
+ Version: 0.5.3
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
@@ -59,7 +59,7 @@ Dynamic: maintainer
59
59
  Dynamic: maintainer-email
60
60
  Dynamic: requires-python
61
61
 
62
- # Keçeci Numbers: Keçeci Sayıları
62
+ # Keçeci Numbers: Keçeci Sayıları (Keçeci Conjecture)
63
63
  ---
64
64
 
65
65
  [![PyPI version](https://badge.fury.io/py/kececinumbers.svg)](https://badge.fury.io/py/kececinumbers/)
@@ -0,0 +1,10 @@
1
+ docs/conf.py,sha256=jkpH_TchRJcC_EspKeY1E_rml2ODmIWhWoqvyCPu_ok,1116
2
+ kececinumbers/__init__.py,sha256=y_Wlgvwt1591rasdY-u__X0m8MB_mXdYtozcTWUrwvU,3758
3
+ kececinumbers/_version.py,sha256=FJEL_1hwFqZz6weWeGRoiwwCrv8TLw_rzkRGsS8JBkM,453
4
+ kececinumbers/kececinumbers.py,sha256=TS6vyqbtktEGf38UXVxJxF9xnUgw_B7LKHhodUobIxo,44135
5
+ kececinumbers-0.5.3.dist-info/licenses/LICENSE,sha256=NJZsJEbQuKzxn1mWPWCbRx8jRUqGS22thl8wwuRQJ9c,1071
6
+ tests/test_sample.py,sha256=qMWUBGQtlF1gZHZ_e6Gye1vHtyNnUWH7iXK72a1y6VQ,9728
7
+ kececinumbers-0.5.3.dist-info/METADATA,sha256=AVxaBzyBIFghdP2-fudtGEZw5vvBgjptpWn6U6MWO70,33010
8
+ kececinumbers-0.5.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
+ kececinumbers-0.5.3.dist-info/top_level.txt,sha256=ABQEKRH9iYb4sWnFdx7gIx7Hg899YktRkQpbRlSSqwU,25
10
+ kececinumbers-0.5.3.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- docs/conf.py,sha256=jkpH_TchRJcC_EspKeY1E_rml2ODmIWhWoqvyCPu_ok,1116
2
- kececinumbers/__init__.py,sha256=GmhUWhMpBjMeGJ-LV4oxI5qA5UDCrCwh6ueO9uE1EYY,3758
3
- kececinumbers/_version.py,sha256=cmDXhAyFEd7qy5FlMI41EPXUmTpFhes1dmXMh1Rq3NA,453
4
- kececinumbers/kececinumbers.py,sha256=d2gDDpGnzf0exNqopEl4YprLmj1-REtMzJH5-r6n57M,42939
5
- kececinumbers-0.5.2.dist-info/licenses/LICENSE,sha256=NJZsJEbQuKzxn1mWPWCbRx8jRUqGS22thl8wwuRQJ9c,1071
6
- tests/test_sample.py,sha256=qMWUBGQtlF1gZHZ_e6Gye1vHtyNnUWH7iXK72a1y6VQ,9728
7
- kececinumbers-0.5.2.dist-info/METADATA,sha256=9-fGVebcbmv1DoaDQqMC5LBFwWJtAmkl6cuaE87-6q0,32989
8
- kececinumbers-0.5.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
- kececinumbers-0.5.2.dist-info/top_level.txt,sha256=ABQEKRH9iYb4sWnFdx7gIx7Hg899YktRkQpbRlSSqwU,25
10
- kececinumbers-0.5.2.dist-info/RECORD,,