plato-sdk-v2 2.8.4__py3-none-any.whl → 2.8.6__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.
Files changed (30) hide show
  1. plato/_generated/__init__.py +1 -1
  2. plato/_generated/api/v1/session/__init__.py +2 -0
  3. plato/_generated/api/v1/session/upload_review_screenshot.py +74 -0
  4. plato/_generated/api/v1/testcases/__init__.py +2 -0
  5. plato/_generated/api/v1/testcases/assign_testcases_to_work_order_item.py +74 -0
  6. plato/_generated/api/v2/__init__.py +2 -0
  7. plato/_generated/api/v2/jobs/__init__.py +4 -0
  8. plato/_generated/api/v2/jobs/heartbeat.py +69 -0
  9. plato/_generated/api/v2/jobs/rdp_url.py +93 -0
  10. plato/_generated/api/v2/releases/__init__.py +2 -0
  11. plato/_generated/api/v2/releases/deploy.py +6 -6
  12. plato/_generated/api/v2/releases/get.py +8 -8
  13. plato/_generated/api/v2/releases/prep_release_assigned_testcases.py +6 -6
  14. plato/_generated/api/v2/releases/prep_release_from_work_order.py +85 -0
  15. plato/_generated/api/v2/releases/update.py +6 -6
  16. plato/_generated/api/v2/sessions/__init__.py +2 -0
  17. plato/_generated/api/v2/sessions/get_rdp_url.py +87 -0
  18. plato/_generated/api/v2/work_orders/__init__.py +19 -0
  19. plato/_generated/api/v2/work_orders/archive_work_order.py +81 -0
  20. plato/_generated/api/v2/work_orders/archive_work_order_item.py +81 -0
  21. plato/_generated/api/v2/work_orders/create_work_order.py +76 -0
  22. plato/_generated/api/v2/work_orders/create_work_order_item.py +81 -0
  23. plato/_generated/api/v2/work_orders/get_work_order.py +75 -0
  24. plato/_generated/api/v2/work_orders/list_work_orders.py +80 -0
  25. plato/_generated/models/__init__.py +274 -7
  26. plato/v2/sync/sandbox.py +17 -5
  27. {plato_sdk_v2-2.8.4.dist-info → plato_sdk_v2-2.8.6.dist-info}/METADATA +1 -1
  28. {plato_sdk_v2-2.8.4.dist-info → plato_sdk_v2-2.8.6.dist-info}/RECORD +30 -17
  29. {plato_sdk_v2-2.8.4.dist-info → plato_sdk_v2-2.8.6.dist-info}/WHEEL +0 -0
  30. {plato_sdk_v2-2.8.4.dist-info → plato_sdk_v2-2.8.6.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
- # filename: tmp2hcn27e0.json
3
- # timestamp: 2026-01-29T22:45:52+00:00
2
+ # filename: tmp97yexy9o.json
3
+ # timestamp: 2026-02-02T07:59:03+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -209,6 +209,7 @@ class ArtifactFullDetails(BaseModel):
209
209
  memory_manifest_id: Annotated[str | None, Field(title="Memory Manifest Id")] = None
210
210
  disk_manifest_id: Annotated[str | None, Field(title="Disk Manifest Id")] = None
211
211
  snapshotted_at: Annotated[AwareDatetime | None, Field(title="Snapshotted At")] = None
212
+ provider: Annotated[str | None, Field(title="Provider")] = "firecracker"
212
213
  created_at: Annotated[AwareDatetime, Field(title="Created At")]
213
214
 
214
215
 
@@ -253,6 +254,14 @@ class AssignTestCaseToOrganizationsRequest(BaseModel):
253
254
  requested_recording_count: Annotated[int | None, Field(title="Requested Recording Count")] = 1
254
255
 
255
256
 
257
+ class AssignToWorkOrderItemRequest(BaseModel):
258
+ model_config = ConfigDict(
259
+ extra="allow",
260
+ )
261
+ test_case_public_ids: Annotated[list[str], Field(title="Test Case Public Ids")]
262
+ work_order_item_public_id: Annotated[str, Field(title="Work Order Item Public Id")]
263
+
264
+
256
265
  class AssignmentStage(Enum):
257
266
  needs_labelling = "needs_labelling"
258
267
  needs_recording = "needs_recording"
@@ -439,6 +448,16 @@ class BodyUploadChronosPackage(BaseModel):
439
448
  sdist_file: Annotated[bytes, Field(title="Sdist File")]
440
449
 
441
450
 
451
+ class BodyUploadReviewScreenshot(BaseModel):
452
+ model_config = ConfigDict(
453
+ extra="allow",
454
+ )
455
+ screenshot_file: Annotated[bytes, Field(title="Screenshot File")]
456
+ simulator_name: Annotated[str, Field(title="Simulator Name")]
457
+ artifact_id: Annotated[str, Field(title="Artifact Id")]
458
+ index: Annotated[int, Field(title="Index")]
459
+
460
+
442
461
  class BulkArchiveTestCasesRequest(BaseModel):
443
462
  model_config = ConfigDict(
444
463
  extra="allow",
@@ -955,6 +974,11 @@ class CreateTestCaseFromLabelsRequest(BaseModel):
955
974
  test_case_name: Annotated[str, Field(title="Test Case Name")]
956
975
 
957
976
 
977
+ class Provider(Enum):
978
+ firecracker = "firecracker"
979
+ qemu = "qemu"
980
+
981
+
958
982
  class CreateVMResponse(BaseModel):
959
983
  model_config = ConfigDict(
960
984
  extra="allow",
@@ -985,6 +1009,24 @@ class CreateVMResponse(BaseModel):
985
1009
  """
986
1010
 
987
1011
 
1012
+ class CreateWorkOrderItemRequest(BaseModel):
1013
+ model_config = ConfigDict(
1014
+ extra="allow",
1015
+ )
1016
+ simulator: Annotated[str, Field(title="Simulator")]
1017
+ scoring_type: Annotated[str, Field(title="Scoring Type")]
1018
+ description: Annotated[str, Field(title="Description")]
1019
+ requested: Annotated[int, Field(title="Requested")]
1020
+
1021
+
1022
+ class CreateWorkOrderRequest(BaseModel):
1023
+ model_config = ConfigDict(
1024
+ extra="allow",
1025
+ )
1026
+ name: Annotated[str, Field(title="Name")]
1027
+ organization_id: Annotated[int | None, Field(title="Organization Id")] = None
1028
+
1029
+
988
1030
  class DatabaseIgnoreConfig(BaseModel):
989
1031
  model_config = ConfigDict(
990
1032
  extra="allow",
@@ -1159,11 +1201,9 @@ class EnvFromArtifact(BaseModel):
1159
1201
 
1160
1202
 
1161
1203
  class RootfsStorageBackend(Enum):
1162
- sparse_s3 = "sparse-s3"
1163
1204
  blockdiff = "blockdiff"
1164
1205
  blockdiff_checkpoint = "blockdiff_checkpoint"
1165
1206
  blockdiff_disk = "blockdiff_disk"
1166
- snapshot_store = "snapshot-store"
1167
1207
 
1168
1208
 
1169
1209
  class EnvFromSimulator(BaseModel):
@@ -1837,6 +1877,20 @@ class NodeBuildConfig(BaseModel):
1837
1877
  """
1838
1878
  Default VM image URL with tag (e.g., 'ecr-url/repo:tag').
1839
1879
  """
1880
+ ecr_enabled: Annotated[bool | None, Field(title="Ecr Enabled")] = True
1881
+ """
1882
+ Enable ECR for image pulls. Set to False to use local images.
1883
+ """
1884
+
1885
+
1886
+ class NodeFeatureFlagsConfig(BaseModel):
1887
+ model_config = ConfigDict(
1888
+ extra="allow",
1889
+ )
1890
+ enable_legacy_matcher_keys: Annotated[bool | None, Field(title="Enable Legacy Matcher Keys")] = True
1891
+ """
1892
+ Enable backwards-compat legacy Redis keys in ResourceMatcher.
1893
+ """
1840
1894
 
1841
1895
 
1842
1896
  class NodeInstance(BaseModel):
@@ -1879,6 +1933,81 @@ class NodePolicyConfig(BaseModel):
1879
1933
  """
1880
1934
 
1881
1935
 
1936
+ class MigrationUriScheme(Enum):
1937
+ file = "file"
1938
+ exec = "exec"
1939
+
1940
+
1941
+ class NodeQemuConfig(BaseModel):
1942
+ model_config = ConfigDict(
1943
+ extra="allow",
1944
+ )
1945
+ qemu_bin: Annotated[str | None, Field(title="Qemu Bin")] = (
1946
+ "/opt/plato/storage/resources/qemu-9.2/bin/qemu-system-x86_64"
1947
+ )
1948
+ """
1949
+ Path to qemu-system-x86_64 binary.
1950
+ """
1951
+ cpu_model: Annotated[str | None, Field(title="Cpu Model")] = "Broadwell-noTSX"
1952
+ """
1953
+ QEMU CPU model to use for compatibility across hosts.
1954
+ """
1955
+ machine: Annotated[str | None, Field(title="Machine")] = "pc-q35-9.2"
1956
+ """
1957
+ QEMU machine type (versioned for Windows compatibility).
1958
+ """
1959
+ runtime_root: Annotated[str | None, Field(title="Runtime Root")] = "/opt/plato/storage/qemu"
1960
+ """
1961
+ Runtime directory for QEMU state (QMP sockets, RAM files, SSH keys).
1962
+ """
1963
+ windows_base_image: Annotated[str | None, Field(title="Windows Base Image")] = (
1964
+ "/opt/plato/storage/qemu-builds/rootfs/windows.qcow2"
1965
+ )
1966
+ """
1967
+ Base Windows QCOW2 image path for QEMU.
1968
+ """
1969
+ windows_overlay_root: Annotated[str | None, Field(title="Windows Overlay Root")] = (
1970
+ "/opt/plato/storage/qemu-overlays"
1971
+ )
1972
+ """
1973
+ Directory for per-VM QEMU QCOW2 overlays.
1974
+ """
1975
+ ovmf_code_path: Annotated[str | None, Field(title="Ovmf Code Path")] = (
1976
+ "/opt/plato/storage/qemu-builds/rootfs/OVMF_CODE_4M.fd"
1977
+ )
1978
+ """
1979
+ OVMF CODE firmware path for Windows UEFI boot.
1980
+ """
1981
+ ovmf_vars_template_path: Annotated[str | None, Field(title="Ovmf Vars Template Path")] = (
1982
+ "/opt/plato/storage/qemu-builds/rootfs/OVMF_VARS.fd"
1983
+ )
1984
+ """
1985
+ OVMF VARS template path (copied per VM).
1986
+ """
1987
+ ovmf_vars_root: Annotated[str | None, Field(title="Ovmf Vars Root")] = "/opt/plato/storage/qemu/ovmf"
1988
+ """
1989
+ Directory for per-VM OVMF VARS files.
1990
+ """
1991
+ windows_ssh_private_key: Annotated[str | None, Field(title="Windows Ssh Private Key")] = None
1992
+ """
1993
+ Windows SSH private key content for VM SSH commands.
1994
+ """
1995
+ windows_ssh_public_key: Annotated[str | None, Field(title="Windows Ssh Public Key")] = None
1996
+ """
1997
+ Windows SSH public key content for VM SSH commands.
1998
+ """
1999
+ windows_ssh_user: Annotated[str | None, Field(title="Windows Ssh User")] = "plato"
2000
+ """
2001
+ Windows SSH username for VM SSH readiness checks and commands.
2002
+ """
2003
+ migration_uri_scheme: Annotated[MigrationUriScheme | None, Field(title="Migration Uri Scheme")] = (
2004
+ MigrationUriScheme.file
2005
+ )
2006
+ """
2007
+ QEMU migration URI scheme: 'file' for direct file I/O, 'exec' for piped commands.
2008
+ """
2009
+
2010
+
1882
2011
  class NodeRedisConfig(BaseModel):
1883
2012
  model_config = ConfigDict(
1884
2013
  extra="allow",
@@ -2205,6 +2334,20 @@ class PrepAssignedTestcasesRequest(BaseModel):
2205
2334
  """
2206
2335
 
2207
2336
 
2337
+ class PrepFromWorkOrderRequest(BaseModel):
2338
+ model_config = ConfigDict(
2339
+ extra="allow",
2340
+ )
2341
+ work_order_public_id: Annotated[str, Field(title="Work Order Public Id")]
2342
+ """
2343
+ Work order public ID to prep from
2344
+ """
2345
+ testcase_public_ids: Annotated[list[str], Field(title="Testcase Public Ids")]
2346
+ """
2347
+ List of testcase public UUIDs to include
2348
+ """
2349
+
2350
+
2208
2351
  class ProxyMutationListenerConfig(BaseModel):
2209
2352
  model_config = ConfigDict(
2210
2353
  extra="allow",
@@ -2257,6 +2400,24 @@ class PublicUrlResult(BaseModel):
2257
2400
  """
2258
2401
 
2259
2402
 
2403
+ class RdpUrlResult(BaseModel):
2404
+ model_config = ConfigDict(
2405
+ extra="allow",
2406
+ )
2407
+ job_id: Annotated[str, Field(title="Job Id")]
2408
+ """
2409
+ Job public ID
2410
+ """
2411
+ url: Annotated[str | None, Field(title="Url")] = None
2412
+ """
2413
+ RDP viewer URL: {job_id}.sims.plato.so/_plato_rdp/
2414
+ """
2415
+ error: Annotated[str | None, Field(title="Error")] = None
2416
+ """
2417
+ Error message if failed
2418
+ """
2419
+
2420
+
2260
2421
  class ReasoningLevel(Enum):
2261
2422
  level_1 = "level_1"
2262
2423
  level_2 = "level_2"
@@ -2795,7 +2956,7 @@ class SimReviewComment(BaseModel):
2795
2956
  extra="allow",
2796
2957
  )
2797
2958
  comment: Annotated[str, Field(title="Comment")]
2798
- s3_path: Annotated[str, Field(title="S3 Path")]
2959
+ s3_path: Annotated[str | None, Field(title="S3 Path")] = None
2799
2960
 
2800
2961
 
2801
2962
  class SimStatusHistory(BaseModel):
@@ -3203,6 +3364,31 @@ class TestCaseSetCreateRequest(BaseModel):
3203
3364
  icon: Annotated[str, Field(title="Icon")]
3204
3365
 
3205
3366
 
3367
+ class TestCaseStatusEnum(Enum):
3368
+ uploaded = "uploaded"
3369
+ qa_in_progress = "qa_in_progress"
3370
+ self_rejected = "self_rejected"
3371
+ self_approved = "self_approved"
3372
+ submitted = "submitted"
3373
+ client_rejected = "client_rejected"
3374
+ client_approved = "client_approved"
3375
+
3376
+
3377
+ class TestCaseStatusResponse(BaseModel):
3378
+ model_config = ConfigDict(
3379
+ extra="allow",
3380
+ )
3381
+ public_id: Annotated[str, Field(title="Public Id")]
3382
+ status: TestCaseStatusEnum
3383
+ test_case_public_id: Annotated[str, Field(title="Test Case Public Id")]
3384
+ test_case_name: Annotated[str | None, Field(title="Test Case Name")] = None
3385
+ release_public_id: Annotated[str | None, Field(title="Release Public Id")] = None
3386
+ release_name: Annotated[str | None, Field(title="Release Name")] = None
3387
+ is_archived: Annotated[bool, Field(title="Is Archived")]
3388
+ created_at: Annotated[AwareDatetime, Field(title="Created At")]
3389
+ updated_at: Annotated[AwareDatetime, Field(title="Updated At")]
3390
+
3391
+
3206
3392
  class UpdateAnnotatorAssignmentStageRequest(BaseModel):
3207
3393
  model_config = ConfigDict(
3208
3394
  extra="allow",
@@ -3647,6 +3833,57 @@ class WaitStep(BaseModel):
3647
3833
  """
3648
3834
 
3649
3835
 
3836
+ WorkOrderItemMetadata = CreateWorkOrderItemRequest
3837
+
3838
+
3839
+ class WorkOrderItemResponse(BaseModel):
3840
+ model_config = ConfigDict(
3841
+ extra="allow",
3842
+ )
3843
+ public_id: Annotated[str, Field(title="Public Id")]
3844
+ metadata: WorkOrderItemMetadata | None = None
3845
+ is_archived: Annotated[bool, Field(title="Is Archived")]
3846
+ created_at: Annotated[AwareDatetime, Field(title="Created At")]
3847
+ updated_at: Annotated[AwareDatetime, Field(title="Updated At")]
3848
+
3849
+
3850
+ class WorkOrderItemWithStatusesResponse(BaseModel):
3851
+ model_config = ConfigDict(
3852
+ extra="allow",
3853
+ )
3854
+ public_id: Annotated[str, Field(title="Public Id")]
3855
+ metadata: WorkOrderItemMetadata | None = None
3856
+ is_archived: Annotated[bool, Field(title="Is Archived")]
3857
+ testcase_statuses: Annotated[list[TestCaseStatusResponse], Field(title="Testcase Statuses")]
3858
+ created_at: Annotated[AwareDatetime, Field(title="Created At")]
3859
+ updated_at: Annotated[AwareDatetime, Field(title="Updated At")]
3860
+
3861
+
3862
+ class WorkOrderResponse(BaseModel):
3863
+ model_config = ConfigDict(
3864
+ extra="allow",
3865
+ )
3866
+ public_id: Annotated[str, Field(title="Public Id")]
3867
+ name: Annotated[str, Field(title="Name")]
3868
+ organization_id: Annotated[int, Field(title="Organization Id")]
3869
+ is_archived: Annotated[bool, Field(title="Is Archived")]
3870
+ created_at: Annotated[AwareDatetime, Field(title="Created At")]
3871
+ updated_at: Annotated[AwareDatetime, Field(title="Updated At")]
3872
+
3873
+
3874
+ class WorkOrderWithItemsResponse(BaseModel):
3875
+ model_config = ConfigDict(
3876
+ extra="allow",
3877
+ )
3878
+ public_id: Annotated[str, Field(title="Public Id")]
3879
+ name: Annotated[str, Field(title="Name")]
3880
+ organization_id: Annotated[int, Field(title="Organization Id")]
3881
+ is_archived: Annotated[bool, Field(title="Is Archived")]
3882
+ items: Annotated[list[WorkOrderItemWithStatusesResponse], Field(title="Items")]
3883
+ created_at: Annotated[AwareDatetime, Field(title="Created At")]
3884
+ updated_at: Annotated[AwareDatetime, Field(title="Updated At")]
3885
+
3886
+
3650
3887
  class WorkerReadyResponse(BaseModel):
3651
3888
  model_config = ConfigDict(
3652
3889
  extra="allow",
@@ -4372,11 +4609,15 @@ class EnvFromResource(BaseModel):
4372
4609
  """
4373
4610
  Custom name for this environment
4374
4611
  """
4612
+ provider: Annotated[Provider | None, Field(title="Provider")] = None
4613
+ """
4614
+ VM provider/hypervisor. Defaults to firecracker.
4615
+ """
4375
4616
  docker_image_url: Annotated[str | None, Field(title="Docker Image Url")] = None
4376
4617
  """
4377
4618
  Custom Docker image URL (ECR). If not set, uses default from settings.
4378
4619
  """
4379
- rootfs_storage_backend: Annotated[RootfsStorageBackend | None, Field(title="Rootfs Storage Backend")] = None
4620
+ rootfs_storage_backend: Annotated[RootfsStorageBackend | str | None, Field(title="Rootfs Storage Backend")] = None
4380
4621
  """
4381
4622
  Storage backend for rootfs ('sparse-s3' or 'snapshot-store'). If not set, uses default.
4382
4623
  """
@@ -4562,10 +4803,18 @@ class NodeConfig(BaseModel):
4562
4803
  """
4563
4804
  Build configuration including SSH keys for VMs
4564
4805
  """
4806
+ qemu: NodeQemuConfig | None = None
4807
+ """
4808
+ QEMU configuration for worker nodes
4809
+ """
4565
4810
  session_network: NodeSessionNetworkConfig | None = None
4566
4811
  """
4567
4812
  Session network configuration for WireGuard-based VM-to-VM networking
4568
4813
  """
4814
+ feature_flags: NodeFeatureFlagsConfig | None = None
4815
+ """
4816
+ Feature flags for controlled rollout and rollback
4817
+ """
4569
4818
 
4570
4819
 
4571
4820
  class QueueStatusResponse(BaseModel):
@@ -4581,11 +4830,25 @@ class QueueStatusResponse(BaseModel):
4581
4830
  resource_breakdown: Annotated[list[ResourceBreakdown], Field(title="Resource Breakdown")]
4582
4831
 
4583
4832
 
4833
+ class RdpUrlResponse(BaseModel):
4834
+ model_config = ConfigDict(
4835
+ extra="allow",
4836
+ )
4837
+ session_id: Annotated[str, Field(title="Session Id")]
4838
+ """
4839
+ Session ID
4840
+ """
4841
+ results: Annotated[dict[str, RdpUrlResult] | None, Field(title="Results")] = None
4842
+ """
4843
+ RDP URL results per job_id
4844
+ """
4845
+
4846
+
4584
4847
  class ReleaseResponse(BaseModel):
4585
4848
  model_config = ConfigDict(
4586
4849
  extra="allow",
4587
4850
  )
4588
- id: Annotated[int, Field(title="Id")]
4851
+ public_id: Annotated[str, Field(title="Public Id")]
4589
4852
  organization_id: Annotated[int, Field(title="Organization Id")]
4590
4853
  datapack: Annotated[str, Field(title="Datapack")]
4591
4854
  version: Annotated[str, Field(title="Version")]
@@ -4990,6 +5253,10 @@ class CreateVMRequest(BaseModel):
4990
5253
  """
4991
5254
  Max amount of time the sandbox will be available for
4992
5255
  """
5256
+ provider: Annotated[Provider | None, Field(title="Provider")] = None
5257
+ """
5258
+ VM provider to use. Defaults to 'firecracker'. Use 'qemu' for Windows VMs.
5259
+ """
4993
5260
 
4994
5261
 
4995
5262
  class JobListResponse(BaseModel):
plato/v2/sync/sandbox.py CHANGED
@@ -595,12 +595,18 @@ class SandboxClient:
595
595
  if not dataset_config.compute:
596
596
  raise ValueError(f"Compute configuration is required for dataset '{dataset}'")
597
597
  self.console.print(f"simulator_name: {simulator_name}")
598
+ # Save compute values for state (will be used later when saving state.json)
599
+ config_cpus = dataset_config.compute.cpus
600
+ config_memory = dataset_config.compute.memory
601
+ config_disk = dataset_config.compute.disk
602
+ config_app_port = dataset_config.compute.app_port
603
+ config_messaging_port = dataset_config.compute.plato_messaging_port
598
604
  sim_config = SimConfigCompute(
599
- cpus=dataset_config.compute.cpus,
600
- memory=dataset_config.compute.memory,
601
- disk=dataset_config.compute.disk,
602
- app_port=dataset_config.compute.app_port,
603
- plato_messaging_port=dataset_config.compute.plato_messaging_port,
605
+ cpus=config_cpus,
606
+ memory=config_memory,
607
+ disk=config_disk,
608
+ app_port=config_app_port,
609
+ plato_messaging_port=config_messaging_port,
604
610
  )
605
611
  env_config = Env.resource(simulator_name, sim_config)
606
612
  self.console.print(f"env_config: {env_config}")
@@ -723,6 +729,12 @@ class SandboxClient:
723
729
  sandbox_state.disk = disk
724
730
  sandbox_state.app_port = app_port
725
731
  sandbox_state.messaging_port = messaging_port
732
+ elif mode == "config":
733
+ sandbox_state.cpus = config_cpus
734
+ sandbox_state.memory = config_memory
735
+ sandbox_state.disk = config_disk
736
+ sandbox_state.app_port = config_app_port
737
+ sandbox_state.messaging_port = config_messaging_port
726
738
 
727
739
  # Save state to working_dir/.plato/state.json
728
740
  with open(self.working_dir / self.PLATO_DIR / "state.json", "w") as f:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plato-sdk-v2
3
- Version: 2.8.4
3
+ Version: 2.8.6
4
4
  Summary: Python SDK for the Plato API
5
5
  Author-email: Plato <support@plato.so>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  plato/__init__.py,sha256=a9E0KS1602GWHHStnf7wDEuvPCvh2GpPh0Sf8oKZx5Q,1795
2
2
  plato/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- plato/_generated/__init__.py,sha256=finH7i7IrCbUnu4ussJ7wY_duPHgclocRcijeXEUVi8,738
3
+ plato/_generated/__init__.py,sha256=QYMNzMRKMtV-VVoZAH6LWQGUdf0juNNaYQNUoUf_DtU,738
4
4
  plato/_generated/client.py,sha256=_oMKXyAShQVddCaIKnfB2zPkRsDlCwLp-N3RFoKq_v8,5489
5
5
  plato/_generated/errors.py,sha256=goTGrZ4rrujGZ-BoOonoyaGwdGDkGO6GyeubIkQVv9E,4197
6
6
  plato/_generated/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -111,7 +111,7 @@ plato/_generated/api/v1/sandbox/save_vm_snapshot.py,sha256=wfWzp2VBeHBF3hKTasqdS
111
111
  plato/_generated/api/v1/sandbox/setup_root_access.py,sha256=hPW3u9GWaFm4gULuH2iC1kSWoH2lhY3E1_D4qRWcLFU,2008
112
112
  plato/_generated/api/v1/sandbox/setup_sandbox.py,sha256=DkzLAY_acbagPYtPHqPxJdgTUZE_7lTtBmaEW9YgHk0,2169
113
113
  plato/_generated/api/v1/sandbox/start_worker.py,sha256=nfjObhFEGSb5gmAK8tqPlC9IhzOVjs2CkMSYjTRICnI,2052
114
- plato/_generated/api/v1/session/__init__.py,sha256=XkkUPTNhgm3qRR23H2pgcxWnmlWuxLHs6KXCuT076RU,1607
114
+ plato/_generated/api/v1/session/__init__.py,sha256=hNGAXxYbyKb4JsYZFGmWaZTwYF-lZ0_GrSk79t16x38,1669
115
115
  plato/_generated/api/v1/session/analyze_labels.py,sha256=OHRpccGhynNC8H41adWfJszYFOKe_R1_8I848nS6VAU,1513
116
116
  plato/_generated/api/v1/session/archive_session.py,sha256=cJWM7JzekJAIQ7Q_Hr8pt9URYUMZIPr_rbLR2d63Fpo,1504
117
117
  plato/_generated/api/v1/session/archive_session_logs_endpoint.py,sha256=j7d3m0hse-ghtGMyszrTp1_i3H-YCvGh007qa4DovvA,1855
@@ -140,6 +140,7 @@ plato/_generated/api/v1/session/search_sessions_by_ids.py,sha256=RfUspRSaOLK-qSk
140
140
  plato/_generated/api/v1/session/set_session_output.py,sha256=_mXwOl0ZaYPkLS6gEiU0lKnITi-Slg0VpfW1UrXZRZ0,2385
141
141
  plato/_generated/api/v1/session/update_session_public.py,sha256=Gcktmo61k5kprmCfj0ldvDWYgHLZbW11SWCph8cO1-M,1806
142
142
  plato/_generated/api/v1/session/update_session_testcase.py,sha256=7qYLLwPUlwPLFMz2HhgeMDw-f2b4vDmmWJxc7d_HlDU,1822
143
+ plato/_generated/api/v1/session/upload_review_screenshot.py,sha256=_Pa1kUmj1FouUK9TiNTzNivM3MMQNOAeTVZ9S7Juihw,1987
143
144
  plato/_generated/api/v1/simulator/__init__.py,sha256=41k5qpmw9wXyEANs_fPFua4qjewHJjHnrHQlRahT61M,1269
144
145
  plato/_generated/api/v1/simulator/add_simulator_review.py,sha256=Be-Lhtxi0MOW1ltXdEWBX-7XZ8cZDGF_ZpDOtJhSW-c,1977
145
146
  plato/_generated/api/v1/simulator/batch_create_test_cases.py,sha256=JTwVNb6xVrKAyg2r63hUHZsfmjMClQ-74xDlV8MR3LA,2397
@@ -164,11 +165,12 @@ plato/_generated/api/v1/simulator/register.py,sha256=qF1ZVemO4k231__POQYryh8BIPX
164
165
  plato/_generated/api/v1/simulator/update_simulator.py,sha256=-hKZMWgPYgqHoaz6nqPbK55H1ndBLwT99sPM1bB7LjY,1950
165
166
  plato/_generated/api/v1/simulator/update_simulator_status.py,sha256=ctk4WbcRR59h08pbecRSLi3A-p0EPK_UrrOrX1gqSuA,2481
166
167
  plato/_generated/api/v1/simulator/update_tag.py,sha256=RKGTY8KQtV-V7kYHLI5QvQ-jYHpEf-_JeiamdGGWnlA,1972
167
- plato/_generated/api/v1/testcases/__init__.py,sha256=jeq2TY7sypDWcWYK01PIRZEfEDhi17oGauDPrEr-8l8,2007
168
+ plato/_generated/api/v1/testcases/__init__.py,sha256=UX9BDl-zTc2-Kk9-G-Kd_dh_IrTts2rjg4PDHghCK1E,2091
168
169
  plato/_generated/api/v1/testcases/archive_organization_test_case_assignments.py,sha256=LeshuSh1VC4lSxdpQYqGAA7QxoRQL271WHCA3asSyOg,1951
169
170
  plato/_generated/api/v1/testcases/archive_organization_testcase.py,sha256=zihFhzeM-f8a03b9WWNt3E2Bb7XxP0-RnEhUWj2c-Nk,1749
170
171
  plato/_generated/api/v1/testcases/archive_testcase.py,sha256=rPqk5V1Rg-OTH9TV6ZRXcl9h7utnej0JQFgKs7yGaPo,1451
171
172
  plato/_generated/api/v1/testcases/assign_testcase_to_organizations.py,sha256=5b9mlwQAkPKdR50NM2GxE4oiNIKJakxkyKS9ba-qurw,1835
173
+ plato/_generated/api/v1/testcases/assign_testcases_to_work_order_item.py,sha256=AEpCgQiRxlU_h6XQROG2d54YuvtHISa5eKfM5yX3mjU,1971
172
174
  plato/_generated/api/v1/testcases/auto_verify_testcase.py,sha256=nY-jSeF4tKPfQYwnj1CFY7u-miTSh9Iv0tAAmo3Pa_s,2484
173
175
  plato/_generated/api/v1/testcases/bulk_archive_testcases.py,sha256=tILQ8y1G-lcdIXEzvqIfOqCZ8DWHsYX_KM1L7vhIL9w,1683
174
176
  plato/_generated/api/v1/testcases/convert_text_to_structured_data.py,sha256=HW_TYmUD53VKCILQzjKfsusgWIymOcFOklZFnGjQizE,1833
@@ -195,7 +197,7 @@ plato/_generated/api/v1/testcases/get_testcases_in_set.py,sha256=TJK2KHmGC5lNmBP
195
197
  plato/_generated/api/v1/testcases/mark_organization_test_case_completed.py,sha256=bbtE5PWIA9X0EkyrSXE8YN0gp6x6sfno0rc02AK_-l0,1521
196
198
  plato/_generated/api/v1/testcases/update_testcase.py,sha256=-kTW31ioDzQvr2AmOv9gHL7jN6K9qhGyjnJfNHETwhA,1699
197
199
  plato/_generated/api/v1/testcases/version_bump_testcase.py,sha256=r3qz7DibOQTKmoG0CrPWX_WItgDyOoh5B2H4degsRcU,1719
198
- plato/_generated/api/v2/__init__.py,sha256=xYI4fuWsnsRC_MpXovFVEVLpfMLpsBKb0bk0s97npB8,400
200
+ plato/_generated/api/v2/__init__.py,sha256=Fl4GQGIoGw1EVtzzxZFS-kN_fGiQLTHMEuxEtYnTxXs,436
199
201
  plato/_generated/api/v2/admin/__init__.py,sha256=oG04_jDy9fXGI57RlfTPW4sAuksQRbk6K1eQVRJM9b4,75
200
202
  plato/_generated/api/v2/admin/cache/__init__.py,sha256=J4n6hcl447_EGGwT4aNNqNt7BnkJgIPwykgBeWrBWSA,224
201
203
  plato/_generated/api/v2/admin/cache/clear_all.py,sha256=ylnoqQpxJkiOgcAKn2N3e8bRaPCUx22ghmPDsMFGBo4,1883
@@ -223,7 +225,7 @@ plato/_generated/api/v2/chronos_packages/register_chronos_package.py,sha256=Vq_Z
223
225
  plato/_generated/api/v2/chronos_packages/upload_chronos_package.py,sha256=4-AdSJbJq7yTMZeBhiii0ydkUHFBTFgsAzEil2qXgtI,3377
224
226
  plato/_generated/api/v2/cluster/__init__.py,sha256=2cOAV1bBnOXSfHYAtw55Ea76eg6hXzjzJu8Qmw3hxkw,90
225
227
  plato/_generated/api/v2/cluster/get_node_config.py,sha256=MAJ6gp-HSGHvNFWjQWuiBQgoxm0cey4QbGCIr_9UX9U,2253
226
- plato/_generated/api/v2/jobs/__init__.py,sha256=sURY_p2UNeWBEfmwltwFgBbGUyzJygKqY2fZS7MaoOE,673
228
+ plato/_generated/api/v2/jobs/__init__.py,sha256=PCY9Vf9w5lmh8_BdziJUCAZku5bqLLmKPKIXYQKNosc,733
227
229
  plato/_generated/api/v2/jobs/checkpoint.py,sha256=bO0GFGGAecLEqu-hk919fi0C9wwOYSvahjuNQBVxIPs,2721
228
230
  plato/_generated/api/v2/jobs/close.py,sha256=0lAYmTN4e3aOR1vHsKSovXEFP3UAwjftleHfv7dbLBU,1610
229
231
  plato/_generated/api/v2/jobs/connect_routing_info.py,sha256=eDFnbbiZ_MxW7fg9xwucn6OdiZ0LxccQs0XvABpAtz0,1909
@@ -232,9 +234,11 @@ plato/_generated/api/v2/jobs/disk_snapshot.py,sha256=vmhP5IhyKe6zcX4RXAlr6L8Z__G
232
234
  plato/_generated/api/v2/jobs/execute.py,sha256=meQbTSOyYFF2yLyTmVtr5VExb8JP4PKt8WPmV-lPevc,1915
233
235
  plato/_generated/api/v2/jobs/get_flows.py,sha256=6Fk43liFo92lEFSqV4P3QzOjIu6MA18L1yGlLNzeEPM,2205
234
236
  plato/_generated/api/v2/jobs/get_plato_config.py,sha256=oAYcVMditpd4l3_dB63ibBMOPxXcdD67J2pb2jkkuMI,2346
237
+ plato/_generated/api/v2/jobs/heartbeat.py,sha256=SvKoAo-re2T1kUDtCO25yAC-7zQQ16AXgWhIJnWajYQ,1688
235
238
  plato/_generated/api/v2/jobs/log_for_job.py,sha256=MJtjSAScOEoIBQDz-Hl3pwJhSA8R-gugQlSZSe3pOY8,2018
236
239
  plato/_generated/api/v2/jobs/make.py,sha256=IuHvcMl7SgFfwvSLHiJUiMcwgrw8xNqWqJRqkgLqTps,2005
237
240
  plato/_generated/api/v2/jobs/public_url.py,sha256=mFdDPvc4gpd6V1DcLmq-D-ae6y1T7KcEMeoJbwQYXmI,2609
241
+ plato/_generated/api/v2/jobs/rdp_url.py,sha256=uDBTKCrDGGRNiXu7YJJxqy_R6BPBOmd-LqqtAeoHD9c,2259
238
242
  plato/_generated/api/v2/jobs/reset.py,sha256=PNlax_Wj2NTOoyEvb6O1YPeo8eOYJERk_dLncSYuo84,1827
239
243
  plato/_generated/api/v2/jobs/set_date.py,sha256=jxE1XaVAoUtf6CuKDMCOgh9swLmOgRyRrHCkqXc8fnk,2234
240
244
  plato/_generated/api/v2/jobs/setup_sandbox.py,sha256=e7DvGMNEYBrJXzwzG68m3b_zgHYjXMWM9iHVTCcLv3M,2835
@@ -257,16 +261,17 @@ plato/_generated/api/v2/pypi/get_package_schema.py,sha256=-3JA_M7WEQ4TvwtJVLyiQp
257
261
  plato/_generated/api/v2/pypi/package_index.py,sha256=QmrJmNPYNWk7AbkbGAmbheixo8u9OarzcG5DhpqYGBs,1408
258
262
  plato/_generated/api/v2/pypi/simple_index.py,sha256=4KpE4kbudl6qWk_h_MdHukF4HISrrv_DgzRY_ahZTVg,1237
259
263
  plato/_generated/api/v2/pypi/upload_package.py,sha256=o-rnqTNZJpP4uAVH_3z-GTI3tOPKLixoIC-6E9fjwR4,1217
260
- plato/_generated/api/v2/releases/__init__.py,sha256=x65OUH6Qh-f7LHE2EMBpICKpgKJNmtl1B7PTs2De5Qw,383
264
+ plato/_generated/api/v2/releases/__init__.py,sha256=E8D3KbCvPbhUks3XOI8N4LHhgY0MXpegDKQ5DWkwRlI,453
261
265
  plato/_generated/api/v2/releases/create.py,sha256=QcgC4CHo5RZgTazFqFsWr2Q_dE4-k6CCiPqlJB1sTCQ,1752
262
- plato/_generated/api/v2/releases/deploy.py,sha256=06nP6wKmE8QvHzQuwc_ZNrIHBrn1Q2lBNl4lWHJMg8g,2097
263
- plato/_generated/api/v2/releases/get.py,sha256=DHVoBZVm51WIqLZf1-t8aATyLqRaQV_51MN2gfwxUTc,1658
266
+ plato/_generated/api/v2/releases/deploy.py,sha256=3eY_dyCn_KINvNA9gLluBin8SOBZSzU9YJJiTlbpVSo,2089
267
+ plato/_generated/api/v2/releases/get.py,sha256=Ogt_qEn9zSA0BXYR8DlXe48PhrQRYj1MtdUkzvveAXs,1664
264
268
  plato/_generated/api/v2/releases/handle_get_existing_public_ids.py,sha256=S9Z2occFx-hiFnV661Xzoo4Z9quEfoCrb2oaJzSqtJs,1482
265
269
  plato/_generated/api/v2/releases/handle_import.py,sha256=ByBl6tHDKMXD0Ic_C4jpokxLJqlNh2RPJlI5QaK-trU,1531
266
270
  plato/_generated/api/v2/releases/list_releases.py,sha256=ebNZc45ooGrKT-1lZ6mIjruTO8zwngz5G9edS6DB7lc,2149
267
- plato/_generated/api/v2/releases/prep_release_assigned_testcases.py,sha256=B171O7xqXZm1AEXGhSfPNobBsqQRINxX4gYBU-TTwEg,2668
268
- plato/_generated/api/v2/releases/update.py,sha256=aEz9dbnvRg5pAp1jkTZpwUjKxpOOn-xXktPeNVKpruI,1956
269
- plato/_generated/api/v2/sessions/__init__.py,sha256=AC6xIczdSAW34kxj7aRUG1aWMPOwK93zHA0F_bcJ4Eo,1259
271
+ plato/_generated/api/v2/releases/prep_release_assigned_testcases.py,sha256=AtunyR-5WJP4JW0Y0Lshugnrg8uJB9BcWlzVy2lAU6Y,2660
272
+ plato/_generated/api/v2/releases/prep_release_from_work_order.py,sha256=IEO9hBf4u8XBFQXUVdFk9T5Rilb4c6u1FYS4Q-Ffdh0,2345
273
+ plato/_generated/api/v2/releases/update.py,sha256=ArsCzqM9v15JXXUojNokfkgV28-ME7gCg8Cw_0YKnYA,1948
274
+ plato/_generated/api/v2/sessions/__init__.py,sha256=R_pa6vyPWiEd6aJEaWWfBJ3Jr41FElA2iw1Yv01yD7A,1295
270
275
  plato/_generated/api/v2/sessions/add_job.py,sha256=PqnYCPuOFkqJjaK5jg7O4v92La4In2pSiCI1A_OoJRQ,2792
271
276
  plato/_generated/api/v2/sessions/add_ssh_key.py,sha256=JDaw5B1hHodH43DUoZ7FrO1_ECWacjinia4-DbU0jGo,2198
272
277
  plato/_generated/api/v2/sessions/checkpoint.py,sha256=Kd8NSIeuC41cRB4Y3j_L0yNIU_WVRjkBIL72pRqoRTc,2933
@@ -278,6 +283,7 @@ plato/_generated/api/v2/sessions/execute.py,sha256=_jHXYeSsuYnOItZLdCeJ5Fxx5YNEA
278
283
  plato/_generated/api/v2/sessions/get_connect_url.py,sha256=DQgI1E6QNTFRWoruPE1Q4fRMgH8U07yxSOLE44xYUsQ,2608
279
284
  plato/_generated/api/v2/sessions/get_presigned_url.py,sha256=ETWKZBhKNH3k_uhqvVVbV-nQXzVwX3IeYsNZ7ij3_hQ,1819
280
285
  plato/_generated/api/v2/sessions/get_public_url.py,sha256=aURdxx7aq-aFkukvEBE_xa_Iqh1BgcC1kFYAmCjgsFM,2733
286
+ plato/_generated/api/v2/sessions/get_rdp_url.py,sha256=khKgj7PCRbKGSDeCC_IzMMAC6-Jc8_7-nlNxyz7g4A8,2253
281
287
  plato/_generated/api/v2/sessions/get_s3_content.py,sha256=n4g6riLIq85o3ZpSDtkFh4y4I8Gn1cJIBI4gyer3D9A,1812
282
288
  plato/_generated/api/v2/sessions/get_session_details.py,sha256=jK_cao8zJSLSjXw-VDob4mIPo0ys2FeL-mLTgp1zTBk,1580
283
289
  plato/_generated/api/v2/sessions/get_session_documents.py,sha256=6w2jT--XfgGwC6tt2UiPnEvweF8pDpvjlR9g1r8cMII,1721
@@ -300,9 +306,16 @@ plato/_generated/api/v2/sessions/upload_session_documents.py,sha256=OCWu9jYe6Ml8
300
306
  plato/_generated/api/v2/sessions/wait_for_ready.py,sha256=0PdZyn6DkRwmGZVJQMvndGcscdJmG6HBjOFTcrfPHQ4,2952
301
307
  plato/_generated/api/v2/user/__init__.py,sha256=yMh1Gn9VpKHQMQCmJdpeDPA9Ek9PBgP0nMtl8IxswO4,92
302
308
  plato/_generated/api/v2/user/get_current_user.py,sha256=tvamtbWTEkeeNUBLSPqZIcCGqKVadQM3DVcezsWP22U,1814
309
+ plato/_generated/api/v2/work_orders/__init__.py,sha256=0dTKBPovIAn9CaY55QS5pcsBvJcZ6iWt1vbx33qIm4A,359
310
+ plato/_generated/api/v2/work_orders/archive_work_order.py,sha256=H0_lklx6UhTfZIw9bRM6CDBQGSlUQduMdlD5wep-MMQ,2255
311
+ plato/_generated/api/v2/work_orders/archive_work_order_item.py,sha256=HykPNCcJfaAXlQG_Xi4XhNoIWoVlY-smQpYgfqEyWkE,2320
312
+ plato/_generated/api/v2/work_orders/create_work_order.py,sha256=IdqsUVjmpclXj4tRACg74WKbDSD4pdYCx4U2CeG1NZ0,2054
313
+ plato/_generated/api/v2/work_orders/create_work_order_item.py,sha256=T8ofnuxB4w4oncLpl4Sugz-oYAMSBP0hEDEblz6svZE,2198
314
+ plato/_generated/api/v2/work_orders/get_work_order.py,sha256=dOOTdoS_tJSoLKYlvUb8dNIPDPn1SQSStCtW0u09xZs,1981
315
+ plato/_generated/api/v2/work_orders/list_work_orders.py,sha256=buAOqkAbCma9aODSEKRt0es36oVDdv_Y4jb-EkkC668,2026
303
316
  plato/_generated/api/version/__init__.py,sha256=dQXTYrXjD1RZcvWwnlqXWAZ-eAV-V-6JSNuY7uaca7o,70
304
317
  plato/_generated/api/version/check.py,sha256=HTVNw0oi9gbvX4pOVoH4y4JywCxdl1pJTCk2PjJFwJ4,778
305
- plato/_generated/models/__init__.py,sha256=597HUbpzjUUHGONUbaS5JE4W_gjcqn7_sJDmvHkvDnc,163870
318
+ plato/_generated/models/__init__.py,sha256=i3yWG9SyRdj_mhBUIp1_BuDpmwA9aFIKbYQGCdsV070,172881
306
319
  plato/_sims_generator/__init__.py,sha256=Km4QOl9wxjQ5dgpdhk9QnBFJFFc9eq3rPbMWIQRjIn0,1602
307
320
  plato/_sims_generator/cli.py,sha256=mzolN-dxfMkVAdA-vC0esnai-cGg-i4ozOw8dACefV4,2709
308
321
  plato/_sims_generator/instruction.py,sha256=Na9M-jIdBPhp_fLuBPTicoFnWriRyi8YiZ-eQBj64HI,6644
@@ -513,7 +526,7 @@ plato/v2/sync/chronos.py,sha256=ChXpasjRzAZjoYTimpPqYydnwEk-IgdxR0SDXDOZbUM,1207
513
526
  plato/v2/sync/client.py,sha256=rsrU7_RhE-syf3FMNw5LaxmF7rYw2GBzC_TPpd-6thk,4986
514
527
  plato/v2/sync/environment.py,sha256=WnDzbyEHpwCSEP8XnfNSjIYS7rt7lYR4HGJjzprZmTQ,5066
515
528
  plato/v2/sync/flow_executor.py,sha256=N41-WCWIJVcCR2UmPUEiK7roNacYoeONkRXpR7lUgT8,13941
516
- plato/v2/sync/sandbox.py,sha256=OJpXtdSNDeYBb8JOPHfW5_8Lzaw7BHZ1oT-Ub2noP8s,55001
529
+ plato/v2/sync/sandbox.py,sha256=fq5xUkqUwsSEoWUp243qsw9JboiGM-duHzycsWZmeX0,55599
517
530
  plato/v2/sync/session.py,sha256=FYVxgGZ3eL_YpoJiUgJamrt-jVaBqJITzFzepOKMRjA,35065
518
531
  plato/v2/utils/__init__.py,sha256=XLeFFsjXkm9g2raMmo7Wt4QN4hhCrNZDJKnpffJ4LtM,38
519
532
  plato/v2/utils/db_cleanup.py,sha256=JMzAAJz0ZnoUXtd8F4jpQmBpJpos2__RkgN_cuEearg,8692
@@ -526,7 +539,7 @@ plato/worlds/base.py,sha256=-RR71bSxEFI5yydtrtq-AAbuw98CIjvmrbztqzB9oIc,31041
526
539
  plato/worlds/build_hook.py,sha256=KSoW0kqa5b7NyZ7MYOw2qsZ_2FkWuz0M3Ru7AKOP7Qw,3486
527
540
  plato/worlds/config.py,sha256=O1lUXzxp-Z_M7izslT8naXgE6XujjzwYFFrDDzUOueI,12736
528
541
  plato/worlds/runner.py,sha256=r9B2BxBae8_dM7y5cJf9xhThp_I1Qvf_tlPq2rs8qC8,4013
529
- plato_sdk_v2-2.8.4.dist-info/METADATA,sha256=sLLcAPK7s-jHZqdMIG2lwIvO1m6CFtqW7bVY_VfLmrc,8652
530
- plato_sdk_v2-2.8.4.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
531
- plato_sdk_v2-2.8.4.dist-info/entry_points.txt,sha256=iynJvTkU7E4MZNtSozVF0Wh083yPm6cuKV362Ol_ez8,133
532
- plato_sdk_v2-2.8.4.dist-info/RECORD,,
542
+ plato_sdk_v2-2.8.6.dist-info/METADATA,sha256=DeVM-D95Yu6UnOZZN1CDia5u14S1fopjc2jr43ESbuw,8652
543
+ plato_sdk_v2-2.8.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
544
+ plato_sdk_v2-2.8.6.dist-info/entry_points.txt,sha256=iynJvTkU7E4MZNtSozVF0Wh083yPm6cuKV362Ol_ez8,133
545
+ plato_sdk_v2-2.8.6.dist-info/RECORD,,