-
-
Notifications
You must be signed in to change notification settings - Fork 43
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: samuelcolvin/dirty-equals
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.9.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: samuelcolvin/dirty-equals
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.11.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 9 commits
- 30 files changed
- 4 contributors
Commits on Jun 30, 2025
-
fix:
IsJsonandIsUUIDrepr (#109)# Description Closes #82 by changing `IsJson` and `IsUUID` repr from `IsJson(*)` and `IsUUID(*)` to `IsJson()` and `IsUUID()` respectively. It does not address the [comment](#82 (comment)) regarding `IsApprox`.
Configuration menu - View commit details
-
Copy full SHA for 41dd5a4 - Browse repository at this point
Copy the full SHA 41dd5a4View commit details -
chore: use
zoneinfoinstead ofpytz(#107)# Description Closes #98 by preferring ` backports.zoneinfo` to `pytz` for py3.8
Configuration menu - View commit details
-
Copy full SHA for 31ab5a3 - Browse repository at this point
Copy the full SHA 31ab5a3View commit details
Commits on Sep 17, 2025
-
fix(typing): put
EllipsisTypeinLengthTypeunion (#116)``` tests/integration_python/test_main_cli.py:1481: error: No overload variant of "IsList" matches argument type "EllipsisType" [call-overload] tests/integration_python/test_main_cli.py:1481: note: Possible overload variants: tests/integration_python/test_main_cli.py:1481: note: def IsList(self, *items: Any, check_order: bool = ..., length: int | tuple[int, int | Any] | None = ...) -> IsList tests/integration_python/test_main_cli.py:1481: note: def IsList(self, positions: dict[int, Any], length: int | tuple[int, int | Any] | None = ...) -> IsList ``` An ellipsis is a valid argument, as shown in the docs: https://dirty-equals.helpmanual.io/latest/types/sequence/?h=isl#dirty_equals.IsList. closes gh-110 --------- Co-authored-by: Francesco Bruzzesi <42817048+FBruzzesi@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for cb52dd2 - Browse repository at this point
Copy the full SHA cb52dd2View commit details
Commits on Sep 19, 2025
-
Configuration menu - View commit details
-
Copy full SHA for fc76e0a - Browse repository at this point
Copy the full SHA fc76e0aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 32f23d1 - Browse repository at this point
Copy the full SHA 32f23d1View commit details
Commits on Nov 17, 2025
-
🐛 Fix nested dataclass comparison (#120)
Fix how `IsDataclass` handles nested dataclasses so they can be compared successfully. Previously something like the following would not work: ```python from dataclasses import dataclass from dirty_equals import IsDataclass @DataClass class Address: street: str zip_code: str @DataClass class Person: name: str address: Address person = Person( name='Alice', address=Address(street='123 Main St', zip_code='12345'), ) assert person == IsDataclass( name='Alice', address=IsDataclass(street='123 Main St', zip_code='12345') ) ``` This is a result of `IsDataclass` converting dataclasses to a dictionary for comparison using `dataclasses.asdict`, which _recursively_ converts dataclasses to plain dictionaries. Thus the inner `IsDataclass` fails, because the other side of the comparison is now a dictionary, not a dataclass. These changes fix this by shallowly converting the dataclass to a dictionary using [the approach recommended in the dataclasses documentation](https://docs.python.org/3/library/dataclasses.html#dataclasses.asdict): ```python {field.name: getattr(obj, field.name) for field in fields(obj)} ``` These changes also include a test for nested dataclass comparisons to ensure this works as expected and continues to work in the future.
Configuration menu - View commit details
-
Copy full SHA for f15a6de - Browse repository at this point
Copy the full SHA f15a6deView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5203cc9 - Browse repository at this point
Copy the full SHA 5203cc9View commit details -
Found a cpython bug along the way, python/cpython#141647.
Configuration menu - View commit details
-
Copy full SHA for 56e8409 - Browse repository at this point
Copy the full SHA 56e8409View commit details -
Configuration menu - View commit details
-
Copy full SHA for e8cd329 - Browse repository at this point
Copy the full SHA e8cd329View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.9.0...v0.11.0