transcrypto 2.3.2__tar.gz → 2.3.3__tar.gz

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.
Files changed (33) hide show
  1. {transcrypto-2.3.2 → transcrypto-2.3.3}/PKG-INFO +1 -1
  2. {transcrypto-2.3.2 → transcrypto-2.3.3}/pyproject.toml +1 -1
  3. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/__init__.py +1 -1
  4. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/timer.py +41 -1
  5. {transcrypto-2.3.2 → transcrypto-2.3.3}/LICENSE +0 -0
  6. {transcrypto-2.3.2 → transcrypto-2.3.3}/README.md +0 -0
  7. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/cli/__init__.py +0 -0
  8. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/cli/aeshash.py +0 -0
  9. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/cli/bidsecret.py +0 -0
  10. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/cli/clibase.py +0 -0
  11. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/cli/intmath.py +0 -0
  12. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/cli/publicalgos.py +0 -0
  13. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/__init__.py +0 -0
  14. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/aes.py +0 -0
  15. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/bid.py +0 -0
  16. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/constants.py +0 -0
  17. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/dsa.py +0 -0
  18. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/elgamal.py +0 -0
  19. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/hashes.py +0 -0
  20. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/key.py +0 -0
  21. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/modmath.py +0 -0
  22. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/rsa.py +0 -0
  23. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/core/sss.py +0 -0
  24. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/profiler.py +0 -0
  25. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/py.typed +0 -0
  26. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/transcrypto.py +0 -0
  27. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/__init__.py +0 -0
  28. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/base.py +0 -0
  29. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/config.py +0 -0
  30. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/human.py +0 -0
  31. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/logging.py +0 -0
  32. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/saferandom.py +0 -0
  33. {transcrypto-2.3.2 → transcrypto-2.3.3}/src/transcrypto/utils/stats.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: transcrypto
3
- Version: 2.3.2
3
+ Version: 2.3.3
4
4
  Summary: Basic crypto primitives, not intended for actual use, but as a companion to --Criptografia, Métodos e Algoritmos--
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -12,7 +12,7 @@ build-backend = "poetry.core.masonry.api"
12
12
  [project]
13
13
 
14
14
  name = "transcrypto"
15
- version = "2.3.2" # also update src/transcrypto/__init__.py
15
+ version = "2.3.3" # also update src/transcrypto/__init__.py
16
16
 
17
17
  description = "Basic crypto primitives, not intended for actual use, but as a companion to --Criptografia, Métodos e Algoritmos--"
18
18
  license = "Apache-2.0"
@@ -3,5 +3,5 @@
3
3
  """Basic cryptography primitives implementation."""
4
4
 
5
5
  __all__: list[str] = ['__author__', '__version__']
6
- __version__ = '2.3.2' # remember to also update pyproject.toml
6
+ __version__ = '2.3.3' # remember to also update pyproject.toml
7
7
  __author__ = 'Daniel Balparda <balparda@github.com>'
@@ -18,13 +18,53 @@ from transcrypto.utils import base, human
18
18
 
19
19
  MIN_TM = int(datetime.datetime(2000, 1, 1, 0, 0, 0, tzinfo=datetime.UTC).timestamp())
20
20
  TIME_FORMAT = '%Y/%b/%d-%H:%M:%S-UTC'
21
- TimeStr: abc.Callable[[int | float | None], str] = lambda tm: (
21
+ TimeStr: abc.Callable[[float | None], str] = lambda tm: (
22
22
  time.strftime(TIME_FORMAT, time.gmtime(tm)) if tm else '-'
23
23
  )
24
24
  Now: abc.Callable[[], int] = lambda: int(time.time())
25
25
  StrNow: abc.Callable[[], str] = lambda: TimeStr(Now())
26
26
 
27
27
 
28
+ def DatetimeFromISO(s: str) -> datetime.datetime:
29
+ """Parse ISO datetime and ensure it is timezone-aware (default UTC).
30
+
31
+ Args:
32
+ s (str): ISO 8601 datetime string.
33
+
34
+ Returns:
35
+ Timezone-aware datetime (UTC if input was naive).
36
+
37
+ """
38
+ dt: datetime.datetime = datetime.datetime.fromisoformat(s)
39
+ return dt if dt.tzinfo is not None else dt.replace(tzinfo=datetime.UTC)
40
+
41
+
42
+ def ISOFromDatetime(dt: datetime.datetime) -> str:
43
+ """Convert a datetime to an ISO 8601 string.
44
+
45
+ Args:
46
+ dt (datetime.datetime): The datetime to convert.
47
+
48
+ Returns:
49
+ str: The ISO 8601 string representation of the datetime.
50
+
51
+ """
52
+ return dt.isoformat()
53
+
54
+
55
+ def UTCDatetimeFromUnix(tm: float) -> datetime.datetime:
56
+ """Convert a Unix timestamp to a timezone-aware datetime (UTC).
57
+
58
+ Args:
59
+ tm (float): Unix timestamp (seconds since epoch).
60
+
61
+ Returns:
62
+ Timezone-aware datetime in UTC.
63
+
64
+ """
65
+ return datetime.datetime.fromtimestamp(tm, tz=datetime.UTC)
66
+
67
+
28
68
  class Timer:
29
69
  """An execution timing class that can be used as both a context manager and a decorator.
30
70
 
File without changes
File without changes