<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_first(self, filter=None, order_by=None, group_by=[], query_parameters=None, commit=False, async=False, callback=None):
 """ Fetch object and directly return the first one Note: `get_first` won't put the fetched object in the parent's children list. You cannot override this behavior. If you want to commit it in the parent you can use :method:vsdk.NURESTFetcher.fetch or manually add it with :method:vsdk.NURESTObject.add_child Args: filter (string):
 string that represents a predicate filter order_by (string):
 string that represents an order by clause group_by (string):
 list of names for grouping page (int):
 number of the page to load page_size (int):
 number of results per page commit (bool):
 boolean to update current object callback (function):
 Callback that should be called in case of a async request Returns: vsdk.NURESTObject: the first object if any, or None Example: <NUChildren at xxx> """

        objects = self.get(filter=filter, order_by=order_by, group_by=group_by, page=0, page_size=1, query_parameters=query_parameters, commit=commit)
        return objects[0] if len(objects) else None