terrakio-core 0.4.98.1b7__py3-none-any.whl → 0.4.98.1b8__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.
@@ -1,7 +1,7 @@
1
1
  import json
2
2
  import os
3
3
  import time
4
- from typing import Dict, Any, Optional, List
4
+ from typing import Dict, Any, Optional, List, Union
5
5
 
6
6
  import aiohttp
7
7
  import typer
@@ -991,10 +991,10 @@ class MassStats:
991
991
  async def gen_and_process(
992
992
  self,
993
993
  collection: str,
994
- requests_file: str,
994
+ requests_file: Union[str, Any],
995
995
  output: str,
996
996
  folder: str,
997
- consumer: str,
997
+ consumer: Union[str, Any],
998
998
  extra: Optional[Dict[str, Any]] = None,
999
999
  force_loc: Optional[bool] = False,
1000
1000
  skip_existing: Optional[bool] = True,
@@ -1005,10 +1005,10 @@ class MassStats:
1005
1005
 
1006
1006
  Args:
1007
1007
  collection: Name of collection
1008
- requests_file: Path to JSON file containing request configurations
1008
+ requests_file: Path to JSON file or file object containing request configurations
1009
1009
  output: Output type (str)
1010
1010
  folder: Folder to store output
1011
- consumer: Path to post processing script
1011
+ consumer: Path to post processing script or file object
1012
1012
  extra: Additional configuration parameters (optional)
1013
1013
  force_loc: Write data directly to the cloud under this folder (optional, defaults to False)
1014
1014
  skip_existing: Skip existing data (optional, defaults to True)
@@ -1025,25 +1025,39 @@ class MassStats:
1025
1025
 
1026
1026
  upload_urls = await self._upload_requests(collection=collection)
1027
1027
  url = upload_urls['url']
1028
- await self._upload_file(requests_file, url)
1029
-
1030
- with open(consumer, 'rb') as f:
1031
- form = aiohttp.FormData()
1032
- form.add_field('output', output)
1033
- form.add_field('force_loc', str(force_loc).lower())
1034
- form.add_field('skip_existing', str(skip_existing).lower())
1035
-
1036
- if server is not None:
1037
- form.add_field('server', server)
1038
-
1039
- form.add_field('extra', json.dumps(extra or {}))
1040
- form.add_field('folder', folder)
1041
- form.add_field(
1042
- 'consumer',
1043
- f.read(),
1044
- filename='consumer.py',
1045
- content_type='text/x-python'
1046
- )
1028
+
1029
+ # Handle requests_file - either file path (str) or file object
1030
+ if isinstance(requests_file, str):
1031
+ await self._upload_file(requests_file, url)
1032
+ else:
1033
+ # File object - read JSON and upload directly
1034
+ json_data = json.load(requests_file)
1035
+ await self._upload_json_data(json_data, url)
1036
+
1037
+ # Handle consumer - either file path (str) or file object
1038
+ if isinstance(consumer, str):
1039
+ with open(consumer, 'rb') as f:
1040
+ consumer_content = f.read()
1041
+ else:
1042
+ # Assume it's a file object
1043
+ consumer_content = consumer.read()
1044
+
1045
+ form = aiohttp.FormData()
1046
+ form.add_field('output', output)
1047
+ form.add_field('force_loc', str(force_loc).lower())
1048
+ form.add_field('skip_existing', str(skip_existing).lower())
1049
+
1050
+ if server is not None:
1051
+ form.add_field('server', server)
1052
+
1053
+ form.add_field('extra', json.dumps(extra or {}))
1054
+ form.add_field('folder', folder)
1055
+ form.add_field(
1056
+ 'consumer',
1057
+ consumer_content,
1058
+ filename='consumer.py',
1059
+ content_type='text/x-python'
1060
+ )
1047
1061
 
1048
1062
  response, status = await self._client._terrakio_request(
1049
1063
  "POST",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: terrakio-core
3
- Version: 0.4.98.1b7
3
+ Version: 0.4.98.1b8
4
4
  Summary: Core package for the terrakio-python-api
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: aiofiles>=24.1.0
@@ -11,13 +11,13 @@ terrakio_core/convenience_functions/zonal_stats.py,sha256=7PI--RI0hiF1pzZ7_7hqty
11
11
  terrakio_core/endpoints/auth.py,sha256=5WvAO39aLsbJAVtxISwiOZseKr3B9I5tHjamPRehDBQ,8327
12
12
  terrakio_core/endpoints/dataset_management.py,sha256=jpwftiKOI59NhXXypqm6wtILIkfyjy9NfYifRIvhZS0,16791
13
13
  terrakio_core/endpoints/group_management.py,sha256=V0KOGTXwmePBFeym55G_m3ONR-jVj2IU4OVLiL5UKz4,15869
14
- terrakio_core/endpoints/mass_stats.py,sha256=6BVD6aVXcG9t-yOjPyTpwsNM5ScoYCAYnoUWl76Cqdw,41460
14
+ terrakio_core/endpoints/mass_stats.py,sha256=6RFKR2qjz8uawA1Hb10yIX6bbr-D5dnhSN6uW8Ak8gI,42032
15
15
  terrakio_core/endpoints/model_management.py,sha256=tvJ4BOBsyXKKH430byGH25CkLIzXWgxaPaL0CvL8_0Y,51341
16
16
  terrakio_core/endpoints/space_management.py,sha256=YWb55nkJnFJGlALJ520DvurxDqVqwYtsvqQPWzxzhDs,2266
17
17
  terrakio_core/endpoints/user_management.py,sha256=L_g4ysrh2xyz_JbObUU_tCxgHxisrDUPntWgQOs15GE,7709
18
18
  terrakio_core/helper/bounded_taskgroup.py,sha256=wiTH10jhKZgrsgrFUNG6gig8bFkUEPHkGRT2XY7Rgmo,677
19
19
  terrakio_core/helper/decorators.py,sha256=L6om7wmWNgCei3Wy5U0aZ-70OzsCwclkjIf7SfQuhCg,2289
20
20
  terrakio_core/helper/tiles.py,sha256=lcLCO6KiP05lCI9vngo3zCZJ6Z9C0pUxHSQS4H58EHc,2699
21
- terrakio_core-0.4.98.1b7.dist-info/METADATA,sha256=TRow24aLBbKOYmCNkUOO2V7qMlhqC5s2HS2lfgIyMqA,1184
22
- terrakio_core-0.4.98.1b7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
- terrakio_core-0.4.98.1b7.dist-info/RECORD,,
21
+ terrakio_core-0.4.98.1b8.dist-info/METADATA,sha256=Akksg8XAe3QgpcEBKsMCAK2wLw10Q3ds7XNWq3lWIEY,1184
22
+ terrakio_core-0.4.98.1b8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
+ terrakio_core-0.4.98.1b8.dist-info/RECORD,,