earthengine-api 1.6.13__py3-none-any.whl → 1.7.4__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.13.dist-info → earthengine_api-1.7.4.dist-info}/METADATA +2 -3
- {earthengine_api-1.6.13.dist-info → earthengine_api-1.7.4.dist-info}/RECORD +44 -44
- 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/batch.py +7 -0
- ee/cli/commands.py +6 -10
- ee/cli/utils.py +28 -23
- ee/collection.py +3 -2
- ee/computedobject.py +4 -1
- ee/customfunction.py +2 -1
- ee/data.py +32 -31
- ee/deprecation.py +8 -2
- ee/deserializer.py +10 -10
- 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 +37 -37
- ee/reducer.py +2 -0
- ee/serializer.py +6 -6
- ee/table_converter.py +3 -3
- ee/terrain.py +1 -1
- ee/tests/batch_test.py +67 -3
- ee/tests/collection_test.py +35 -0
- ee/tests/data_test.py +300 -4
- ee/tests/deprecation_test.py +4 -2
- ee/tests/deserializer_test.py +47 -0
- ee/tests/ee_number_test.py +40 -1
- ee/tests/image_converter_test.py +1 -3
- ee/tests/kernel_test.py +4 -0
- ee/tests/model_test.py +12 -0
- ee/tests/oauth_test.py +170 -7
- ee/tests/reducer_test.py +13 -0
- ee/tests/serializer_test.py +29 -2
- ee/tests/table_converter_test.py +49 -5
- ee/tests/terrain_test.py +8 -0
- {earthengine_api-1.6.13.dist-info → earthengine_api-1.7.4.dist-info}/WHEEL +0 -0
- {earthengine_api-1.6.13.dist-info → earthengine_api-1.7.4.dist-info}/entry_points.txt +0 -0
- {earthengine_api-1.6.13.dist-info → earthengine_api-1.7.4.dist-info}/licenses/LICENSE +0 -0
- {earthengine_api-1.6.13.dist-info → earthengine_api-1.7.4.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.4
|
|
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.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
2
|
+
ee/__init__.py,sha256=WokXvVm2tB0N1njJaANI-_F5GLtqKoq4B-3NuI3Rnf4,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=
|
|
10
|
-
ee/batch.py,sha256=
|
|
9
|
+
ee/apitestcase.py,sha256=8N5y2-Tw7c5GjedbSA_HRpSjVUiVLoyM_FI2g5b9Tpc,13992
|
|
10
|
+
ee/batch.py,sha256=pyhSmwH6hApRgdA8x6qbFn-mMEM8G-zf3OHW5PMziQI,82694
|
|
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=TmtDZZXVJxKOVPNSabQ9DxtYALn1BXUHiZJKXzVL6w4,85371
|
|
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,48 +36,48 @@ 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=i2R56YDJwC9A1Wpf9MOz-01L4PYoHvuIs0TnCpjlLxU,22194
|
|
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
|
-
ee/reducer.py,sha256=
|
|
50
|
-
ee/serializer.py,sha256=
|
|
51
|
-
ee/table_converter.py,sha256=
|
|
52
|
-
ee/terrain.py,sha256=
|
|
49
|
+
ee/reducer.py,sha256=zO-bhNOQPoWlzjvXiHC40hwg3KFmA52eQb1uutUW1MQ,33813
|
|
50
|
+
ee/serializer.py,sha256=Nzy3NnwSTnNTkRy4qJQ8NyswaG-VbLS6R7zT0Fvoa04,22781
|
|
51
|
+
ee/table_converter.py,sha256=z6ttgglqpbs4RViOZ-DI7g7babySB8Qaa1Ge-ONyXxE,2062
|
|
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=NhR5CsNNSbuMgrmJWoc0grn7gjmlUY37oMIXCwA2T-0,65116
|
|
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=8oiSnzGoOtWx3YIld8owWYw1zC517uLkq1Uf2Xn4iCI,52063
|
|
73
73
|
ee/tests/daterange_test.py,sha256=a5fpg2lko3kCJzxQPCoAc_vjXkKy2zYcXbeSZKAFovI,8583
|
|
74
|
-
ee/tests/deprecation_test.py,sha256=
|
|
75
|
-
ee/tests/deserializer_test.py,sha256
|
|
74
|
+
ee/tests/deprecation_test.py,sha256=CoVug7J9YdB2utZ-BikyJcjitYPQLz49JL_z89xuQSQ,8484
|
|
75
|
+
ee/tests/deserializer_test.py,sha256=i_tlyzKgCo1-VpWPAQnTWNcr2klourcMcBbFZJN6Ivw,5050
|
|
76
76
|
ee/tests/dictionary_test.py,sha256=IRaXMr3GzZFQ5BiHdB35Iio2TckIK67Cnp6KH0h8Aa8,11818
|
|
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,21 +89,21 @@ 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
|
|
96
|
-
ee/tests/kernel_test.py,sha256
|
|
97
|
-
ee/tests/model_test.py,sha256=
|
|
98
|
-
ee/tests/oauth_test.py,sha256=
|
|
96
|
+
ee/tests/kernel_test.py,sha256=-0nZVNSxE1IGs4y60oijISh2Hi1V7NCjrmUnEMDd0nQ,19378
|
|
97
|
+
ee/tests/model_test.py,sha256=dgnWfqR4R4MIUljMBL1TOcztzA-lWEl7cT5f2Y0k2ck,12483
|
|
98
|
+
ee/tests/oauth_test.py,sha256=8hldNiR3AYtQkWA4vwwSAO6jDIsh_fww7b_cOI9MJjo,9202
|
|
99
99
|
ee/tests/pixeltype_test.py,sha256=00IWKnZ7xxkVwSSCuWOlCwlTsHAb3XPyKp1Arc4S12U,10024
|
|
100
100
|
ee/tests/projection_test.py,sha256=fKXXxQPBvWdlMNtNsJze2pbsT0yHHlL7ON8Pdjm1Z7E,6871
|
|
101
|
-
ee/tests/reducer_test.py,sha256=
|
|
102
|
-
ee/tests/serializer_test.py,sha256=
|
|
103
|
-
ee/tests/table_converter_test.py,sha256=
|
|
104
|
-
ee/tests/terrain_test.py,sha256=
|
|
105
|
-
earthengine_api-1.
|
|
106
|
-
earthengine_api-1.
|
|
107
|
-
earthengine_api-1.
|
|
108
|
-
earthengine_api-1.
|
|
109
|
-
earthengine_api-1.
|
|
101
|
+
ee/tests/reducer_test.py,sha256=vqXpgLZ7fPyfZ12srpREgMpfrKYLcFQod3Qn1Niv7VM,31979
|
|
102
|
+
ee/tests/serializer_test.py,sha256=d6IEW_dt-G900IRfQnZftrwjpc1wJ-ouaQQwaLO0FxI,9834
|
|
103
|
+
ee/tests/table_converter_test.py,sha256=t4yIfy40R3U17I_2nVtKm_Q2Tae-UifwZLz8qOmoC9A,5091
|
|
104
|
+
ee/tests/terrain_test.py,sha256=inZ2sy807nDG_HMutzGHaqcTUaLnZQOMdWyf0NrQzV0,4561
|
|
105
|
+
earthengine_api-1.7.4.dist-info/METADATA,sha256=MX9gSJaNeM3FPgvXYmd_UuwcLwbiA8Jwse608jMlBw0,2144
|
|
106
|
+
earthengine_api-1.7.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
107
|
+
earthengine_api-1.7.4.dist-info/entry_points.txt,sha256=-Ax4SCU-S474r8OD2LIxata6PRmkZoDrppQ4fP_exNc,50
|
|
108
|
+
earthengine_api-1.7.4.dist-info/top_level.txt,sha256=go5zOwCgm5lIS3yTR-Vsxp1gNI4qdS-MP5eY-7zMxVY,3
|
|
109
|
+
earthengine_api-1.7.4.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.4'
|
|
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/batch.py
CHANGED
|
@@ -308,6 +308,7 @@ class Export:
|
|
|
308
308
|
crsTransform=None,
|
|
309
309
|
maxPixels=None,
|
|
310
310
|
priority=None,
|
|
311
|
+
overwrite=False,
|
|
311
312
|
**kwargs,
|
|
312
313
|
) -> Task:
|
|
313
314
|
"""Creates a task to export an EE Image to an EE Asset.
|
|
@@ -344,6 +345,7 @@ class Export:
|
|
|
344
345
|
priority: The priority of the task within the project. Higher priority
|
|
345
346
|
tasks are scheduled sooner. Must be an integer between 0 and 9999.
|
|
346
347
|
Defaults to 100.
|
|
348
|
+
overwrite: If an existing asset can be overwritten by this export.
|
|
347
349
|
**kwargs: Holds other keyword arguments that may have been deprecated
|
|
348
350
|
such as 'crs_transform'.
|
|
349
351
|
|
|
@@ -739,6 +741,7 @@ class Export:
|
|
|
739
741
|
assetId=None,
|
|
740
742
|
maxVertices=None,
|
|
741
743
|
priority=None,
|
|
744
|
+
overwrite=False,
|
|
742
745
|
**kwargs,
|
|
743
746
|
) -> Task:
|
|
744
747
|
"""Creates a task to export a FeatureCollection to an EE table asset.
|
|
@@ -753,6 +756,7 @@ class Export:
|
|
|
753
756
|
priority: The priority of the task within the project. Higher priority
|
|
754
757
|
tasks are scheduled sooner. Must be an integer between 0 and 9999.
|
|
755
758
|
Defaults to 100.
|
|
759
|
+
overwrite: If an existing asset can be overwritten by this export.
|
|
756
760
|
**kwargs: Holds other keyword arguments that may have been deprecated.
|
|
757
761
|
|
|
758
762
|
Returns:
|
|
@@ -763,6 +767,7 @@ class Export:
|
|
|
763
767
|
'assetId': assetId,
|
|
764
768
|
'maxVertices': maxVertices,
|
|
765
769
|
'priority': priority,
|
|
770
|
+
'overwrite': overwrite,
|
|
766
771
|
}
|
|
767
772
|
config = {k: v for k, v, in config.items() if v is not None}
|
|
768
773
|
config = _prepare_table_export_config(collection, config,
|
|
@@ -1738,6 +1743,8 @@ def _build_earth_engine_destination(config: dict[str, Any]) -> dict[str, Any]:
|
|
|
1738
1743
|
'name':
|
|
1739
1744
|
_cloud_api_utils.convert_asset_id_to_asset_name(
|
|
1740
1745
|
config.pop('assetId')),
|
|
1746
|
+
'overwrite':
|
|
1747
|
+
config.pop('overwrite', False)
|
|
1741
1748
|
}
|
|
1742
1749
|
|
|
1743
1750
|
|
ee/cli/commands.py
CHANGED
|
@@ -128,7 +128,7 @@ def _comma_separated_strings(string: str) -> list[str]:
|
|
|
128
128
|
"""Parses an input consisting of comma-separated strings."""
|
|
129
129
|
error_msg = 'Argument should be a comma-separated list of strings: {}'
|
|
130
130
|
values = string.split(',')
|
|
131
|
-
if not values:
|
|
131
|
+
if not all(values):
|
|
132
132
|
raise argparse.ArgumentTypeError(error_msg.format(string))
|
|
133
133
|
return values
|
|
134
134
|
|
|
@@ -137,7 +137,7 @@ def _comma_separated_numbers(string: str) -> list[float]:
|
|
|
137
137
|
"""Parses an input consisting of comma-separated numbers."""
|
|
138
138
|
error_msg = 'Argument should be a comma-separated list of numbers: {}'
|
|
139
139
|
values = string.split(',')
|
|
140
|
-
if not values:
|
|
140
|
+
if not all(values):
|
|
141
141
|
raise argparse.ArgumentTypeError(error_msg.format(string))
|
|
142
142
|
numbervalues = []
|
|
143
143
|
for value in values:
|
|
@@ -155,9 +155,9 @@ def _comma_separated_numbers(string: str) -> list[float]:
|
|
|
155
155
|
def _comma_separated_pyramiding_policies(string: str) -> list[str]:
|
|
156
156
|
"""Parses an input consisting of comma-separated pyramiding policies."""
|
|
157
157
|
error_msg = ('Argument should be a comma-separated list of: '
|
|
158
|
-
'{{"mean", "sample", "min", "max", "mode"}}: {}')
|
|
158
|
+
'{{"mean", "median", "sample", "min", "max", "mode"}}: {}')
|
|
159
159
|
values = string.split(',')
|
|
160
|
-
if not values:
|
|
160
|
+
if not all(values):
|
|
161
161
|
raise argparse.ArgumentTypeError(error_msg.format(string))
|
|
162
162
|
redvalues = []
|
|
163
163
|
for value in values:
|
|
@@ -226,11 +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
|
|
230
|
-
return datetime.datetime.fromtimestamp(millis / 1000)
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
def _decode_date(string: str) -> Union[float, str]:
|
|
229
|
+
def _decode_date(string: str) -> float | str:
|
|
234
230
|
"""Decodes a date from a command line argument, returning msec since epoch".
|
|
235
231
|
|
|
236
232
|
Args:
|
|
@@ -602,7 +598,7 @@ class AclChCommand:
|
|
|
602
598
|
return permissions
|
|
603
599
|
|
|
604
600
|
def _apply_permissions(
|
|
605
|
-
self, acl: dict[str,
|
|
601
|
+
self, acl: dict[str, bool | list[str]], permissions: dict[str, str]
|
|
606
602
|
) -> None:
|
|
607
603
|
"""Applies the given permission edits to the given acl."""
|
|
608
604
|
for user, role in permissions.items():
|