Renamed files
This commit is contained in:
28
src/cpl_query/_query/single.py
Normal file
28
src/cpl_query/_query/single.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from typing import Optional
|
||||
|
||||
from cpl_query.exceptions import ArgumentNoneException, ExceptionArgument
|
||||
from cpl_query.extension.iterable_abc import IterableABC
|
||||
|
||||
|
||||
def single_query(_list: IterableABC) -> any:
|
||||
if _list is None:
|
||||
raise ArgumentNoneException(ExceptionArgument.list)
|
||||
|
||||
if len(_list) > 1:
|
||||
raise Exception('Found more than one element')
|
||||
elif len(_list) == 0:
|
||||
raise Exception('Found no element')
|
||||
|
||||
return _list[0]
|
||||
|
||||
|
||||
def single_or_default_query(_list: IterableABC) -> Optional[any]:
|
||||
if _list is None:
|
||||
raise ArgumentNoneException(ExceptionArgument.list)
|
||||
|
||||
if len(_list) > 1:
|
||||
raise Exception('Index out of range')
|
||||
elif len(_list) == 0:
|
||||
return None
|
||||
|
||||
return _list[0]
|
Reference in New Issue
Block a user