earthengine-api 1.6.15__py3-none-any.whl → 1.7.0__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.
- {earthengine_api-1.6.15.dist-info → earthengine_api-1.7.0.dist-info}/METADATA +2 -3
- {earthengine_api-1.6.15.dist-info → earthengine_api-1.7.0.dist-info}/RECORD +34 -34
- ee/__init__.py +13 -13
- ee/_cloud_api_utils.py +29 -28
- ee/_helpers.py +6 -6
- ee/_utils.py +2 -1
- ee/apitestcase.py +10 -10
- ee/cli/commands.py +2 -2
- ee/cli/utils.py +2 -2
- ee/collection.py +3 -2
- ee/computedobject.py +4 -1
- ee/customfunction.py +2 -1
- ee/data.py +31 -31
- ee/deprecation.py +3 -2
- ee/deserializer.py +4 -4
- ee/ee_number.py +6 -16
- ee/encodable.py +2 -1
- ee/image_converter.py +3 -3
- ee/imagecollection.py +2 -2
- ee/model.py +29 -31
- ee/oauth.py +35 -35
- ee/serializer.py +6 -6
- ee/table_converter.py +3 -3
- ee/tests/batch_test.py +3 -3
- ee/tests/collection_test.py +35 -0
- ee/tests/data_test.py +5 -3
- ee/tests/ee_number_test.py +40 -1
- ee/tests/image_converter_test.py +1 -3
- ee/tests/serializer_test.py +3 -2
- ee/tests/table_converter_test.py +2 -2
- {earthengine_api-1.6.15.dist-info → earthengine_api-1.7.0.dist-info}/WHEEL +0 -0
- {earthengine_api-1.6.15.dist-info → earthengine_api-1.7.0.dist-info}/entry_points.txt +0 -0
- {earthengine_api-1.6.15.dist-info → earthengine_api-1.7.0.dist-info}/licenses/LICENSE +0 -0
- {earthengine_api-1.6.15.dist-info → earthengine_api-1.7.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: earthengine-api
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
4
4
|
Summary: Earth Engine Python API
|
|
5
5
|
Author-email: Google LLC <noreply@google.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -13,7 +13,6 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
13
13
|
Classifier: Operating System :: OS Independent
|
|
14
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
@@ -24,7 +23,7 @@ Classifier: Topic :: Scientific/Engineering :: GIS
|
|
|
24
23
|
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
25
24
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
26
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
-
Requires-Python: >=3.
|
|
26
|
+
Requires-Python: >=3.10
|
|
28
27
|
Description-Content-Type: text/markdown
|
|
29
28
|
License-File: LICENSE
|
|
30
29
|
Requires-Dist: google-cloud-storage
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
earthengine_api-1.
|
|
2
|
-
ee/__init__.py,sha256=
|
|
1
|
+
earthengine_api-1.7.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
2
|
+
ee/__init__.py,sha256=yPtZOGV1UdHmNh-XLnjgN--HN1Xn8E1yhgj_S3bZFj0,16758
|
|
3
3
|
ee/_arg_types.py,sha256=nrJrnPFnAS8fzMxAGmG3TbUOi_yFVrnSGW5IP8ATzDQ,2662
|
|
4
|
-
ee/_cloud_api_utils.py,sha256=
|
|
5
|
-
ee/_helpers.py,sha256=
|
|
4
|
+
ee/_cloud_api_utils.py,sha256=5WPzP5bcBIbjA7yYN-Cwmht_HU-XobbTrZvRiOEn0e0,32890
|
|
5
|
+
ee/_helpers.py,sha256=afDDqoz1WESKE-lzqLtrCbvoQ1yVpfvJIgFcmUjO4L8,4821
|
|
6
6
|
ee/_state.py,sha256=y2hdq_ZEgFkO9a-DbWFSthehlAyTbp--cz4C04XS058,2754
|
|
7
|
-
ee/_utils.py,sha256=
|
|
7
|
+
ee/_utils.py,sha256=ciocjvlvR73G07IV_iZjLi1IGowpEbT53NzFqqwSbDU,1356
|
|
8
8
|
ee/apifunction.py,sha256=mCCsLhBs_MofvMW49OFjT5psQGMbXWQSpAlhiqMEc4k,8732
|
|
9
|
-
ee/apitestcase.py,sha256=
|
|
9
|
+
ee/apitestcase.py,sha256=8N5y2-Tw7c5GjedbSA_HRpSjVUiVLoyM_FI2g5b9Tpc,13992
|
|
10
10
|
ee/batch.py,sha256=dETwEgh2E9bsoKcmo7MrqIKrU9OEOymDHtbifl_hMS4,82400
|
|
11
11
|
ee/blob.py,sha256=cnnqmrHl998U2zEmfKcxQglaGk14Ip6pjObk_Ody6Uk,3221
|
|
12
12
|
ee/classifier.py,sha256=3STLrLT6Ddwzjs2324E02wRWM8VEpeifgOO81geTHJQ,23410
|
|
13
13
|
ee/clusterer.py,sha256=986D68b2eJ4xiiOiIOTNZ1psF8Ro-MFNQFKed058FS4,12256
|
|
14
|
-
ee/collection.py,sha256=
|
|
15
|
-
ee/computedobject.py,sha256=
|
|
14
|
+
ee/collection.py,sha256=c8OFIX9OVLxTbu8HGYiHOS3Yg6QjnxaO_FAhDhDQpic,32588
|
|
15
|
+
ee/computedobject.py,sha256=Cdlccd4vw2neeRQlo5Jn3Q5R-VpQcQufNuxOHfpd1FU,9186
|
|
16
16
|
ee/confusionmatrix.py,sha256=e6vz-FcT6acWxk5pDEK0vLIN1pUjYMh5Gyn1QSGJT3I,4233
|
|
17
|
-
ee/customfunction.py,sha256=
|
|
18
|
-
ee/data.py,sha256=
|
|
17
|
+
ee/customfunction.py,sha256=Me_iHDnjkYR33JMttGA7pKJlPCjUk8rO_kgaIhDm27M,7408
|
|
18
|
+
ee/data.py,sha256=Q15duH7_O2gjIlDanmjien5z8ZZRuooyhNivUpXbM6E,85370
|
|
19
19
|
ee/daterange.py,sha256=nrRYkR2M2aVU0ZJyG7yiZStFt-W2TvYVuazoZK_WZqM,4948
|
|
20
|
-
ee/deprecation.py,sha256=
|
|
21
|
-
ee/deserializer.py,sha256=
|
|
20
|
+
ee/deprecation.py,sha256=mAFdO7fBjOu9TJd8CJB_M_NsZ6VNSxtSe820QKJx8fE,6243
|
|
21
|
+
ee/deserializer.py,sha256=TjhQjcBnFpz8Kodoj74eSbvkJ2zLjpTTfUpcNEoQR2o,8357
|
|
22
22
|
ee/dictionary.py,sha256=b0t46vaeVMsFGI2icdGNspmedRtVVxfiIcFLWcmL2v8,10508
|
|
23
23
|
ee/ee_array.py,sha256=EJmQ-zku1x0e6z44SlVD-F7mafmvRS0DoByKFyeDCuc,36368
|
|
24
24
|
ee/ee_date.py,sha256=ixmLMrrGjq30DX9QY92HTeUgFZhWdn485cyaJkksh6U,10757
|
|
25
25
|
ee/ee_exception.py,sha256=uN3X76HuhicU0LTxqRKQu1ZU6L7zw0GuABgsBTT-Ycw,164
|
|
26
26
|
ee/ee_list.py,sha256=-jf0-zcqiiNexX_6GLZaRKotfmLabJ2o071Bv3MF6kI,19819
|
|
27
|
-
ee/ee_number.py,sha256=
|
|
27
|
+
ee/ee_number.py,sha256=nNcgntUyc4h-zYLKcBIlanucxsiKqXC_koN-pzmuBnc,22376
|
|
28
28
|
ee/ee_string.py,sha256=eg-dR1JAuazNFyOJsbCULQn3BvBpQd5LER8oDfWtXcU,7875
|
|
29
29
|
ee/ee_types.py,sha256=wQCE74pDRxz_IAYc6hjSSqJwp5ozOIoZF0cHijTd8Sg,3081
|
|
30
30
|
ee/element.py,sha256=SdIVljB0Sbut02a61XgsPLiJpA66n34fsYZGMwsS8jQ,6261
|
|
31
|
-
ee/encodable.py,sha256=
|
|
31
|
+
ee/encodable.py,sha256=J9QanzbB-_f5LUCQcIhrEV5W9CbRZtxa5gicmSVxLsk,1911
|
|
32
32
|
ee/errormargin.py,sha256=x8kAgFeUdXmpc_kv8Vx5qv-fHeJvFU9EBFbSOxhNl8Y,3039
|
|
33
33
|
ee/feature.py,sha256=WItnwlQp8U3D0E0YkgJNXIAk2JviwloS9c8j2XqbKEM,30292
|
|
34
34
|
ee/featurecollection.py,sha256=XbDgzYEEyhim0_y2AOD5Wi-TRIl90OnB1DHtAJXgvg8,14424
|
|
@@ -36,40 +36,40 @@ ee/filter.py,sha256=GKz3IqeZSrK4X26TjWaw_uOE8KjZgSx1pS1zM07PXfI,35321
|
|
|
36
36
|
ee/function.py,sha256=X-Mz0AvF_l809NZXK8RM6fa2h-nP7YU2sUFp6hvIbdU,7049
|
|
37
37
|
ee/geometry.py,sha256=D__UeT72DDaJFakmyaPnmfHwxNtDxLJW7Vbze0Hh2Y4,59517
|
|
38
38
|
ee/image.py,sha256=LDidnOBIQaZ1Rv9X8H6DcNUzClRYxXcy2lHGoe5L6pA,170921
|
|
39
|
-
ee/image_converter.py,sha256=
|
|
40
|
-
ee/imagecollection.py,sha256=
|
|
39
|
+
ee/image_converter.py,sha256=LblcmkWruE0BjItZ7ICv87XZlCCjZeX2HmGxf47HXyo,1469
|
|
40
|
+
ee/imagecollection.py,sha256=5ZUUreU0iY23UC9sd8gh8fLapVZTruV3DGhsjmQF0xg,27102
|
|
41
41
|
ee/join.py,sha256=idnuzRNFvKHRLHV5m9unp_xTsZb-E2kfgUCEYSg64ts,7578
|
|
42
42
|
ee/kernel.py,sha256=eTzJFvW4nbyiFl2dDZ0_cA_o3KqCbBewY-BDp7tCB_M,15002
|
|
43
43
|
ee/mapclient.py,sha256=feCFwL76juFFZPI4uycVxUoFMeEFbPFfIVETkmpvmcY,17491
|
|
44
|
-
ee/model.py,sha256=
|
|
45
|
-
ee/oauth.py,sha256=
|
|
44
|
+
ee/model.py,sha256=ZLBT0bdo16V_fSR3eqVxvEmkpGGqMdqYBVZTwOAXvcU,12069
|
|
45
|
+
ee/oauth.py,sha256=gqm2nUIAk_PN9yJes1Yy8eLzQ8vvPapZPOY05BVRvOY,22118
|
|
46
46
|
ee/pixeltype.py,sha256=ucUwJ5SvcOT849Ap4mlJL9z11IAbcT1w9ii8-zOoqdI,5196
|
|
47
47
|
ee/projection.py,sha256=n7WvMeYEG9zksGN1tIX7RGweC4IyCrXAKsvPY0e2b8k,5868
|
|
48
48
|
ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
49
|
ee/reducer.py,sha256=zO-bhNOQPoWlzjvXiHC40hwg3KFmA52eQb1uutUW1MQ,33813
|
|
50
|
-
ee/serializer.py,sha256=
|
|
51
|
-
ee/table_converter.py,sha256=
|
|
50
|
+
ee/serializer.py,sha256=Nzy3NnwSTnNTkRy4qJQ8NyswaG-VbLS6R7zT0Fvoa04,22781
|
|
51
|
+
ee/table_converter.py,sha256=z6ttgglqpbs4RViOZ-DI7g7babySB8Qaa1Ge-ONyXxE,2062
|
|
52
52
|
ee/terrain.py,sha256=TIbeQiVGv4okTTsHCnaP6TxSvaRF-GX_06asVIFN8dY,4873
|
|
53
53
|
ee/cli/__init__.py,sha256=YjzBDuYi6fiOv77Xfl-Qib2O6gRZj9z7Sx2Zz6teTXU,33
|
|
54
|
-
ee/cli/commands.py,sha256
|
|
54
|
+
ee/cli/commands.py,sha256=-Quo-cq0MRIpVmGt5xpAgNS0oVU6JJTXpg3npbYmyPw,73444
|
|
55
55
|
ee/cli/eecli.py,sha256=1yDyingkwurai13F_PF91RYsBev6jGJ9WEoZaT2Dgy8,3043
|
|
56
56
|
ee/cli/eecli_wrapper.py,sha256=Z7R3IJcht2uG1h57oY7BSrkPiwQzNmmYlyCSX1_7L7c,1089
|
|
57
|
-
ee/cli/utils.py,sha256=
|
|
57
|
+
ee/cli/utils.py,sha256=OcGKS8fe26aXReYVSswv3n1DQlG4FcQEfHqBIHF3AOs,14233
|
|
58
58
|
ee/tests/_cloud_api_utils_test.py,sha256=p8kwehArlj_j4HWsx6vNEk2Dw17MlxYw0XtzupsDWdY,19493
|
|
59
59
|
ee/tests/_helpers_test.py,sha256=vyhbY9hE_zcSI692eAdjtM36P2vVXScDj_ENA-0tces,3991
|
|
60
60
|
ee/tests/_state_test.py,sha256=AKe5Vopzt24FJPiPcEce_oOT861gOkd6mUOAWZr6C0g,1175
|
|
61
61
|
ee/tests/_utils_test.py,sha256=bOarVj3U-VFo9Prog8WQN_hAOMwJOiWKJxevUbdFPBQ,2753
|
|
62
62
|
ee/tests/algorithms.json,sha256=Vx1Kx_MhHv0z0B3WTeVAvchM8xVd3zYE7L-qT3gDGzA,729368
|
|
63
63
|
ee/tests/apifunction_test.py,sha256=_6xpkJOd7hScYYQxzFR-8flraTQ6xfkm7gyER6JoBog,3779
|
|
64
|
-
ee/tests/batch_test.py,sha256=
|
|
64
|
+
ee/tests/batch_test.py,sha256=xlzL4syjQ_bqeOfmj7keajTZqZqcKdUlv-X8f30O1Ow,63259
|
|
65
65
|
ee/tests/blob_test.py,sha256=uCrM-ubRfAmNgHwhmUhWn7MiXqbNQutybcXIKdVsD_Q,3587
|
|
66
66
|
ee/tests/classifier_test.py,sha256=K6-wNZ2uh9oPYo7BV0vtfU73SBFpeNcFRMRmvEFc6Pg,19087
|
|
67
67
|
ee/tests/cloud_api_discovery_document.json,sha256=SnOeL8One57YdeHa7XxGZM-ptDPCeDSymBc7-Bo_hkA,41154
|
|
68
68
|
ee/tests/clusterer_test.py,sha256=B4m06wAtBeqvnIhRD2lnNy1UHDB_caleK_CqcrAU8dk,11620
|
|
69
|
-
ee/tests/collection_test.py,sha256=
|
|
69
|
+
ee/tests/collection_test.py,sha256=zsBerYrFr390awe-wD8uN9VME_qEsuaEN197hom4Xps,8815
|
|
70
70
|
ee/tests/computedobject_test.py,sha256=B27rDq9Urpvy0WqpdbKRYbt6AcT1i93HX-es7hrhWVY,4840
|
|
71
71
|
ee/tests/confusionmatrix_test.py,sha256=46JJh1-91AiYISXWZ6-2lvY5_Njvc8ompO9kmwqlFdg,7437
|
|
72
|
-
ee/tests/data_test.py,sha256
|
|
72
|
+
ee/tests/data_test.py,sha256=YyVh891MuLeDWx5Fj_uGHvpudy73E8cu1BhR1G-mlWA,40391
|
|
73
73
|
ee/tests/daterange_test.py,sha256=a5fpg2lko3kCJzxQPCoAc_vjXkKy2zYcXbeSZKAFovI,8583
|
|
74
74
|
ee/tests/deprecation_test.py,sha256=CoVug7J9YdB2utZ-BikyJcjitYPQLz49JL_z89xuQSQ,8484
|
|
75
75
|
ee/tests/deserializer_test.py,sha256=i_tlyzKgCo1-VpWPAQnTWNcr2klourcMcBbFZJN6Ivw,5050
|
|
@@ -77,7 +77,7 @@ ee/tests/dictionary_test.py,sha256=IRaXMr3GzZFQ5BiHdB35Iio2TckIK67Cnp6KH0h8Aa8,1
|
|
|
77
77
|
ee/tests/ee_array_test.py,sha256=JVXShdbOVOjlfSpNgYc_NVrknQatuPOZ19fG0Ii5yVU,50268
|
|
78
78
|
ee/tests/ee_date_test.py,sha256=8rLUXfjyiW3LiBOCSneA7ZGgmoFgN5oZr58x5THtKGY,11106
|
|
79
79
|
ee/tests/ee_list_test.py,sha256=yd2EWZGdg7pLJhsHSR5AbK58ZhT31GY-n2o1dDT3p9A,21797
|
|
80
|
-
ee/tests/ee_number_test.py,sha256=
|
|
80
|
+
ee/tests/ee_number_test.py,sha256=YuJAWg4V4ELCLdmpEN7f4Wc_6ayOreWKui8ZM5fkjbg,35029
|
|
81
81
|
ee/tests/ee_string_test.py,sha256=X6XJwa09yJXhg0rIpRb4QFA3eeGIrh2XClwhVByMRBY,9664
|
|
82
82
|
ee/tests/ee_test.py,sha256=CY5XUfh_5Bx6yIUrHDI1SbVfztIgejB-LGdgCMgT0IA,17835
|
|
83
83
|
ee/tests/ee_types_test.py,sha256=oRnqplaTWg47zuYfAYTTVwembCnw8XT20HPNMdAvgNE,921
|
|
@@ -89,7 +89,7 @@ ee/tests/filter_test.py,sha256=d-KQ_zI-r7BAMazKqqHMMzNUZdeC46BZiciMfthKEO8,35033
|
|
|
89
89
|
ee/tests/function_test.py,sha256=0hv7H-Q21vdDvqHNH_3NvFj_nPEWM2Fh7CD0wgjXE2M,3131
|
|
90
90
|
ee/tests/geometry_point_test.py,sha256=w9MYTwvw2Co9rIjffFB0ezQ_jZz8nxbdgOcyhqTTmjk,15093
|
|
91
91
|
ee/tests/geometry_test.py,sha256=5cNblTtXg4gg0k1_6go4XL2EldY2StOfD7sQ7Bu0WZU,32424
|
|
92
|
-
ee/tests/image_converter_test.py,sha256=
|
|
92
|
+
ee/tests/image_converter_test.py,sha256=x29StMrzv6jlATtx3XXC7rEo7Cgrcx0XyVoM-ccVuao,1853
|
|
93
93
|
ee/tests/image_test.py,sha256=_SJmee7orPot26vbxKEZcNZ6OsrNrxv3ToInWYLNZLM,150917
|
|
94
94
|
ee/tests/imagecollection_test.py,sha256=qosRZXCbhwFuy8qR7DbA-FMl4ktW7Y2cUJHeXLcszpg,38444
|
|
95
95
|
ee/tests/join_test.py,sha256=pFILq3qM27rO64WYbBC1A_Gs8_pabRv68X7MU_EM_cw,7630
|
|
@@ -99,11 +99,11 @@ ee/tests/oauth_test.py,sha256=jYFw8GWPFmLR0jh2NvbcrMizQo_qR_bRDBVRdIZ44g0,3067
|
|
|
99
99
|
ee/tests/pixeltype_test.py,sha256=00IWKnZ7xxkVwSSCuWOlCwlTsHAb3XPyKp1Arc4S12U,10024
|
|
100
100
|
ee/tests/projection_test.py,sha256=fKXXxQPBvWdlMNtNsJze2pbsT0yHHlL7ON8Pdjm1Z7E,6871
|
|
101
101
|
ee/tests/reducer_test.py,sha256=vqXpgLZ7fPyfZ12srpREgMpfrKYLcFQod3Qn1Niv7VM,31979
|
|
102
|
-
ee/tests/serializer_test.py,sha256=
|
|
103
|
-
ee/tests/table_converter_test.py,sha256=
|
|
102
|
+
ee/tests/serializer_test.py,sha256=d6IEW_dt-G900IRfQnZftrwjpc1wJ-ouaQQwaLO0FxI,9834
|
|
103
|
+
ee/tests/table_converter_test.py,sha256=KubC_IY4SpXkpEwvisplI1KQgLzHFOfxKepGgcZCoLg,3360
|
|
104
104
|
ee/tests/terrain_test.py,sha256=inZ2sy807nDG_HMutzGHaqcTUaLnZQOMdWyf0NrQzV0,4561
|
|
105
|
-
earthengine_api-1.
|
|
106
|
-
earthengine_api-1.
|
|
107
|
-
earthengine_api-1.
|
|
108
|
-
earthengine_api-1.
|
|
109
|
-
earthengine_api-1.
|
|
105
|
+
earthengine_api-1.7.0.dist-info/METADATA,sha256=uNnow1clusPNxThGPVFWh0Ro2F-F-vcRnPsmobkfWdE,2144
|
|
106
|
+
earthengine_api-1.7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
107
|
+
earthengine_api-1.7.0.dist-info/entry_points.txt,sha256=-Ax4SCU-S474r8OD2LIxata6PRmkZoDrppQ4fP_exNc,50
|
|
108
|
+
earthengine_api-1.7.0.dist-info/top_level.txt,sha256=go5zOwCgm5lIS3yTR-Vsxp1gNI4qdS-MP5eY-7zMxVY,3
|
|
109
|
+
earthengine_api-1.7.0.dist-info/RECORD,,
|
ee/__init__.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""The EE Python library."""
|
|
2
2
|
|
|
3
|
-
__version__ = '1.
|
|
3
|
+
__version__ = '1.7.0'
|
|
4
4
|
|
|
5
5
|
# Using lowercase function naming to match the JavaScript names.
|
|
6
6
|
# pylint: disable=g-bad-name
|
|
@@ -126,13 +126,13 @@ _DYNAMIC_CLASSES = [
|
|
|
126
126
|
|
|
127
127
|
|
|
128
128
|
def Authenticate(
|
|
129
|
-
authorization_code:
|
|
130
|
-
quiet:
|
|
131
|
-
code_verifier:
|
|
132
|
-
auth_mode:
|
|
133
|
-
scopes:
|
|
129
|
+
authorization_code: str | None = None,
|
|
130
|
+
quiet: bool | None = None,
|
|
131
|
+
code_verifier: str | None = None,
|
|
132
|
+
auth_mode: str | None = None,
|
|
133
|
+
scopes: Sequence[str] | None = None,
|
|
134
134
|
force: bool = False,
|
|
135
|
-
) ->
|
|
135
|
+
) -> bool | None:
|
|
136
136
|
"""Prompts the user to authorize access to Earth Engine via OAuth2.
|
|
137
137
|
|
|
138
138
|
Args:
|
|
@@ -162,11 +162,11 @@ def Authenticate(
|
|
|
162
162
|
|
|
163
163
|
@_utils.accept_opt_prefix('opt_url')
|
|
164
164
|
def Initialize(
|
|
165
|
-
credentials:
|
|
166
|
-
url:
|
|
167
|
-
cloud_api_key:
|
|
168
|
-
http_transport:
|
|
169
|
-
project:
|
|
165
|
+
credentials: Any | None = 'persistent',
|
|
166
|
+
url: str | None = None,
|
|
167
|
+
cloud_api_key: str | None = None,
|
|
168
|
+
http_transport: Any | None = None,
|
|
169
|
+
project: str | int | None = None,
|
|
170
170
|
) -> None:
|
|
171
171
|
"""Initialize the EE library.
|
|
172
172
|
|
|
@@ -274,7 +274,7 @@ def _ResetGeneratedClasses() -> None:
|
|
|
274
274
|
types._registerClasses(globals()) # pylint: disable=protected-access
|
|
275
275
|
|
|
276
276
|
|
|
277
|
-
def _Promote(arg:
|
|
277
|
+
def _Promote(arg: Any | None, a_class: str) -> Any | None:
|
|
278
278
|
"""Wrap an argument in an object of the specified class.
|
|
279
279
|
|
|
280
280
|
This is used to, e.g., promote numbers or strings to Images and arrays
|
ee/_cloud_api_utils.py
CHANGED
|
@@ -6,13 +6,13 @@ parameters and result values.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import calendar
|
|
9
|
-
from collections.abc import Sequence
|
|
9
|
+
from collections.abc import Callable, Sequence
|
|
10
10
|
import copy
|
|
11
11
|
import datetime
|
|
12
12
|
import json
|
|
13
13
|
import os
|
|
14
14
|
import re
|
|
15
|
-
from typing import Any
|
|
15
|
+
from typing import Any
|
|
16
16
|
import warnings
|
|
17
17
|
|
|
18
18
|
import google_auth_httplib2
|
|
@@ -24,6 +24,7 @@ import requests
|
|
|
24
24
|
|
|
25
25
|
from ee import ee_exception
|
|
26
26
|
|
|
27
|
+
|
|
27
28
|
# The Cloud API version.
|
|
28
29
|
VERSION = os.environ.get('EE_CLOUD_API_VERSION', 'v1')
|
|
29
30
|
|
|
@@ -49,10 +50,10 @@ TASK_TO_OPERATION_STATE = {
|
|
|
49
50
|
class _Http:
|
|
50
51
|
"""A httplib2.Http-like object based on requests."""
|
|
51
52
|
_session: requests.Session
|
|
52
|
-
_timeout:
|
|
53
|
+
_timeout: float | None
|
|
53
54
|
|
|
54
55
|
def __init__(
|
|
55
|
-
self, session: requests.Session, timeout:
|
|
56
|
+
self, session: requests.Session, timeout: float | None = None
|
|
56
57
|
):
|
|
57
58
|
self._timeout = timeout
|
|
58
59
|
self._session = session
|
|
@@ -61,10 +62,10 @@ class _Http:
|
|
|
61
62
|
self,
|
|
62
63
|
uri: str,
|
|
63
64
|
method: str = 'GET',
|
|
64
|
-
body:
|
|
65
|
-
headers:
|
|
66
|
-
redirections:
|
|
67
|
-
connection_type:
|
|
65
|
+
body: str | None = None,
|
|
66
|
+
headers: dict[str, str] | None = None,
|
|
67
|
+
redirections: int | None = None,
|
|
68
|
+
connection_type: type[Any] | None = None,
|
|
68
69
|
) -> tuple[httplib2.Response, Any]:
|
|
69
70
|
"""Makes an HTTP request using httplib2 semantics."""
|
|
70
71
|
del connection_type # Ignored
|
|
@@ -117,10 +118,10 @@ def _wrap_request(
|
|
|
117
118
|
postproc: Callable[..., Any],
|
|
118
119
|
uri: str,
|
|
119
120
|
method: str = 'GET',
|
|
120
|
-
body:
|
|
121
|
-
headers:
|
|
122
|
-
methodId:
|
|
123
|
-
resumable:
|
|
121
|
+
body: Any | None = None,
|
|
122
|
+
headers: Any | None = None,
|
|
123
|
+
methodId: Any | None = None,
|
|
124
|
+
resumable: Any | None = None,
|
|
124
125
|
) -> http.HttpRequest:
|
|
125
126
|
"""Builds an HttpRequest, adding headers and response inspection."""
|
|
126
127
|
additional_headers = headers_supplier()
|
|
@@ -146,14 +147,14 @@ def _wrap_request(
|
|
|
146
147
|
def build_cloud_resource(
|
|
147
148
|
api_base_url: str,
|
|
148
149
|
session: requests.Session,
|
|
149
|
-
api_key:
|
|
150
|
-
credentials:
|
|
151
|
-
timeout:
|
|
150
|
+
api_key: str | None = None,
|
|
151
|
+
credentials: Any | None = None,
|
|
152
|
+
timeout: float | None = None,
|
|
152
153
|
num_retries: int = 1,
|
|
153
|
-
headers_supplier:
|
|
154
|
-
response_inspector:
|
|
155
|
-
http_transport:
|
|
156
|
-
raw:
|
|
154
|
+
headers_supplier: Callable[[], dict[str, Any]] | None = None,
|
|
155
|
+
response_inspector: Callable[[Any], None] | None = None,
|
|
156
|
+
http_transport: Any | None = None,
|
|
157
|
+
raw: bool | None = False,
|
|
157
158
|
) -> Any:
|
|
158
159
|
"""Builds an Earth Engine Cloud API resource.
|
|
159
160
|
|
|
@@ -225,9 +226,9 @@ def build_cloud_resource(
|
|
|
225
226
|
|
|
226
227
|
def build_cloud_resource_from_document(
|
|
227
228
|
discovery_document: Any,
|
|
228
|
-
http_transport:
|
|
229
|
-
headers_supplier:
|
|
230
|
-
response_inspector:
|
|
229
|
+
http_transport: httplib2.Http | None = None,
|
|
230
|
+
headers_supplier: Callable[..., Any] | None = None,
|
|
231
|
+
response_inspector: Callable[..., Any] | None = None,
|
|
231
232
|
raw: bool = False,
|
|
232
233
|
) -> discovery.Resource:
|
|
233
234
|
"""Builds an Earth Engine Cloud API resource from a description of the API.
|
|
@@ -261,7 +262,7 @@ def build_cloud_resource_from_document(
|
|
|
261
262
|
def _convert_dict(
|
|
262
263
|
to_convert: dict[str, Any],
|
|
263
264
|
conversions: dict[str, Any],
|
|
264
|
-
defaults:
|
|
265
|
+
defaults: dict[str, Any] | None = None,
|
|
265
266
|
key_warnings: bool = False,
|
|
266
267
|
retain_keys: bool = False,
|
|
267
268
|
) -> dict[str, Any]:
|
|
@@ -618,7 +619,7 @@ def convert_sources_to_one_platform_sources(sources: list[Any]) -> list[Any]:
|
|
|
618
619
|
return converted_sources
|
|
619
620
|
|
|
620
621
|
|
|
621
|
-
def encode_number_as_cloud_value(number: float) -> dict[str,
|
|
622
|
+
def encode_number_as_cloud_value(number: float) -> dict[str, float | str]:
|
|
622
623
|
# Numeric values in constantValue-style nodes end up stored in doubles. If the
|
|
623
624
|
# input is an integer that loses precision as a double, use the int64 slot
|
|
624
625
|
# ("integerValue") in ValueNode.
|
|
@@ -699,7 +700,7 @@ def _convert_algorithm_argument(arg: dict[str, Any]) -> dict[str, Any]:
|
|
|
699
700
|
})
|
|
700
701
|
|
|
701
702
|
|
|
702
|
-
def convert_to_image_file_format(format_str:
|
|
703
|
+
def convert_to_image_file_format(format_str: str | None) -> str:
|
|
703
704
|
"""Converts a legacy file format string to an ImageFileFormat enum value.
|
|
704
705
|
|
|
705
706
|
Args:
|
|
@@ -726,7 +727,7 @@ def convert_to_image_file_format(format_str: Optional[str]) -> str:
|
|
|
726
727
|
return format_str
|
|
727
728
|
|
|
728
729
|
|
|
729
|
-
def convert_to_table_file_format(format_str:
|
|
730
|
+
def convert_to_table_file_format(format_str: str | None) -> str:
|
|
730
731
|
"""Converts a legacy file format string to a TableFileFormat enum value.
|
|
731
732
|
|
|
732
733
|
Args:
|
|
@@ -749,7 +750,7 @@ def convert_to_table_file_format(format_str: Optional[str]) -> str:
|
|
|
749
750
|
return format_str
|
|
750
751
|
|
|
751
752
|
|
|
752
|
-
def convert_to_band_list(bands:
|
|
753
|
+
def convert_to_band_list(bands: list[str] | None | str) -> list[str]:
|
|
753
754
|
"""Converts a band list, possibly as CSV, to a real list of bands.
|
|
754
755
|
|
|
755
756
|
Args:
|
|
@@ -926,7 +927,7 @@ def convert_acl_to_iam_policy(acl: dict[str, Any]) -> dict[str, Any]:
|
|
|
926
927
|
|
|
927
928
|
|
|
928
929
|
def convert_to_grid_dimensions(
|
|
929
|
-
dimensions:
|
|
930
|
+
dimensions: float | Sequence[float]
|
|
930
931
|
) -> dict[str, float]:
|
|
931
932
|
"""Converts an input value to GridDimensions.
|
|
932
933
|
|
ee/_helpers.py
CHANGED
|
@@ -11,7 +11,7 @@ from collections.abc import Iterator
|
|
|
11
11
|
import contextlib
|
|
12
12
|
import json
|
|
13
13
|
import sys
|
|
14
|
-
from typing import Any,
|
|
14
|
+
from typing import Any, TextIO
|
|
15
15
|
|
|
16
16
|
from google.auth import crypt
|
|
17
17
|
from google.oauth2 import service_account
|
|
@@ -27,9 +27,9 @@ _PROFILE_RETRIES = 5
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def ServiceAccountCredentials(
|
|
30
|
-
email:
|
|
31
|
-
key_file:
|
|
32
|
-
key_data:
|
|
30
|
+
email: str | None = None,
|
|
31
|
+
key_file: str | None = None,
|
|
32
|
+
key_data: str | None = None,
|
|
33
33
|
) -> service_account.Credentials:
|
|
34
34
|
"""Configure OAuth2 credentials for a Google Service Account.
|
|
35
35
|
|
|
@@ -75,7 +75,7 @@ def ServiceAccountCredentials(
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
def call(
|
|
78
|
-
func:
|
|
78
|
+
func: str | apifunction.ApiFunction, *args, **kwargs
|
|
79
79
|
) -> computedobject.ComputedObject:
|
|
80
80
|
"""Invoke the given algorithm with the specified args.
|
|
81
81
|
|
|
@@ -97,7 +97,7 @@ def call(
|
|
|
97
97
|
|
|
98
98
|
# pylint: disable-next=redefined-builtin
|
|
99
99
|
def apply(
|
|
100
|
-
func:
|
|
100
|
+
func: str | apifunction.ApiFunction, named_args: dict[str, Any]
|
|
101
101
|
) -> computedobject.ComputedObject:
|
|
102
102
|
"""Call a function with a dictionary of named arguments.
|
|
103
103
|
|
ee/_utils.py
CHANGED
ee/apitestcase.py
CHANGED
|
@@ -5,7 +5,7 @@ import contextlib
|
|
|
5
5
|
import copy
|
|
6
6
|
import json
|
|
7
7
|
import os
|
|
8
|
-
from typing import Any
|
|
8
|
+
from typing import Any
|
|
9
9
|
|
|
10
10
|
from googleapiclient import discovery
|
|
11
11
|
|
|
@@ -16,7 +16,7 @@ from ee import _state
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# Cached algorithms list
|
|
19
|
-
_algorithms_cache:
|
|
19
|
+
_algorithms_cache: dict[str, Any] | None = None
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
def GetAlgorithms() -> dict[str, Any]:
|
|
@@ -40,10 +40,10 @@ def GetAlgorithms() -> dict[str, Any]:
|
|
|
40
40
|
|
|
41
41
|
class ApiTestCase(unittest.TestCase):
|
|
42
42
|
"""A TestCase that initializes the library with standard API methods."""
|
|
43
|
-
last_download_call:
|
|
44
|
-
last_thumb_call:
|
|
45
|
-
last_table_call:
|
|
46
|
-
last_mapid_call:
|
|
43
|
+
last_download_call: Any | None
|
|
44
|
+
last_thumb_call: Any | None
|
|
45
|
+
last_table_call: Any | None
|
|
46
|
+
last_mapid_call: Any | None
|
|
47
47
|
|
|
48
48
|
def setUp(self):
|
|
49
49
|
super().setUp()
|
|
@@ -108,7 +108,7 @@ class ApiTestCase(unittest.TestCase):
|
|
|
108
108
|
self,
|
|
109
109
|
params: dict[str, Any],
|
|
110
110
|
# pylint: disable-next=invalid-name
|
|
111
|
-
thumbType:
|
|
111
|
+
thumbType: str | None = None,
|
|
112
112
|
) -> dict[str, str]:
|
|
113
113
|
del thumbType # Unused.
|
|
114
114
|
# Hang on to the call arguments.
|
|
@@ -141,9 +141,9 @@ def _GenerateCloudApiResource(mock_http: Any, raw: Any) -> discovery.Resource:
|
|
|
141
141
|
|
|
142
142
|
@contextlib.contextmanager # pytype: disable=wrong-arg-types
|
|
143
143
|
def UsingCloudApi(
|
|
144
|
-
cloud_api_resource:
|
|
145
|
-
cloud_api_resource_raw:
|
|
146
|
-
mock_http:
|
|
144
|
+
cloud_api_resource: Any | None = None,
|
|
145
|
+
cloud_api_resource_raw: Any | None = None,
|
|
146
|
+
mock_http: Any | None = None,
|
|
147
147
|
) -> Iterable[Any]: # pytype: disable=wrong-arg-types
|
|
148
148
|
"""Returns a context manager under which the Cloud API is enabled."""
|
|
149
149
|
# pylint: disable=protected-access
|
ee/cli/commands.py
CHANGED
|
@@ -226,7 +226,7 @@ def _format_cloud_timestamp(timestamp: str | None) -> str:
|
|
|
226
226
|
return _datetime_from_cloud_timestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
|
|
227
227
|
|
|
228
228
|
|
|
229
|
-
def _decode_date(string: str) ->
|
|
229
|
+
def _decode_date(string: str) -> float | str:
|
|
230
230
|
"""Decodes a date from a command line argument, returning msec since epoch".
|
|
231
231
|
|
|
232
232
|
Args:
|
|
@@ -598,7 +598,7 @@ class AclChCommand:
|
|
|
598
598
|
return permissions
|
|
599
599
|
|
|
600
600
|
def _apply_permissions(
|
|
601
|
-
self, acl: dict[str,
|
|
601
|
+
self, acl: dict[str, bool | list[str]], permissions: dict[str, str]
|
|
602
602
|
) -> None:
|
|
603
603
|
"""Applies the given permission edits to the given acl."""
|
|
604
604
|
for user, role in permissions.items():
|
ee/cli/utils.py
CHANGED
|
@@ -14,7 +14,7 @@ import re
|
|
|
14
14
|
import tempfile
|
|
15
15
|
import threading
|
|
16
16
|
import time
|
|
17
|
-
from typing import Any, AnyStr
|
|
17
|
+
from typing import Any, AnyStr
|
|
18
18
|
import urllib.parse
|
|
19
19
|
|
|
20
20
|
from google.cloud import storage
|
|
@@ -32,7 +32,7 @@ DEFAULT_EE_CONFIG_FILE_RELATIVE = os.path.join(
|
|
|
32
32
|
DEFAULT_EE_CONFIG_FILE = os.path.join(
|
|
33
33
|
HOMEDIR, DEFAULT_EE_CONFIG_FILE_RELATIVE)
|
|
34
34
|
|
|
35
|
-
CONFIG_PARAMS: dict[str,
|
|
35
|
+
CONFIG_PARAMS: dict[str, str | list[str] | None] = {
|
|
36
36
|
'account': None,
|
|
37
37
|
'cloud_api_key': None,
|
|
38
38
|
'private_key': None,
|
ee/collection.py
CHANGED
|
@@ -5,8 +5,9 @@ This class is never intended to be instantiated by the user.
|
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
|
+
from collections.abc import Callable
|
|
8
9
|
import datetime
|
|
9
|
-
from typing import Any,
|
|
10
|
+
from typing import Any, Generic, TypeVar
|
|
10
11
|
|
|
11
12
|
from ee import _arg_types
|
|
12
13
|
from ee import _utils
|
|
@@ -204,7 +205,7 @@ class Collection(Generic[ElementType], element.Element):
|
|
|
204
205
|
|
|
205
206
|
# pylint: disable-next=redefined-builtin
|
|
206
207
|
def aggregate_product(self, property: _arg_types.String) -> ee_number.Number:
|
|
207
|
-
"""Returns the product of the values
|
|
208
|
+
"""Returns the product of the values of the selected property.
|
|
208
209
|
|
|
209
210
|
Aggregates over a given property of the objects in a collection, calculating
|
|
210
211
|
the product of the values of the selected property.
|
ee/computedobject.py
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from collections.abc import Callable
|
|
6
|
+
from typing import Any
|
|
6
7
|
|
|
7
8
|
from ee import _utils
|
|
8
9
|
from ee import data
|
|
@@ -233,9 +234,11 @@ class ComputedObject(encodable.Encodable, metaclass=ComputedObjectMetaclass):
|
|
|
233
234
|
return obj
|
|
234
235
|
else:
|
|
235
236
|
result = cls.__new__(cls) # pylint: disable=no-value-for-parameter
|
|
237
|
+
# pylint: disable=attribute-error
|
|
236
238
|
result.func = obj.func
|
|
237
239
|
result.args = obj.args
|
|
238
240
|
result.varName = obj.varName
|
|
241
|
+
# pylint: enable=attribute-error
|
|
239
242
|
return result
|
|
240
243
|
|
|
241
244
|
@staticmethod
|