# PythonObjectible vs Alternative?

**URL:** <https://forum.modular.com/t/pythonobjectible-vs-alternative/1254>\
**Category:** Mojo\
**Created:** [April 16, 2025, 2:09pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254 "2025-04-16T14:09:06Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![EzRyder](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ezryder/32/133_2.png) [@EzRyder](https://forum.modular.com/u/EzRyder)\
**Post date:** [April 16, 2025, 2:09pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/1 "2025-04-16T14:09:06Z")

</div>

I’m having an OCD moment here regarding naming, specifically about `PythonObjectible`. To match other similar types, does `PythonObjectable` not fit better? Or some alternative?  
Trivial I know, but while not a bug it’s still bugging me. 😅

**Here’s a list of a few similar types:**

1. Defaultable
2. ImplicitlyBoolable
3. ImplicitlyIntable
4. Representable
5. PythonObjectible ← Not like the others 😀
6. Stringable
7. Writable
8. Floatable

---

<div class="post-metadata">

**Author:** ![EzRyder](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ezryder/32/133_2.png) [@EzRyder](https://forum.modular.com/u/EzRyder)\
**Post date:** [April 16, 2025, 2:30pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/2 "2025-04-16T14:30:56Z")

</div>

Brainstorming possible alternatives:

1. PythonConvertable
2. PythonSetable
3. PythonCapable
4. PythonTypable
5. PythonOperable or Interoperable
6. Pythonable
7. PythonProcessable
8. PythonAccessable
9. PythonRepresentable \*\* Better?
10. PythonCompatible

I kinda like PythonRepresentable, but defer to the Modular team on the technical implications of ‘representable’.

---

<div class="post-metadata">

**Author:** ![gryznar](https://avatars.discourse-cdn.com/v4/letter/g/e5b9ba/32.png) [@gryznar](https://forum.modular.com/u/gryznar)\
**Post date:** [April 16, 2025, 6:27pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/3 "2025-04-16T18:27:33Z")

</div>

Unfortunately, non of these alternatives seems to be correct. `PythonObjectible` (convertible to `PythonObject`) in current state says, that conforming to this trait will allow to convert to `PythonObject` and this is the main purpose.

---

<div class="post-metadata">

**Author:** ![EzRyder](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ezryder/32/133_2.png) [@EzRyder](https://forum.modular.com/u/EzRyder)\
**Post date:** [April 16, 2025, 6:44pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/4 "2025-04-16T18:44:43Z")

</div>

Then PythonObjectible → PythonObjectable?  
From a quick search, object **[i]** ble is not a word, so …ible becomes …able?  
Making it similar to existing types.

---

<div class="post-metadata">

**Author:** ![gryznar](https://avatars.discourse-cdn.com/v4/letter/g/e5b9ba/32.png) [@gryznar](https://forum.modular.com/u/gryznar)\
**Post date:** [April 16, 2025, 6:51pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/5 "2025-04-16T18:51:32Z")

</div>

Yeah, this looks better and still correct

---

<div class="post-metadata">

**Author:** ![DarinSimmons](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/darinsimmons/32/12_2.png) [@DarinSimmons](https://forum.modular.com/u/DarinSimmons)\
**Post date:** [April 17, 2025, 1:29am UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/6 "2025-04-17T01:29:34Z")

</div>

I’d like to acknowledge your OCD moment as the grammatically correct would be, I imagine, “PythonObjectifiable” though such a large word would be Objectionable.

The word “objectable” is in fact [a word](https://en.m.wiktionary.org/wiki/objectable) though considered rare.

---

<div class="post-metadata">

**Author:** ![EzRyder](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ezryder/32/133_2.png) [@EzRyder](https://forum.modular.com/u/EzRyder)\
**Post date:** [April 17, 2025, 4:14am UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/7 "2025-04-17T04:14:57Z")

</div>

Initial commit on Github by Chris Lattner:  
**[mojo-stdlib] Rework PythonObject list/tuple literal creation.** ([link](https://github.com/modular/max/commit/91d285175a40eacffac64be3373b7d27b65e5884))  
“…  
This patch introduces a new `PythonObjectible` trait (better name  
suggestions welcome!) that has a single `to_python_object()`  
requirement. This allows us to define these methods correctly in  
terms of a trait instead of using static reflection.  
…”

---

<div class="post-metadata">

**Author:** ![owenhilyard](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/owenhilyard/32/41_2.png) [@owenhilyard](https://forum.modular.com/u/owenhilyard)\
**Post date:** [April 17, 2025, 12:30pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/8 "2025-04-17T12:30:42Z")

</div>

I think that I like `PythonConvertable` the most because it implies work being done as part of the conversion, letting users know it’s not free.

---

<div class="post-metadata">

**Author:** ![sora](https://avatars.discourse-cdn.com/v4/letter/s/ad7895/32.png) [@sora](https://forum.modular.com/u/sora)\
**Post date:** [April 17, 2025, 3:33pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/9 "2025-04-17T15:33:29Z")

</div>

And it’s more generalisable. I also subconsciously used that spelling when talking about that on Discord, one datapoint for its naturalness I guess.

---

<div class="post-metadata">

**Author:** ![EzRyder](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ezryder/32/133_2.png) [@EzRyder](https://forum.modular.com/u/EzRyder)\
**Post date:** [April 17, 2025, 4:01pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/10 "2025-04-17T16:01:19Z")

</div>

> [@owenhilyard](#):
>
> `PythonConvertable`

For me, this was first on my ‘alternatives’ list because it fell out naturally when I was thinking about what we intended to do…convert a Mojo object into a PythonObject.

---

<div class="post-metadata">

**Author:** ![clattner](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/clattner/32/201_2.png) [@clattner](https://forum.modular.com/u/clattner)\
**Post date:** [April 18, 2025, 8:26pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/11 "2025-04-18T20:26:38Z")

</div>

I’d suggest something like `PythonConvertible`

---

<div class="post-metadata">

**Author:** ![EzRyder](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ezryder/32/133_2.png) [@EzRyder](https://forum.modular.com/u/EzRyder)\
**Post date:** [April 18, 2025, 8:44pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/12 "2025-04-18T20:44:33Z")

</div>

> [@clattner](#):
>
> Convertible

Ugh, of course `Convertible` would be the correct spelling, versus `Convertable` which is not. PythonConvertible works for me. Better than PythonObjectible anyway. 😅

> **[Convertible vs convertable? - Spelling Which Is Correct How To Spell](https://whichiscorrect.com/convertible-vs-convertable/)**
>
> Convertible vs convertable ✅ check which spelling is correct on WhichIsCorrect.com - Free Online English Dictionary. Definition for convertible vs convertable

---

<div class="post-metadata">

**Author:** ![clattner](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/clattner/32/201_2.png) [@clattner](https://forum.modular.com/u/clattner)\
**Post date:** [April 18, 2025, 9:01pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/13 "2025-04-18T21:01:16Z")

</div>

Yep, “PythonConvertible” is what we called it in Swift: [swift/docs/PythonInteroperability.md at main · tensorflow/swift · GitHub](https://github.com/tensorflow/swift/blob/main/docs/PythonInteroperability.md)

---

<div class="post-metadata">

**Author:** ![clattner](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/clattner/32/201_2.png) [@clattner](https://forum.modular.com/u/clattner)\
**Post date:** [April 18, 2025, 9:18pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/14 "2025-04-18T21:18:31Z")

</div>

It sounds like the team agreed that `PythonConvertible` would make sense - Joe went ahead with a rename.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex001/uploads/modular/original/1X/2751e0fbdc595a99718b216730957e9db4448cfd.jpeg) [@system](https://forum.modular.com/u/system)\
**Post date:** [April 30, 2025, 10:37pm UTC](https://forum.modular.com/t/pythonobjectible-vs-alternative/1254/15 "2025-04-30T22:37:47Z")

</div>

Closed on April 30, 2025, 10:37pm UTC

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
