proud-dentist-22844
06/12/2023, 7:18 PMbitter-ability-32190
06/12/2023, 7:22 PMhundreds-father-404
06/12/2023, 7:30 PMhash(my_obj)
proud-dentist-22844
06/12/2023, 7:38 PMdef predicate(arg: str):
def inner():
return arg
return inner
a1 = predicate("a")
a2 = predicate("a")
b = predicate("b")
hash(a1)
hash(a2)
hash(b)
272502245
272502218
272502236
proud-dentist-22844
06/12/2023, 7:38 PMbitter-ability-32190
06/12/2023, 7:39 PMbitter-ability-32190
06/12/2023, 7:39 PMbitter-ability-32190
06/12/2023, 7:40 PM__call__
?proud-dentist-22844
06/12/2023, 7:41 PMDependenciesRequest
can have a different hash per request simply because building a predicate on the fly will produce a different object every time. 😕bitter-ability-32190
06/12/2023, 7:41 PM__call__
?proud-dentist-22844
06/12/2023, 7:42 PM__call__
.proud-dentist-22844
06/12/2023, 7:43 PMCallable
?bitter-ability-32190
06/12/2023, 7:43 PM__closure__
and warn?bitter-ability-32190
06/12/2023, 7:44 PMproud-dentist-22844
06/12/2023, 7:44 PM__closure__
?proud-dentist-22844
06/12/2023, 7:44 PMproud-dentist-22844
06/12/2023, 8:09 PMcurved-television-6568
06/12/2023, 8:12 PMproud-dentist-22844
06/12/2023, 8:12 PMproud-dentist-22844
06/12/2023, 8:18 PMbitter-ability-32190
06/12/2023, 8:18 PMproud-dentist-22844
06/12/2023, 8:19 PMfrom pants.engine.target import DepsTraversalPredicates
hash(DepsTraversalPredicates.always)
273207884
and in a different session:
hash(DepsTraversalPredicates.always)
287048744
proud-dentist-22844
06/12/2023, 8:19 PMbitter-ability-32190
06/12/2023, 8:20 PMproud-dentist-22844
06/12/2023, 8:20 PMbitter-ability-32190
06/12/2023, 8:20 PMbitter-ability-32190
06/12/2023, 8:21 PMDigests
and `Process`esbitter-ability-32190
06/12/2023, 8:21 PMbitter-ability-32190
06/12/2023, 8:22 PMproud-dentist-22844
06/12/2023, 8:22 PMbitter-ability-32190
06/12/2023, 8:22 PMproud-dentist-22844
06/12/2023, 8:23 PMbitter-ability-32190
06/12/2023, 8:23 PMbitter-ability-32190
06/12/2023, 8:23 PMproud-dentist-22844
06/12/2023, 8:23 PMcurved-television-6568
06/12/2023, 8:25 PMbitter-ability-32190
06/12/2023, 8:25 PMproud-dentist-22844
06/12/2023, 8:25 PMbitter-ability-32190
06/12/2023, 8:25 PMbitter-ability-32190
06/12/2023, 8:28 PMproud-dentist-22844
06/12/2023, 8:33 PM>>> import dataclasses
>>> @dataclasses.dataclass(frozen=True)
... class MyFrozenThing:
... a: int
... def __call__(self) -> int:
... return self.a
>>> a = MyFrozenThing(1)
>>> a
MyFrozenThing(a=1)
>>> hash(a)
-6644214454873602895
>>> a()
1
bitter-ability-32190
06/12/2023, 8:38 PMbitter-ability-32190
06/12/2023, 8:40 PMhappy-kitchen-89482
06/12/2023, 8:57 PM__call__
as it makes it very explicit that we expect a stable hash