import warnings
import ee
from .extending import extend
[docs]@extend(ee.ee_list.List)
def __contains__(self, key):
"""Returns True if the item is in the list.
Parameters
----------
self : ee.List
List to check.
key : item
Item to check.
Returns
-------
boolean
Whether the item is contained in the list.
Examples
--------
>>> import ee, eemont
>>> ee.Authenticate()
>>> ee.Initialize()
>>> eeList = ee.List([1,2,3,5])
>>> 1 in eeList
True
>>> 3 in eeList
False
"""
return self.contains(key).getInfo()
[docs]@extend(ee.ee_list.List)
def __len__(self):
"""Returns the length of the list.
Parameters
----------
self : ee.List
List to get the length from.
Returns
-------
int
Length of the list.
Examples
--------
>>> import ee, eemont
>>> ee.Authenticate()
>>> ee.Initialize()
>>> eeList = ee.List([1,2,3,5])
>>> len(eeList)
4
"""
return self.length().getInfo()
[docs]@extend(ee.ee_list.List)
def __getitem__(self, key):
"""Gets the item of the list according to the specified key.
Parameters
----------
self : ee.List
List to get the items from.
key : numeric | list[numeric] | slice
Key used to get the specified item. If numeric, it gets the item at that index.
If list, it gets multiple items. If slice, it calls the slice() method (the step
parameter is ignored).
Returns
-------
ee.List | ee.Number
List or number with the selected items.
Examples
--------
>>> import ee, eemont
>>> ee.Authenticate()
>>> ee.Initialize()
>>> eeList = ee.List([1,2,3,5])
>>> eeList[0].getInfo()
1
>>> eeList[0:2].getInfo()
[1,2,3]
>>> eeList[0:].getInfo()
[1,2,3,5]
>>> eeList[[0,2]].getInfo()
[1,3]
"""
if isinstance(key, slice):
if key.start == None:
start = 0
else:
start = key.start
if key.stop == None:
stop = self.length()
else:
stop = key.stop
selected = self.slice(start, stop)
elif isinstance(key, list):
selected = ee.List([])
for k in key:
selected = selected.add(self.get(k))
else:
selected = self.get(key)
return selected
[docs]@extend(ee.ee_list.List)
def __add__(self, other):
"""Concatenates the contents of a list onto another list.
Parameters
----------
self : ee.List
Left operand.
other : ee.List | list
Right operand.
Returns
-------
ee.List
Concatenation of two lists.
Examples
--------
>>> import ee, eemont
>>> ee.Authenticate()
>>> ee.Initialize()
>>> eeList1 = ee.List([1,2,3,4])
>>> eeList2 = ee.List([5,6,7,8])
>>> eeList3 = eeList1 + eeList2
>>> eeList3.getInfo()
[1,2,3,4,5,6,7,8]
"""
return self.cat(other)
[docs]@extend(ee.ee_list.List)
def __radd__(self, other):
"""Concatenates the contents of a list onto another list.
Parameters
----------
self : ee.List
Right operand.
other : ee.List | list
Left operand.
Returns
-------
ee.List
Concatenation of two lists.
Examples
--------
>>> import ee, eemont
>>> ee.Authenticate()
>>> ee.Initialize()
>>> eeList = ee.List([1,2,3,4])
>>> normalList = [5,6,7,8]
>>> eeList2 = normalList + eeList
>>> eeList2.getInfo()
[5,6,7,8,1,2,3,4]
"""
return ee.List(other).cat(self)
[docs]@extend(ee.ee_list.List)
def __mul__(self, other):
"""Returns a new list containing a list repeated n times.
Parameters
----------
self : ee.List
Left operand.
other : ee.Number | numeric
Right operand.
Returns
-------
ee.List
Repeated list.
Examples
--------
>>> import ee, eemont
>>> ee.Authenticate()
>>> ee.Initialize()
>>> eeList1 = ee.List([1,2,3,4])
>>> eeList2 = eeList * 2
>>> eeList2.getInfo()
[1,2,3,4,1,2,3,4]
"""
return ee.List.repeat(self, other).flatten()
[docs]@extend(ee.ee_list.List)
def __rmul__(self, other):
"""Returns a new list containing a list repeated n times.
Parameters
----------
self : ee.List
Right operand.
other : ee.Number | numeric
Left operand.
Returns
-------
ee.List
Repeated list.
Examples
--------
>>> import ee, eemont
>>> ee.Authenticate()
>>> ee.Initialize()
>>> eeList1 = ee.List([1,2,3,4])
>>> eeList2 = 2 * eeList1
>>> eeList2.getInfo()
[1,2,3,4,1,2,3,4]
"""
return ee.List.repeat(self, other).flatten()