hunterMakesPy 0.3.3__py3-none-any.whl → 0.4.0__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.
@@ -1,3 +1,11 @@
1
+ """Tests for parameter parsing and validation utilities.
2
+
3
+ (AI generated docstring)
4
+
5
+ This module provides test suites for concurrency limits, integer initialization,
6
+ and string-based boolean parsing.
7
+
8
+ """
1
9
  # pyright: standard
2
10
  from collections.abc import Callable, Iterable, Iterator
3
11
  from hunterMakesPy import defineConcurrencyLimit, intInnit, oopsieKwargsie
@@ -66,7 +74,7 @@ def PytestFor_defineConcurrencyLimit(callableToTest: Callable[..., int] = define
66
74
  testCases: dict[float, int] = {
67
75
  0.5: cpuCount // 2,
68
76
  0.25: cpuCount // 4,
69
- 0.75: int(cpuCount * 0.75)
77
+ 0.75: int(cpuCount * 0.75),
70
78
  }
71
79
  for limit, expected in testCases.items():
72
80
  assert callableToTest(limit=limit, cpuTotal=cpuCount) == expected
@@ -114,7 +122,7 @@ def PytestFor_defineConcurrencyLimit(callableToTest: Callable[..., int] = define
114
122
  ('testStringNumbers', testStringNumbers)
115
123
  ]
116
124
 
117
- def PytestFor_intInnit(callableToTest: Callable[[Iterable[int], str | None, type[Any] | None], list[int]] = intInnit) -> list[tuple[str, Callable[[], None]]]:
125
+ def PytestFor_intInnit(callableToTest: Callable[[Iterable[Any], str | None, type[Any] | None], list[int]] = intInnit) -> list[tuple[str, Callable[[], None]]]:
118
126
  """Return a list of test functions to validate integer initialization behavior.
119
127
 
120
128
  This function provides a comprehensive test suite for validating integer parsing
@@ -222,7 +230,7 @@ def PytestFor_intInnit(callableToTest: Callable[[Iterable[int], str | None, type
222
230
  def __iter__(self) -> Iterator[int]:
223
231
  self.append(89)
224
232
  return super().__iter__()
225
- with pytest.raises(RuntimeError, match=".*modified during iteration.*"):
233
+ with pytest.raises(RuntimeError, match=r".*modified during iteration.*"):
226
234
  callableToTest(MutableList([13, 21, 34]), 'test', None)
227
235
 
228
236
  def testHandlesComplexIntegers() -> None:
@@ -252,7 +260,7 @@ def PytestFor_intInnit(callableToTest: Callable[[Iterable[int], str | None, type
252
260
  ('testRejectsInvalidComplex', testRejectsInvalidComplex)
253
261
  ]
254
262
 
255
- def PytestFor_oopsieKwargsie(callableToTest: Callable[[str], bool | None | str] = oopsieKwargsie) -> list[tuple[str, Callable[[], None]]]:
263
+ def PytestFor_oopsieKwargsie(callableToTest: Callable[[Any], object] = oopsieKwargsie) -> list[tuple[str, Callable[[], None]]]:
256
264
  """Return a list of test functions to validate string-to-boolean/None conversion behavior.
257
265
 
258
266
  This function provides a comprehensive test suite for validating string parsing and conversion
@@ -311,13 +319,13 @@ def PytestFor_oopsieKwargsie(callableToTest: Callable[[str], bool | None | str]
311
319
  def testHandlesNonStringObjects() -> None:
312
320
  class NeverGonnaStringIt:
313
321
  def __str__(self) -> NoReturn:
314
- message = "Cannot be stringified"
322
+ message: str = "Cannot be stringified"
315
323
  raise TypeError(message)
316
324
 
317
325
  assert callableToTest(123) == "123"
318
326
 
319
- neverGonnaStringIt = NeverGonnaStringIt()
320
- result = callableToTest(neverGonnaStringIt)
327
+ neverGonnaStringIt: NeverGonnaStringIt = NeverGonnaStringIt()
328
+ result: object = callableToTest(neverGonnaStringIt)
321
329
  assert result is neverGonnaStringIt
322
330
 
323
331
  return [
@@ -330,12 +338,60 @@ def PytestFor_oopsieKwargsie(callableToTest: Callable[[str], bool | None | str]
330
338
 
331
339
  @pytest.mark.parametrize("nameOfTest,aPytest", PytestFor_defineConcurrencyLimit())
332
340
  def testConcurrencyLimit(nameOfTest: str, aPytest: Callable[parameters, returnType], *arguments: parameters.args, **keywordArguments: parameters.kwargs) -> None:
341
+ """Execute generated tests for concurrency limit definitions.
342
+
343
+ (AI generated docstring)
344
+
345
+ Parameters
346
+ ----------
347
+ nameOfTest : str
348
+ Name of the test case.
349
+ aPytest : Callable[..., Any]
350
+ The callable test function to execute.
351
+ *arguments : Any
352
+ Positional arguments for the test function.
353
+ **keywordArguments : Any
354
+ Keyword arguments for the test function.
355
+
356
+ """
333
357
  aPytest(*arguments, **keywordArguments)
334
358
 
335
359
  @pytest.mark.parametrize("nameOfTest,aPytest", PytestFor_intInnit())
336
360
  def testIntInnit(nameOfTest: str, aPytest: Callable[parameters, returnType], *arguments: parameters.args, **keywordArguments: parameters.kwargs) -> None:
361
+ """Execute generated tests for integer initialization.
362
+
363
+ (AI generated docstring)
364
+
365
+ Parameters
366
+ ----------
367
+ nameOfTest : str
368
+ Name of the test case.
369
+ aPytest : Callable[..., Any]
370
+ The callable test function to execute.
371
+ *arguments : Any
372
+ Positional arguments for the test function.
373
+ **keywordArguments : Any
374
+ Keyword arguments for the test function.
375
+
376
+ """
337
377
  aPytest(*arguments, **keywordArguments)
338
378
 
339
379
  @pytest.mark.parametrize("nameOfTest,aPytest", PytestFor_oopsieKwargsie())
340
380
  def testOopsieKwargsie(nameOfTest: str, aPytest: Callable[parameters, returnType], *arguments: parameters.args, **keywordArguments: parameters.kwargs) -> None:
381
+ """Execute generated tests for boolean string parsing.
382
+
383
+ (AI generated docstring)
384
+
385
+ Parameters
386
+ ----------
387
+ nameOfTest : str
388
+ Name of the test case.
389
+ aPytest : Callable[..., Any]
390
+ The callable test function to execute.
391
+ *arguments : Any
392
+ Positional arguments for the test function.
393
+ **keywordArguments : Any
394
+ Keyword arguments for the test function.
395
+
396
+ """
341
397
  aPytest(*arguments, **keywordArguments)
@@ -0,0 +1,359 @@
1
+ """Tests for `Ordinals` ordering behaviors.
2
+
3
+ (AI generated docstring)
4
+
5
+ This module validates comparison semantics and sorting consistency across built-in and custom comparables using `pytest`.
6
+
7
+ """
8
+ from dataclasses import dataclass
9
+ from hunterMakesPy import CallableFunction, Ordinals
10
+ from hunterMakesPy.tests.conftest import uniformTestFailureMessage
11
+ from typing import Self, TYPE_CHECKING, TypeVar
12
+ import functools
13
+ import inspect
14
+ import pytest
15
+
16
+ if TYPE_CHECKING:
17
+ from collections.abc import Callable
18
+
19
+ 小于 = TypeVar('小于', bound=Ordinals)
20
+ """Type variable bound to `Ordinals`.
21
+
22
+ (AI generated docstring)
23
+
24
+ """
25
+
26
+ def between(floor: 小于, ceiling: 小于, comparand: 小于) -> bool:
27
+ """Return whether `comparand` lies between `floor` and `ceiling` inclusive.
28
+
29
+ Parameters
30
+ ----------
31
+ floor : 小于
32
+ Lower bound for `comparand`.
33
+ ceiling : 小于
34
+ Upper bound for `comparand`.
35
+ comparand : 小于
36
+ Value compared against `floor` and `ceiling`.
37
+
38
+ Returns
39
+ -------
40
+ isBetween : bool
41
+ Whether `comparand` is within the inclusive bounds.
42
+
43
+ """
44
+ return floor <= comparand <= ceiling
45
+
46
+ @dataclass(frozen=True, slots=True)
47
+ class ComparableCardinal:
48
+ """Comparable wrapper for an `int` value.
49
+
50
+ (AI generated docstring)
51
+
52
+ Attributes
53
+ ----------
54
+ value : int
55
+ Integer used for ordering comparisons.
56
+
57
+ """
58
+
59
+ value: int
60
+ """Integer used for ordering comparisons.
61
+
62
+ (AI generated docstring)
63
+
64
+ """
65
+
66
+ def __le__(self: Self, other: Self, /) -> bool:
67
+ """Return whether `self` is less than or equal to `other`.
68
+
69
+ (AI generated docstring)
70
+
71
+ Parameters
72
+ ----------
73
+ self : Self
74
+ Instance compared against `other`.
75
+ other : Self
76
+ Instance compared against `self`.
77
+
78
+ Returns
79
+ -------
80
+ isLessThanOrEqual : bool
81
+ Whether `self` is ordered before or equal to `other`.
82
+
83
+ """
84
+ return self.value <= other.value
85
+
86
+ def __lt__(self: Self, other: Self, /) -> bool:
87
+ """Return whether `self` is strictly less than `other`.
88
+
89
+ (AI generated docstring)
90
+
91
+ Parameters
92
+ ----------
93
+ self : Self
94
+ Instance compared against `other`.
95
+ other : Self
96
+ Instance compared against `self`.
97
+
98
+ Returns
99
+ -------
100
+ isLessThan : bool
101
+ Whether `self` is ordered before `other`.
102
+
103
+ """
104
+ return self.value < other.value
105
+
106
+ @pytest.mark.parametrize(
107
+ 'floor, ceiling, comparand, expected'
108
+ , [ (13, 34, 21, True) , (227, 695, 88, False) ]
109
+ )
110
+ def testOrdinalsBetweenWorksForInt(floor: int, ceiling: int, comparand: int, expected: bool) -> None:
111
+ """Verify `between` handles `int` operands.
112
+
113
+ (AI generated docstring)
114
+
115
+ Parameters
116
+ ----------
117
+ floor : int
118
+ Lower bound for `comparand`.
119
+ ceiling : int
120
+ Upper bound for `comparand`.
121
+ comparand : int
122
+ Value of `comparand` compared against the bounds.
123
+ expected : bool
124
+ Expected outcome from `between`.
125
+
126
+ Returns
127
+ -------
128
+ unusedReturnValue : None
129
+ Returns `None`.
130
+
131
+ """
132
+ actual: bool = between(floor, ceiling, comparand)
133
+ assert actual == expected, uniformTestFailureMessage( expected , actual , 'between' , floor , ceiling , comparand )
134
+
135
+ @pytest.mark.parametrize(
136
+ 'values, expected'
137
+ , [ ([21, 13, 34, 8], [8, 13, 21, 34]) ]
138
+ )
139
+ def testOrdinalsSortingWorksForInt(values: list[int], expected: list[int]) -> None:
140
+ """Verify sorting uses ordinal ordering for `int` values.
141
+
142
+ (AI generated docstring)
143
+
144
+ Parameters
145
+ ----------
146
+ values : list[int]
147
+ Input `values` to sort.
148
+ expected : list[int]
149
+ Expected sorted output for `values`.
150
+
151
+ Returns
152
+ -------
153
+ unusedReturnValue : None
154
+ Returns `None`.
155
+
156
+ """
157
+ actual: list[int] = sorted(values)
158
+ assert actual == expected, uniformTestFailureMessage( expected , actual , 'sorted' , values )
159
+
160
+ @pytest.mark.parametrize(
161
+ 'floor, ceiling, comparand, expected'
162
+ , [ ('fibonacci', 'prime', 'omega', True) , ('fibonacci', 'prime', 'tango', False) ]
163
+ )
164
+ def testOrdinalsBetweenWorksForStr(floor: str, ceiling: str, comparand: str, expected: bool) -> None:
165
+ """Verify `between` handles `str` operands.
166
+
167
+ (AI generated docstring)
168
+
169
+ Parameters
170
+ ----------
171
+ floor : str
172
+ Lower bound for `comparand`.
173
+ ceiling : str
174
+ Upper bound for `comparand`.
175
+ comparand : str
176
+ Value of `comparand` compared against the bounds.
177
+ expected : bool
178
+ Expected outcome from `between`.
179
+
180
+ Returns
181
+ -------
182
+ unusedReturnValue : None
183
+ Returns `None`.
184
+
185
+ """
186
+ actual: bool = between(floor, ceiling, comparand)
187
+ assert actual == expected, uniformTestFailureMessage( expected , actual , 'between' , floor , ceiling , comparand )
188
+
189
+ @pytest.mark.parametrize(
190
+ 'values, expected'
191
+ , [ (['prime', 'fibonacci', 'omega'], ['fibonacci', 'omega', 'prime']) ]
192
+ )
193
+ def testOrdinalsSortingWorksForStr(values: list[str], expected: list[str]) -> None:
194
+ """Verify sorting uses ordinal ordering for `str` values.
195
+
196
+ (AI generated docstring)
197
+
198
+ Parameters
199
+ ----------
200
+ values : list[str]
201
+ Input `values` to sort.
202
+ expected : list[str]
203
+ Expected sorted output for `values`.
204
+
205
+ Returns
206
+ -------
207
+ unusedReturnValue : None
208
+ Returns `None`.
209
+
210
+ """
211
+ actual: list[str] = sorted(values)
212
+ assert actual == expected, uniformTestFailureMessage( expected , actual , 'sorted' , values )
213
+
214
+ @pytest.mark.parametrize(
215
+ 'floor, ceiling, comparand, expected'
216
+ , [ ((13, 17), (21, 2), (13, 19), True) , ((13, 17), (21, 2), (8, 34), False) ]
217
+ )
218
+ def testOrdinalsBetweenWorksForTuple(floor: tuple[int, int], ceiling: tuple[int, int], comparand: tuple[int, int], expected: bool) -> None:
219
+ """Verify `between` handles `tuple[int, int]` operands.
220
+
221
+ (AI generated docstring)
222
+
223
+ Parameters
224
+ ----------
225
+ floor : tuple[int, int]
226
+ Lower bound for `comparand`.
227
+ ceiling : tuple[int, int]
228
+ Upper bound for `comparand`.
229
+ comparand : tuple[int, int]
230
+ Value of `comparand` compared against the bounds.
231
+ expected : bool
232
+ Expected outcome from `between`.
233
+
234
+ Returns
235
+ -------
236
+ unusedReturnValue : None
237
+ Returns `None`.
238
+
239
+ """
240
+ actual: bool = between(floor, ceiling, comparand)
241
+ assert actual == expected, uniformTestFailureMessage( expected , actual , 'between' , floor , ceiling , comparand )
242
+
243
+ @pytest.mark.parametrize( 'values, expected' , [ ( [(21, 2), (13, 19), (13, 17), (8, 34)] , [(8, 34), (13, 17), (13, 19), (21, 2)] ) ] )
244
+ def testOrdinalsSortingWorksForTuple(values: list[tuple[int, int]], expected: list[tuple[int, int]]) -> None:
245
+ """Verify sorting uses ordinal ordering for `tuple[int, int]` values.
246
+
247
+ (AI generated docstring)
248
+
249
+ Parameters
250
+ ----------
251
+ values : list[tuple[int, int]]
252
+ Input `values` to sort.
253
+ expected : list[tuple[int, int]]
254
+ Expected sorted output for `values`.
255
+
256
+ Returns
257
+ -------
258
+ unusedReturnValue : None
259
+ Returns `None`.
260
+
261
+ """
262
+ actual: list[tuple[int, int]] = sorted(values)
263
+ assert actual == expected, uniformTestFailureMessage( expected , actual , 'sorted' , values )
264
+
265
+ @pytest.mark.parametrize(
266
+ 'floor, ceiling, comparand, expected'
267
+ , [
268
+ (ComparableCardinal(13), ComparableCardinal(34), ComparableCardinal(21), True)
269
+ , (ComparableCardinal(13), ComparableCardinal(34), ComparableCardinal(8), False)
270
+ ]
271
+ )
272
+ def testOrdinalsBetweenWorksForCustomComparable( floor: ComparableCardinal, ceiling: ComparableCardinal, comparand: ComparableCardinal, expected: bool ) -> None:
273
+ """Verify `between` handles `ComparableCardinal` operands.
274
+
275
+ (AI generated docstring)
276
+
277
+ Parameters
278
+ ----------
279
+ floor : ComparableCardinal
280
+ Lower `ComparableCardinal` bound for `comparand`.
281
+ ceiling : ComparableCardinal
282
+ Upper `ComparableCardinal` bound for `comparand`.
283
+ comparand : ComparableCardinal
284
+ Value of `comparand` compared against the bounds.
285
+ expected : bool
286
+ Expected outcome from `between`.
287
+
288
+ Returns
289
+ -------
290
+ unusedReturnValue : None
291
+ Returns `None`.
292
+
293
+ """
294
+ actual: bool = between(floor, ceiling, comparand)
295
+ assert actual == expected, uniformTestFailureMessage( expected , actual , 'between' , floor , ceiling , comparand )
296
+
297
+ @pytest.mark.parametrize( 'comparisonMethodName' , [ '__le__' , '__lt__' ] )
298
+ def testOrdinalsComparisonMethodsAcceptOtherOperand(comparisonMethodName: str) -> None:
299
+ """Validate `Ordinals` comparison method signatures.
300
+
301
+ (AI generated docstring)
302
+
303
+ Parameters
304
+ ----------
305
+ comparisonMethodName : str
306
+ Name of the `Ordinals` comparison method to inspect.
307
+
308
+ Returns
309
+ -------
310
+ unusedReturnValue : None
311
+ Returns `None`.
312
+
313
+ """
314
+ comparisonMethod: Callable[[Ordinals, Ordinals], bool] = getattr(Ordinals, comparisonMethodName)
315
+ signature: inspect.Signature = inspect.signature(comparisonMethod)
316
+ listParameters: list[inspect.Parameter] = list(signature.parameters.values())
317
+
318
+ assert len(listParameters) == 2, uniformTestFailureMessage(
319
+ 2 , len(listParameters) , 'Ordinals comparison parameter count' , comparisonMethodName , signature )
320
+
321
+ listKinds: list[inspect._ParameterKind] = [parameter.kind for parameter in listParameters]
322
+ expectedKinds: list[inspect._ParameterKind] = [inspect.Parameter.POSITIONAL_ONLY, inspect.Parameter.POSITIONAL_ONLY]
323
+ assert listKinds == expectedKinds, uniformTestFailureMessage(
324
+ expectedKinds , listKinds , 'Ordinals comparison parameter kinds' , comparisonMethodName , signature )
325
+
326
+ actualReturnAnnotation: object = signature.return_annotation
327
+ assert actualReturnAnnotation is bool, uniformTestFailureMessage(
328
+ bool , actualReturnAnnotation , 'Ordinals comparison return annotation' , comparisonMethodName , signature )
329
+
330
+ def _plainFunction() -> None:
331
+ """A plain function for testing."""
332
+
333
+ @functools.wraps(_plainFunction)
334
+ def _wrappedFunction() -> None:
335
+ """A wrapped function for testing."""
336
+
337
+ _lambdaFunction = lambda: None # noqa: E731
338
+
339
+ @pytest.mark.parametrize( 'candidate, expected' , [ (_wrappedFunction, True), (_plainFunction, False), (_lambdaFunction, False)] )
340
+ def testCallableFunctionIdentifiesCompatibleObjects(candidate: object, expected: bool) -> None:
341
+ """Verify `CallableFunction` protocol matching.
342
+
343
+ (AI generated docstring)
344
+
345
+ Parameters
346
+ ----------
347
+ candidate : object
348
+ The object to check against `CallableFunction`.
349
+ expected : bool
350
+ Expected result of `isinstance(candidate, CallableFunction)`.
351
+
352
+ Return
353
+ ------
354
+ unusedReturnValue : None
355
+ Returns `None`.
356
+
357
+ """
358
+ actual: bool = isinstance(candidate, CallableFunction)
359
+ assert actual == expected, uniformTestFailureMessage(expected, actual, 'isinstance', candidate)
hunterMakesPy/theTypes.py CHANGED
@@ -1,21 +1,20 @@
1
1
  """I type, you type, we all `type` for `theTypes`."""
2
- from typing import Protocol, Self, TypeAlias
2
+ from hunterMakesPy.Z0Z_CallableFunction import CallableFunction as CallableFunction
3
+ from typing import Protocol, Self
3
4
 
4
- identifierDotAttribute: TypeAlias = str
5
+ type identifierDotAttribute = str
5
6
  """`str` (***str***ing) representing a dotted attribute identifier.
6
7
 
7
8
  `TypeAlias` for a `str` `object` using dot notation to access an attribute, such as 'scipy.signal.windows'.
8
-
9
9
  """
10
10
 
11
11
  class Ordinals(Protocol):
12
12
  """Any Python `object` `type` that may be ordered before or after a comparable `object` `type` by comparison operators."""
13
13
 
14
- def __le__(self, not_self_selfButSelfSelf_youKnow: Self, /) -> bool:
14
+ def __le__(self: Self, not_self_selfButSelfSelf_youKnow: Self, /) -> bool:
15
15
  """Comparison by "***l***ess than or ***e***qual to"."""
16
16
  ...
17
17
 
18
- def __lt__(self, not_self_selfButSelfSelf_youKnow: Self, /) -> bool:
18
+ def __lt__(self: Self, otherSelfWhichIsNotAnOxymoron: Self, /) -> bool:
19
19
  """Comparison by "***l***ess ***t***han"."""
20
20
  ...
21
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hunterMakesPy
3
- Version: 0.3.3
3
+ Version: 0.4.0
4
4
  Summary: Easy Python functions making making functional Python functions easier.
5
5
  Author-email: Hunter Hogan <HunterHogan@pm.me>
6
6
  License: CC-BY-NC-4.0
@@ -19,7 +19,6 @@ Classifier: Natural Language :: English
19
19
  Classifier: Operating System :: OS Independent
20
20
  Classifier: Programming Language :: Python
21
21
  Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3.11
23
22
  Classifier: Programming Language :: Python :: 3.12
24
23
  Classifier: Programming Language :: Python :: 3.13
25
24
  Classifier: Programming Language :: Python :: 3.14
@@ -27,7 +26,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
27
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
27
  Classifier: Topic :: Utilities
29
28
  Classifier: Typing :: Typed
30
- Requires-Python: >=3.11
29
+ Requires-Python: >=3.12
31
30
  Description-Content-Type: text/markdown
32
31
  License-File: LICENSE
33
32
  Requires-Dist: autoflake
@@ -0,0 +1,22 @@
1
+ hunterMakesPy/Z0Z_CallableFunction.py,sha256=MfRFZXc_OrkYKzCk5zt-s0I2VpagoZsYbigG7OFfC7g,2571
2
+ hunterMakesPy/__init__.py,sha256=KOKYnqyIR752RG0KbdC1olOk_lDk9zDVQvJL_W6hJQU,1300
3
+ hunterMakesPy/_theSSOT.py,sha256=x9Rdmw0qeAqgmlMFyFYRTRV5kEDYXcN4aBZ4KjlnKEU,170
4
+ hunterMakesPy/coping.py,sha256=HqU5Qei-tK-yFZDmInHXhmEjmgvyd0XLoejN5HeQr9E,6033
5
+ hunterMakesPy/dataStructures.py,sha256=GbFk5uJskkjL5WNCSJbgn7BKQVh0f792gZ4zgSod9H8,11934
6
+ hunterMakesPy/filesystemToolkit.py,sha256=4zgXrDELBnS2UJ4sGPJVFyyrjDwfF0evnGIWssm--Jk,6809
7
+ hunterMakesPy/parseParameters.py,sha256=k5sGBoCeVRK02lNze59xPb99UiXm2l-HXI5HQPcKHnY,11321
8
+ hunterMakesPy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ hunterMakesPy/pytestForYourUse.py,sha256=wQe9e4ndiVpQQjm_VJFbo1WSRkmiF4Hx3RkCmw5jhcU,413
10
+ hunterMakesPy/theTypes.py,sha256=HzUPPpR3qv8K_1rccjOpkpqmT3XLfrkF369t3HuE80s,808
11
+ hunterMakesPy/tests/__init__.py,sha256=C_FzfKDi_VrGVxlenWHyOYtKShAKlt3KW14jeRx1mQI,224
12
+ hunterMakesPy/tests/conftest.py,sha256=yX8RCaAnV7cDPk7G0EQsdCUhN3lWtcUzwe-EUjCdWsE,5108
13
+ hunterMakesPy/tests/test_coping.py,sha256=2PE2CRqAvIAWAMCX_lkkRLjH9IXPtMDWOWIDQschcJ0,11412
14
+ hunterMakesPy/tests/test_dataStructures.py,sha256=btLgXK5ksUntYToDFreXv0BMgr9XzH0aP0hgpPsPMBU,19310
15
+ hunterMakesPy/tests/test_filesystemToolkit.py,sha256=obKbiruo8Vpwx7R-5cTQMJHxsQuXQrHRkWIEYOPcy_E,19491
16
+ hunterMakesPy/tests/test_parseParameters.py,sha256=lRsAsAmIoNoSei0xlwek7Uu9ypaWiDFTYe4UnFG9MqU,14585
17
+ hunterMakesPy/tests/test_theTypes.py,sha256=-1HrGD_CGyHIFu6-CsIZT1EZoYOE34GsKbi1QJaQwrM,10010
18
+ huntermakespy-0.4.0.dist-info/licenses/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
19
+ huntermakespy-0.4.0.dist-info/METADATA,sha256=JsLgBKkBChFfwMZFMhfAXsg0cNMwJy3dwLXT5mzxmhY,6268
20
+ huntermakespy-0.4.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
21
+ huntermakespy-0.4.0.dist-info/top_level.txt,sha256=Uh4bj8EDTdsRpqY1VlK_his_B4HDfZ6Tqrwhoj75P_w,14
22
+ huntermakespy-0.4.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,20 +0,0 @@
1
- hunterMakesPy/__init__.py,sha256=bydhevjZG6_JT2q_v9rfozvjhXVqyyUGCovL6EwxlBk,1168
2
- hunterMakesPy/_theSSOT.py,sha256=x9Rdmw0qeAqgmlMFyFYRTRV5kEDYXcN4aBZ4KjlnKEU,170
3
- hunterMakesPy/coping.py,sha256=42a_1kB6zHeRpfbpPnjmhrgWTPvUtqE5W9z3tqu-K8w,6068
4
- hunterMakesPy/dataStructures.py,sha256=GbFk5uJskkjL5WNCSJbgn7BKQVh0f792gZ4zgSod9H8,11934
5
- hunterMakesPy/filesystemToolkit.py,sha256=4zgXrDELBnS2UJ4sGPJVFyyrjDwfF0evnGIWssm--Jk,6809
6
- hunterMakesPy/parseParameters.py,sha256=k5sGBoCeVRK02lNze59xPb99UiXm2l-HXI5HQPcKHnY,11321
7
- hunterMakesPy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- hunterMakesPy/pytestForYourUse.py,sha256=GiN1C1gTTM0ZunRPEMnrKlLQLMdH0wF_ZGr_RPgRjjA,500
9
- hunterMakesPy/theTypes.py,sha256=Ce2hGCsBgd_DaUVoWZ6Iq-Lp4qf6053orHq0o52ssgM,734
10
- hunterMakesPy/tests/__init__.py,sha256=C_FzfKDi_VrGVxlenWHyOYtKShAKlt3KW14jeRx1mQI,224
11
- hunterMakesPy/tests/conftest.py,sha256=NZQPRiwvGhP16hJ6WGGm9eKLxfQArYV8E9X12YzSpP0,2827
12
- hunterMakesPy/tests/test_coping.py,sha256=mH89TUAL6fJanBLlhdVlCNNQqm5OpdcQMP_p5W2JJwo,9860
13
- hunterMakesPy/tests/test_dataStructures.py,sha256=WQlq98SllAPSUEjvIHZ9Az2pKNWeLNP4dnl3UyP9yuc,16004
14
- hunterMakesPy/tests/test_filesystemToolkit.py,sha256=_CoSMzstJwWZ_tkNyIqclOIIqTaY2tYfUIgxGFfC0Jk,15335
15
- hunterMakesPy/tests/test_parseParameters.py,sha256=UKf1hwhLtXYL96VVJNf8NpJOyzRLO204pd-9PdDjufA,13267
16
- huntermakespy-0.3.3.dist-info/licenses/LICENSE,sha256=NxH5Y8BdC-gNU-WSMwim3uMbID2iNDXJz7fHtuTdXhk,19346
17
- huntermakespy-0.3.3.dist-info/METADATA,sha256=VNrznpDWhCCoxUM0nAufsjImFAiVagnHgFbCPPXxnzQ,6319
18
- huntermakespy-0.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
19
- huntermakespy-0.3.3.dist-info/top_level.txt,sha256=Uh4bj8EDTdsRpqY1VlK_his_B4HDfZ6Tqrwhoj75P_w,14
20
- huntermakespy-0.3.3.dist-info/RECORD,,