ovld 0.5.2__tar.gz → 0.5.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 (68) hide show
  1. {ovld-0.5.2 → ovld-0.5.3}/PKG-INFO +1 -1
  2. {ovld-0.5.2 → ovld-0.5.3}/pyproject.toml +2 -2
  3. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/codegen.py +1 -0
  4. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/core.py +4 -1
  5. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/utils.py +2 -2
  6. ovld-0.5.3/src/ovld/version.py +1 -0
  7. ovld-0.5.2/src/ovld/version.py +0 -1
  8. {ovld-0.5.2 → ovld-0.5.3}/.github/workflows/publish.yml +0 -0
  9. {ovld-0.5.2 → ovld-0.5.3}/.github/workflows/python-package.yml +0 -0
  10. {ovld-0.5.2 → ovld-0.5.3}/.gitignore +0 -0
  11. {ovld-0.5.2 → ovld-0.5.3}/.python-version +0 -0
  12. {ovld-0.5.2 → ovld-0.5.3}/.readthedocs.yaml +0 -0
  13. {ovld-0.5.2 → ovld-0.5.3}/LICENSE +0 -0
  14. {ovld-0.5.2 → ovld-0.5.3}/README.md +0 -0
  15. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/__init__.py +0 -0
  16. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/common.py +0 -0
  17. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_add.py +0 -0
  18. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_ast.py +0 -0
  19. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_calc.py +0 -0
  20. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_fib.py +0 -0
  21. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_multer.py +0 -0
  22. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_regexp.py +0 -0
  23. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_trivial.py +0 -0
  24. {ovld-0.5.2 → ovld-0.5.3}/benchmarks/test_tweaknum.py +0 -0
  25. {ovld-0.5.2 → ovld-0.5.3}/docs/codegen.md +0 -0
  26. {ovld-0.5.2 → ovld-0.5.3}/docs/compare.md +0 -0
  27. {ovld-0.5.2 → ovld-0.5.3}/docs/dependent.md +0 -0
  28. {ovld-0.5.2 → ovld-0.5.3}/docs/features.md +0 -0
  29. {ovld-0.5.2 → ovld-0.5.3}/docs/index.md +0 -0
  30. {ovld-0.5.2 → ovld-0.5.3}/docs/medley.md +0 -0
  31. {ovld-0.5.2 → ovld-0.5.3}/docs/types.md +0 -0
  32. {ovld-0.5.2 → ovld-0.5.3}/docs/usage.md +0 -0
  33. {ovld-0.5.2 → ovld-0.5.3}/mkdocs.yml +0 -0
  34. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/__init__.py +0 -0
  35. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/abc.py +0 -0
  36. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/dependent.py +0 -0
  37. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/medley.py +0 -0
  38. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/mro.py +0 -0
  39. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/py.typed +0 -0
  40. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/recode.py +0 -0
  41. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/signatures.py +0 -0
  42. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/typemap.py +0 -0
  43. {ovld-0.5.2 → ovld-0.5.3}/src/ovld/types.py +0 -0
  44. {ovld-0.5.2 → ovld-0.5.3}/tests/__init__.py +0 -0
  45. {ovld-0.5.2 → ovld-0.5.3}/tests/modules/gingerbread.py +0 -0
  46. {ovld-0.5.2 → ovld-0.5.3}/tests/test_abc.py +0 -0
  47. {ovld-0.5.2 → ovld-0.5.3}/tests/test_codegen/test_dataclass_gen.txt +0 -0
  48. {ovld-0.5.2 → ovld-0.5.3}/tests/test_codegen/test_method.txt +0 -0
  49. {ovld-0.5.2 → ovld-0.5.3}/tests/test_codegen/test_method_metaclass.txt +0 -0
  50. {ovld-0.5.2 → ovld-0.5.3}/tests/test_codegen/test_method_per_instance.txt +0 -0
  51. {ovld-0.5.2 → ovld-0.5.3}/tests/test_codegen/test_simple.txt +0 -0
  52. {ovld-0.5.2 → ovld-0.5.3}/tests/test_codegen/test_variant_generation.txt +0 -0
  53. {ovld-0.5.2 → ovld-0.5.3}/tests/test_codegen.py +0 -0
  54. {ovld-0.5.2 → ovld-0.5.3}/tests/test_dependent.py +0 -0
  55. {ovld-0.5.2 → ovld-0.5.3}/tests/test_examples.py +0 -0
  56. {ovld-0.5.2 → ovld-0.5.3}/tests/test_global.py +0 -0
  57. {ovld-0.5.2 → ovld-0.5.3}/tests/test_medley.py +0 -0
  58. {ovld-0.5.2 → ovld-0.5.3}/tests/test_mro.py +0 -0
  59. {ovld-0.5.2 → ovld-0.5.3}/tests/test_ovld/test_display.txt +0 -0
  60. {ovld-0.5.2 → ovld-0.5.3}/tests/test_ovld/test_display_more.txt +0 -0
  61. {ovld-0.5.2 → ovld-0.5.3}/tests/test_ovld/test_doc.txt +0 -0
  62. {ovld-0.5.2 → ovld-0.5.3}/tests/test_ovld/test_doc2.txt +0 -0
  63. {ovld-0.5.2 → ovld-0.5.3}/tests/test_ovld/test_method_doc.txt +0 -0
  64. {ovld-0.5.2 → ovld-0.5.3}/tests/test_ovld.py +0 -0
  65. {ovld-0.5.2 → ovld-0.5.3}/tests/test_typemap.py +0 -0
  66. {ovld-0.5.2 → ovld-0.5.3}/tests/test_types.py +0 -0
  67. {ovld-0.5.2 → ovld-0.5.3}/tests/test_utils.py +0 -0
  68. {ovld-0.5.2 → ovld-0.5.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ovld
3
- Version: 0.5.2
3
+ Version: 0.5.3
4
4
  Summary: Overloading Python functions
5
5
  Project-URL: Homepage, https://ovld.readthedocs.io/en/latest/
6
6
  Project-URL: Documentation, https://ovld.readthedocs.io/en/latest/
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ovld"
3
- version = "0.5.2"
3
+ version = "0.5.3"
4
4
  description = "Overloading Python functions"
5
5
  authors = [
6
6
  { name = "Olivier Breuleux", email = "breuleux@gmail.com" }
@@ -32,7 +32,7 @@ benchmark = [
32
32
  "multimethod>=1.12",
33
33
  "multipledispatch>=1.0.0",
34
34
  "plum-dispatch>=2.5.2",
35
- "runtype>=0.5.2",
35
+ "runtype>=0.5.3",
36
36
  ]
37
37
 
38
38
  [tool.hatch.build.targets.wheel]
@@ -295,6 +295,7 @@ def codegen_specializer(typemap, fn, tup):
295
295
  adjusted_name = f"{fn.__name__.split('[')[0]}[{sigstring(tup)}]"
296
296
  func = rename_function(func, adjusted_name)
297
297
  func.__codegen__ = cg
298
+ func.__orig_name__ = fn.__name__
298
299
  return func
299
300
 
300
301
 
@@ -169,7 +169,10 @@ class Ovld:
169
169
  else:
170
170
  hlp = ""
171
171
  for c in possibilities:
172
- hlp += f"* {c.handler.__name__} (priority: {c.priority}, specificity: {list(c.specificity)})\n"
172
+ hn = getattr(c.handler, "__orig_name__", c.handler.__name__)
173
+ hlp += (
174
+ f"* {hn} (priority: {c.priority}, specificity: {list(c.specificity)})\n"
175
+ )
173
176
  return ResolutionError(
174
177
  f"Ambiguous resolution in {self} for"
175
178
  f" argument types [{typenames}]\n"
@@ -106,7 +106,7 @@ def clsstring(cls):
106
106
  return f"{origin.__name__}[{args}]"
107
107
  else:
108
108
  r = repr(cls)
109
- if r.startswith("<class "):
109
+ if r.startswith("<class ") or r.startswith("<enum "):
110
110
  return cls.__name__
111
111
  else:
112
112
  return r
@@ -160,7 +160,7 @@ class NameDatabase:
160
160
  return name
161
161
 
162
162
  def get(self, value, suggested_name=None):
163
- if isinstance(value, (int, float, str)):
163
+ if type(value) in (int, float, str):
164
164
  return repr(value)
165
165
  if id(value) in self.names:
166
166
  return self.names[id(value)]
@@ -0,0 +1 @@
1
+ version = "0.5.3"
@@ -1 +0,0 @@
1
- version = "0.5.2"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes