wandb 0.21.0__py3-none-win32.whl → 0.21.2__py3-none-win32.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 (153) hide show
  1. wandb/__init__.py +16 -14
  2. wandb/__init__.pyi +427 -450
  3. wandb/agents/pyagent.py +41 -12
  4. wandb/analytics/sentry.py +7 -2
  5. wandb/apis/importers/mlflow.py +1 -1
  6. wandb/apis/public/__init__.py +1 -1
  7. wandb/apis/public/api.py +525 -360
  8. wandb/apis/public/artifacts.py +207 -13
  9. wandb/apis/public/automations.py +19 -3
  10. wandb/apis/public/files.py +172 -33
  11. wandb/apis/public/history.py +67 -15
  12. wandb/apis/public/integrations.py +25 -2
  13. wandb/apis/public/jobs.py +90 -2
  14. wandb/apis/public/projects.py +130 -79
  15. wandb/apis/public/query_generator.py +11 -1
  16. wandb/apis/public/registries/_utils.py +14 -16
  17. wandb/apis/public/registries/registries_search.py +183 -304
  18. wandb/apis/public/reports.py +96 -15
  19. wandb/apis/public/runs.py +299 -105
  20. wandb/apis/public/sweeps.py +222 -22
  21. wandb/apis/public/teams.py +41 -4
  22. wandb/apis/public/users.py +45 -4
  23. wandb/automations/_generated/delete_automation.py +1 -3
  24. wandb/automations/_generated/enums.py +13 -11
  25. wandb/beta/workflows.py +66 -30
  26. wandb/bin/gpu_stats.exe +0 -0
  27. wandb/bin/wandb-core +0 -0
  28. wandb/cli/cli.py +127 -3
  29. wandb/env.py +8 -0
  30. wandb/errors/errors.py +4 -1
  31. wandb/integration/lightning/fabric/logger.py +3 -4
  32. wandb/integration/metaflow/__init__.py +6 -0
  33. wandb/integration/metaflow/data_pandas.py +74 -0
  34. wandb/integration/metaflow/data_pytorch.py +75 -0
  35. wandb/integration/metaflow/data_sklearn.py +76 -0
  36. wandb/integration/metaflow/errors.py +13 -0
  37. wandb/integration/metaflow/metaflow.py +167 -223
  38. wandb/integration/openai/fine_tuning.py +1 -2
  39. wandb/integration/weave/__init__.py +6 -0
  40. wandb/integration/weave/interface.py +49 -0
  41. wandb/integration/weave/weave.py +63 -0
  42. wandb/jupyter.py +5 -5
  43. wandb/plot/custom_chart.py +30 -7
  44. wandb/proto/v3/wandb_internal_pb2.py +281 -280
  45. wandb/proto/v3/wandb_telemetry_pb2.py +4 -4
  46. wandb/proto/v4/wandb_internal_pb2.py +280 -280
  47. wandb/proto/v4/wandb_telemetry_pb2.py +4 -4
  48. wandb/proto/v5/wandb_internal_pb2.py +280 -280
  49. wandb/proto/v5/wandb_telemetry_pb2.py +4 -4
  50. wandb/proto/v6/wandb_internal_pb2.py +280 -280
  51. wandb/proto/v6/wandb_telemetry_pb2.py +4 -4
  52. wandb/proto/wandb_deprecated.py +6 -0
  53. wandb/sdk/artifacts/_factories.py +17 -0
  54. wandb/sdk/artifacts/_generated/__init__.py +221 -13
  55. wandb/sdk/artifacts/_generated/artifact_by_id.py +17 -0
  56. wandb/sdk/artifacts/_generated/artifact_by_name.py +22 -0
  57. wandb/sdk/artifacts/_generated/artifact_collection_membership_file_urls.py +43 -0
  58. wandb/sdk/artifacts/_generated/artifact_created_by.py +47 -0
  59. wandb/sdk/artifacts/_generated/artifact_file_urls.py +22 -0
  60. wandb/sdk/artifacts/_generated/artifact_type.py +31 -0
  61. wandb/sdk/artifacts/_generated/artifact_used_by.py +43 -0
  62. wandb/sdk/artifacts/_generated/artifact_via_membership_by_name.py +26 -0
  63. wandb/sdk/artifacts/_generated/delete_artifact.py +28 -0
  64. wandb/sdk/artifacts/_generated/enums.py +5 -0
  65. wandb/sdk/artifacts/_generated/fetch_artifact_manifest.py +38 -0
  66. wandb/sdk/artifacts/_generated/fetch_registries.py +32 -0
  67. wandb/sdk/artifacts/_generated/fragments.py +279 -41
  68. wandb/sdk/artifacts/_generated/link_artifact.py +6 -0
  69. wandb/sdk/artifacts/_generated/operations.py +654 -51
  70. wandb/sdk/artifacts/_generated/registry_collections.py +34 -0
  71. wandb/sdk/artifacts/_generated/registry_versions.py +34 -0
  72. wandb/sdk/artifacts/_generated/unlink_artifact.py +25 -0
  73. wandb/sdk/artifacts/_graphql_fragments.py +3 -86
  74. wandb/sdk/artifacts/_internal_artifact.py +19 -8
  75. wandb/sdk/artifacts/_validators.py +14 -4
  76. wandb/sdk/artifacts/artifact.py +512 -618
  77. wandb/sdk/artifacts/artifact_file_cache.py +10 -6
  78. wandb/sdk/artifacts/artifact_manifest.py +10 -9
  79. wandb/sdk/artifacts/artifact_manifest_entry.py +9 -10
  80. wandb/sdk/artifacts/artifact_manifests/artifact_manifest_v1.py +5 -3
  81. wandb/sdk/artifacts/storage_handlers/http_handler.py +1 -1
  82. wandb/sdk/artifacts/storage_handlers/s3_handler.py +1 -1
  83. wandb/sdk/artifacts/storage_policies/wandb_storage_policy.py +1 -1
  84. wandb/sdk/data_types/audio.py +38 -10
  85. wandb/sdk/data_types/base_types/media.py +6 -56
  86. wandb/sdk/data_types/graph.py +48 -14
  87. wandb/sdk/data_types/helper_types/bounding_boxes_2d.py +1 -3
  88. wandb/sdk/data_types/helper_types/image_mask.py +1 -3
  89. wandb/sdk/data_types/histogram.py +34 -21
  90. wandb/sdk/data_types/html.py +35 -12
  91. wandb/sdk/data_types/image.py +104 -68
  92. wandb/sdk/data_types/molecule.py +32 -19
  93. wandb/sdk/data_types/object_3d.py +36 -17
  94. wandb/sdk/data_types/plotly.py +18 -5
  95. wandb/sdk/data_types/saved_model.py +4 -6
  96. wandb/sdk/data_types/table.py +59 -30
  97. wandb/sdk/data_types/video.py +53 -26
  98. wandb/sdk/integration_utils/auto_logging.py +2 -2
  99. wandb/sdk/interface/interface_queue.py +1 -4
  100. wandb/sdk/interface/interface_shared.py +26 -37
  101. wandb/sdk/interface/interface_sock.py +24 -14
  102. wandb/sdk/internal/internal_api.py +6 -0
  103. wandb/sdk/internal/job_builder.py +6 -0
  104. wandb/sdk/internal/settings_static.py +2 -3
  105. wandb/sdk/launch/agent/agent.py +8 -1
  106. wandb/sdk/launch/agent/run_queue_item_file_saver.py +2 -2
  107. wandb/sdk/launch/create_job.py +15 -2
  108. wandb/sdk/launch/inputs/internal.py +3 -4
  109. wandb/sdk/launch/inputs/schema.py +1 -0
  110. wandb/sdk/launch/runner/kubernetes_monitor.py +1 -0
  111. wandb/sdk/launch/runner/kubernetes_runner.py +323 -1
  112. wandb/sdk/launch/sweeps/scheduler.py +2 -3
  113. wandb/sdk/lib/asyncio_compat.py +19 -16
  114. wandb/sdk/lib/asyncio_manager.py +252 -0
  115. wandb/sdk/lib/deprecate.py +1 -7
  116. wandb/sdk/lib/disabled.py +1 -1
  117. wandb/sdk/lib/hashutil.py +27 -5
  118. wandb/sdk/lib/module.py +7 -13
  119. wandb/sdk/lib/printer.py +2 -2
  120. wandb/sdk/lib/printer_asyncio.py +3 -1
  121. wandb/sdk/lib/progress.py +0 -19
  122. wandb/sdk/lib/retry.py +185 -78
  123. wandb/sdk/lib/service/service_client.py +106 -0
  124. wandb/sdk/lib/service/service_connection.py +20 -26
  125. wandb/sdk/lib/service/service_token.py +30 -13
  126. wandb/sdk/mailbox/mailbox.py +13 -5
  127. wandb/sdk/mailbox/mailbox_handle.py +22 -13
  128. wandb/sdk/mailbox/response_handle.py +42 -106
  129. wandb/sdk/mailbox/wait_with_progress.py +7 -42
  130. wandb/sdk/wandb_init.py +77 -116
  131. wandb/sdk/wandb_login.py +19 -15
  132. wandb/sdk/wandb_metric.py +2 -0
  133. wandb/sdk/wandb_run.py +497 -469
  134. wandb/sdk/wandb_settings.py +145 -4
  135. wandb/sdk/wandb_setup.py +204 -124
  136. wandb/sdk/wandb_sweep.py +14 -13
  137. wandb/sdk/wandb_watch.py +4 -6
  138. wandb/sync/sync.py +10 -0
  139. wandb/util.py +58 -1
  140. wandb/wandb_run.py +1 -2
  141. {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/METADATA +1 -1
  142. {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/RECORD +145 -129
  143. wandb/sdk/interface/interface_relay.py +0 -38
  144. wandb/sdk/interface/router.py +0 -89
  145. wandb/sdk/interface/router_queue.py +0 -43
  146. wandb/sdk/interface/router_relay.py +0 -50
  147. wandb/sdk/interface/router_sock.py +0 -32
  148. wandb/sdk/lib/sock_client.py +0 -236
  149. wandb/vendor/pynvml/__init__.py +0 -0
  150. wandb/vendor/pynvml/pynvml.py +0 -4779
  151. {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/WHEEL +0 -0
  152. {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/entry_points.txt +0 -0
  153. {wandb-0.21.0.dist-info → wandb-0.21.2.dist-info}/licenses/LICENSE +0 -0
@@ -3,14 +3,25 @@
3
3
 
4
4
  __all__ = [
5
5
  "ADD_ALIASES_GQL",
6
+ "ARTIFACT_BY_ID_GQL",
7
+ "ARTIFACT_BY_NAME_GQL",
6
8
  "ARTIFACT_COLLECTION_MEMBERSHIP_FILES_GQL",
9
+ "ARTIFACT_COLLECTION_MEMBERSHIP_FILE_URLS_GQL",
10
+ "ARTIFACT_CREATED_BY_GQL",
11
+ "ARTIFACT_FILE_URLS_GQL",
12
+ "ARTIFACT_TYPE_GQL",
13
+ "ARTIFACT_USED_BY_GQL",
7
14
  "ARTIFACT_VERSION_FILES_GQL",
15
+ "ARTIFACT_VIA_MEMBERSHIP_BY_NAME_GQL",
8
16
  "CREATE_ARTIFACT_COLLECTION_TAG_ASSIGNMENTS_GQL",
9
17
  "DELETE_ALIASES_GQL",
10
18
  "DELETE_ARTIFACT_COLLECTION_TAG_ASSIGNMENTS_GQL",
19
+ "DELETE_ARTIFACT_GQL",
11
20
  "DELETE_ARTIFACT_PORTFOLIO_GQL",
12
21
  "DELETE_ARTIFACT_SEQUENCE_GQL",
22
+ "FETCH_ARTIFACT_MANIFEST_GQL",
13
23
  "FETCH_LINKED_ARTIFACTS_GQL",
24
+ "FETCH_REGISTRIES_GQL",
14
25
  "LINK_ARTIFACT_GQL",
15
26
  "MOVE_ARTIFACT_COLLECTION_GQL",
16
27
  "PROJECT_ARTIFACTS_GQL",
@@ -18,8 +29,11 @@ __all__ = [
18
29
  "PROJECT_ARTIFACT_COLLECTION_GQL",
19
30
  "PROJECT_ARTIFACT_TYPES_GQL",
20
31
  "PROJECT_ARTIFACT_TYPE_GQL",
32
+ "REGISTRY_COLLECTIONS_GQL",
33
+ "REGISTRY_VERSIONS_GQL",
21
34
  "RUN_INPUT_ARTIFACTS_GQL",
22
35
  "RUN_OUTPUT_ARTIFACTS_GQL",
36
+ "UNLINK_ARTIFACT_GQL",
23
37
  "UPDATE_ARTIFACT_GQL",
24
38
  "UPDATE_ARTIFACT_PORTFOLIO_GQL",
25
39
  "UPDATE_ARTIFACT_SEQUENCE_GQL",
@@ -258,6 +272,57 @@ fragment FilesFragment on FileConnection {
258
272
  }
259
273
  """
260
274
 
275
+ ARTIFACT_COLLECTION_MEMBERSHIP_FILE_URLS_GQL = """
276
+ query ArtifactCollectionMembershipFileUrls($entityName: String!, $projectName: String!, $artifactName: String!, $artifactVersionIndex: String!, $cursor: String, $perPage: Int) {
277
+ project(name: $projectName, entityName: $entityName) {
278
+ artifactCollection(name: $artifactName) {
279
+ __typename
280
+ artifactMembership(aliasName: $artifactVersionIndex) {
281
+ files(after: $cursor, first: $perPage) {
282
+ ...FileUrlsFragment
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
288
+
289
+ fragment FileUrlsFragment on FileConnection {
290
+ pageInfo {
291
+ hasNextPage
292
+ endCursor
293
+ }
294
+ edges {
295
+ node {
296
+ name
297
+ directUrl
298
+ }
299
+ }
300
+ }
301
+ """
302
+
303
+ ARTIFACT_FILE_URLS_GQL = """
304
+ query ArtifactFileUrls($id: ID!, $cursor: String, $perPage: Int) {
305
+ artifact(id: $id) {
306
+ files(after: $cursor, first: $perPage) {
307
+ ...FileUrlsFragment
308
+ }
309
+ }
310
+ }
311
+
312
+ fragment FileUrlsFragment on FileConnection {
313
+ pageInfo {
314
+ hasNextPage
315
+ endCursor
316
+ }
317
+ edges {
318
+ node {
319
+ name
320
+ directUrl
321
+ }
322
+ }
323
+ }
324
+ """
325
+
261
326
  PROJECT_ARTIFACT_TYPES_GQL = """
262
327
  query ProjectArtifactTypes($entityName: String!, $projectName: String!, $cursor: String) {
263
328
  project(name: $projectName, entityName: $entityName) {
@@ -323,6 +388,21 @@ query ProjectArtifacts($project: String!, $entity: String!, $type: String!, $col
323
388
  }
324
389
 
325
390
  fragment ArtifactFragment on Artifact {
391
+ ...ArtifactFragmentWithoutAliases
392
+ aliases @include(if: true) {
393
+ artifactCollection {
394
+ __typename
395
+ project {
396
+ entityName
397
+ name
398
+ }
399
+ name
400
+ }
401
+ alias
402
+ }
403
+ }
404
+
405
+ fragment ArtifactFragmentWithoutAliases on Artifact {
326
406
  id
327
407
  artifactSequence {
328
408
  project {
@@ -339,17 +419,6 @@ fragment ArtifactFragment on Artifact {
339
419
  metadata
340
420
  ttlDurationSeconds @include(if: true)
341
421
  ttlIsInherited @include(if: true)
342
- aliases @include(if: true) {
343
- artifactCollection {
344
- __typename
345
- project {
346
- entityName
347
- name
348
- }
349
- name
350
- }
351
- alias
352
- }
353
422
  tags @include(if: true) {
354
423
  name
355
424
  }
@@ -404,6 +473,21 @@ query RunOutputArtifacts($entity: String!, $project: String!, $runName: String!,
404
473
  }
405
474
 
406
475
  fragment ArtifactFragment on Artifact {
476
+ ...ArtifactFragmentWithoutAliases
477
+ aliases @include(if: true) {
478
+ artifactCollection {
479
+ __typename
480
+ project {
481
+ entityName
482
+ name
483
+ }
484
+ name
485
+ }
486
+ alias
487
+ }
488
+ }
489
+
490
+ fragment ArtifactFragmentWithoutAliases on Artifact {
407
491
  id
408
492
  artifactSequence {
409
493
  project {
@@ -420,17 +504,6 @@ fragment ArtifactFragment on Artifact {
420
504
  metadata
421
505
  ttlDurationSeconds @include(if: true)
422
506
  ttlIsInherited @include(if: true)
423
- aliases @include(if: true) {
424
- artifactCollection {
425
- __typename
426
- project {
427
- entityName
428
- name
429
- }
430
- name
431
- }
432
- alias
433
- }
434
507
  tags @include(if: true) {
435
508
  name
436
509
  }
@@ -470,6 +543,21 @@ query RunInputArtifacts($entity: String!, $project: String!, $runName: String!,
470
543
  }
471
544
 
472
545
  fragment ArtifactFragment on Artifact {
546
+ ...ArtifactFragmentWithoutAliases
547
+ aliases @include(if: true) {
548
+ artifactCollection {
549
+ __typename
550
+ project {
551
+ entityName
552
+ name
553
+ }
554
+ name
555
+ }
556
+ alias
557
+ }
558
+ }
559
+
560
+ fragment ArtifactFragmentWithoutAliases on Artifact {
473
561
  id
474
562
  artifactSequence {
475
563
  project {
@@ -486,17 +574,6 @@ fragment ArtifactFragment on Artifact {
486
574
  metadata
487
575
  ttlDurationSeconds @include(if: true)
488
576
  ttlIsInherited @include(if: true)
489
- aliases @include(if: true) {
490
- artifactCollection {
491
- __typename
492
- project {
493
- entityName
494
- name
495
- }
496
- name
497
- }
498
- alias
499
- }
500
577
  tags @include(if: true) {
501
578
  name
502
579
  }
@@ -539,34 +616,101 @@ query FetchLinkedArtifacts($artifactID: ID!) {
539
616
  }
540
617
  """
541
618
 
542
- ADD_ALIASES_GQL = """
543
- mutation AddAliases($artifactID: ID!, $aliases: [ArtifactCollectionAliasInput!]!) {
544
- addAliases(input: {artifactID: $artifactID, aliases: $aliases}) {
545
- success
619
+ FETCH_ARTIFACT_MANIFEST_GQL = """
620
+ query FetchArtifactManifest($entityName: String!, $projectName: String!, $name: String!) {
621
+ project(entityName: $entityName, name: $projectName) {
622
+ artifact(name: $name) {
623
+ currentManifest {
624
+ file {
625
+ directUrl
626
+ }
627
+ }
628
+ }
546
629
  }
547
630
  }
548
631
  """
549
632
 
550
- DELETE_ALIASES_GQL = """
551
- mutation DeleteAliases($artifactID: ID!, $aliases: [ArtifactCollectionAliasInput!]!) {
552
- deleteAliases(input: {artifactID: $artifactID, aliases: $aliases}) {
553
- success
633
+ ARTIFACT_BY_ID_GQL = """
634
+ query ArtifactByID($id: ID!) {
635
+ artifact(id: $id) {
636
+ ...ArtifactFragment
637
+ }
638
+ }
639
+
640
+ fragment ArtifactFragment on Artifact {
641
+ ...ArtifactFragmentWithoutAliases
642
+ aliases @include(if: true) {
643
+ artifactCollection {
644
+ __typename
645
+ project {
646
+ entityName
647
+ name
648
+ }
649
+ name
650
+ }
651
+ alias
652
+ }
653
+ }
654
+
655
+ fragment ArtifactFragmentWithoutAliases on Artifact {
656
+ id
657
+ artifactSequence {
658
+ project {
659
+ entityName
660
+ name
661
+ }
662
+ name
663
+ }
664
+ versionIndex
665
+ artifactType {
666
+ name
667
+ }
668
+ description
669
+ metadata
670
+ ttlDurationSeconds @include(if: true)
671
+ ttlIsInherited @include(if: true)
672
+ tags @include(if: true) {
673
+ name
674
+ }
675
+ historyStep @include(if: true)
676
+ state
677
+ currentManifest {
678
+ file {
679
+ directUrl
680
+ }
554
681
  }
682
+ commitHash
683
+ fileCount
684
+ createdAt
685
+ updatedAt
555
686
  }
556
687
  """
557
688
 
558
- UPDATE_ARTIFACT_GQL = """
559
- mutation UpdateArtifact($artifactID: ID!, $description: String, $metadata: JSONString, $ttlDurationSeconds: Int64, $tagsToAdd: [TagInput!], $tagsToDelete: [TagInput!], $aliases: [ArtifactAliasInput!]) {
560
- updateArtifact(
561
- input: {artifactID: $artifactID, description: $description, metadata: $metadata, ttlDurationSeconds: $ttlDurationSeconds, tagsToAdd: $tagsToAdd, tagsToDelete: $tagsToDelete, aliases: $aliases}
562
- ) {
563
- artifact {
689
+ ARTIFACT_BY_NAME_GQL = """
690
+ query ArtifactByName($entityName: String!, $projectName: String!, $name: String!, $enableTracking: Boolean) {
691
+ project(name: $projectName, entityName: $entityName) {
692
+ artifact(name: $name, enableTracking: $enableTracking) {
564
693
  ...ArtifactFragment
565
694
  }
566
695
  }
567
696
  }
568
697
 
569
698
  fragment ArtifactFragment on Artifact {
699
+ ...ArtifactFragmentWithoutAliases
700
+ aliases @include(if: true) {
701
+ artifactCollection {
702
+ __typename
703
+ project {
704
+ entityName
705
+ name
706
+ }
707
+ name
708
+ }
709
+ alias
710
+ }
711
+ }
712
+
713
+ fragment ArtifactFragmentWithoutAliases on Artifact {
570
714
  id
571
715
  artifactSequence {
572
716
  project {
@@ -583,6 +727,34 @@ fragment ArtifactFragment on Artifact {
583
727
  metadata
584
728
  ttlDurationSeconds @include(if: true)
585
729
  ttlIsInherited @include(if: true)
730
+ tags @include(if: true) {
731
+ name
732
+ }
733
+ historyStep @include(if: true)
734
+ state
735
+ currentManifest {
736
+ file {
737
+ directUrl
738
+ }
739
+ }
740
+ commitHash
741
+ fileCount
742
+ createdAt
743
+ updatedAt
744
+ }
745
+ """
746
+
747
+ ARTIFACT_VIA_MEMBERSHIP_BY_NAME_GQL = """
748
+ query ArtifactViaMembershipByName($entityName: String!, $projectName: String!, $name: String!) {
749
+ project(name: $projectName, entityName: $entityName) {
750
+ artifactCollectionMembership(name: $name) {
751
+ ...MembershipWithArtifact
752
+ }
753
+ }
754
+ }
755
+
756
+ fragment ArtifactFragment on Artifact {
757
+ ...ArtifactFragmentWithoutAliases
586
758
  aliases @include(if: true) {
587
759
  artifactCollection {
588
760
  __typename
@@ -594,6 +766,25 @@ fragment ArtifactFragment on Artifact {
594
766
  }
595
767
  alias
596
768
  }
769
+ }
770
+
771
+ fragment ArtifactFragmentWithoutAliases on Artifact {
772
+ id
773
+ artifactSequence {
774
+ project {
775
+ entityName
776
+ name
777
+ }
778
+ name
779
+ }
780
+ versionIndex
781
+ artifactType {
782
+ name
783
+ }
784
+ description
785
+ metadata
786
+ ttlDurationSeconds @include(if: true)
787
+ ttlIsInherited @include(if: true)
597
788
  tags @include(if: true) {
598
789
  name
599
790
  }
@@ -609,12 +800,424 @@ fragment ArtifactFragment on Artifact {
609
800
  createdAt
610
801
  updatedAt
611
802
  }
803
+
804
+ fragment MembershipWithArtifact on ArtifactCollectionMembership {
805
+ id
806
+ artifactCollection {
807
+ __typename
808
+ id
809
+ name
810
+ project {
811
+ id
812
+ entityName
813
+ name
814
+ }
815
+ }
816
+ artifact {
817
+ ...ArtifactFragment
818
+ }
819
+ }
612
820
  """
613
821
 
614
- LINK_ARTIFACT_GQL = """
615
- mutation LinkArtifact($input: LinkArtifactInput!) {
616
- linkArtifact(input: $input) {
617
- versionIndex
822
+ ARTIFACT_USED_BY_GQL = """
823
+ query ArtifactUsedBy($id: ID!) {
824
+ artifact(id: $id) {
825
+ usedBy {
826
+ edges {
827
+ node {
828
+ name
829
+ project {
830
+ name
831
+ entityName
832
+ }
833
+ }
834
+ }
835
+ }
618
836
  }
619
837
  }
620
838
  """
839
+
840
+ ARTIFACT_CREATED_BY_GQL = """
841
+ query ArtifactCreatedBy($id: ID!) {
842
+ artifact(id: $id) {
843
+ createdBy {
844
+ __typename
845
+ ... on Run {
846
+ name
847
+ project {
848
+ name
849
+ entityName
850
+ }
851
+ }
852
+ }
853
+ }
854
+ }
855
+ """
856
+
857
+ ARTIFACT_TYPE_GQL = """
858
+ query ArtifactType($entityName: String, $projectName: String, $name: String!) {
859
+ project(name: $projectName, entityName: $entityName) {
860
+ artifact(name: $name) {
861
+ artifactType {
862
+ name
863
+ }
864
+ }
865
+ }
866
+ }
867
+ """
868
+
869
+ ADD_ALIASES_GQL = """
870
+ mutation AddAliases($artifactID: ID!, $aliases: [ArtifactCollectionAliasInput!]!) {
871
+ addAliases(input: {artifactID: $artifactID, aliases: $aliases}) {
872
+ success
873
+ }
874
+ }
875
+ """
876
+
877
+ DELETE_ALIASES_GQL = """
878
+ mutation DeleteAliases($artifactID: ID!, $aliases: [ArtifactCollectionAliasInput!]!) {
879
+ deleteAliases(input: {artifactID: $artifactID, aliases: $aliases}) {
880
+ success
881
+ }
882
+ }
883
+ """
884
+
885
+ UPDATE_ARTIFACT_GQL = """
886
+ mutation UpdateArtifact($artifactID: ID!, $description: String, $metadata: JSONString, $ttlDurationSeconds: Int64, $tagsToAdd: [TagInput!], $tagsToDelete: [TagInput!], $aliases: [ArtifactAliasInput!]) {
887
+ updateArtifact(
888
+ input: {artifactID: $artifactID, description: $description, metadata: $metadata, ttlDurationSeconds: $ttlDurationSeconds, tagsToAdd: $tagsToAdd, tagsToDelete: $tagsToDelete, aliases: $aliases}
889
+ ) {
890
+ artifact {
891
+ ...ArtifactFragment
892
+ }
893
+ }
894
+ }
895
+
896
+ fragment ArtifactFragment on Artifact {
897
+ ...ArtifactFragmentWithoutAliases
898
+ aliases @include(if: true) {
899
+ artifactCollection {
900
+ __typename
901
+ project {
902
+ entityName
903
+ name
904
+ }
905
+ name
906
+ }
907
+ alias
908
+ }
909
+ }
910
+
911
+ fragment ArtifactFragmentWithoutAliases on Artifact {
912
+ id
913
+ artifactSequence {
914
+ project {
915
+ entityName
916
+ name
917
+ }
918
+ name
919
+ }
920
+ versionIndex
921
+ artifactType {
922
+ name
923
+ }
924
+ description
925
+ metadata
926
+ ttlDurationSeconds @include(if: true)
927
+ ttlIsInherited @include(if: true)
928
+ tags @include(if: true) {
929
+ name
930
+ }
931
+ historyStep @include(if: true)
932
+ state
933
+ currentManifest {
934
+ file {
935
+ directUrl
936
+ }
937
+ }
938
+ commitHash
939
+ fileCount
940
+ createdAt
941
+ updatedAt
942
+ }
943
+ """
944
+
945
+ DELETE_ARTIFACT_GQL = """
946
+ mutation DeleteArtifact($artifactID: ID!, $deleteAliases: Boolean) {
947
+ deleteArtifact(input: {artifactID: $artifactID, deleteAliases: $deleteAliases}) {
948
+ artifact {
949
+ id
950
+ }
951
+ }
952
+ }
953
+ """
954
+
955
+ LINK_ARTIFACT_GQL = """
956
+ mutation LinkArtifact($input: LinkArtifactInput!) {
957
+ linkArtifact(input: $input) {
958
+ versionIndex
959
+ artifactMembership @include(if: true) {
960
+ ...MembershipWithArtifact
961
+ }
962
+ }
963
+ }
964
+
965
+ fragment ArtifactFragment on Artifact {
966
+ ...ArtifactFragmentWithoutAliases
967
+ aliases @include(if: true) {
968
+ artifactCollection {
969
+ __typename
970
+ project {
971
+ entityName
972
+ name
973
+ }
974
+ name
975
+ }
976
+ alias
977
+ }
978
+ }
979
+
980
+ fragment ArtifactFragmentWithoutAliases on Artifact {
981
+ id
982
+ artifactSequence {
983
+ project {
984
+ entityName
985
+ name
986
+ }
987
+ name
988
+ }
989
+ versionIndex
990
+ artifactType {
991
+ name
992
+ }
993
+ description
994
+ metadata
995
+ ttlDurationSeconds @include(if: true)
996
+ ttlIsInherited @include(if: true)
997
+ tags @include(if: true) {
998
+ name
999
+ }
1000
+ historyStep @include(if: true)
1001
+ state
1002
+ currentManifest {
1003
+ file {
1004
+ directUrl
1005
+ }
1006
+ }
1007
+ commitHash
1008
+ fileCount
1009
+ createdAt
1010
+ updatedAt
1011
+ }
1012
+
1013
+ fragment MembershipWithArtifact on ArtifactCollectionMembership {
1014
+ id
1015
+ artifactCollection {
1016
+ __typename
1017
+ id
1018
+ name
1019
+ project {
1020
+ id
1021
+ entityName
1022
+ name
1023
+ }
1024
+ }
1025
+ artifact {
1026
+ ...ArtifactFragment
1027
+ }
1028
+ }
1029
+ """
1030
+
1031
+ UNLINK_ARTIFACT_GQL = """
1032
+ mutation UnlinkArtifact($artifactID: ID!, $artifactPortfolioID: ID!) {
1033
+ unlinkArtifact(
1034
+ input: {artifactID: $artifactID, artifactPortfolioID: $artifactPortfolioID}
1035
+ ) {
1036
+ artifactID
1037
+ success
1038
+ clientMutationId
1039
+ }
1040
+ }
1041
+ """
1042
+
1043
+ REGISTRY_VERSIONS_GQL = """
1044
+ query RegistryVersions($organization: String!, $registryFilter: JSONString, $collectionFilter: JSONString, $artifactFilter: JSONString, $cursor: String, $perPage: Int) {
1045
+ organization(name: $organization) {
1046
+ orgEntity {
1047
+ name
1048
+ artifactMemberships(
1049
+ projectFilters: $registryFilter
1050
+ collectionFilters: $collectionFilter
1051
+ filters: $artifactFilter
1052
+ after: $cursor
1053
+ first: $perPage
1054
+ ) {
1055
+ ...RegistryVersionsPage
1056
+ }
1057
+ }
1058
+ }
1059
+ }
1060
+
1061
+ fragment ArtifactFragmentWithoutAliases on Artifact {
1062
+ id
1063
+ artifactSequence {
1064
+ project {
1065
+ entityName
1066
+ name
1067
+ }
1068
+ name
1069
+ }
1070
+ versionIndex
1071
+ artifactType {
1072
+ name
1073
+ }
1074
+ description
1075
+ metadata
1076
+ ttlDurationSeconds @include(if: true)
1077
+ ttlIsInherited @include(if: true)
1078
+ tags @include(if: true) {
1079
+ name
1080
+ }
1081
+ historyStep @include(if: true)
1082
+ state
1083
+ currentManifest {
1084
+ file {
1085
+ directUrl
1086
+ }
1087
+ }
1088
+ commitHash
1089
+ fileCount
1090
+ createdAt
1091
+ updatedAt
1092
+ }
1093
+
1094
+ fragment RegistryVersionsPage on ArtifactCollectionMembershipConnection {
1095
+ pageInfo {
1096
+ endCursor
1097
+ hasNextPage
1098
+ }
1099
+ edges {
1100
+ node {
1101
+ artifactCollection {
1102
+ __typename
1103
+ project {
1104
+ name
1105
+ entity {
1106
+ name
1107
+ }
1108
+ }
1109
+ name
1110
+ }
1111
+ versionIndex
1112
+ artifact {
1113
+ ...ArtifactFragmentWithoutAliases
1114
+ }
1115
+ aliases {
1116
+ alias
1117
+ }
1118
+ }
1119
+ }
1120
+ }
1121
+ """
1122
+
1123
+ REGISTRY_COLLECTIONS_GQL = """
1124
+ query RegistryCollections($organization: String!, $registryFilter: JSONString, $collectionFilter: JSONString, $collectionTypes: [ArtifactCollectionType!], $cursor: String, $perPage: Int) {
1125
+ organization(name: $organization) {
1126
+ orgEntity {
1127
+ name
1128
+ artifactCollections(
1129
+ projectFilters: $registryFilter
1130
+ filters: $collectionFilter
1131
+ collectionTypes: $collectionTypes
1132
+ after: $cursor
1133
+ first: $perPage
1134
+ ) {
1135
+ ...RegistryCollectionsPage
1136
+ }
1137
+ }
1138
+ }
1139
+ }
1140
+
1141
+ fragment RegistryCollectionsPage on ArtifactCollectionConnection {
1142
+ totalCount
1143
+ pageInfo {
1144
+ endCursor
1145
+ hasNextPage
1146
+ }
1147
+ edges {
1148
+ cursor
1149
+ node {
1150
+ __typename
1151
+ id
1152
+ name
1153
+ description
1154
+ createdAt
1155
+ tags {
1156
+ edges {
1157
+ node {
1158
+ name
1159
+ }
1160
+ }
1161
+ }
1162
+ project {
1163
+ name
1164
+ entity {
1165
+ name
1166
+ }
1167
+ }
1168
+ defaultArtifactType {
1169
+ name
1170
+ }
1171
+ aliases {
1172
+ edges {
1173
+ node {
1174
+ alias
1175
+ }
1176
+ }
1177
+ }
1178
+ }
1179
+ }
1180
+ }
1181
+ """
1182
+
1183
+ FETCH_REGISTRIES_GQL = """
1184
+ query FetchRegistries($organization: String!, $filters: JSONString, $cursor: String, $perPage: Int) {
1185
+ organization(name: $organization) {
1186
+ orgEntity {
1187
+ name
1188
+ projects(filters: $filters, after: $cursor, first: $perPage) {
1189
+ ...RegistriesPage
1190
+ }
1191
+ }
1192
+ }
1193
+ }
1194
+
1195
+ fragment RegistriesPage on ProjectConnection {
1196
+ pageInfo {
1197
+ endCursor
1198
+ hasNextPage
1199
+ }
1200
+ edges {
1201
+ node {
1202
+ ...RegistryFragment
1203
+ }
1204
+ }
1205
+ }
1206
+
1207
+ fragment RegistryFragment on Project {
1208
+ id
1209
+ allowAllArtifactTypesInRegistry
1210
+ artifactTypes(includeAll: true) {
1211
+ edges {
1212
+ node {
1213
+ name
1214
+ }
1215
+ }
1216
+ }
1217
+ name
1218
+ description
1219
+ createdAt
1220
+ updatedAt
1221
+ access
1222
+ }
1223
+ """