Nucleus python api item flags values

Hi

I’m querying a folder location in Nucleus using Houdini python and running the client.list(pathToDir) function to return the contents of a given directory. This returns a list of omni.client.ListEntry.
Here’s a sample for reference with some irrelevant values removed and names changed (file extension kept the same)

ListEntry:
  relative_path: testAsset.usda
  access: 7
  flags: 3
  size: 639
  modified_time: 11/15/23 15:10:29
  modified_by: 
  created_time: 11/15/23 15:10:29
  created_by: 
  deleted_time: 01/01/70 00:00:00
  deleted_by: 
  locked_by:


ListEntry:
  relative_path: newTestAsset.usda
  access: 7
  flags: 515
  size: 701
  modified_time: 11/29/23 17:17:01
  modified_by: 
  created_time: 11/29/23 17:17:01
  created_by: 
  deleted_time: 01/01/70 00:00:00
  deleted_by: 
  locked_by: 

The only identifier i have to go off aside from the string in the relative_path field to determine if it’s a file a directory is the flags field. In the documentation about the ListEntry() function, it says that the flags value is “Some combination of ItemFlags”.

https://docs.omniverse.nvidia.com/kit/docs/kit-sdk/latest/source/extensions/omni.client/docs/index.html#omni.client.ListEntry.access

Using the client.ItemFlags() returns “???” when passing in the flag int values. looking at the documentation for this function, it appears that it’s only looking out for int values associated with “READABLE_FILE”, “WRITEABLE_FILE”, “CAN_HAVE_CHILDREN” etc. I assume the flag values returned by ListEntry isn’t being handled by this function.
Previously i was confident that i identified “3” to mean file and “7” to be a directory/folder. Having uploaded a few new usd and usda files, the new files are now returning values of “515” but the folders are still returning “7”.

What does 515 mean and are these values documented anywhere or is there a function to translate these int values.

Thanks

I wanted to also ask if the Nucleus has a hidden UI somewhere that would show these flag values?

The flags are used for bitwise operations, here’s the documentation for them: Omniverse Client Library Python API — client_library 3.38.6 documentation

    result, items = omni.client.list("omniverse://localhost/NVIDIA/Samples/Astronaut")
    for item in items:
        if item.flags & omni.client.ItemFlags.CAN_HAVE_CHILDREN:
            print(f"{item.relative_path} is directory")