hunterMakesPy 0.4.2__tar.gz → 0.4.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 (47) hide show
  1. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.github/FUNDING.yml +5 -6
  2. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.vscode/identifiers.code-snippets +7 -0
  3. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/CITATION.cff +7 -7
  4. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/PKG-INFO +1 -1
  5. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/citations/CITATION.cff +7 -7
  6. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/dataStructures.py +1 -3
  7. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/filesystemToolkit.py +16 -9
  8. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/theTypes.py +1 -1
  9. huntermakespy-0.4.2/hunterMakesPy/Z0Z_CallableFunction.py → huntermakespy-0.4.3/hunterMakesPy/theTypesCallableFunction.py +1 -1
  10. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy.egg-info/PKG-INFO +1 -1
  11. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy.egg-info/SOURCES.txt +1 -2
  12. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/pyproject.toml +1 -1
  13. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/ruff.toml +2 -0
  14. huntermakespy-0.4.2/hunterMakesPy/pytestForYourUse.py +0 -9
  15. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.editorconfig +0 -0
  16. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.github/CC-BY-NC-4.0.png +0 -0
  17. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.github/workflows/githubRelease.yml +0 -0
  18. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.github/workflows/pypiRelease.yml +0 -0
  19. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.github/workflows/pythonTests.yml +0 -0
  20. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.github/workflows/updateCitation.yml +0 -0
  21. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.gitignore +0 -0
  22. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.isort.cfg +0 -0
  23. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.vscode/code-spell-dictionary-workspace.txt +0 -0
  24. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/.vscode/settings.json +0 -0
  25. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/LICENSE +0 -0
  26. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/README.md +0 -0
  27. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/context7.json +0 -0
  28. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/__init__.py +0 -0
  29. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/_theSSOT.py +0 -0
  30. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/coping.py +0 -0
  31. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/parseParameters.py +0 -0
  32. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/py.typed +0 -0
  33. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/semiotics.py +0 -0
  34. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/tests/__init__.py +0 -0
  35. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/tests/conftest.py +0 -0
  36. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/tests/test_coping.py +0 -0
  37. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/tests/test_dataStructures.py +0 -0
  38. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/tests/test_filesystemToolkit.py +0 -0
  39. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/tests/test_parseParameters.py +0 -0
  40. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy/tests/test_theTypes.py +0 -0
  41. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy.code-workspace +0 -0
  42. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy.egg-info/dependency_links.txt +0 -0
  43. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy.egg-info/requires.txt +0 -0
  44. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/hunterMakesPy.egg-info/top_level.txt +0 -0
  45. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/pyrightconfig.json +0 -0
  46. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/setup.cfg +0 -0
  47. {huntermakespy-0.4.2 → huntermakespy-0.4.3}/ty.toml +0 -0
@@ -1,15 +1,14 @@
1
1
  # These are supported funding model platforms
2
2
 
3
- # github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
3
+ github: hunterhogan
4
4
  patreon: integrated
5
5
  open_collective: # Replace with a single Open Collective username
6
- ko_fi: # Replace with a single Ko-fi username
6
+ ko_fi: hunterhogan
7
7
  tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8
- community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9
- liberapay: # Replace with a single Liberapay username
8
+ liberapay: HunterHogan
10
9
  issuehunt: # Replace with a single IssueHunt username
11
10
  lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12
11
  # polar: # Replace with a single Polar username
13
- buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14
- thanks_dev: # Replace with a single thanks.dev username
12
+ buy_me_a_coffee: hunterhogan
13
+ thanks_dev: u/gh/hunterhogan
15
14
  custom: ['https://www.paypal.me/hunterhogan', 'https://hunterthinks.com/support'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
@@ -27,6 +27,13 @@
27
27
  ],
28
28
  "description": "Anything (个, gè)"
29
29
  },
30
+ "火": {
31
+ "prefix": "huo",
32
+ "body": [
33
+ "火"
34
+ ],
35
+ "description": "Fire (火, Chinese: huǒ, Cantonese: fo2, Japanese: hi, Korean: hwa, Vietnamese: hỏa)"
36
+ },
30
37
  "九": {
31
38
  "prefix": "jiu",
32
39
  "body": [
@@ -9,12 +9,12 @@ authors:
9
9
  family-names: Hogan
10
10
  email: HunterHogan@pm.me
11
11
  cff-version: 1.2.0
12
- commit: 2772cd14774fbeccb3ae9de3ca0e287509fa8123
13
- date-released: '2026-03-01'
12
+ commit: 3fd643089181aa5b6d0851230712dd5ec4307959
13
+ date-released: '2026-03-08'
14
14
  identifiers:
15
15
  - type: url
16
- value: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.2
17
- description: The URL for hunterMakesPy 0.4.2.
16
+ value: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.3
17
+ description: The URL for hunterMakesPy 0.4.3.
18
18
  keywords:
19
19
  - attribute loading
20
20
  - concurrency limit
@@ -37,8 +37,8 @@ keywords:
37
37
  license: CC-BY-NC-4.0
38
38
  message: Cite this software with the metadata in this file.
39
39
  repository: https://github.com/hunterhogan/hunterMakesPy
40
- repository-artifact: https://pypi.org/project/huntermakespy/0.4.2/
41
- repository-code: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.2
40
+ repository-artifact: https://pypi.org/project/huntermakespy/0.4.3/
41
+ repository-code: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.3
42
42
  title: hunterMakesPy
43
43
  url: https://github.com/hunterhogan/hunterMakesPy
44
- version: 0.4.2
44
+ version: 0.4.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hunterMakesPy
3
- Version: 0.4.2
3
+ Version: 0.4.3
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
@@ -9,12 +9,12 @@ authors:
9
9
  family-names: Hogan
10
10
  email: HunterHogan@pm.me
11
11
  cff-version: 1.2.0
12
- commit: 2772cd14774fbeccb3ae9de3ca0e287509fa8123
13
- date-released: '2026-03-01'
12
+ commit: 3fd643089181aa5b6d0851230712dd5ec4307959
13
+ date-released: '2026-03-08'
14
14
  identifiers:
15
15
  - type: url
16
- value: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.2
17
- description: The URL for hunterMakesPy 0.4.2.
16
+ value: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.3
17
+ description: The URL for hunterMakesPy 0.4.3.
18
18
  keywords:
19
19
  - attribute loading
20
20
  - concurrency limit
@@ -37,8 +37,8 @@ keywords:
37
37
  license: CC-BY-NC-4.0
38
38
  message: Cite this software with the metadata in this file.
39
39
  repository: https://github.com/hunterhogan/hunterMakesPy
40
- repository-artifact: https://pypi.org/project/huntermakespy/0.4.2/
41
- repository-code: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.2
40
+ repository-artifact: https://pypi.org/project/huntermakespy/0.4.3/
41
+ repository-code: https://github.com/hunterhogan/hunterMakesPy/releases/tag/0.4.3
42
42
  title: hunterMakesPy
43
43
  url: https://github.com/hunterhogan/hunterMakesPy
44
- version: 0.4.2
44
+ version: 0.4.3
@@ -257,9 +257,7 @@ def stringItUp(*scrapPile: Any) -> list[str]:
257
257
  listStrungUp.append(repr(scrap))
258
258
  return listStrungUp
259
259
 
260
- 小于 = TypeVar('小于', bound=Ordinals)
261
-
262
- def updateExtendPolishDictionaryLists(*dictionaryLists: Mapping[str, list[小于] | set[小于] | tuple[小于, ...]], destroyDuplicates: bool = False, reorderLists: bool = False, killErroneousDataTypes: bool = False) -> dict[str, list[小于]]:
260
+ def updateExtendPolishDictionaryLists[小于: Ordinals](*dictionaryLists: Mapping[str, list[小于] | set[小于] | tuple[小于, ...]], destroyDuplicates: bool = False, reorderLists: bool = False, killErroneousDataTypes: bool = False) -> dict[str, list[小于]]:
263
261
  """Merge multiple dictionaries with `list` values into a single dictionary with the `list` values merged.
264
262
 
265
263
  Plus options to destroy duplicates, sort `list` values, and handle erroneous data types.
@@ -46,7 +46,7 @@ from hunterMakesPy import identifierDotAttribute
46
46
  from isort import code as isort_code
47
47
  from os import PathLike
48
48
  from pathlib import Path, PurePath
49
- from typing import Any, TYPE_CHECKING, TypeVar
49
+ from typing import Any, TYPE_CHECKING, TypeVar, overload
50
50
  import contextlib
51
51
  import importlib
52
52
  import importlib.util
@@ -56,9 +56,7 @@ if TYPE_CHECKING:
56
56
  from importlib.machinery import ModuleSpec
57
57
  from types import ModuleType
58
58
 
59
- 归个 = TypeVar('归个')
60
-
61
- def importLogicalPath2Identifier(logicalPathModule: identifierDotAttribute, identifier: str, packageIdentifierIfRelative: str | None = None) -> 归个:
59
+ def importLogicalPath2Identifier[归个](logicalPathModule: identifierDotAttribute, identifier: str, packageIdentifierIfRelative: str | None = None) -> 归个:
62
60
  """Import an `identifier`, such as a function or `class`, from a module using its logical path.
63
61
 
64
62
  This function imports a module and retrieves a specific attribute (function, class, or other object) from that module.
@@ -81,7 +79,7 @@ def importLogicalPath2Identifier(logicalPathModule: identifierDotAttribute, iden
81
79
  moduleImported: ModuleType = importlib.import_module(logicalPathModule, packageIdentifierIfRelative)
82
80
  return getattr(moduleImported, identifier)
83
81
 
84
- def importPathFilename2Identifier(pathFilename: PathLike[Any] | PurePath, identifier: str, moduleIdentifier: str | None = None) -> 归个:
82
+ def importPathFilename2Identifier[归个](pathFilename: PathLike[Any] | PurePath, identifier: str, moduleIdentifier: str | None = None) -> 归个:
85
83
  """Load an identifier from a Python file.
86
84
 
87
85
  This function imports a specified Python file as a module, extracts an identifier from it by name, and returns that
@@ -120,6 +118,7 @@ def importPathFilename2Identifier(pathFilename: PathLike[Any] | PurePath, identi
120
118
  importlibSpecification.loader.exec_module(moduleImported_jk_hahaha)
121
119
  return getattr(moduleImported_jk_hahaha, identifier)
122
120
 
121
+ # SEMIOTICS "Dirs"
123
122
  def makeDirsSafely(pathFilename: Any) -> None:
124
123
  """Create parent directories for a given path safely.
125
124
 
@@ -159,7 +158,11 @@ settings_isortDEFAULT: dict[str, bool | int | str | list[str]] = {
159
158
  "use_parentheses": True,
160
159
  }
161
160
 
162
- def writePython(pythonSource: str, pathFilename: PathLike[Any] | PurePath | io.TextIOBase, settings: dict[str, dict[str, Any]] | None = None) -> None:
161
+ @overload
162
+ def writePython(pythonSource: str, pathFilename: PathLike[Any] | PurePath, settings: dict[str, dict[str, Any]] | None = None) -> Path: ...
163
+ @overload
164
+ def writePython(pythonSource: str, pathFilename: io.TextIOBase, settings: dict[str, dict[str, Any]] | None = None) -> io.TextIOBase: ...
165
+ def writePython(pythonSource: str, pathFilename: PathLike[Any] | PurePath | io.TextIOBase, settings: dict[str, dict[str, Any]] | None = None) -> Path | io.TextIOBase:
163
166
  """Format and write Python source code to a file or text stream.
164
167
 
165
168
  (AI generated docstring)
@@ -187,9 +190,13 @@ def writePython(pythonSource: str, pathFilename: PathLike[Any] | PurePath | io.T
187
190
 
188
191
  settings_isort: dict[str, Any] = settings.get('isort', settings_isortDEFAULT)
189
192
  pythonSource = isort_code(pythonSource, **settings_isort)
190
- writeStringToHere(pythonSource + '\n', pathFilename)
193
+ return writeStringToHere(pythonSource + '\n', pathFilename)
191
194
 
192
- def writeStringToHere(this: str, pathFilename: PathLike[Any] | PurePath | io.TextIOBase) -> None:
195
+ @overload
196
+ def writeStringToHere(this: str, pathFilename: PathLike[Any] | PurePath) -> Path: ...
197
+ @overload
198
+ def writeStringToHere(this: str, pathFilename: io.TextIOBase) -> io.TextIOBase: ...
199
+ def writeStringToHere(this: str, pathFilename: PathLike[Any] | PurePath | io.TextIOBase) -> Path | io.TextIOBase:
193
200
  """Write a string to a file or text stream.
194
201
 
195
202
  This function writes a string to either a file path or an open text stream. For file paths, it creates parent directories as
@@ -210,4 +217,4 @@ def writeStringToHere(this: str, pathFilename: PathLike[Any] | PurePath | io.Tex
210
217
  pathFilename = Path(pathFilename)
211
218
  makeDirsSafely(pathFilename)
212
219
  pathFilename.write_text(str(this), encoding='utf-8')
213
-
220
+ return pathFilename
@@ -1,5 +1,5 @@
1
1
  """I type, you type, we all `type` for `theTypes`."""
2
- from hunterMakesPy.Z0Z_CallableFunction import CallableFunction as CallableFunction
2
+ from hunterMakesPy.theTypesCallableFunction import CallableFunction as CallableFunction
3
3
  from typing import Protocol, Self
4
4
 
5
5
  type identifierDotAttribute = str
@@ -1,4 +1,4 @@
1
- """Protocols for callable functions with full type safety."""
1
+ """Prototype for callable functions with full type safety."""
2
2
  from collections.abc import Callable
3
3
  from types import CellType, CodeType, MethodType
4
4
  from typing import Any, overload, ParamSpec, Protocol, runtime_checkable, Self, TypeVar, TypeVarTuple
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hunterMakesPy
3
- Version: 0.4.2
3
+ Version: 0.4.3
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
@@ -20,7 +20,6 @@ ty.toml
20
20
  .vscode/identifiers.code-snippets
21
21
  .vscode/settings.json
22
22
  citations/CITATION.cff
23
- hunterMakesPy/Z0Z_CallableFunction.py
24
23
  hunterMakesPy/__init__.py
25
24
  hunterMakesPy/_theSSOT.py
26
25
  hunterMakesPy/coping.py
@@ -28,9 +27,9 @@ hunterMakesPy/dataStructures.py
28
27
  hunterMakesPy/filesystemToolkit.py
29
28
  hunterMakesPy/parseParameters.py
30
29
  hunterMakesPy/py.typed
31
- hunterMakesPy/pytestForYourUse.py
32
30
  hunterMakesPy/semiotics.py
33
31
  hunterMakesPy/theTypes.py
32
+ hunterMakesPy/theTypesCallableFunction.py
34
33
  hunterMakesPy.egg-info/PKG-INFO
35
34
  hunterMakesPy.egg-info/SOURCES.txt
36
35
  hunterMakesPy.egg-info/dependency_links.txt
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hunterMakesPy"
3
- version = "0.4.2"
3
+ version = "0.4.3"
4
4
  description = "Easy Python functions making making functional Python functions easier."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -5,6 +5,7 @@ ignore = [
5
5
  "ANN401",
6
6
  "C901",
7
7
  "COM812",
8
+ "D204",
8
9
  "D206",
9
10
  "D400",
10
11
  "D401",
@@ -26,6 +27,7 @@ ignore = [
26
27
  "PLR2004",
27
28
  "PLW0120",
28
29
  "PLW2901",
30
+ "PYI011",
29
31
  "PYI021",
30
32
  "PYI041",
31
33
  "PYI042",
@@ -1,9 +0,0 @@
1
- """Pytest tests you can use in your package to test some hunterMakesPy functions.
2
-
3
- Each function in this module returns a list of test functions that can be used with `pytest.parametrize`.
4
-
5
- Note: These test functions are now in `hunterMakesPy.tests` with all other tests.
6
- """
7
-
8
- from hunterMakesPy.tests.test_parseParameters import (
9
- PytestFor_defineConcurrencyLimit, PytestFor_intInnit, PytestFor_oopsieKwargsie)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes