# \<user\_function\>.func\_code exists for user Python functions but not IA functions from \`system\`?

**URL:** <https://forum.inductiveautomation.com/t/user-function-func-code-exists-for-user-python-functions-but-not-ia-functions-from-system/104879>\
**Category:** Ignition\
**Tags:** scripting\
**Created:** [April 9, 2025, 5:11am UTC](https://forum.inductiveautomation.com/t/user-function-func-code-exists-for-user-python-functions-but-not-ia-functions-from-system/104879 "2025-04-09T05:11:48Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [April 9, 2025, 5:11am UTC](https://forum.inductiveautomation.com/t/user-function-func-code-exists-for-user-python-functions-but-not-ia-functions-from-system/104879/1 "2025-04-09T05:11:48Z")

</div>

I recently discovered that I can get the module path to a user function by using Java's `func_code` (e.g. `shared.user_function_name.func_code.co_filename` \>\> `<module:shared.user_function_name>`), however when I tried this on IA's `system` library functions, `func_code` doesn't exist as an attribute. I'm just curious the reason?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 9, 2025, 12:03pm UTC](https://forum.inductiveautomation.com/t/user-function-func-code-exists-for-user-python-functions-but-not-ia-functions-from-system/104879/2 "2025-04-09T12:03:18Z")

</div>

They aren't written in jython.

(Also, you might find my toolkit's `system.reflect.getModulePath()` helpful.)
