News for hackers. Stuff that matters.
Re:DotDict: A simple Python library to make chained attribut... by heisenzombie on Wednesday August 02, 2023 @06:09PM (#36978431)
Yeah it does. If you do:

    x = dd()
    print(x.tyypo.a.b)
you'll get "DotDict()"

The problem is that an object can't know whether you're getting a node that you're later going to assign a leaf to... or whether you're getting the node because you want to get the node.

   x = dd()
   x.a.b.c = "Foo"
is equivalent to:

   x = dd()
   y = x.a.b
   y.c = "Foo"
So "x.a.b" can't raise an exception.

Now, it's python, so you can do unholy things to make pretty much anything work. But I think it would be ugly.

Re:DotDict: A simple Python library to make chained attribut... by samwillis on Wednesday August 02, 2023 @06:20PM (#36978546)
They could add a __bool__ method to the class the returns false when that level of the namespace is empty. That would allow:

   if a.b.c:
       print("c:", a.b.c)
Re:DotDict: A simple Python library to make chained attribut... by rozab on Wednesday August 02, 2023 @06:25PM (#36978605)
The __contains__ method should be used (and indeed is). What if a.b.c = False?