earthengine-api 1.5.24__py3-none-any.whl → 1.6.0rc0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of earthengine-api might be problematic. Click here for more details.

Files changed (63) hide show
  1. {earthengine_api-1.5.24.dist-info → earthengine_api-1.6.0rc0.dist-info}/METADATA +1 -1
  2. earthengine_api-1.6.0rc0.dist-info/RECORD +107 -0
  3. ee/__init__.py +11 -10
  4. ee/_arg_types.py +2 -1
  5. ee/_cloud_api_utils.py +7 -6
  6. ee/_helpers.py +3 -2
  7. ee/apifunction.py +11 -9
  8. ee/apitestcase.py +2 -1
  9. ee/batch.py +46 -42
  10. ee/blob.py +2 -2
  11. ee/classifier.py +57 -59
  12. ee/cli/commands.py +9 -7
  13. ee/cli/utils.py +13 -9
  14. ee/clusterer.py +39 -41
  15. ee/collection.py +42 -42
  16. ee/computedobject.py +10 -10
  17. ee/confusionmatrix.py +8 -8
  18. ee/customfunction.py +2 -2
  19. ee/data.py +15 -14
  20. ee/daterange.py +9 -9
  21. ee/deprecation.py +13 -11
  22. ee/deserializer.py +5 -5
  23. ee/dictionary.py +11 -11
  24. ee/ee_array.py +17 -17
  25. ee/ee_date.py +22 -22
  26. ee/ee_list.py +15 -15
  27. ee/ee_number.py +5 -5
  28. ee/ee_string.py +6 -6
  29. ee/ee_types.py +2 -2
  30. ee/element.py +14 -14
  31. ee/errormargin.py +3 -3
  32. ee/feature.py +67 -70
  33. ee/featurecollection.py +30 -32
  34. ee/filter.py +88 -90
  35. ee/function.py +3 -3
  36. ee/geometry.py +61 -62
  37. ee/image.py +216 -209
  38. ee/image_converter.py +2 -2
  39. ee/imagecollection.py +23 -20
  40. ee/join.py +13 -15
  41. ee/kernel.py +55 -57
  42. ee/oauth.py +26 -20
  43. ee/pixeltype.py +5 -5
  44. ee/projection.py +4 -3
  45. ee/reducer.py +39 -41
  46. ee/serializer.py +4 -4
  47. ee/table_converter.py +3 -2
  48. ee/terrain.py +6 -8
  49. ee/tests/_cloud_api_utils_test.py +1 -1
  50. ee/tests/_helpers_test.py +1 -1
  51. ee/tests/batch_test.py +1 -1
  52. ee/tests/data_test.py +2 -2
  53. ee/tests/ee_test.py +3 -3
  54. ee/tests/errormargin_test.py +1 -1
  55. ee/tests/image_converter_test.py +2 -2
  56. ee/tests/pixeltype_test.py +1 -2
  57. ee/tests/projection_test.py +2 -3
  58. ee/tests/table_converter_test.py +2 -2
  59. earthengine_api-1.5.24.dist-info/RECORD +0 -107
  60. {earthengine_api-1.5.24.dist-info → earthengine_api-1.6.0rc0.dist-info}/WHEEL +0 -0
  61. {earthengine_api-1.5.24.dist-info → earthengine_api-1.6.0rc0.dist-info}/entry_points.txt +0 -0
  62. {earthengine_api-1.5.24.dist-info → earthengine_api-1.6.0rc0.dist-info}/licenses/LICENSE +0 -0
  63. {earthengine_api-1.5.24.dist-info → earthengine_api-1.6.0rc0.dist-info}/top_level.txt +0 -0
ee/reducer.py CHANGED
@@ -1,8 +1,6 @@
1
1
  """A wrapper for Reducers."""
2
2
  from __future__ import annotations
3
3
 
4
- from typing import Optional
5
-
6
4
  from ee import _arg_types
7
5
  from ee import apifunction
8
6
  from ee import computedobject
@@ -100,11 +98,11 @@ class Reducer(computedobject.ComputedObject):
100
98
  @staticmethod
101
99
  def autoHistogram(
102
100
  # pylint: disable=invalid-name
103
- maxBuckets: Optional[_arg_types.Integer] = None,
104
- minBucketWidth: Optional[_arg_types.Number] = None,
105
- maxRaw: Optional[_arg_types.Integer] = None,
101
+ maxBuckets: _arg_types.Integer | None = None,
102
+ minBucketWidth: _arg_types.Number | None = None,
103
+ maxRaw: _arg_types.Integer | None = None,
106
104
  # pylint: enable=invalid-name
107
- cumulative: Optional[_arg_types.Bool] = None,
105
+ cumulative: _arg_types.Bool | None = None,
108
106
  ) -> Reducer:
109
107
  """Returns an ee.Reducer that computes a histogram of the inputs.
110
108
 
@@ -201,8 +199,8 @@ class Reducer(computedobject.ComputedObject):
201
199
  self,
202
200
  reducer2: _arg_types.Reducer,
203
201
  # pylint: disable=invalid-name
204
- outputPrefix: Optional[_arg_types.String] = None,
205
- sharedInputs: Optional[_arg_types.Bool] = None,
202
+ outputPrefix: _arg_types.String | None = None,
203
+ sharedInputs: _arg_types.Bool | None = None,
206
204
  # pylint: enable=invalid-name
207
205
  ) -> Reducer:
208
206
  """Returns a Reducer that runs two reducers in parallel.
@@ -289,7 +287,7 @@ class Reducer(computedobject.ComputedObject):
289
287
 
290
288
  return apifunction.ApiFunction.call_('Reducer.covariance')
291
289
 
292
- def disaggregate(self, axis: Optional[_arg_types.Integer] = None) -> Reducer:
290
+ def disaggregate(self, axis: _arg_types.Integer | None = None) -> Reducer:
293
291
  """Returns a Reducer that separates aggregate inputs.
294
292
 
295
293
  Separates aggregate inputs (Arrays, Lists, or Dictionaries) into individual
@@ -363,7 +361,7 @@ class Reducer(computedobject.ComputedObject):
363
361
  min: _arg_types.Number, # pylint: disable=redefined-builtin
364
362
  max: _arg_types.Number, # pylint: disable=redefined-builtin
365
363
  steps: _arg_types.Integer,
366
- cumulative: Optional[_arg_types.Bool] = None,
364
+ cumulative: _arg_types.Bool | None = None,
367
365
  ) -> Reducer:
368
366
  """Returns a fixed histogram reducer.
369
367
 
@@ -443,9 +441,9 @@ class Reducer(computedobject.ComputedObject):
443
441
  @staticmethod
444
442
  def geometricMedian(
445
443
  numX: _arg_types.Integer, # pylint: disable=invalid-name
446
- eta: Optional[_arg_types.Number] = None,
444
+ eta: _arg_types.Number | None = None,
447
445
  # pylint: disable-next=invalid-name
448
- initialStepSize: Optional[_arg_types.Number] = None,
446
+ initialStepSize: _arg_types.Number | None = None,
449
447
  ) -> Reducer:
450
448
  """Returns a reducer that computes the geometric median across the inputs.
451
449
 
@@ -467,8 +465,8 @@ class Reducer(computedobject.ComputedObject):
467
465
 
468
466
  def group(
469
467
  self,
470
- groupField: Optional[_arg_types.Integer] = None,
471
- groupName: Optional[_arg_types.String] = None,
468
+ groupField: _arg_types.Integer | None = None,
469
+ groupName: _arg_types.String | None = None,
472
470
  ) -> Reducer:
473
471
  """Returns a reducer groups reducer records by the value of a given input.
474
472
 
@@ -487,9 +485,9 @@ class Reducer(computedobject.ComputedObject):
487
485
  @staticmethod
488
486
  def histogram(
489
487
  # pylint: disable=invalid-name
490
- maxBuckets: Optional[_arg_types.Integer] = None,
491
- minBucketWidth: Optional[_arg_types.Number] = None,
492
- maxRaw: Optional[_arg_types.Integer] = None,
488
+ maxBuckets: _arg_types.Integer | None = None,
489
+ minBucketWidth: _arg_types.Number | None = None,
490
+ maxRaw: _arg_types.Integer | None = None,
493
491
  # pylint: enable=invalid-name
494
492
  ) -> Reducer:
495
493
  """Returns a reducer that will compute a histogram of the inputs.
@@ -512,9 +510,9 @@ class Reducer(computedobject.ComputedObject):
512
510
  # pylint: disable=invalid-name
513
511
  minPercentile: _arg_types.Number,
514
512
  maxPercentile: _arg_types.Number,
515
- maxBuckets: Optional[_arg_types.Integer] = None,
516
- minBucketWidth: Optional[_arg_types.Number] = None,
517
- maxRaw: Optional[_arg_types.Integer] = None,
513
+ maxBuckets: _arg_types.Integer | None = None,
514
+ minBucketWidth: _arg_types.Number | None = None,
515
+ maxRaw: _arg_types.Integer | None = None,
518
516
  # pylint: enable=invalid-name
519
517
  ) -> Reducer:
520
518
  """Returns an interval mean reducer.
@@ -547,7 +545,7 @@ class Reducer(computedobject.ComputedObject):
547
545
  @staticmethod
548
546
  def kendallsCorrelation(
549
547
  # pylint: disable-next=invalid-name
550
- numInputs: Optional[_arg_types.Integer] = None,
548
+ numInputs: _arg_types.Integer | None = None,
551
549
  ) -> Reducer:
552
550
  """Returns a reducer that computes the Kendall's Tau-b rank correlation.
553
551
 
@@ -609,7 +607,7 @@ class Reducer(computedobject.ComputedObject):
609
607
  @staticmethod
610
608
  def linearRegression(
611
609
  numX: _arg_types.Integer, # pylint: disable=invalid-name
612
- numY: Optional[_arg_types.Integer] = None, # pylint: disable=invalid-name
610
+ numY: _arg_types.Integer | None = None, # pylint: disable=invalid-name
613
611
  ) -> Reducer:
614
612
  """Returns a linear regression reducer.
615
613
 
@@ -635,7 +633,7 @@ class Reducer(computedobject.ComputedObject):
635
633
  @staticmethod
636
634
  def max(
637
635
  # pylint: disable-next=invalid-name
638
- numInputs: Optional[_arg_types.Integer] = None,
636
+ numInputs: _arg_types.Integer | None = None,
639
637
  ) -> Reducer:
640
638
  """Returns a reducer that outputs the maximum value of its (first) input.
641
639
 
@@ -660,9 +658,9 @@ class Reducer(computedobject.ComputedObject):
660
658
  @staticmethod
661
659
  def median(
662
660
  # pylint: disable=invalid-name
663
- maxBuckets: Optional[_arg_types.Integer] = None,
664
- minBucketWidth: Optional[_arg_types.Number] = None,
665
- maxRaw: Optional[_arg_types.Integer] = None,
661
+ maxBuckets: _arg_types.Integer | None = None,
662
+ minBucketWidth: _arg_types.Number | None = None,
663
+ maxRaw: _arg_types.Integer | None = None,
666
664
  # pylint: enable=invalid-name
667
665
  ) -> Reducer:
668
666
  """Returns a reducer that will compute the median of the inputs.
@@ -687,7 +685,7 @@ class Reducer(computedobject.ComputedObject):
687
685
  @staticmethod
688
686
  def min(
689
687
  # pylint: disable-next=invalid-name
690
- numInputs: Optional[_arg_types.Integer] = None,
688
+ numInputs: _arg_types.Integer | None = None,
691
689
  ) -> Reducer:
692
690
  """Returns a reducer that outputs the minimum value of its first input.
693
691
 
@@ -712,9 +710,9 @@ class Reducer(computedobject.ComputedObject):
712
710
  @staticmethod
713
711
  def mode(
714
712
  # pylint: disable=invalid-name
715
- maxBuckets: Optional[_arg_types.Integer] = None,
716
- minBucketWidth: Optional[_arg_types.Number] = None,
717
- maxRaw: Optional[_arg_types.Integer] = None,
713
+ maxBuckets: _arg_types.Integer | None = None,
714
+ minBucketWidth: _arg_types.Number | None = None,
715
+ maxRaw: _arg_types.Integer | None = None,
718
716
  # pylint: enable=invalid-name
719
717
  ) -> Reducer:
720
718
  """Returns a reducer that will compute the mode of the inputs.
@@ -760,10 +758,10 @@ class Reducer(computedobject.ComputedObject):
760
758
  def percentile(
761
759
  percentiles: _arg_types.List,
762
760
  # pylint: disable=invalid-name
763
- outputNames: Optional[_arg_types.List] = None,
764
- maxBuckets: Optional[_arg_types.Integer] = None,
765
- minBucketWidth: Optional[_arg_types.Number] = None,
766
- maxRaw: Optional[_arg_types.Integer] = None,
761
+ outputNames: _arg_types.List | None = None,
762
+ maxBuckets: _arg_types.Integer | None = None,
763
+ minBucketWidth: _arg_types.Number | None = None,
764
+ maxRaw: _arg_types.Integer | None = None,
767
765
  # pylint: enable=invalid-name
768
766
  ) -> Reducer:
769
767
  """Returns a reducer that will compute the specified percentiles.
@@ -818,8 +816,8 @@ class Reducer(computedobject.ComputedObject):
818
816
  @staticmethod
819
817
  def ridgeRegression(
820
818
  numX: _arg_types.Integer, # pylint: disable=invalid-name
821
- numY: Optional[_arg_types.Integer] = None, # pylint: disable=invalid-name
822
- lambda_: Optional[_arg_types.Number] = None,
819
+ numY: _arg_types.Integer | None = None, # pylint: disable=invalid-name
820
+ lambda_: _arg_types.Number | None = None,
823
821
  **kwargs,
824
822
  ) -> Reducer:
825
823
  # pylint: disable=g-doc-args
@@ -862,8 +860,8 @@ class Reducer(computedobject.ComputedObject):
862
860
  @staticmethod
863
861
  def robustLinearRegression(
864
862
  numX: _arg_types.Integer, # pylint: disable=invalid-name
865
- numY: Optional[_arg_types.Integer] = None, # pylint: disable=invalid-name
866
- beta: Optional[_arg_types.Number] = None,
863
+ numY: _arg_types.Integer | None = None, # pylint: disable=invalid-name
864
+ beta: _arg_types.Number | None = None,
867
865
  ) -> Reducer:
868
866
  """Returns a robust linear regression reducer.
869
867
 
@@ -979,7 +977,7 @@ class Reducer(computedobject.ComputedObject):
979
977
  def toCollection(
980
978
  # pylint: disable=invalid-name
981
979
  propertyNames: _arg_types.List,
982
- numOptional: Optional[_arg_types.Integer] = None,
980
+ numOptional: _arg_types.Integer | None = None,
983
981
  # pylint: enable=invalid-name
984
982
  ) -> Reducer:
985
983
  """Returns a reducer that collects its inputs into a FeatureCollection.
@@ -998,8 +996,8 @@ class Reducer(computedobject.ComputedObject):
998
996
  @staticmethod
999
997
  def toList(
1000
998
  # pylint: disable=invalid-name
1001
- tupleSize: Optional[_arg_types.Integer] = None,
1002
- numOptional: Optional[_arg_types.Integer] = None,
999
+ tupleSize: _arg_types.Integer | None = None,
1000
+ numOptional: _arg_types.Integer | None = None,
1003
1001
  # pylint: enable=invalid-name
1004
1002
  ) -> Reducer:
1005
1003
  """Returns a reducer that collects its inputs into a list.
ee/serializer.py CHANGED
@@ -160,8 +160,8 @@ class Serializer:
160
160
  'type':
161
161
  'Dictionary',
162
162
  'value':
163
- dict([(key, self._encode_value(value))
164
- for key, value in obj.items()])
163
+ {key: self._encode_value(value)
164
+ for key, value in obj.items()}
165
165
  }
166
166
  else:
167
167
  raise ee_exception.EEException('Cannot encode object: %s' % obj)
@@ -403,8 +403,8 @@ class _ExpressionOptimizer:
403
403
  reference_counts[reference] += 1
404
404
 
405
405
  self._visit_all_values_in_expression(increment_reference_count)
406
- return set(reference for reference, count in reference_counts.items()
407
- if count == 1)
406
+ return {reference for reference, count in reference_counts.items()
407
+ if count == 1}
408
408
 
409
409
  def optimize(self) -> Any:
410
410
  """Optimises the expression, returning the optimised form."""
ee/table_converter.py CHANGED
@@ -1,6 +1,7 @@
1
1
  """Converters used in the table data fetching methods."""
2
2
 
3
- from typing import Any, Iterator, Optional, Type, Union
3
+ from collections.abc import Iterator
4
+ from typing import Any, Optional, Union
4
5
 
5
6
 
6
7
  class TableConverter:
@@ -51,7 +52,7 @@ class GeoPandasConverter(TableConverter):
51
52
  return list(features)
52
53
 
53
54
 
54
- _TABLE_DATA_CONVERTERS: dict[str, Type[TableConverter]] = {
55
+ _TABLE_DATA_CONVERTERS: dict[str, type[TableConverter]] = {
55
56
  'PANDAS_DATAFRAME': PandasConverter,
56
57
  'GEOPANDAS_GEODATAFRAME': GeoPandasConverter,
57
58
  }
ee/terrain.py CHANGED
@@ -1,8 +1,6 @@
1
1
  """A namespace for Terrain."""
2
2
  from __future__ import annotations
3
3
 
4
- from typing import Optional
5
-
6
4
  from ee import _arg_types
7
5
  from ee import apifunction
8
6
  from ee import image as ee_image
@@ -54,8 +52,8 @@ class Terrain:
54
52
  @staticmethod
55
53
  def fillMinima(
56
54
  image: _arg_types.Image,
57
- borderValue: Optional[_arg_types.Integer] = None,
58
- neighborhood: Optional[_arg_types.Integer] = None,
55
+ borderValue: _arg_types.Integer | None = None,
56
+ neighborhood: _arg_types.Integer | None = None,
59
57
  ) -> ee_image.Image:
60
58
  """Returns an ee.Image with local minima filled.
61
59
 
@@ -76,8 +74,8 @@ class Terrain:
76
74
  image: _arg_types.Image,
77
75
  azimuth: _arg_types.Number,
78
76
  zenith: _arg_types.Number,
79
- neighborhoodSize: Optional[_arg_types.Integer] = None,
80
- hysteresis: Optional[_arg_types.Bool] = None,
77
+ neighborhoodSize: _arg_types.Integer | None = None,
78
+ hysteresis: _arg_types.Bool | None = None,
81
79
  ) -> ee_image.Image:
82
80
  """Returns an ee.Image with the hill shadow.
83
81
 
@@ -109,8 +107,8 @@ class Terrain:
109
107
  @staticmethod
110
108
  def hillshade(
111
109
  input: _arg_types.Image,
112
- azimuth: Optional[_arg_types.Number] = None,
113
- elevation: Optional[_arg_types.Number] = None,
110
+ azimuth: _arg_types.Number | None = None,
111
+ elevation: _arg_types.Number | None = None,
114
112
  ) -> ee_image.Image:
115
113
  """Returns an ee.Image with a simple hillshade from a DEM.
116
114
 
@@ -414,7 +414,7 @@ class CloudApiUtilsTest(unittest.TestCase):
414
414
  self.assertEqual({'width': 123, 'height': 123},
415
415
  _cloud_api_utils.convert_to_grid_dimensions(123))
416
416
  self.assertEqual({'width': 123, 'height': 123},
417
- _cloud_api_utils.convert_to_grid_dimensions((123)))
417
+ _cloud_api_utils.convert_to_grid_dimensions(123))
418
418
  self.assertEqual({'width': 123, 'height': 234},
419
419
  _cloud_api_utils.convert_to_grid_dimensions((123, 234)))
420
420
 
ee/tests/_helpers_test.py CHANGED
@@ -25,7 +25,7 @@ class ProfilingTest(apitestcase.ApiTestCase):
25
25
  is_get_profiles = isinstance(
26
26
  value, computedobject.ComputedObject
27
27
  ) and value.func == apifunction.ApiFunction.lookup('Profile.getProfiles')
28
- return 'hooked=%s getProfiles=%s' % (hooked, is_get_profiles)
28
+ return f'hooked={hooked} getProfiles={is_get_profiles}'
29
29
 
30
30
  def testProfilePrinting(self):
31
31
  ee.data.computeValue = self.MockValue
ee/tests/batch_test.py CHANGED
@@ -59,7 +59,7 @@ class TaskTest(unittest.TestCase):
59
59
 
60
60
  def testStartWithoutConfig(self):
61
61
  task = batch.Task('an id', 'a task type', 'a state')
62
- self.assertIsNone((task.config))
62
+ self.assertIsNone(task.config)
63
63
  with self.assertRaisesRegex(ee.EEException, 'Task config'):
64
64
  task.start()
65
65
 
ee/tests/data_test.py CHANGED
@@ -315,8 +315,8 @@ class DataTest(unittest.TestCase):
315
315
  update_mask = mock_update_asset.call_args[0][2]
316
316
  self.assertSetEqual(
317
317
  set(update_mask),
318
- set(['properties.\"mYPropErTy\"',
319
- 'properties.\"system:time_start\"']))
318
+ {'properties.\"mYPropErTy\"',
319
+ 'properties.\"system:time_start\"'})
320
320
 
321
321
  def testListAssets(self):
322
322
  cloud_api_resource = mock.MagicMock()
ee/tests/ee_test.py CHANGED
@@ -460,9 +460,9 @@ class EETestCase(apitestcase.ApiTestCase):
460
460
 
461
461
  def testNonAsciiDocumentation(self):
462
462
  """Verifies that non-ASCII characters in documentation work."""
463
- foo = u'\uFB00\u00F6\u01EB'
464
- bar = u'b\u00E4r'
465
- baz = u'b\u00E2\u00DF'
463
+ foo = '\uFB00\u00F6\u01EB'
464
+ bar = 'b\u00E4r'
465
+ baz = 'b\u00E2\u00DF'
466
466
 
467
467
  def MockAlgorithms():
468
468
  return {
@@ -26,7 +26,7 @@ class ErrorMarginTest(apitestcase.ApiTestCase):
26
26
  self.assertEqual(errormargin_func, errormargin.func)
27
27
 
28
28
  self.assertFalse(errormargin.isVariable())
29
- self.assertEqual(set([UNIT, VALUE]), set(errormargin.args))
29
+ self.assertEqual({UNIT, VALUE}, set(errormargin.args))
30
30
  expected_unit = {
31
31
  'result': '0',
32
32
  'values': {'0': {'constantValue': 'projected'}},
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """Tests for the image_converter module."""
3
3
 
4
- from typing import Optional, Type
4
+ from typing import Optional
5
5
 
6
6
  from absl.testing import parameterized
7
7
  import numpy
@@ -20,7 +20,7 @@ class ImageConverterTest(parameterized.TestCase):
20
20
  def test_from_file_format(
21
21
  self,
22
22
  data_format: str,
23
- expected: Optional[Type[image_converter.ImageConverter]],
23
+ expected: Optional[type[image_converter.ImageConverter]],
24
24
  ) -> None:
25
25
  """Verifies `from_file_format` returns the correct converter class."""
26
26
  if expected is None:
@@ -78,7 +78,7 @@ class PixelTypeTest(apitestcase.ApiTestCase):
78
78
 
79
79
  self.assertFalse(pixeltype.isVariable())
80
80
  self.assertEqual(
81
- set([DIMENSIONS_KEY, MAX_VALUE_KEY, MIN_VALUE_KEY, PRECISION_KEY]),
81
+ {DIMENSIONS_KEY, MAX_VALUE_KEY, MIN_VALUE_KEY, PRECISION_KEY},
82
82
  set(pixeltype.args),
83
83
  )
84
84
  expected_dimensions = {'result': '0', 'values': {'0': {'constantValue': 2}}}
@@ -294,7 +294,6 @@ class PixelTypeTest(apitestcase.ApiTestCase):
294
294
  expect = pixeltype_noargs_expr('int16')
295
295
  expression = ee.PixelType.int16()
296
296
  result = json.loads(expression.serialize())
297
- print(json.dumps(result, indent=2))
298
297
  self.assertEqual(expect, result)
299
298
 
300
299
  def test_int32(self):
@@ -44,7 +44,7 @@ class ProjectionTest(apitestcase.ApiTestCase):
44
44
  projection_func = ee.ApiFunction.lookup('Projection')
45
45
  self.assertEqual(projection_func, projection.func)
46
46
  self.assertFalse(projection.isVariable())
47
- self.assertEqual(set(['crs', 'transform']), set(projection.args))
47
+ self.assertEqual({'crs', 'transform'}, set(projection.args))
48
48
  self.assertEqual(EPSG_4326, projection.args['crs'])
49
49
  expected_transform = {
50
50
  'result': '0',
@@ -71,7 +71,7 @@ class ProjectionTest(apitestcase.ApiTestCase):
71
71
 
72
72
  projection_func = ee.ApiFunction.lookup('Projection')
73
73
  self.assertEqual(projection_func, projection.func)
74
- self.assertEqual(set(['crs', 'transformWkt']), set(projection.args))
74
+ self.assertEqual({'crs', 'transformWkt'}, set(projection.args))
75
75
  self.assertEqual(EPSG_4326, projection.args['crs'])
76
76
  expected_transform_wkt = {
77
77
  'result': '0',
@@ -169,7 +169,6 @@ class ProjectionTest(apitestcase.ApiTestCase):
169
169
  })
170
170
  expression = ee.Projection(EPSG_4326).nominalScale()
171
171
  result = json.loads(expression.serialize())
172
- print(result)
173
172
  self.assertEqual(expect, result)
174
173
 
175
174
  def test_scale(self):
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """Tests for the table_converter module."""
3
3
 
4
- from typing import Any, Optional, Type
4
+ from typing import Any, Optional
5
5
 
6
6
  from absl.testing import parameterized
7
7
  import geopandas
@@ -28,7 +28,7 @@ class TableConverterTest(parameterized.TestCase):
28
28
  def test_from_file_format(
29
29
  self,
30
30
  data_format: str,
31
- expected: Optional[Type[table_converter.TableConverter]],
31
+ expected: Optional[type[table_converter.TableConverter]],
32
32
  ) -> None:
33
33
  """Verifies `from_file_format` returns the correct converter class."""
34
34
  if expected is None:
@@ -1,107 +0,0 @@
1
- earthengine_api-1.5.24.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
2
- ee/__init__.py,sha256=uw-xbOEi8ZcsxQr0Um4YL6BiVXtFlpPW3_9In4N_bus,16835
3
- ee/_arg_types.py,sha256=AHSPCNoJt1PPO0OTzCby-BxtQ1-SQ29vtHa3sl65H-M,2635
4
- ee/_cloud_api_utils.py,sha256=MU0ClQVZ5g79um27zcxt0A6bZSt2Pdwcd2nKz6KicU8,32466
5
- ee/_helpers.py,sha256=VPVxUSKZggPbkygWivInv86bE8TpP5hVU6qAtYcKbqQ,4678
6
- ee/_utils.py,sha256=SAXQ_ZefZUaOtyV6Lp3pdYqEFqblMEA6Bvxz0ltLjzA,1329
7
- ee/apifunction.py,sha256=f2IVdqMZcj0uIsk7Ku0-1EzPg9NuXt_CSlNc1opfYQQ,8792
8
- ee/apitestcase.py,sha256=ARg3YZaQktYqO7PPvAdYQWU2e3kN6KfcfR8pWvPHSKc,14932
9
- ee/batch.py,sha256=dgXBddhKrHMi8JBqhb2FbgPYJRrokM7fxuxCcIanaek,82672
10
- ee/blob.py,sha256=cKv_FGsunBqK06zm92HZbW400XMmFjGc9KB6qjBytDM,3205
11
- ee/classifier.py,sha256=bvXDGZN9_XyGeDPc72mU-Y5piw1uus5vRec0Kitm7NY,23610
12
- ee/clusterer.py,sha256=ndim_Iu3BFuOOw46mry1XKSEx_4SmAcLYZvOYIdCaFM,12402
13
- ee/collection.py,sha256=aZVWqXwGHVwO4B7wkTCsYODUDEtDQSgs-4Zo2OKgKek,32427
14
- ee/computedobject.py,sha256=sBWH4p1YoJrv10QQ1nzquOH69IepM9xTlR91Gna24_I,9112
15
- ee/confusionmatrix.py,sha256=gSRG9xUv62psM86J9bpQm7d2lWOTue9ZWFooevMX-64,4260
16
- ee/customfunction.py,sha256=CLtngmgRbzQ5bVXWjU283-dwikhCATDbBdNMUlbQD5g,7397
17
- ee/data.py,sha256=y6_S2zAA9T78BpwwGDjdzGzbCqy040o_du6jCMEaAHc,88666
18
- ee/daterange.py,sha256=8DWQw5ysVuju7a9PKaXHc6g0Bk3WF0QKbaKD5rpwbxs,5003
19
- ee/deprecation.py,sha256=nyrT4dUumGp5Z1tR7kvszFlyh1rbTQbke6SaJKmsa-w,6062
20
- ee/deserializer.py,sha256=sIQB-4jcZFmG40jMfxTFc1Eq9RaMxsH4WbYqhvaKSO0,8432
21
- ee/dictionary.py,sha256=RH_mJQ6yYPgkHKFk1zJpjxtzWVyErnv2tLNft-TkJ_I,10548
22
- ee/ee_array.py,sha256=oCKU3s-UGIWF4_gzOrWwesd8A5HFF0h22l5ruohtCIA,36369
23
- ee/ee_date.py,sha256=qooNVKSNyCDQ1dQfoV4qOQC8B6hhjWH6vCYtg4qY2NM,10833
24
- ee/ee_exception.py,sha256=uN3X76HuhicU0LTxqRKQu1ZU6L7zw0GuABgsBTT-Ycw,164
25
- ee/ee_list.py,sha256=KI4RfMeYyGHN-XwPru9vqtqpsKWAHWhXNiZoZo9vBkI,19876
26
- ee/ee_number.py,sha256=zb5LyiA4j24ml-B8ib4DTFne0Dzry2K4bSYhEdturtI,22615
27
- ee/ee_string.py,sha256=gNMEJIWxRGiAa-FQrHYeAtEqdU9vJgXv4zyas3DHRZQ,7761
28
- ee/ee_types.py,sha256=MWfXc0h3KgT8bLraI6qw-b0D3ogVkY5aDZKM3eoTsJA,3089
29
- ee/element.py,sha256=EgRf6YYn5ZNGVHJLRkAaYJv4qjw7bg483y2oPi1hc24,6299
30
- ee/encodable.py,sha256=ZzZBOVOEwc8a8Dby3oHwIhW-5za-4tvLDE0Q2oVaNwQ,1884
31
- ee/errormargin.py,sha256=RVVVUIvAatipOol8UKCiRm5uUronipo0-o-ZbcAsE_M,3055
32
- ee/feature.py,sha256=WftCIcSnWaoD7ZLb4AmBlHgdZbapc5oWCU0z4vl3a2g,30537
33
- ee/featurecollection.py,sha256=0lHdbt-4OUSJitNXPYrfzb1Czzx7M-KkLs2Mg9Dj42U,14498
34
- ee/filter.py,sha256=YFkir1W4QOBvoWM8OF_LdcEBDZu5YNGey4hgA0iILUw,35616
35
- ee/function.py,sha256=wafVmduEdmT9vK2EsQLYfqAojKXMXaFhQpuk6El6wbw,7057
36
- ee/geometry.py,sha256=YChyZ86DxpJcLEnjcTYFwqJSvL9uZfIEVmBnoCkHN7Y,59576
37
- ee/image.py,sha256=RFlQEJ_xDqc-TbhzRAtEFKaBfmfMVhyCgwr5Q_sRh40,171630
38
- ee/image_converter.py,sha256=QKVevJUoptYjAt778eQ99BkxvmI8W_Tv2iyiiW-k_AI,1500
39
- ee/imagecollection.py,sha256=RFVjm-BgI8-3IjDTSCurgMMbyORP7yhB5cPvQAkSSoA,27122
40
- ee/join.py,sha256=bzdGeNSIOYZf9MD5gekDRpQ9oAOuKsSftrPM3e7xssQ,7646
41
- ee/kernel.py,sha256=xppt5uEQnP1BQl0XxJ8XT-pwbFl_MdggZWfBSQRGA9I,15196
42
- ee/mapclient.py,sha256=QpUpKreEgOkjSXQBnfyViCwLQGiumHbKr-EA076XLYk,17500
43
- ee/model.py,sha256=nXn0qhwKgiTA6xOUQ7aFe0o6Mis68hiywLoY9twLOj0,12185
44
- ee/oauth.py,sha256=US64sivVT9WyFoN3aHQEKEztg1ssUm76GY4B0SLm8nw,21900
45
- ee/pixeltype.py,sha256=Q1wa9RbXpMLCjY1SKIaaIJpFgscfDInkOa19S8DPrEA,5229
46
- ee/projection.py,sha256=kd7i22y_xV175R1rMntczZAteXflflU6UFrev854x88,5857
47
- ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- ee/reducer.py,sha256=lO4zuuZ5bSrK_wvmm6hBcAcZ33ebhvmHeYCyFLStmro,33886
49
- ee/serializer.py,sha256=oT5XBf8YsuvkDLvScmzJBHsoLWQ1olL36MkcZvWrg_k,22817
50
- ee/table_converter.py,sha256=XeLPo1EU1g2qZ8bSA2-qE8XPSW1mOZod7jpwClpkBRY,2067
51
- ee/terrain.py,sha256=eDXtUVJkdQqvsjQmygCgHTLJKPB0FLi7H849NegDyp8,4910
52
- ee/cli/__init__.py,sha256=YjzBDuYi6fiOv77Xfl-Qib2O6gRZj9z7Sx2Zz6teTXU,33
53
- ee/cli/commands.py,sha256=o_Mv0OcgI1k_ddOz-_M6Q13iNZOQ5OSifug3cPwxGXM,71425
54
- ee/cli/eecli.py,sha256=iws34w24UJI6H7Wl9WsEUwy-uN57Pw-bgHtr2f92olY,3044
55
- ee/cli/eecli_wrapper.py,sha256=Z7R3IJcht2uG1h57oY7BSrkPiwQzNmmYlyCSX1_7L7c,1089
56
- ee/cli/utils.py,sha256=Gnd5It-ty5rJyRcIG_fCPUdFNX79K__C1vf3REvq3t0,13845
57
- ee/tests/_cloud_api_utils_test.py,sha256=SANsImcCZDnEcbV0nBFwT5QYM76XtAuppFns5SurM-o,18816
58
- ee/tests/_helpers_test.py,sha256=exOYxGKSiXHKQF3Tn189LVfP7wcAXbmAy3BkS0690yY,1941
59
- ee/tests/_utils_test.py,sha256=bOarVj3U-VFo9Prog8WQN_hAOMwJOiWKJxevUbdFPBQ,2753
60
- ee/tests/algorithms.json,sha256=Vx1Kx_MhHv0z0B3WTeVAvchM8xVd3zYE7L-qT3gDGzA,729368
61
- ee/tests/apifunction_test.py,sha256=62El-6jcgQmD7qt9eEDdM7IeIQmpV8M5xQ439g-zfN4,3767
62
- ee/tests/batch_test.py,sha256=UdNmismzpVhH_h_iTNvfHIru9Sa8RyoN2WVSmwScZF4,62212
63
- ee/tests/blob_test.py,sha256=2Y-btrQ8FQqmf1ccYR8hLzdCaM5uoHfSoB7a5OziTxA,3575
64
- ee/tests/classifier_test.py,sha256=K6-wNZ2uh9oPYo7BV0vtfU73SBFpeNcFRMRmvEFc6Pg,19087
65
- ee/tests/cloud_api_discovery_document.json,sha256=SnOeL8One57YdeHa7XxGZM-ptDPCeDSymBc7-Bo_hkA,41154
66
- ee/tests/clusterer_test.py,sha256=B4m06wAtBeqvnIhRD2lnNy1UHDB_caleK_CqcrAU8dk,11620
67
- ee/tests/collection_test.py,sha256=dnZwFADWQ8oShJHRTcYSzuP-waAxetTdM_CtVckWbMM,7563
68
- ee/tests/computedobject_test.py,sha256=B27rDq9Urpvy0WqpdbKRYbt6AcT1i93HX-es7hrhWVY,4840
69
- ee/tests/confusionmatrix_test.py,sha256=46JJh1-91AiYISXWZ6-2lvY5_Njvc8ompO9kmwqlFdg,7437
70
- ee/tests/data_test.py,sha256=HNHI2RDL9oFzA_-dG48zYtpc10I9HeCdFa5vtyndInY,35299
71
- ee/tests/daterange_test.py,sha256=a5fpg2lko3kCJzxQPCoAc_vjXkKy2zYcXbeSZKAFovI,8583
72
- ee/tests/deprecation_test.py,sha256=_sCs59l6c-ijeyt5yPO-IRJsh8GGPp7ArSg3Y12u4mQ,8352
73
- ee/tests/deserializer_test.py,sha256=-tbrL0cjrXdSLF7M3wl-QQuj6TjXJdkjp7RZvVErUy4,3427
74
- ee/tests/dictionary_test.py,sha256=_OCE4i-NWECPnnrT4C54nUZ_2V8PyZvpTqAdKHAkvq8,11809
75
- ee/tests/ee_array_test.py,sha256=JVXShdbOVOjlfSpNgYc_NVrknQatuPOZ19fG0Ii5yVU,50268
76
- ee/tests/ee_date_test.py,sha256=8rLUXfjyiW3LiBOCSneA7ZGgmoFgN5oZr58x5THtKGY,11106
77
- ee/tests/ee_list_test.py,sha256=yd2EWZGdg7pLJhsHSR5AbK58ZhT31GY-n2o1dDT3p9A,21797
78
- ee/tests/ee_number_test.py,sha256=3MxX8Awie_L3FfwyltrL2UXNdqTyvtYJB9qIi73wlPM,33442
79
- ee/tests/ee_string_test.py,sha256=9QuseILwZtbcczCyNyJ751kva96_9gPKXLRdgkgWMPs,9389
80
- ee/tests/ee_test.py,sha256=t_YzfCBkKkqf4MM9yT8pN2Rb2S3FNp_3-CvkKe-uEHc,17064
81
- ee/tests/ee_types_test.py,sha256=oRnqplaTWg47zuYfAYTTVwembCnw8XT20HPNMdAvgNE,921
82
- ee/tests/element_test.py,sha256=Kqu_Z65FQcYHX4LebKm3LD0mWkRTRZccs-qAGz3bLsE,1964
83
- ee/tests/errormargin_test.py,sha256=UVi3YcpUvo4nQCJJ3hE5a28bBTWeDt1gYvkZ2tkTNco,5066
84
- ee/tests/feature_test.py,sha256=9SotWgRsQ48xZ9N-grlEWZjeamsWweXPS4sMSZCGX-s,22505
85
- ee/tests/featurecollection_test.py,sha256=b3SwieXb8nyRzAlwKK_nSa4xGcy5AynIDZ1A3sV02Es,38440
86
- ee/tests/filter_test.py,sha256=d-KQ_zI-r7BAMazKqqHMMzNUZdeC46BZiciMfthKEO8,35033
87
- ee/tests/function_test.py,sha256=NbluwBCuWUZSzbMLAa04OP_qd95ibMjJWWNuM2P3Izo,3121
88
- ee/tests/geometry_point_test.py,sha256=w9MYTwvw2Co9rIjffFB0ezQ_jZz8nxbdgOcyhqTTmjk,15093
89
- ee/tests/geometry_test.py,sha256=z010i7CgwX8taJGk0NaMh6ArUDTIZllFgyZrMSpNFlI,30732
90
- ee/tests/image_converter_test.py,sha256=kBFq3Ij2mNuAAMoUDqyT0IH2XzHtn9MCiijzyQxGifU,1891
91
- ee/tests/image_test.py,sha256=_SJmee7orPot26vbxKEZcNZ6OsrNrxv3ToInWYLNZLM,150917
92
- ee/tests/imagecollection_test.py,sha256=qosRZXCbhwFuy8qR7DbA-FMl4ktW7Y2cUJHeXLcszpg,38444
93
- ee/tests/join_test.py,sha256=pFILq3qM27rO64WYbBC1A_Gs8_pabRv68X7MU_EM_cw,7630
94
- ee/tests/kernel_test.py,sha256=ZblWHqgleJ-7C4lnL7awxfR1mcYtcxpXkkKUziKG2cA,19249
95
- ee/tests/model_test.py,sha256=f2oLaDaAEr23QjkIAhBKY1Mt8CSRmo5N1-fyYRGd5j8,12053
96
- ee/tests/oauth_test.py,sha256=hAGvot2xj1MFW6IdD1QAmSNIiuu4z4gCs3beRhp3U_k,2277
97
- ee/tests/pixeltype_test.py,sha256=FpO2So2Bt_VeibrwGSo2Y1kgvOXEbLNBy_DC2Z292SA,10069
98
- ee/tests/projection_test.py,sha256=_U5zDA3bBvLtathGNZHE8AvOXcJq4VjCwg6Tvy695no,6899
99
- ee/tests/reducer_test.py,sha256=NYJTmX6AmBZyXGjOkgUh4t3tB6E8_vGlPYQIxJQbV9Q,31518
100
- ee/tests/serializer_test.py,sha256=xZQBQMDK8dlGYLS-6s1JHhR1L5FKoaIwEkxdKlcpQTE,8802
101
- ee/tests/table_converter_test.py,sha256=UJgt8ck06c9jHL-VOpKSD5VJcH-Wnw-TibtQpONsLbw,3379
102
- ee/tests/terrain_test.py,sha256=8TmvGconOR-GkGrll4joXhpU9zi0b_8GFxvX_JlcCos,4328
103
- earthengine_api-1.5.24.dist-info/METADATA,sha256=7LXGPodu9qYKF9EAX_ONRA0VCRNQ1zlSqrFqIoTMmR0,2143
104
- earthengine_api-1.5.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
105
- earthengine_api-1.5.24.dist-info/entry_points.txt,sha256=-Ax4SCU-S474r8OD2LIxata6PRmkZoDrppQ4fP_exNc,50
106
- earthengine_api-1.5.24.dist-info/top_level.txt,sha256=go5zOwCgm5lIS3yTR-Vsxp1gNI4qdS-MP5eY-7zMxVY,3
107
- earthengine_api-1.5.24.dist-info/RECORD,,