pycarlo 0.10.102__py3-none-any.whl → 0.10.104__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 pycarlo might be problematic. Click here for more details.

pycarlo/lib/schema.json CHANGED
@@ -12734,40 +12734,67 @@
12734
12734
  "args": [
12735
12735
  {
12736
12736
  "defaultValue": null,
12737
- "description": "Warehouse UUID",
12738
- "name": "dwId",
12737
+ "description": "MCON of the table with agent observability traces",
12738
+ "name": "mcon",
12739
12739
  "type": {
12740
12740
  "kind": "NON_NULL",
12741
12741
  "name": null,
12742
12742
  "ofType": {
12743
12743
  "kind": "SCALAR",
12744
- "name": "UUID",
12744
+ "name": "String",
12745
+ "ofType": null
12746
+ }
12747
+ }
12748
+ }
12749
+ ],
12750
+ "deprecationReason": null,
12751
+ "description": "(experimental) Retrieve agent log groups with observability data",
12752
+ "isDeprecated": false,
12753
+ "name": "getAgentSpanGroups",
12754
+ "type": {
12755
+ "kind": "OBJECT",
12756
+ "name": "AgentSpanTree",
12757
+ "ofType": null
12758
+ }
12759
+ },
12760
+ {
12761
+ "args": [
12762
+ {
12763
+ "defaultValue": null,
12764
+ "description": "MCON of the table with agent observability traces",
12765
+ "name": "mcon",
12766
+ "type": {
12767
+ "kind": "NON_NULL",
12768
+ "name": null,
12769
+ "ofType": {
12770
+ "kind": "SCALAR",
12771
+ "name": "String",
12745
12772
  "ofType": null
12746
12773
  }
12747
12774
  }
12748
12775
  },
12749
12776
  {
12750
12777
  "defaultValue": null,
12751
- "description": "The data source",
12752
- "name": "dataSource",
12778
+ "description": "The SQL blocks",
12779
+ "name": "sqlBlocks",
12753
12780
  "type": {
12754
12781
  "kind": "NON_NULL",
12755
12782
  "name": null,
12756
12783
  "ofType": {
12757
12784
  "kind": "INPUT_OBJECT",
12758
- "name": "DataSourceUnionInput",
12785
+ "name": "CustomRuleSqlBlocksInput",
12759
12786
  "ofType": null
12760
12787
  }
12761
12788
  }
12762
12789
  }
12763
12790
  ],
12764
12791
  "deprecationReason": null,
12765
- "description": "(experimental) Retrieve agent log groups with observability data",
12792
+ "description": "(experimental) Preview traces for a specific span node",
12766
12793
  "isDeprecated": false,
12767
- "name": "retrieveAgentLogGroups",
12794
+ "name": "getAgentSpanSample",
12768
12795
  "type": {
12769
12796
  "kind": "OBJECT",
12770
- "name": "AgentLogTree",
12797
+ "name": "SQLResponse",
12771
12798
  "ofType": null
12772
12799
  }
12773
12800
  },
@@ -110747,7 +110774,7 @@
110747
110774
  "name": null,
110748
110775
  "ofType": {
110749
110776
  "kind": "OBJECT",
110750
- "name": "AgentLogNode",
110777
+ "name": "AgentSpanNode",
110751
110778
  "ofType": null
110752
110779
  }
110753
110780
  }
@@ -110770,7 +110797,7 @@
110770
110797
  "inputFields": null,
110771
110798
  "interfaces": [],
110772
110799
  "kind": "OBJECT",
110773
- "name": "AgentLogTree",
110800
+ "name": "AgentSpanTree",
110774
110801
  "possibleTypes": null
110775
110802
  },
110776
110803
  {
@@ -110822,7 +110849,7 @@
110822
110849
  "name": null,
110823
110850
  "ofType": {
110824
110851
  "kind": "OBJECT",
110825
- "name": "AgentLogNode",
110852
+ "name": "AgentSpanNode",
110826
110853
  "ofType": null
110827
110854
  }
110828
110855
  }
@@ -110881,7 +110908,7 @@
110881
110908
  "inputFields": null,
110882
110909
  "interfaces": [],
110883
110910
  "kind": "OBJECT",
110884
- "name": "AgentLogNode",
110911
+ "name": "AgentSpanNode",
110885
110912
  "possibleTypes": null
110886
110913
  },
110887
110914
  {
@@ -112773,24 +112800,24 @@
112773
112800
  {
112774
112801
  "args": [],
112775
112802
  "deprecationReason": null,
112776
- "description": "Structured SQL filtering",
112803
+ "description": "SQL blocks used on the monitor",
112777
112804
  "isDeprecated": false,
112778
112805
  "name": "sqlBlocks",
112779
112806
  "type": {
112780
- "kind": "SCALAR",
112781
- "name": "JSONString",
112807
+ "kind": "OBJECT",
112808
+ "name": "MonitorSqlBlocks",
112782
112809
  "ofType": null
112783
112810
  }
112784
112811
  },
112785
112812
  {
112786
112813
  "args": [],
112787
112814
  "deprecationReason": null,
112788
- "description": "Sampling configuration",
112815
+ "description": "Sampling configuration for the monitor",
112789
112816
  "isDeprecated": false,
112790
112817
  "name": "samplingConfig",
112791
112818
  "type": {
112792
- "kind": "SCALAR",
112793
- "name": "JSONString",
112819
+ "kind": "OBJECT",
112820
+ "name": "MonitorSamplingConfig",
112794
112821
  "ofType": null
112795
112822
  }
112796
112823
  },
@@ -116836,6 +116863,124 @@
116836
116863
  "name": "IndexedFieldFilterOutputType",
116837
116864
  "possibleTypes": null
116838
116865
  },
116866
+ {
116867
+ "description": null,
116868
+ "enumValues": null,
116869
+ "fields": [
116870
+ {
116871
+ "args": [],
116872
+ "deprecationReason": null,
116873
+ "description": null,
116874
+ "isDeprecated": false,
116875
+ "name": "alertCondition",
116876
+ "type": {
116877
+ "kind": "NON_NULL",
116878
+ "name": null,
116879
+ "ofType": {
116880
+ "kind": "OBJECT",
116881
+ "name": "FilterGroup",
116882
+ "ofType": null
116883
+ }
116884
+ }
116885
+ },
116886
+ {
116887
+ "args": [],
116888
+ "deprecationReason": null,
116889
+ "description": null,
116890
+ "isDeprecated": false,
116891
+ "name": "whereCondition",
116892
+ "type": {
116893
+ "kind": "NON_NULL",
116894
+ "name": null,
116895
+ "ofType": {
116896
+ "kind": "OBJECT",
116897
+ "name": "FilterGroup",
116898
+ "ofType": null
116899
+ }
116900
+ }
116901
+ },
116902
+ {
116903
+ "args": [],
116904
+ "deprecationReason": null,
116905
+ "description": null,
116906
+ "isDeprecated": false,
116907
+ "name": "groupBy",
116908
+ "type": {
116909
+ "kind": "NON_NULL",
116910
+ "name": null,
116911
+ "ofType": {
116912
+ "kind": "LIST",
116913
+ "name": null,
116914
+ "ofType": {
116915
+ "kind": "NON_NULL",
116916
+ "name": null,
116917
+ "ofType": {
116918
+ "kind": "INTERFACE",
116919
+ "name": "FilterValueInterface",
116920
+ "ofType": null
116921
+ }
116922
+ }
116923
+ }
116924
+ }
116925
+ },
116926
+ {
116927
+ "args": [],
116928
+ "deprecationReason": null,
116929
+ "description": null,
116930
+ "isDeprecated": false,
116931
+ "name": "agentSpan",
116932
+ "type": {
116933
+ "kind": "NON_NULL",
116934
+ "name": null,
116935
+ "ofType": {
116936
+ "kind": "OBJECT",
116937
+ "name": "FilterGroup",
116938
+ "ofType": null
116939
+ }
116940
+ }
116941
+ }
116942
+ ],
116943
+ "inputFields": null,
116944
+ "interfaces": [],
116945
+ "kind": "OBJECT",
116946
+ "name": "MonitorSqlBlocks",
116947
+ "possibleTypes": null
116948
+ },
116949
+ {
116950
+ "description": null,
116951
+ "enumValues": null,
116952
+ "fields": [
116953
+ {
116954
+ "args": [],
116955
+ "deprecationReason": null,
116956
+ "description": null,
116957
+ "isDeprecated": false,
116958
+ "name": "percentage",
116959
+ "type": {
116960
+ "kind": "SCALAR",
116961
+ "name": "Float",
116962
+ "ofType": null
116963
+ }
116964
+ },
116965
+ {
116966
+ "args": [],
116967
+ "deprecationReason": null,
116968
+ "description": null,
116969
+ "isDeprecated": false,
116970
+ "name": "count",
116971
+ "type": {
116972
+ "kind": "SCALAR",
116973
+ "name": "Int",
116974
+ "ofType": null
116975
+ }
116976
+ }
116977
+ ],
116978
+ "inputFields": null,
116979
+ "interfaces": [],
116980
+ "kind": "OBJECT",
116981
+ "name": "MonitorSamplingConfig",
116982
+ "possibleTypes": null
116983
+ },
116839
116984
  {
116840
116985
  "description": null,
116841
116986
  "enumValues": null,
@@ -159507,6 +159652,50 @@
159507
159652
  },
159508
159653
  {
159509
159654
  "args": [
159655
+ {
159656
+ "defaultValue": null,
159657
+ "description": "Filter by agent span fields (agent, workflow, task, span_name)",
159658
+ "name": "agentSpanFilters",
159659
+ "type": {
159660
+ "kind": "NON_NULL",
159661
+ "name": null,
159662
+ "ofType": {
159663
+ "kind": "LIST",
159664
+ "name": null,
159665
+ "ofType": {
159666
+ "kind": "NON_NULL",
159667
+ "name": null,
159668
+ "ofType": {
159669
+ "kind": "INPUT_OBJECT",
159670
+ "name": "AgentSpanFilterInput",
159671
+ "ofType": null
159672
+ }
159673
+ }
159674
+ }
159675
+ }
159676
+ },
159677
+ {
159678
+ "defaultValue": null,
159679
+ "description": "Alert conditions.",
159680
+ "name": "alertConditions",
159681
+ "type": {
159682
+ "kind": "NON_NULL",
159683
+ "name": null,
159684
+ "ofType": {
159685
+ "kind": "LIST",
159686
+ "name": null,
159687
+ "ofType": {
159688
+ "kind": "NON_NULL",
159689
+ "name": null,
159690
+ "ofType": {
159691
+ "kind": "INPUT_OBJECT",
159692
+ "name": "CustomRuleComparisonInput",
159693
+ "ofType": null
159694
+ }
159695
+ }
159696
+ }
159697
+ }
159698
+ },
159510
159699
  {
159511
159700
  "defaultValue": null,
159512
159701
  "description": "The monitor notification audiences",
@@ -159627,16 +159816,12 @@
159627
159816
  },
159628
159817
  {
159629
159818
  "defaultValue": null,
159630
- "description": "Field to monitor",
159631
- "name": "field",
159819
+ "description": "Structured SQL filtering conditions to apply to query",
159820
+ "name": "filters",
159632
159821
  "type": {
159633
- "kind": "NON_NULL",
159634
- "name": null,
159635
- "ofType": {
159636
- "kind": "SCALAR",
159637
- "name": "String",
159638
- "ofType": null
159639
- }
159822
+ "kind": "INPUT_OBJECT",
159823
+ "name": "FilterGroupInput",
159824
+ "ofType": null
159640
159825
  }
159641
159826
  },
159642
159827
  {
@@ -159651,21 +159836,286 @@
159651
159836
  },
159652
159837
  {
159653
159838
  "defaultValue": null,
159654
- "description": "DEPRECATED: Completely ignored. This field has no effect on anything. Use `failure_audiences` to determine who is notified when run failures occur.",
159655
- "name": "notifyRuleRunFailure",
159839
+ "description": "The default priority for alerts involving this monitor",
159840
+ "name": "priority",
159656
159841
  "type": {
159657
159842
  "kind": "SCALAR",
159658
- "name": "Boolean",
159843
+ "name": "String",
159659
159844
  "ofType": null
159660
159845
  }
159661
159846
  },
159662
159847
  {
159663
159848
  "defaultValue": null,
159664
- "description": "The default priority for alerts involving this monitor",
159665
- "name": "priority",
159849
+ "description": "Sampling configuration: either percentage or fixed count",
159850
+ "name": "samplingConfig",
159851
+ "type": {
159852
+ "kind": "INPUT_OBJECT",
159853
+ "name": "MonitorSamplingConfigInput",
159854
+ "ofType": null
159855
+ }
159856
+ },
159857
+ {
159858
+ "defaultValue": null,
159859
+ "description": "Schedule of monitor",
159860
+ "name": "scheduleConfig",
159861
+ "type": {
159862
+ "kind": "NON_NULL",
159863
+ "name": null,
159864
+ "ofType": {
159865
+ "kind": "INPUT_OBJECT",
159866
+ "name": "ScheduleConfigInput",
159867
+ "ofType": null
159868
+ }
159869
+ }
159870
+ },
159871
+ {
159872
+ "defaultValue": null,
159873
+ "description": "Segment count when then monitor was created. Can be returned as the segment count for the monitor when no successful execution has yet occurred, and a fresh segment count is not available. This allows the UI to properly validate the monitor configuration and avoid creating monitors that will fail when they are created due too many metric combinations.",
159874
+ "name": "segmentCountHint",
159666
159875
  "type": {
159667
159876
  "kind": "SCALAR",
159668
- "name": "String",
159877
+ "name": "Int",
159878
+ "ofType": null
159879
+ }
159880
+ },
159881
+ {
159882
+ "defaultValue": null,
159883
+ "description": "Segments",
159884
+ "name": "segments",
159885
+ "type": {
159886
+ "kind": "LIST",
159887
+ "name": null,
159888
+ "ofType": {
159889
+ "kind": "NON_NULL",
159890
+ "name": null,
159891
+ "ofType": {
159892
+ "kind": "INPUT_OBJECT",
159893
+ "name": "FilterValueUnionInput",
159894
+ "ofType": null
159895
+ }
159896
+ }
159897
+ }
159898
+ },
159899
+ {
159900
+ "defaultValue": null,
159901
+ "description": "Sensitivity for automated thresholds.",
159902
+ "name": "sensitivity",
159903
+ "type": {
159904
+ "kind": "ENUM",
159905
+ "name": "SensitivityLevels",
159906
+ "ofType": null
159907
+ }
159908
+ },
159909
+ {
159910
+ "defaultValue": "false",
159911
+ "description": "Do not reset monitor if the update is a significant change that would normally cause the monitor to be reset. Learned model might not match the new monitor configuration and false positives might be detected for up to 35 days",
159912
+ "name": "skipReset",
159913
+ "type": {
159914
+ "kind": "SCALAR",
159915
+ "name": "Boolean",
159916
+ "ofType": null
159917
+ }
159918
+ },
159919
+ {
159920
+ "defaultValue": null,
159921
+ "description": "The monitor tags.",
159922
+ "name": "tags",
159923
+ "type": {
159924
+ "kind": "LIST",
159925
+ "name": null,
159926
+ "ofType": {
159927
+ "kind": "NON_NULL",
159928
+ "name": null,
159929
+ "ofType": {
159930
+ "kind": "INPUT_OBJECT",
159931
+ "name": "TagKeyValuePairInput",
159932
+ "ofType": null
159933
+ }
159934
+ }
159935
+ }
159936
+ },
159937
+ {
159938
+ "defaultValue": null,
159939
+ "description": "UUID of the monitor. If specified, it means the request is for update",
159940
+ "name": "uuid",
159941
+ "type": {
159942
+ "kind": "SCALAR",
159943
+ "name": "UUID",
159944
+ "ofType": null
159945
+ }
159946
+ }
159947
+ ],
159948
+ "deprecationReason": null,
159949
+ "description": "(experimental) Create or update an Agent monitor",
159950
+ "isDeprecated": false,
159951
+ "name": "createOrUpdateAgentMonitor",
159952
+ "type": {
159953
+ "kind": "OBJECT",
159954
+ "name": "CreateOrUpdateAgentMonitor",
159955
+ "ofType": null
159956
+ }
159957
+ },
159958
+ {
159959
+ "args": [
159960
+ {
159961
+ "defaultValue": null,
159962
+ "description": "The monitor notification audiences",
159963
+ "name": "audiences",
159964
+ "type": {
159965
+ "kind": "LIST",
159966
+ "name": null,
159967
+ "ofType": {
159968
+ "kind": "NON_NULL",
159969
+ "name": null,
159970
+ "ofType": {
159971
+ "kind": "SCALAR",
159972
+ "name": "String",
159973
+ "ofType": null
159974
+ }
159975
+ }
159976
+ }
159977
+ },
159978
+ {
159979
+ "defaultValue": null,
159980
+ "description": "Specify a connection (e.g. query-engine) to use",
159981
+ "name": "connectionId",
159982
+ "type": {
159983
+ "kind": "SCALAR",
159984
+ "name": "UUID",
159985
+ "ofType": null
159986
+ }
159987
+ },
159988
+ {
159989
+ "defaultValue": null,
159990
+ "description": "Data quality dimension.",
159991
+ "name": "dataQualityDimension",
159992
+ "type": {
159993
+ "kind": "SCALAR",
159994
+ "name": "String",
159995
+ "ofType": null
159996
+ }
159997
+ },
159998
+ {
159999
+ "defaultValue": null,
160000
+ "description": null,
160001
+ "name": "dataSource",
160002
+ "type": {
160003
+ "kind": "NON_NULL",
160004
+ "name": null,
160005
+ "ofType": {
160006
+ "kind": "INPUT_OBJECT",
160007
+ "name": "DataSourceUnionInput",
160008
+ "ofType": null
160009
+ }
160010
+ }
160011
+ },
160012
+ {
160013
+ "defaultValue": null,
160014
+ "description": "Used as the name in the UI",
160015
+ "name": "description",
160016
+ "type": {
160017
+ "kind": "NON_NULL",
160018
+ "name": null,
160019
+ "ofType": {
160020
+ "kind": "SCALAR",
160021
+ "name": "String",
160022
+ "ofType": null
160023
+ }
160024
+ }
160025
+ },
160026
+ {
160027
+ "defaultValue": "false",
160028
+ "description": "Dry run the monitor creation or update and return the MaC YAML and queries.",
160029
+ "name": "dryRun",
160030
+ "type": {
160031
+ "kind": "SCALAR",
160032
+ "name": "Boolean",
160033
+ "ofType": null
160034
+ }
160035
+ },
160036
+ {
160037
+ "defaultValue": null,
160038
+ "description": "Warehouse the monitor will be run on.",
160039
+ "name": "dwId",
160040
+ "type": {
160041
+ "kind": "NON_NULL",
160042
+ "name": null,
160043
+ "ofType": {
160044
+ "kind": "SCALAR",
160045
+ "name": "UUID",
160046
+ "ofType": null
160047
+ }
160048
+ }
160049
+ },
160050
+ {
160051
+ "defaultValue": "false",
160052
+ "description": "Return an error if the update is a significant change that would require a monitor reset.",
160053
+ "name": "failOnReset",
160054
+ "type": {
160055
+ "kind": "SCALAR",
160056
+ "name": "Boolean",
160057
+ "ofType": null
160058
+ }
160059
+ },
160060
+ {
160061
+ "defaultValue": null,
160062
+ "description": "The monitor notification audiences for failures",
160063
+ "name": "failureAudiences",
160064
+ "type": {
160065
+ "kind": "LIST",
160066
+ "name": null,
160067
+ "ofType": {
160068
+ "kind": "NON_NULL",
160069
+ "name": null,
160070
+ "ofType": {
160071
+ "kind": "SCALAR",
160072
+ "name": "String",
160073
+ "ofType": null
160074
+ }
160075
+ }
160076
+ }
160077
+ },
160078
+ {
160079
+ "defaultValue": null,
160080
+ "description": "Field to monitor",
160081
+ "name": "field",
160082
+ "type": {
160083
+ "kind": "NON_NULL",
160084
+ "name": null,
160085
+ "ofType": {
160086
+ "kind": "SCALAR",
160087
+ "name": "String",
160088
+ "ofType": null
160089
+ }
160090
+ }
160091
+ },
160092
+ {
160093
+ "defaultValue": "\"\"",
160094
+ "description": "Additional context for the monitor",
160095
+ "name": "notes",
160096
+ "type": {
160097
+ "kind": "SCALAR",
160098
+ "name": "String",
160099
+ "ofType": null
160100
+ }
160101
+ },
160102
+ {
160103
+ "defaultValue": null,
160104
+ "description": "DEPRECATED: Completely ignored. This field has no effect on anything. Use `failure_audiences` to determine who is notified when run failures occur.",
160105
+ "name": "notifyRuleRunFailure",
160106
+ "type": {
160107
+ "kind": "SCALAR",
160108
+ "name": "Boolean",
160109
+ "ofType": null
160110
+ }
160111
+ },
160112
+ {
160113
+ "defaultValue": null,
160114
+ "description": "The default priority for alerts involving this monitor",
160115
+ "name": "priority",
160116
+ "type": {
160117
+ "kind": "SCALAR",
160118
+ "name": "String",
159669
160119
  "ofType": null
159670
160120
  }
159671
160121
  },
@@ -180450,6 +180900,152 @@
180450
180900
  "name": "MetricAlertConditionInput",
180451
180901
  "possibleTypes": null
180452
180902
  },
180903
+ {
180904
+ "description": null,
180905
+ "enumValues": null,
180906
+ "fields": [
180907
+ {
180908
+ "args": [],
180909
+ "deprecationReason": null,
180910
+ "description": null,
180911
+ "isDeprecated": false,
180912
+ "name": "agentMonitor",
180913
+ "type": {
180914
+ "kind": "OBJECT",
180915
+ "name": "MetricMonitoring",
180916
+ "ofType": null
180917
+ }
180918
+ },
180919
+ {
180920
+ "args": [],
180921
+ "deprecationReason": null,
180922
+ "description": "SQL queries that will be run by the monitor on each execution.",
180923
+ "isDeprecated": false,
180924
+ "name": "queries",
180925
+ "type": {
180926
+ "kind": "LIST",
180927
+ "name": null,
180928
+ "ofType": {
180929
+ "kind": "NON_NULL",
180930
+ "name": null,
180931
+ "ofType": {
180932
+ "kind": "SCALAR",
180933
+ "name": "String",
180934
+ "ofType": null
180935
+ }
180936
+ }
180937
+ }
180938
+ }
180939
+ ],
180940
+ "inputFields": null,
180941
+ "interfaces": [],
180942
+ "kind": "OBJECT",
180943
+ "name": "CreateOrUpdateAgentMonitor",
180944
+ "possibleTypes": null
180945
+ },
180946
+ {
180947
+ "description": null,
180948
+ "enumValues": null,
180949
+ "fields": null,
180950
+ "inputFields": [
180951
+ {
180952
+ "defaultValue": null,
180953
+ "description": "Filter by agent field. If omitted, no filter on agent.",
180954
+ "name": "agent",
180955
+ "type": {
180956
+ "kind": "INPUT_OBJECT",
180957
+ "name": "AgentSpanFieldFilterInput",
180958
+ "ofType": null
180959
+ }
180960
+ },
180961
+ {
180962
+ "defaultValue": null,
180963
+ "description": "Filter by workflow field. If omitted, no filter on workflow.",
180964
+ "name": "workflow",
180965
+ "type": {
180966
+ "kind": "INPUT_OBJECT",
180967
+ "name": "AgentSpanFieldFilterInput",
180968
+ "ofType": null
180969
+ }
180970
+ },
180971
+ {
180972
+ "defaultValue": null,
180973
+ "description": "Filter by task field. If omitted, no filter on task.",
180974
+ "name": "task",
180975
+ "type": {
180976
+ "kind": "INPUT_OBJECT",
180977
+ "name": "AgentSpanFieldFilterInput",
180978
+ "ofType": null
180979
+ }
180980
+ },
180981
+ {
180982
+ "defaultValue": null,
180983
+ "description": "Filter by span_name field. If omitted, no filter on span_name.",
180984
+ "name": "spanName",
180985
+ "type": {
180986
+ "kind": "INPUT_OBJECT",
180987
+ "name": "AgentSpanFieldFilterInput",
180988
+ "ofType": null
180989
+ }
180990
+ }
180991
+ ],
180992
+ "interfaces": null,
180993
+ "kind": "INPUT_OBJECT",
180994
+ "name": "AgentSpanFilterInput",
180995
+ "possibleTypes": null
180996
+ },
180997
+ {
180998
+ "description": null,
180999
+ "enumValues": null,
181000
+ "fields": null,
181001
+ "inputFields": [
181002
+ {
181003
+ "defaultValue": null,
181004
+ "description": "Filter value. If null, filters for null values.",
181005
+ "name": "value",
181006
+ "type": {
181007
+ "kind": "SCALAR",
181008
+ "name": "String",
181009
+ "ofType": null
181010
+ }
181011
+ }
181012
+ ],
181013
+ "interfaces": null,
181014
+ "kind": "INPUT_OBJECT",
181015
+ "name": "AgentSpanFieldFilterInput",
181016
+ "possibleTypes": null
181017
+ },
181018
+ {
181019
+ "description": null,
181020
+ "enumValues": null,
181021
+ "fields": null,
181022
+ "inputFields": [
181023
+ {
181024
+ "defaultValue": null,
181025
+ "description": null,
181026
+ "name": "percentage",
181027
+ "type": {
181028
+ "kind": "SCALAR",
181029
+ "name": "Float",
181030
+ "ofType": null
181031
+ }
181032
+ },
181033
+ {
181034
+ "defaultValue": null,
181035
+ "description": null,
181036
+ "name": "count",
181037
+ "type": {
181038
+ "kind": "SCALAR",
181039
+ "name": "Int",
181040
+ "ofType": null
181041
+ }
181042
+ }
181043
+ ],
181044
+ "interfaces": null,
181045
+ "kind": "INPUT_OBJECT",
181046
+ "name": "MonitorSamplingConfigInput",
181047
+ "possibleTypes": null
181048
+ },
180453
181049
  {
180454
181050
  "description": null,
180455
181051
  "enumValues": null,
pycarlo/lib/schema.py CHANGED
@@ -5486,6 +5486,29 @@ class AIMessageInput(sgqlc.types.Input):
5486
5486
  """The mcons for the tables added in this message"""
5487
5487
 
5488
5488
 
5489
+ class AgentSpanFieldFilterInput(sgqlc.types.Input):
5490
+ __schema__ = schema
5491
+ __field_names__ = ("value",)
5492
+ value = sgqlc.types.Field(String, graphql_name="value")
5493
+ """Filter value. If null, filters for null values."""
5494
+
5495
+
5496
+ class AgentSpanFilterInput(sgqlc.types.Input):
5497
+ __schema__ = schema
5498
+ __field_names__ = ("agent", "workflow", "task", "span_name")
5499
+ agent = sgqlc.types.Field(AgentSpanFieldFilterInput, graphql_name="agent")
5500
+ """Filter by agent field. If omitted, no filter on agent."""
5501
+
5502
+ workflow = sgqlc.types.Field(AgentSpanFieldFilterInput, graphql_name="workflow")
5503
+ """Filter by workflow field. If omitted, no filter on workflow."""
5504
+
5505
+ task = sgqlc.types.Field(AgentSpanFieldFilterInput, graphql_name="task")
5506
+ """Filter by task field. If omitted, no filter on task."""
5507
+
5508
+ span_name = sgqlc.types.Field(AgentSpanFieldFilterInput, graphql_name="spanName")
5509
+ """Filter by span_name field. If omitted, no filter on span_name."""
5510
+
5511
+
5489
5512
  class AggregateInput(sgqlc.types.Input):
5490
5513
  __schema__ = schema
5491
5514
  __field_names__ = ("by", "time_axis")
@@ -7628,6 +7651,14 @@ class MonitorRecommendationsInput(sgqlc.types.Input):
7628
7651
  """
7629
7652
 
7630
7653
 
7654
+ class MonitorSamplingConfigInput(sgqlc.types.Input):
7655
+ __schema__ = schema
7656
+ __field_names__ = ("percentage", "count")
7657
+ percentage = sgqlc.types.Field(Float, graphql_name="percentage")
7658
+
7659
+ count = sgqlc.types.Field(Int, graphql_name="count")
7660
+
7661
+
7631
7662
  class MonitorSelectExpressionInput(sgqlc.types.Input):
7632
7663
  __schema__ = schema
7633
7664
  __field_names__ = ("expression", "data_type")
@@ -12237,7 +12268,7 @@ class AgentLogEntry(sgqlc.types.Type):
12237
12268
  """
12238
12269
 
12239
12270
 
12240
- class AgentLogNode(sgqlc.types.Type):
12271
+ class AgentSpanNode(sgqlc.types.Type):
12241
12272
  __schema__ = schema
12242
12273
  __field_names__ = ("node_name", "node_value", "child_nodes", "level", "count", "is_leaf")
12243
12274
  node_name = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name="nodeName")
@@ -12245,7 +12276,7 @@ class AgentLogNode(sgqlc.types.Type):
12245
12276
  node_value = sgqlc.types.Field(String, graphql_name="nodeValue")
12246
12277
 
12247
12278
  child_nodes = sgqlc.types.Field(
12248
- sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null("AgentLogNode"))),
12279
+ sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null("AgentSpanNode"))),
12249
12280
  graphql_name="childNodes",
12250
12281
  )
12251
12282
 
@@ -12256,11 +12287,11 @@ class AgentLogNode(sgqlc.types.Type):
12256
12287
  is_leaf = sgqlc.types.Field(sgqlc.types.non_null(Boolean), graphql_name="isLeaf")
12257
12288
 
12258
12289
 
12259
- class AgentLogTree(sgqlc.types.Type):
12290
+ class AgentSpanTree(sgqlc.types.Type):
12260
12291
  __schema__ = schema
12261
12292
  __field_names__ = ("nodes", "query")
12262
12293
  nodes = sgqlc.types.Field(
12263
- sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(AgentLogNode))),
12294
+ sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(AgentSpanNode))),
12264
12295
  graphql_name="nodes",
12265
12296
  )
12266
12297
 
@@ -15601,6 +15632,17 @@ class CreateOrUpdateAgent(sgqlc.types.Type):
15601
15632
  """Result validating the provided parameters."""
15602
15633
 
15603
15634
 
15635
+ class CreateOrUpdateAgentMonitor(sgqlc.types.Type):
15636
+ __schema__ = schema
15637
+ __field_names__ = ("agent_monitor", "queries")
15638
+ agent_monitor = sgqlc.types.Field("MetricMonitoring", graphql_name="agentMonitor")
15639
+
15640
+ queries = sgqlc.types.Field(
15641
+ sgqlc.types.list_of(sgqlc.types.non_null(String)), graphql_name="queries"
15642
+ )
15643
+ """SQL queries that will be run by the monitor on each execution."""
15644
+
15645
+
15604
15646
  class CreateOrUpdateAlationIntegration(sgqlc.types.Type):
15605
15647
  """Create or update Alation integration"""
15606
15648
 
@@ -24082,6 +24124,14 @@ class MonitorRecommendationsResponse(sgqlc.types.Type):
24082
24124
  )
24083
24125
 
24084
24126
 
24127
+ class MonitorSamplingConfig(sgqlc.types.Type):
24128
+ __schema__ = schema
24129
+ __field_names__ = ("percentage", "count")
24130
+ percentage = sgqlc.types.Field(Float, graphql_name="percentage")
24131
+
24132
+ count = sgqlc.types.Field(Int, graphql_name="count")
24133
+
24134
+
24085
24135
  class MonitorSchedulingConfiguration(sgqlc.types.Type):
24086
24136
  __schema__ = schema
24087
24137
  __field_names__ = ("schedule_type", "interval_minutes", "start_time")
@@ -24105,6 +24155,25 @@ class MonitorScoreTrendType(sgqlc.types.Type):
24105
24155
  """Pass percentage for the day"""
24106
24156
 
24107
24157
 
24158
+ class MonitorSqlBlocks(sgqlc.types.Type):
24159
+ __schema__ = schema
24160
+ __field_names__ = ("alert_condition", "where_condition", "group_by", "agent_span")
24161
+ alert_condition = sgqlc.types.Field(
24162
+ sgqlc.types.non_null("FilterGroup"), graphql_name="alertCondition"
24163
+ )
24164
+
24165
+ where_condition = sgqlc.types.Field(
24166
+ sgqlc.types.non_null("FilterGroup"), graphql_name="whereCondition"
24167
+ )
24168
+
24169
+ group_by = sgqlc.types.Field(
24170
+ sgqlc.types.non_null(sgqlc.types.list_of(sgqlc.types.non_null(FilterValueInterface))),
24171
+ graphql_name="groupBy",
24172
+ )
24173
+
24174
+ agent_span = sgqlc.types.Field(sgqlc.types.non_null("FilterGroup"), graphql_name="agentSpan")
24175
+
24176
+
24108
24177
  class MonitorSummary(sgqlc.types.Type):
24109
24178
  __schema__ = schema
24110
24179
  __field_names__ = (
@@ -24712,6 +24781,7 @@ class Mutation(sgqlc.types.Type):
24712
24781
  "pause_monitor_bootstrap",
24713
24782
  "create_or_update_comparison_monitor",
24714
24783
  "create_or_update_metric_monitor",
24784
+ "create_or_update_agent_monitor",
24715
24785
  "create_or_update_json_schema_monitor",
24716
24786
  "validate_cron",
24717
24787
  "set_event_detector_feedback",
@@ -35337,6 +35407,175 @@ class Mutation(sgqlc.types.Type):
35337
35407
  query
35338
35408
  """
35339
35409
 
35410
+ create_or_update_agent_monitor = sgqlc.types.Field(
35411
+ CreateOrUpdateAgentMonitor,
35412
+ graphql_name="createOrUpdateAgentMonitor",
35413
+ args=sgqlc.types.ArgDict(
35414
+ (
35415
+ (
35416
+ "agent_span_filters",
35417
+ sgqlc.types.Arg(
35418
+ sgqlc.types.non_null(
35419
+ sgqlc.types.list_of(sgqlc.types.non_null(AgentSpanFilterInput))
35420
+ ),
35421
+ graphql_name="agentSpanFilters",
35422
+ default=None,
35423
+ ),
35424
+ ),
35425
+ (
35426
+ "alert_conditions",
35427
+ sgqlc.types.Arg(
35428
+ sgqlc.types.non_null(
35429
+ sgqlc.types.list_of(sgqlc.types.non_null(CustomRuleComparisonInput))
35430
+ ),
35431
+ graphql_name="alertConditions",
35432
+ default=None,
35433
+ ),
35434
+ ),
35435
+ (
35436
+ "audiences",
35437
+ sgqlc.types.Arg(
35438
+ sgqlc.types.list_of(sgqlc.types.non_null(String)),
35439
+ graphql_name="audiences",
35440
+ default=None,
35441
+ ),
35442
+ ),
35443
+ ("connection_id", sgqlc.types.Arg(UUID, graphql_name="connectionId", default=None)),
35444
+ (
35445
+ "data_quality_dimension",
35446
+ sgqlc.types.Arg(String, graphql_name="dataQualityDimension", default=None),
35447
+ ),
35448
+ (
35449
+ "data_source",
35450
+ sgqlc.types.Arg(
35451
+ sgqlc.types.non_null(DataSourceUnionInput),
35452
+ graphql_name="dataSource",
35453
+ default=None,
35454
+ ),
35455
+ ),
35456
+ (
35457
+ "description",
35458
+ sgqlc.types.Arg(
35459
+ sgqlc.types.non_null(String), graphql_name="description", default=None
35460
+ ),
35461
+ ),
35462
+ ("dry_run", sgqlc.types.Arg(Boolean, graphql_name="dryRun", default=False)),
35463
+ (
35464
+ "dw_id",
35465
+ sgqlc.types.Arg(sgqlc.types.non_null(UUID), graphql_name="dwId", default=None),
35466
+ ),
35467
+ (
35468
+ "fail_on_reset",
35469
+ sgqlc.types.Arg(Boolean, graphql_name="failOnReset", default=False),
35470
+ ),
35471
+ (
35472
+ "failure_audiences",
35473
+ sgqlc.types.Arg(
35474
+ sgqlc.types.list_of(sgqlc.types.non_null(String)),
35475
+ graphql_name="failureAudiences",
35476
+ default=None,
35477
+ ),
35478
+ ),
35479
+ (
35480
+ "filters",
35481
+ sgqlc.types.Arg(FilterGroupInput, graphql_name="filters", default=None),
35482
+ ),
35483
+ ("notes", sgqlc.types.Arg(String, graphql_name="notes", default="")),
35484
+ ("priority", sgqlc.types.Arg(String, graphql_name="priority", default=None)),
35485
+ (
35486
+ "sampling_config",
35487
+ sgqlc.types.Arg(
35488
+ MonitorSamplingConfigInput, graphql_name="samplingConfig", default=None
35489
+ ),
35490
+ ),
35491
+ (
35492
+ "schedule_config",
35493
+ sgqlc.types.Arg(
35494
+ sgqlc.types.non_null(ScheduleConfigInput),
35495
+ graphql_name="scheduleConfig",
35496
+ default=None,
35497
+ ),
35498
+ ),
35499
+ (
35500
+ "segment_count_hint",
35501
+ sgqlc.types.Arg(Int, graphql_name="segmentCountHint", default=None),
35502
+ ),
35503
+ (
35504
+ "segments",
35505
+ sgqlc.types.Arg(
35506
+ sgqlc.types.list_of(sgqlc.types.non_null(FilterValueUnionInput)),
35507
+ graphql_name="segments",
35508
+ default=None,
35509
+ ),
35510
+ ),
35511
+ (
35512
+ "sensitivity",
35513
+ sgqlc.types.Arg(SensitivityLevels, graphql_name="sensitivity", default=None),
35514
+ ),
35515
+ ("skip_reset", sgqlc.types.Arg(Boolean, graphql_name="skipReset", default=False)),
35516
+ (
35517
+ "tags",
35518
+ sgqlc.types.Arg(
35519
+ sgqlc.types.list_of(sgqlc.types.non_null(TagKeyValuePairInput)),
35520
+ graphql_name="tags",
35521
+ default=None,
35522
+ ),
35523
+ ),
35524
+ ("uuid", sgqlc.types.Arg(UUID, graphql_name="uuid", default=None)),
35525
+ )
35526
+ ),
35527
+ )
35528
+ """(experimental) Create or update an Agent monitor
35529
+
35530
+ Arguments:
35531
+
35532
+ * `agent_span_filters` (`[AgentSpanFilterInput!]!`): Filter by
35533
+ agent span fields (agent, workflow, task, span_name)
35534
+ * `alert_conditions` (`[CustomRuleComparisonInput!]!`): Alert
35535
+ conditions.
35536
+ * `audiences` (`[String!]`): The monitor notification audiences
35537
+ * `connection_id` (`UUID`): Specify a connection (e.g. query-
35538
+ engine) to use
35539
+ * `data_quality_dimension` (`String`): Data quality dimension.
35540
+ * `data_source` (`DataSourceUnionInput!`)None
35541
+ * `description` (`String!`): Used as the name in the UI
35542
+ * `dry_run` (`Boolean`): Dry run the monitor creation or update
35543
+ and return the MaC YAML and queries. (default: `false`)
35544
+ * `dw_id` (`UUID!`): Warehouse the monitor will be run on.
35545
+ * `fail_on_reset` (`Boolean`): Return an error if the update is a
35546
+ significant change that would require a monitor reset. (default:
35547
+ `false`)
35548
+ * `failure_audiences` (`[String!]`): The monitor notification
35549
+ audiences for failures
35550
+ * `filters` (`FilterGroupInput`): Structured SQL filtering
35551
+ conditions to apply to query
35552
+ * `notes` (`String`): Additional context for the monitor (default:
35553
+ `""`)
35554
+ * `priority` (`String`): The default priority for alerts involving
35555
+ this monitor
35556
+ * `sampling_config` (`MonitorSamplingConfigInput`): Sampling
35557
+ configuration: either percentage or fixed count
35558
+ * `schedule_config` (`ScheduleConfigInput!`): Schedule of monitor
35559
+ * `segment_count_hint` (`Int`): Segment count when then monitor
35560
+ was created. Can be returned as the segment count for the
35561
+ monitor when no successful execution has yet occurred, and a
35562
+ fresh segment count is not available. This allows the UI to
35563
+ properly validate the monitor configuration and avoid creating
35564
+ monitors that will fail when they are created due too many
35565
+ metric combinations.
35566
+ * `segments` (`[FilterValueUnionInput!]`): Segments
35567
+ * `sensitivity` (`SensitivityLevels`): Sensitivity for automated
35568
+ thresholds.
35569
+ * `skip_reset` (`Boolean`): Do not reset monitor if the update is
35570
+ a significant change that would normally cause the monitor to be
35571
+ reset. Learned model might not match the new monitor
35572
+ configuration and false positives might be detected for up to 35
35573
+ days (default: `false`)
35574
+ * `tags` (`[TagKeyValuePairInput!]`): The monitor tags.
35575
+ * `uuid` (`UUID`): UUID of the monitor. If specified, it means the
35576
+ request is for update
35577
+ """
35578
+
35340
35579
  create_or_update_json_schema_monitor = sgqlc.types.Field(
35341
35580
  CreateOrUpdateJsonSchemaMonitor,
35342
35581
  graphql_name="createOrUpdateJsonSchemaMonitor",
@@ -42886,7 +43125,8 @@ class Query(sgqlc.types.Type):
42886
43125
  "get_monitor_queries",
42887
43126
  "test_monitor_queries",
42888
43127
  "get_notification_audiences_for_table",
42889
- "retrieve_agent_log_groups",
43128
+ "get_agent_span_groups",
43129
+ "get_agent_span_sample",
42890
43130
  "get_all_user_defined_monitors_v2",
42891
43131
  "get_all_user_defined_monitors",
42892
43132
  "get_custom_rule",
@@ -50222,32 +50462,57 @@ class Query(sgqlc.types.Type):
50222
50462
  * `mcon` (`String!`): MCON that specifies a table
50223
50463
  """
50224
50464
 
50225
- retrieve_agent_log_groups = sgqlc.types.Field(
50226
- AgentLogTree,
50227
- graphql_name="retrieveAgentLogGroups",
50465
+ get_agent_span_groups = sgqlc.types.Field(
50466
+ AgentSpanTree,
50467
+ graphql_name="getAgentSpanGroups",
50228
50468
  args=sgqlc.types.ArgDict(
50229
50469
  (
50230
50470
  (
50231
- "dw_id",
50232
- sgqlc.types.Arg(sgqlc.types.non_null(UUID), graphql_name="dwId", default=None),
50471
+ "mcon",
50472
+ sgqlc.types.Arg(
50473
+ sgqlc.types.non_null(String), graphql_name="mcon", default=None
50474
+ ),
50233
50475
  ),
50476
+ )
50477
+ ),
50478
+ )
50479
+ """(experimental) Retrieve agent log groups with observability data
50480
+
50481
+ Arguments:
50482
+
50483
+ * `mcon` (`String!`): MCON of the table with agent observability
50484
+ traces
50485
+ """
50486
+
50487
+ get_agent_span_sample = sgqlc.types.Field(
50488
+ "SQLResponse",
50489
+ graphql_name="getAgentSpanSample",
50490
+ args=sgqlc.types.ArgDict(
50491
+ (
50234
50492
  (
50235
- "data_source",
50493
+ "mcon",
50236
50494
  sgqlc.types.Arg(
50237
- sgqlc.types.non_null(DataSourceUnionInput),
50238
- graphql_name="dataSource",
50495
+ sgqlc.types.non_null(String), graphql_name="mcon", default=None
50496
+ ),
50497
+ ),
50498
+ (
50499
+ "sql_blocks",
50500
+ sgqlc.types.Arg(
50501
+ sgqlc.types.non_null(CustomRuleSqlBlocksInput),
50502
+ graphql_name="sqlBlocks",
50239
50503
  default=None,
50240
50504
  ),
50241
50505
  ),
50242
50506
  )
50243
50507
  ),
50244
50508
  )
50245
- """(experimental) Retrieve agent log groups with observability data
50509
+ """(experimental) Preview traces for a specific span node
50246
50510
 
50247
50511
  Arguments:
50248
50512
 
50249
- * `dw_id` (`UUID!`): Warehouse UUID
50250
- * `data_source` (`DataSourceUnionInput!`): The data source
50513
+ * `mcon` (`String!`): MCON of the table with agent observability
50514
+ traces
50515
+ * `sql_blocks` (`CustomRuleSqlBlocksInput!`): The SQL blocks
50251
50516
  """
50252
50517
 
50253
50518
  get_all_user_defined_monitors_v2 = sgqlc.types.Field(
@@ -71641,11 +71906,11 @@ class MetricMonitoring(sgqlc.types.Type, Node):
71641
71906
  version = sgqlc.types.Field(Int, graphql_name="version")
71642
71907
  """Configuration version of the monitor."""
71643
71908
 
71644
- sql_blocks = sgqlc.types.Field(JSONString, graphql_name="sqlBlocks")
71645
- """Structured SQL filtering"""
71909
+ sql_blocks = sgqlc.types.Field(MonitorSqlBlocks, graphql_name="sqlBlocks")
71910
+ """SQL blocks used on the monitor"""
71646
71911
 
71647
- sampling_config = sgqlc.types.Field(JSONString, graphql_name="samplingConfig")
71648
- """Sampling configuration"""
71912
+ sampling_config = sgqlc.types.Field(MonitorSamplingConfig, graphql_name="samplingConfig")
71913
+ """Sampling configuration for the monitor"""
71649
71914
 
71650
71915
  table = sgqlc.types.Field("WarehouseTable", graphql_name="table")
71651
71916
  """Table related to monitor"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycarlo
3
- Version: 0.10.102
3
+ Version: 0.10.104
4
4
  Summary: Monte Carlo's Python SDK
5
5
  Home-page: https://www.montecarlodata.com/
6
6
  Author: Monte Carlo Data, Inc
@@ -35,10 +35,10 @@ pycarlo/features/user/queries.py,sha256=m97RvM0oiBlrU5xmOwe_JJ5N0G0NG5hIOeyQqN2O
35
35
  pycarlo/features/user/service.py,sha256=DHkhuonySaHro07NTd0YNe3cNkDk62CiRTY77dhVaMs,2890
36
36
  pycarlo/lib/README.md,sha256=QGNeUefPzLKGyZqn5aITpcFgkC9WQTNS292BGisRFHk,139
37
37
  pycarlo/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- pycarlo/lib/schema.json,sha256=SIBcAjlNylKpVWE34wrg2PNSWDUVG2CRQzUz6reS-ZY,6042759
39
- pycarlo/lib/schema.py,sha256=rBFNQ1mSqAJhZ3Q1w016XIbXpg95-WMrPJLfYpa4E_A,2610041
40
- pycarlo-0.10.102.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
41
- pycarlo-0.10.102.dist-info/METADATA,sha256=sHtn5wyI1i7RBGA9cJoQBTEvAHGZPBYxKf-bKd0Ueks,8742
42
- pycarlo-0.10.102.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
43
- pycarlo-0.10.102.dist-info/top_level.txt,sha256=TIE04H4pgzGaFxAB-gvkmVAUOAoHxxFfhnEcpuQ5bF4,8
44
- pycarlo-0.10.102.dist-info/RECORD,,
38
+ pycarlo/lib/schema.json,sha256=yIzSG2djrTm78nY9IyNV7FuKVMcxfKChLeUk8K5ncjY,6062887
39
+ pycarlo/lib/schema.py,sha256=g8ZASKW5AE058IbLRAqM1J05wsi3pioYa5MIXhHOp-Q,2620752
40
+ pycarlo-0.10.104.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
41
+ pycarlo-0.10.104.dist-info/METADATA,sha256=PEe4q81v-1VE68FfbTLJ2arKjx8od6_fAOmo98-rang,8742
42
+ pycarlo-0.10.104.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
43
+ pycarlo-0.10.104.dist-info/top_level.txt,sha256=TIE04H4pgzGaFxAB-gvkmVAUOAoHxxFfhnEcpuQ5bF4,8
44
+ pycarlo-0.10.104.dist-info/RECORD,,