Skip to content

Commit 5f656f8

Browse files
Update _version.py
1 parent 89e7e77 commit 5f656f8

1 file changed

Lines changed: 207 additions & 7 deletions

File tree

kececinumbers/_version.py

Lines changed: 207 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,210 @@
11
# -*- coding: utf-8 -*-
22
# _version.py
33

4-
__version__ = "1.0.1"
5-
__license__ = "AGPL-3.0-or-later"
6-
__description__ = "Keçeci Numbers: An Exploration of a Dynamic Sequence Across Diverse Number Sets."
7-
__author__ = "Mehmet Keçeci"
8-
__url__ = "https://github.com/WhiteSymmetry/kececinumbers"
9-
__docs__ = "https://github.com/WhiteSymmetry/kececinumbers" # Opsiyonel: Dokümantasyon linki
10-
__dependencies__ = ["python>=3.11"] # Diğer bağımlılıkları da ekleyebilirsiniz
4+
from typing import Dict, List, Tuple
5+
6+
# Package version following Semantic Versioning (SemVer)
7+
# Format: MAJOR.MINOR.PATCH
8+
# - MAJOR: Incompatible API changes
9+
# - MINOR: Backwards-compatible functionality additions
10+
# - PATCH: Backwards-compatible bug fixes
11+
__version__: str = "1.0.2"
12+
13+
# License information
14+
__license__: str = "AGPL-3.0-or-later"
15+
__license_name__: str = "GNU Affero General Public License v3.0 or later"
16+
__license_url__: str = "https://www.gnu.org/licenses/agpl-3.0.html"
17+
18+
# Package description
19+
__description__: str = "Keçeci Numbers: An Exploration of a Dynamic Sequence Across Diverse Number Sets."
20+
__summary__: str = "A cryptographic hash algorithm maximizing security with performance trade-offs"
21+
__keywords__: List[str] = [
22+
"cryptography",
23+
"hash",
24+
"security",
25+
"hashing-algorithm",
26+
"crypto",
27+
"kececinumbers",
28+
"kececi",
29+
]
30+
31+
# Author information
32+
__author__: str = "Mehmet Keçeci"
33+
__author_email__: str = "mkececi@yaani.com"
34+
__maintainer__: str = "Mehmet Keçeci"
35+
__maintainer_email__: str = "mkececi@yaani.com"
36+
37+
# Project URLs
38+
__url__: str = "https://github.com/WhiteSymmetry/kececinumbers"
39+
__docs__: str = "https://github.com/WhiteSymmetry/kececinumbers" # Documentation URL
40+
__source__: str = "https://github.com/WhiteSymmetry/kececinumbers"
41+
__tracker__: str = "https://github.com/WhiteSymmetry/kececinumbers/issues"
42+
__download_url__: str = "https://pypi.org/project/kececinumbers/"
43+
44+
# Package requirements
45+
__python_requires__: str = ">=3.11"
46+
__dependencies__: List[str] = [
47+
"python>=3.11",
48+
# Add runtime dependencies here if any
49+
# Example: "cryptography>=3.4.0",
50+
]
51+
__extras_require__: Dict[str, List[str]] = {
52+
"dev": [
53+
"pytest>=9.0.3",
54+
"pytest-cov>=7.1.0",
55+
"black>=26.3.1",
56+
"isort>=8.0.1",
57+
"mypy>=1.20.2",
58+
"flake8>=7.3.0",
59+
],
60+
"docs": [
61+
"sphinx>=9.1.0",
62+
"sphinx-rtd-theme>3.1.0",
63+
],
64+
"test": [
65+
"pytest>=9.0.3",
66+
"pytest-benchmark>=5.2.3",
67+
],
68+
}
69+
70+
# Classification information for PyPI
71+
__classifiers__: List[str] = [
72+
"Development Status :: 4 - Beta",
73+
"Intended Audience :: Developers",
74+
"Intended Audience :: Science/Research",
75+
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
76+
"Operating System :: OS Independent",
77+
"Programming Language :: Python",
78+
"Programming Language :: Python :: 3",
79+
"Programming Language :: Python :: 3.11",
80+
"Programming Language :: Python :: 3.12",
81+
"Programming Language :: Python :: 3.13",
82+
"Programming Language :: Python :: 3.14",
83+
"Programming Language :: Python :: 3.15",
84+
"Programming Language :: Python :: Implementation :: CPython",
85+
"Topic :: Security",
86+
"Topic :: Security :: Cryptography",
87+
"Topic :: Software Development :: Libraries :: Python Modules",
88+
]
89+
90+
# Minimum and maximum supported Python versions
91+
__min_python_version__: Tuple[int, int] = (3, 11)
92+
__max_python_version__: Tuple[int, int] = (3, 15)
93+
94+
# Package status
95+
__status__: str = "Beta"
96+
__release_date__: str = "2025" # Initial release year
97+
98+
# Security information
99+
__security_audit_status__: str = "Pending"
100+
__security_audit_date__: Optional[str] = None
101+
102+
# Build and distribution information
103+
__build__: int = 1 # Increment for each build of the same version
104+
105+
106+
def get_version_info() -> Dict[str, str]:
107+
"""Return a dictionary with all version information.
108+
109+
Returns:
110+
Dict[str, str]: Dictionary containing version metadata.
111+
"""
112+
return {
113+
"version": __version__,
114+
"license": __license__,
115+
"description": __description__,
116+
"author": __author__,
117+
"author_email": __author_email__,
118+
"url": __url__,
119+
"docs": __docs__,
120+
"python_requires": __python_requires__,
121+
}
122+
123+
124+
def get_dependency_info() -> Dict[str, List[str]]:
125+
"""Return dependency information.
126+
127+
Returns:
128+
Dict[str, List[str]]: Dictionary containing dependency information.
129+
"""
130+
return {
131+
"install": __dependencies__,
132+
"extras": __extras_require__,
133+
}
134+
135+
136+
def is_python_version_supported(major: int, minor: int) -> bool:
137+
"""Check if a given Python version is supported.
138+
139+
Args:
140+
major: Python major version (e.g., 3)
141+
minor: Python minor version (e.g., 11)
142+
143+
Returns:
144+
bool: True if the version is supported, False otherwise.
145+
"""
146+
min_supported = __min_python_version__
147+
max_supported = __max_python_version__
148+
149+
version = (major, minor)
150+
return min_supported <= version <= max_supported
151+
152+
153+
def get_supported_python_versions() -> List[str]:
154+
"""Get a list of supported Python versions as strings.
155+
156+
Returns:
157+
List[str]: List of supported Python versions.
158+
"""
159+
versions = []
160+
for minor in range(__min_python_version__[1], __max_python_version__[1] + 1):
161+
versions.append(f"3.{minor}")
162+
return versions
163+
164+
# Version history for changelog purposes
165+
__version_history__: List[Dict[str, str]] = [
166+
{
167+
"version": "1.0.1",
168+
"date": "2026-05-26",
169+
"changes": [
170+
"minor",
171+
],
172+
},
173+
174+
]
175+
176+
# Export all public variables
177+
__all__ = [
178+
"__version__",
179+
"__license__",
180+
"__license_name__",
181+
"__license_url__",
182+
"__description__",
183+
"__summary__",
184+
"__keywords__",
185+
"__author__",
186+
"__author_email__",
187+
"__maintainer__",
188+
"__maintainer_email__",
189+
"__url__",
190+
"__docs__",
191+
"__source__",
192+
"__tracker__",
193+
"__download_url__",
194+
"__python_requires__",
195+
"__dependencies__",
196+
"__extras_require__",
197+
"__classifiers__",
198+
"__min_python_version__",
199+
"__max_python_version__",
200+
"__status__",
201+
"__release_date__",
202+
"__security_audit_status__",
203+
"__security_audit_date__",
204+
"__build__",
205+
"__version_history__",
206+
"get_version_info",
207+
"get_dependency_info",
208+
"is_python_version_supported",
209+
"get_supported_python_versions",
210+
]

0 commit comments

Comments
 (0)