hunterMakesPy 0.5.3__tar.gz → 0.5.4__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 (120) hide show
  1. {huntermakespy-0.5.3/hunterMakesPy.egg-info → huntermakespy-0.5.4}/PKG-INFO +1 -1
  2. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/dataStructures.py +7 -1
  3. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/tests/test_dataStructures.py +9 -3
  4. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/theTypesCallableFunction.py +9 -0
  5. {huntermakespy-0.5.3 → huntermakespy-0.5.4/hunterMakesPy.egg-info}/PKG-INFO +1 -1
  6. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/pyproject.toml +2 -1
  7. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/LICENSE +0 -0
  8. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/README.md +0 -0
  9. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/Notice_of_Copyright.txt +0 -0
  10. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/__init__.pxd +0 -0
  11. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/__init__.py +0 -0
  12. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/__init__.pyi +0 -0
  13. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/_signatures.py +0 -0
  14. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/_signatures.pyi +0 -0
  15. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/cpython.pxd +0 -0
  16. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/curried/__init__.py +0 -0
  17. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/curried/exceptions.py +0 -0
  18. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/curried/exceptions.pyi +0 -0
  19. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/curried/operator.py +0 -0
  20. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/dicttoolz.c +0 -0
  21. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/dicttoolz.pxd +0 -0
  22. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/dicttoolz.pyi +0 -0
  23. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/dicttoolz.pyx +0 -0
  24. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/functoolz.c +0 -0
  25. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/functoolz.pxd +0 -0
  26. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/functoolz.pyi +0 -0
  27. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/functoolz.pyx +0 -0
  28. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/itertoolz.c +0 -0
  29. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/itertoolz.pxd +0 -0
  30. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/itertoolz.pyi +0 -0
  31. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/itertoolz.pyx +0 -0
  32. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/py.typed +0 -0
  33. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/recipes.c +0 -0
  34. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/recipes.pxd +0 -0
  35. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/recipes.pyi +0 -0
  36. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/recipes.pyx +0 -0
  37. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/__init__.py +0 -0
  38. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/dev_skip_test.py +0 -0
  39. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_curried.py +0 -0
  40. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_curried_toolzlike.py +0 -0
  41. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_dev_skip_test.py +0 -0
  42. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_dicttoolz.py +0 -0
  43. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_docstrings.py +0 -0
  44. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_doctests.py +0 -0
  45. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_embedded_sigs.py +0 -0
  46. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_functoolz.py +0 -0
  47. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_inspect_args.py +0 -0
  48. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_itertoolz.py +0 -0
  49. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_none_safe.py +0 -0
  50. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_recipes.py +0 -0
  51. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_serialization.py +0 -0
  52. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_signatures.py +0 -0
  53. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_stubs.py +0 -0
  54. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_tlz.py +0 -0
  55. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/tests/test_utils.py +0 -0
  56. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/utils.c +0 -0
  57. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/utils.pxd +0 -0
  58. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/utils.pyi +0 -0
  59. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_cytoolz/utils.pyx +0 -0
  60. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_tlz/__init__.py +0 -0
  61. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_tlz/_build_tlz.py +0 -0
  62. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/Notice_of_Copyright.txt +0 -0
  63. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/__init__.py +0 -0
  64. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/__init__.pyi +0 -0
  65. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/_signatures.py +0 -0
  66. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/curried/__init__.py +0 -0
  67. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/curried/__init__.pyi +0 -0
  68. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/curried/exceptions.py +0 -0
  69. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/curried/exceptions.pyi +0 -0
  70. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/curried/operator.py +0 -0
  71. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/curried/operator.pyi +0 -0
  72. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/dicttoolz.py +0 -0
  73. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/functoolz.py +0 -0
  74. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/functoolz.pyi +0 -0
  75. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/itertoolz.py +0 -0
  76. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/py.typed +0 -0
  77. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/recipes.py +0 -0
  78. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/recipes.pyi +0 -0
  79. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/__init__.py +0 -0
  80. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/__init__.pyi +0 -0
  81. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/core.py +0 -0
  82. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/core.pyi +0 -0
  83. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/parallel.py +0 -0
  84. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/parallel.pyi +0 -0
  85. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/tests/__init__.py +0 -0
  86. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/tests/test_core.py +0 -0
  87. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/sandbox/tests/test_parallel.py +0 -0
  88. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/__init__.py +0 -0
  89. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_curried.py +0 -0
  90. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_curried_doctests.py +0 -0
  91. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_dicttoolz.py +0 -0
  92. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_functoolz.py +0 -0
  93. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_inspect_args.py +0 -0
  94. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_itertoolz.py +0 -0
  95. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_package.py +0 -0
  96. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_recipes.py +0 -0
  97. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_serialization.py +0 -0
  98. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_signatures.py +0 -0
  99. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_tlz.py +0 -0
  100. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/tests/test_utils.py +0 -0
  101. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/humpy_toolz/utils.py +0 -0
  102. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/__init__.py +0 -0
  103. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/_theSSOT.py +0 -0
  104. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/coping.py +0 -0
  105. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/filesystemToolkit.py +0 -0
  106. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/parseParameters.py +0 -0
  107. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/py.typed +0 -0
  108. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/semiotics.py +0 -0
  109. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/tests/__init__.py +0 -0
  110. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/tests/conftest.py +0 -0
  111. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/tests/test_coping.py +0 -0
  112. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/tests/test_filesystemToolkit.py +0 -0
  113. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/tests/test_parseParameters.py +0 -0
  114. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/tests/test_theTypes.py +0 -0
  115. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy/theTypes.py +0 -0
  116. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy.egg-info/SOURCES.txt +0 -0
  117. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy.egg-info/dependency_links.txt +0 -0
  118. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy.egg-info/requires.txt +0 -0
  119. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/hunterMakesPy.egg-info/top_level.txt +0 -0
  120. {huntermakespy-0.5.3 → huntermakespy-0.5.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hunterMakesPy
3
- Version: 0.5.3
3
+ Version: 0.5.4
4
4
  Summary: Easy Python functions making making functional Python functions easier.
5
5
  Author-email: Hunter Hogan <HunterHogan@pm.me>
6
6
  License-Expression: CC-BY-NC-4.0
@@ -31,10 +31,11 @@ References
31
31
  from __future__ import annotations
32
32
 
33
33
  from charset_normalizer import CharsetMatch
34
- from collections.abc import Mapping
34
+ from collections.abc import Callable, Mapping
35
35
  from hunterMakesPy import Ordinals
36
36
  from numpy import integer
37
37
  from numpy.typing import NDArray
38
+ from types import FunctionType
38
39
  from typing import Any, cast, TYPE_CHECKING
39
40
  import charset_normalizer
40
41
  import more_itertools
@@ -217,6 +218,11 @@ def stringItUp(*scrapPile: Any) -> list[str]:
217
218
  listStrungUp.append(KitKat)
218
219
  elif (KitKat is None) or (isinstance(KitKat, (bool, bytearray, bytes, complex, float, int))):
219
220
  listStrungUp.append(str(KitKat))
221
+ elif callable(KitKat):
222
+ if isinstance(KitKat, FunctionType):
223
+ listStrungUp.append(KitKat.__name__)
224
+ else:
225
+ listStrungUp.append(getattr(KitKat, '__name__', type(KitKat).__name__))
220
226
  elif isinstance(KitKat, memoryview):
221
227
  decodedString: CharsetMatch | None = charset_normalizer.from_bytes(KitKat.tobytes()).best()
222
228
  if decodedString:
@@ -72,12 +72,18 @@ class CustomIterable:
72
72
  ("Iterator from Fibonacci", iter([3, 5, 8, 13]), ['3', '5', '8', '13']),
73
73
  ("Custom iterable cardinal", CustomIterable(["NW", "SE", "NE"]), ["NW", "SE", "NE"]),
74
74
  ("Custom iterable empty", CustomIterable([]), []),
75
+ # Callable objects
76
+ ("User-defined function", [stringItUp], ['stringItUp']),
77
+ ("Lambda function", [lambda: None], ['<lambda>']),
78
+ ("Built-in function", [len], ['len']),
79
+ ("Class type", [int], ['int']),
80
+ ("Callable instance", [type('CallableClass', (), {'__call__': lambda self: None})()], ['CallableClass']),
75
81
  # Weird stuff
76
82
  ("Bad __str__", type('BadStr', (), {'__str__': lambda x: None})(), [None]),
77
83
  # Error cases
78
84
  ("Raising __str__", type('RaisingStr', (), {'__str__': lambda x: 1/0})(), ZeroDivisionError),
79
85
  ], ids=lambda x: x if isinstance(x, str) else "")
80
- def testStringItUp(description: str, value_scrapPile: list[Any], expected: list[str] | type[Exception]) -> None:
86
+ def test_stringItUp(description: str, value_scrapPile: list[Any], expected: list[str] | type[Exception]) -> None:
81
87
  """Test stringItUp with various inputs.
82
88
 
83
89
  Parameters
@@ -104,7 +110,7 @@ def testStringItUp(description: str, value_scrapPile: list[Any], expected: list[
104
110
  ("Non-iterable values", ({'ne': 13, 'sw': 17}, {'ne': 19, 'nw': 23}), {'destroyDuplicates': False, 'reorderLists': False}, TypeError),
105
111
  ("Skip erroneous types", ({'ne': [11, 13], 'sw': [17, 19]}, {'ne': 23, 'nw': 29}), {'killErroneousDataTypes': True}, {'ne': [11, 13], 'sw': [17, 19]}),
106
112
  ], ids=lambda x: x if isinstance(x, str) else "")
107
- def testUpdateExtendPolishDictionaryLists(description: str, value_dictionaryLists: tuple[dict[str, Any], ...], keywordArguments: dict[str, Any], expected: dict[str, Any] | type[TypeError]) -> None:
113
+ def test_updateExtendPolishDictionaryLists(description: str, value_dictionaryLists: tuple[dict[str, Any], ...], keywordArguments: dict[str, Any], expected: dict[str, Any] | type[TypeError]) -> None:
108
114
  """Test dictionary list updating and extension logic.
109
115
 
110
116
  (AI generated docstring)
@@ -137,7 +143,7 @@ def testUpdateExtendPolishDictionaryLists(description: str, value_dictionaryList
137
143
  for description, arrayExpression, expectedWithoutSpaces, expectedWithSpaces in AUTO_DECODING_RLE_CASES
138
144
  ],
139
145
  )
140
- def testAutoDecodingRLE(
146
+ def test_autoDecodingRLE(
141
147
  description: str,
142
148
  arrayExpression: str,
143
149
  expectedWithoutSpaces: str,
@@ -6,6 +6,15 @@ from types import CellType, CodeType, MethodType
6
6
  from typing import Any, overload, ParamSpec, Protocol, runtime_checkable, Self, TypeVar, TypeVarTuple
7
7
  import sys
8
8
 
9
+ # TODO explore the following
10
+ """
11
+ I've added new test cases using a lambda function and a standard user-defined imported function
12
+ (stringItUp itself). Built-in functions like len don't trigger the FunctionType check because their
13
+ type is technically a builtin_function_or_method in CPython, whereas functions defined via def or
14
+ lambda correspond exactly to types.FunctionType. Your coverage should now reflect this branch as
15
+ expected reflect activation of that branch.
16
+ """
17
+
9
18
  #======== Copied from typeshed:stdlib\_typeshed\__init__.pyi ========
10
19
  type AnnotationForm = Any
11
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hunterMakesPy
3
- Version: 0.5.3
3
+ Version: 0.5.4
4
4
  Summary: Easy Python functions making making functional Python functions easier.
5
5
  Author-email: Hunter Hogan <HunterHogan@pm.me>
6
6
  License-Expression: CC-BY-NC-4.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hunterMakesPy"
3
- version = "0.5.3"
3
+ version = "0.5.4"
4
4
  description = "Easy Python functions making making functional Python functions easier."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -89,6 +89,7 @@ run = { branch = true, concurrency = [
89
89
  "multiprocessing",
90
90
  ], data_file = "tests/coverage/.coverage", omit = [
91
91
  "tests/*",
92
+ "hunterMakesPy/assimilate/*",
92
93
  "hunterMakesPy/tests/*",
93
94
  "humpy_toolz/sandbox/tests",
94
95
  "humpy_toolz/tests",
File without changes
File without changes
File without changes