pycarlo 0.10.168__py3-none-any.whl → 0.10.170__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.py CHANGED
@@ -302,6 +302,18 @@ class AggregationFunction(sgqlc.types.Enum):
302
302
  __choices__ = ("AVG", "MAX", "MEDIAN", "MIN")
303
303
 
304
304
 
305
+ class AiAgentType(sgqlc.types.Enum):
306
+ """Types of AI agents available in the system.
307
+
308
+ Enumeration Choices:
309
+
310
+ * `TROUBLESHOOTING`None
311
+ """
312
+
313
+ __schema__ = schema
314
+ __choices__ = ("TROUBLESHOOTING",)
315
+
316
+
305
317
  class AirflowRunState(sgqlc.types.Enum):
306
318
  """Enumeration Choices:
307
319
 
@@ -12730,6 +12742,21 @@ class AggregatedQueryResults(sgqlc.types.Type):
12730
12742
  """Data necessary to paginate aggregated queries"""
12731
12743
 
12732
12744
 
12745
+ class AiAgent(sgqlc.types.Type):
12746
+ """AI Agent configuration for an account."""
12747
+
12748
+ __schema__ = schema
12749
+ __field_names__ = ("created_time", "updated_time", "agent_type", "context_prompt")
12750
+ created_time = sgqlc.types.Field(sgqlc.types.non_null(DateTime), graphql_name="createdTime")
12751
+
12752
+ updated_time = sgqlc.types.Field(sgqlc.types.non_null(DateTime), graphql_name="updatedTime")
12753
+
12754
+ agent_type = sgqlc.types.Field(sgqlc.types.non_null(AiAgentType), graphql_name="agentType")
12755
+
12756
+ context_prompt = sgqlc.types.Field(String, graphql_name="contextPrompt")
12757
+ """Custom context prompt for the AI agent"""
12758
+
12759
+
12733
12760
  class AirflowCapabilitiesResponse(sgqlc.types.Type):
12734
12761
  """Airflow capabilities information"""
12735
12762
 
@@ -15244,6 +15271,39 @@ class CollectionStorage(sgqlc.types.Type):
15244
15271
  """Storage resources"""
15245
15272
 
15246
15273
 
15274
+ class CollibraDomainSearchResponse(sgqlc.types.Type):
15275
+ """Collibra domain search response for table search name"""
15276
+
15277
+ __schema__ = schema
15278
+ __field_names__ = (
15279
+ "collibra_table_asset_id",
15280
+ "collibra_table_asset_domain_id",
15281
+ "collibra_schema_asset_id",
15282
+ "collibra_database_asset_id",
15283
+ "collibra_database_asset_domain_id",
15284
+ )
15285
+ collibra_table_asset_id = sgqlc.types.Field(
15286
+ sgqlc.types.non_null(String), graphql_name="collibraTableAssetId"
15287
+ )
15288
+ """Collibra table asset ID"""
15289
+
15290
+ collibra_table_asset_domain_id = sgqlc.types.Field(
15291
+ sgqlc.types.non_null(String), graphql_name="collibraTableAssetDomainId"
15292
+ )
15293
+ """Collibra table asset domain ID"""
15294
+
15295
+ collibra_schema_asset_id = sgqlc.types.Field(String, graphql_name="collibraSchemaAssetId")
15296
+ """Collibra schema asset ID"""
15297
+
15298
+ collibra_database_asset_id = sgqlc.types.Field(String, graphql_name="collibraDatabaseAssetId")
15299
+ """Collibra database asset ID"""
15300
+
15301
+ collibra_database_asset_domain_id = sgqlc.types.Field(
15302
+ String, graphql_name="collibraDatabaseAssetDomainId"
15303
+ )
15304
+ """Collibra database asset domain ID"""
15305
+
15306
+
15247
15307
  class CollibraIntegrationConnection(sgqlc.types.relay.Connection):
15248
15308
  __schema__ = schema
15249
15309
  __field_names__ = ("page_info", "edges")
@@ -15268,6 +15328,18 @@ class CollibraIntegrationEdge(sgqlc.types.Type):
15268
15328
  """A cursor for use in pagination"""
15269
15329
 
15270
15330
 
15331
+ class CollibraMonitorNoteResponse(sgqlc.types.Type):
15332
+ """Collibra monitor note response."""
15333
+
15334
+ __schema__ = schema
15335
+ __field_names__ = ("monitor_uuid", "collibra_note")
15336
+ monitor_uuid = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name="monitorUuid")
15337
+ """Monitor uuid"""
15338
+
15339
+ collibra_note = sgqlc.types.Field(String, graphql_name="collibraNote")
15340
+ """Collibra note"""
15341
+
15342
+
15271
15343
  class CollibraPingResponse(sgqlc.types.Type):
15272
15344
  """Collibra ping information"""
15273
15345
 
@@ -15382,6 +15454,18 @@ class ComparisonMonitorResponseEdge(sgqlc.types.Type):
15382
15454
  """A cursor for use in pagination"""
15383
15455
 
15384
15456
 
15457
+ class ConfigureAiAgentPrompt(sgqlc.types.Type):
15458
+ """Configure or update the context prompt for an AI agent type"""
15459
+
15460
+ __schema__ = schema
15461
+ __field_names__ = ("ai_agent", "success")
15462
+ ai_agent = sgqlc.types.Field(AiAgent, graphql_name="aiAgent")
15463
+ """The configured AI agent"""
15464
+
15465
+ success = sgqlc.types.Field(sgqlc.types.non_null(Boolean), graphql_name="success")
15466
+ """Whether the operation succeeded"""
15467
+
15468
+
15385
15469
  class ConfigureMetadataEvents(sgqlc.types.Type):
15386
15470
  """Configure collection of metadata via S3 events"""
15387
15471
 
@@ -24155,6 +24239,55 @@ class MigrateConnectionToSnowflakeAgent(sgqlc.types.Type):
24155
24239
  """True if the connection was migrated successfully."""
24156
24240
 
24157
24241
 
24242
+ class MonitorAtRisk(sgqlc.types.Type):
24243
+ """Monitor that could be affected if this table monitor is deleted"""
24244
+
24245
+ __schema__ = schema
24246
+ __field_names__ = ("uuid", "description", "creator", "created_time", "monitor_type")
24247
+ uuid = sgqlc.types.Field(sgqlc.types.non_null(UUID), graphql_name="uuid")
24248
+ """Monitor UUID"""
24249
+
24250
+ description = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name="description")
24251
+ """Monitor description"""
24252
+
24253
+ creator = sgqlc.types.Field(String, graphql_name="creator")
24254
+ """ID of user who created the monitor"""
24255
+
24256
+ created_time = sgqlc.types.Field(sgqlc.types.non_null(DateTime), graphql_name="createdTime")
24257
+ """When the monitor was created"""
24258
+
24259
+ monitor_type = sgqlc.types.Field(
24260
+ sgqlc.types.non_null(UserDefinedMonitors), graphql_name="monitorType"
24261
+ )
24262
+ """Type of monitor"""
24263
+
24264
+
24265
+ class MonitorAtRiskConnection(sgqlc.types.relay.Connection):
24266
+ """Relay connection for monitors at risk"""
24267
+
24268
+ __schema__ = schema
24269
+ __field_names__ = ("page_info", "edges")
24270
+ page_info = sgqlc.types.Field(sgqlc.types.non_null("PageInfo"), graphql_name="pageInfo")
24271
+ """Pagination data for this connection."""
24272
+
24273
+ edges = sgqlc.types.Field(
24274
+ sgqlc.types.non_null(sgqlc.types.list_of("MonitorAtRiskEdge")), graphql_name="edges"
24275
+ )
24276
+ """Contains the nodes in this connection."""
24277
+
24278
+
24279
+ class MonitorAtRiskEdge(sgqlc.types.Type):
24280
+ """A Relay edge containing a `MonitorAtRisk` and its cursor."""
24281
+
24282
+ __schema__ = schema
24283
+ __field_names__ = ("node", "cursor")
24284
+ node = sgqlc.types.Field(MonitorAtRisk, graphql_name="node")
24285
+ """The item at the end of the edge"""
24286
+
24287
+ cursor = sgqlc.types.Field(sgqlc.types.non_null(String), graphql_name="cursor")
24288
+ """A cursor for use in pagination"""
24289
+
24290
+
24158
24291
  class MonitorBootstrap(sgqlc.types.Type):
24159
24292
  __schema__ = schema
24160
24293
  __field_names__ = (
@@ -25531,6 +25664,7 @@ class Mutation(sgqlc.types.Type):
25531
25664
  "set_etl_job_generates_incidents",
25532
25665
  "set_etl_job_generates_alerts",
25533
25666
  "bulk_set_etl_job_generates_alerts",
25667
+ "configure_ai_agent_prompt",
25534
25668
  "create_account_secret",
25535
25669
  "update_account_secret",
25536
25670
  "delete_account_secret",
@@ -42099,6 +42233,33 @@ class Mutation(sgqlc.types.Type):
42099
42233
  * `mcons` (`[String]!`): MCONs of jobs to set generate alerts for
42100
42234
  """
42101
42235
 
42236
+ configure_ai_agent_prompt = sgqlc.types.Field(
42237
+ ConfigureAiAgentPrompt,
42238
+ graphql_name="configureAiAgentPrompt",
42239
+ args=sgqlc.types.ArgDict(
42240
+ (
42241
+ (
42242
+ "agent_type",
42243
+ sgqlc.types.Arg(
42244
+ sgqlc.types.non_null(AiAgentType), graphql_name="agentType", default=None
42245
+ ),
42246
+ ),
42247
+ (
42248
+ "context_prompt",
42249
+ sgqlc.types.Arg(String, graphql_name="contextPrompt", default=None),
42250
+ ),
42251
+ )
42252
+ ),
42253
+ )
42254
+ """(experimental) Configure the context prompt for an AI agent
42255
+
42256
+ Arguments:
42257
+
42258
+ * `agent_type` (`AiAgentType!`): Type of AI agent to configure
42259
+ * `context_prompt` (`String`): Custom context prompt for the
42260
+ agent. Pass null to clear.
42261
+ """
42262
+
42102
42263
  create_account_secret = sgqlc.types.Field(
42103
42264
  CreateAccountSecret,
42104
42265
  graphql_name="createAccountSecret",
@@ -43940,6 +44101,7 @@ class Query(sgqlc.types.Type):
43940
44101
  "get_job_execution_history_logs",
43941
44102
  "get_job_executions",
43942
44103
  "get_table_monitor",
44104
+ "get_table_monitor_coverage",
43943
44105
  "get_monitors",
43944
44106
  "get_monitors_count",
43945
44107
  "get_monitor_namespaces",
@@ -44175,12 +44337,16 @@ class Query(sgqlc.types.Type):
44175
44337
  "get_alerts_count_by_date",
44176
44338
  "get_alert_access_request",
44177
44339
  "get_collibra_ping",
44340
+ "get_collibra_monitor_note",
44341
+ "get_collibra_monitor_table_search_names",
44342
+ "get_collibra_domains_for_table_search_name",
44178
44343
  "get_alation_table_flags",
44179
44344
  "get_airflow_task_results",
44180
44345
  "get_airflow_task_stats",
44181
44346
  "get_airflow_tasks_for_source_and_destination_tables",
44182
44347
  "get_airflow_dag_runs",
44183
44348
  "get_airflow_capabilities",
44349
+ "get_ai_agent_config",
44184
44350
  "fix_sql_query",
44185
44351
  "create_sql_query",
44186
44352
  "get_agent_operation_logs",
@@ -50395,6 +50561,36 @@ class Query(sgqlc.types.Type):
50395
50561
  * `monitor_uuid` (`UUID!`)None
50396
50562
  """
50397
50563
 
50564
+ get_table_monitor_coverage = sgqlc.types.Field(
50565
+ "TableMonitorCoverage",
50566
+ graphql_name="getTableMonitorCoverage",
50567
+ args=sgqlc.types.ArgDict(
50568
+ (
50569
+ (
50570
+ "monitor_uuid",
50571
+ sgqlc.types.Arg(
50572
+ sgqlc.types.non_null(UUID), graphql_name="monitorUuid", default=None
50573
+ ),
50574
+ ),
50575
+ ("search", sgqlc.types.Arg(String, graphql_name="search", default=None)),
50576
+ (
50577
+ "monitors_search",
50578
+ sgqlc.types.Arg(String, graphql_name="monitorsSearch", default=None),
50579
+ ),
50580
+ )
50581
+ ),
50582
+ )
50583
+ """(experimental) Get table monitor coverage information
50584
+
50585
+ Arguments:
50586
+
50587
+ * `monitor_uuid` (`UUID!`): UUID of the table monitor
50588
+ * `search` (`String`): Search for tables by name, database, or
50589
+ schema (case-insensitive substring match)
50590
+ * `monitors_search` (`String`): Search for monitors by description
50591
+ (case-insensitive substring match)
50592
+ """
50593
+
50398
50594
  get_monitors = sgqlc.types.Field(
50399
50595
  sgqlc.types.list_of("Monitor"),
50400
50596
  graphql_name="getMonitors",
@@ -60179,6 +60375,73 @@ class Query(sgqlc.types.Type):
60179
60375
  existing integration
60180
60376
  """
60181
60377
 
60378
+ get_collibra_monitor_note = sgqlc.types.Field(
60379
+ CollibraMonitorNoteResponse,
60380
+ graphql_name="getCollibraMonitorNote",
60381
+ args=sgqlc.types.ArgDict(
60382
+ (
60383
+ (
60384
+ "monitor_uuid",
60385
+ sgqlc.types.Arg(
60386
+ sgqlc.types.non_null(String), graphql_name="monitorUuid", default=None
60387
+ ),
60388
+ ),
60389
+ )
60390
+ ),
60391
+ )
60392
+ """(experimental) Collibra monitor note. Has extra debug information
60393
+ about table relationships if they could not be found
60394
+
60395
+ Arguments:
60396
+
60397
+ * `monitor_uuid` (`String!`): Monitor uuid
60398
+ """
60399
+
60400
+ get_collibra_monitor_table_search_names = sgqlc.types.Field(
60401
+ sgqlc.types.list_of(String),
60402
+ graphql_name="getCollibraMonitorTableSearchNames",
60403
+ args=sgqlc.types.ArgDict(
60404
+ (
60405
+ (
60406
+ "monitor_uuid",
60407
+ sgqlc.types.Arg(
60408
+ sgqlc.types.non_null(String), graphql_name="monitorUuid", default=None
60409
+ ),
60410
+ ),
60411
+ )
60412
+ ),
60413
+ )
60414
+ """(experimental) Get table search names for a monitor in Collibra
60415
+ format
60416
+
60417
+ Arguments:
60418
+
60419
+ * `monitor_uuid` (`String!`): Monitor uuid
60420
+ """
60421
+
60422
+ get_collibra_domains_for_table_search_name = sgqlc.types.Field(
60423
+ sgqlc.types.list_of(CollibraDomainSearchResponse),
60424
+ graphql_name="getCollibraDomainsForTableSearchName",
60425
+ args=sgqlc.types.ArgDict(
60426
+ (
60427
+ (
60428
+ "table_search_name",
60429
+ sgqlc.types.Arg(
60430
+ sgqlc.types.non_null(String), graphql_name="tableSearchName", default=None
60431
+ ),
60432
+ ),
60433
+ )
60434
+ ),
60435
+ )
60436
+ """(experimental) Get Collibra domain information for a table search
60437
+ name
60438
+
60439
+ Arguments:
60440
+
60441
+ * `table_search_name` (`String!`): Table search name in Collibra
60442
+ format (e.g., '>project>dataset>table')
60443
+ """
60444
+
60182
60445
  get_alation_table_flags = sgqlc.types.Field(
60183
60446
  sgqlc.types.list_of(GetAlationTableFlags),
60184
60447
  graphql_name="getAlationTableFlags",
@@ -60429,6 +60692,28 @@ class Query(sgqlc.types.Type):
60429
60692
  * `etl_container_uuid` (`UUID`): UUID of ETL Container
60430
60693
  """
60431
60694
 
60695
+ get_ai_agent_config = sgqlc.types.Field(
60696
+ AiAgent,
60697
+ graphql_name="getAiAgentConfig",
60698
+ args=sgqlc.types.ArgDict(
60699
+ (
60700
+ (
60701
+ "agent_type",
60702
+ sgqlc.types.Arg(
60703
+ sgqlc.types.non_null(AiAgentType), graphql_name="agentType", default=None
60704
+ ),
60705
+ ),
60706
+ )
60707
+ ),
60708
+ )
60709
+ """(experimental) Get AI agent configuration for the account
60710
+
60711
+ Arguments:
60712
+
60713
+ * `agent_type` (`AiAgentType!`): Type of AI agent to retrieve
60714
+ configuration for
60715
+ """
60716
+
60432
60717
  fix_sql_query = sgqlc.types.Field(
60433
60718
  AIMessageOutput,
60434
60719
  graphql_name="fixSqlQuery",
@@ -64402,6 +64687,80 @@ class TableMonitorConnection(sgqlc.types.relay.Connection):
64402
64687
  """Contains the nodes in this connection."""
64403
64688
 
64404
64689
 
64690
+ class TableMonitorCoverage(sgqlc.types.Type):
64691
+ """Coverage information for a table monitor"""
64692
+
64693
+ __schema__ = schema
64694
+ __field_names__ = (
64695
+ "tables_at_risk",
64696
+ "tables_at_risk_count",
64697
+ "non_table_monitors_at_risk",
64698
+ "non_table_monitors_at_risk_count",
64699
+ )
64700
+ tables_at_risk = sgqlc.types.Field(
64701
+ "WarehouseTableConnection",
64702
+ graphql_name="tablesAtRisk",
64703
+ args=sgqlc.types.ArgDict(
64704
+ (
64705
+ ("before", sgqlc.types.Arg(String, graphql_name="before", default=None)),
64706
+ ("after", sgqlc.types.Arg(String, graphql_name="after", default=None)),
64707
+ ("first", sgqlc.types.Arg(Int, graphql_name="first", default=None)),
64708
+ ("last", sgqlc.types.Arg(Int, graphql_name="last", default=None)),
64709
+ )
64710
+ ),
64711
+ )
64712
+ """Paginated list of tables that are only covered by this monitor and
64713
+ would become unmonitored if this monitor is deleted
64714
+
64715
+ Arguments:
64716
+
64717
+ * `before` (`String`)None
64718
+ * `after` (`String`)None
64719
+ * `first` (`Int`)None
64720
+ * `last` (`Int`)None
64721
+ """
64722
+
64723
+ tables_at_risk_count = sgqlc.types.Field(
64724
+ sgqlc.types.non_null(Int), graphql_name="tablesAtRiskCount"
64725
+ )
64726
+ """Number of tables that will become unmonitored if this monitor is
64727
+ deleted (tables only covered by this monitor)
64728
+ """
64729
+
64730
+ non_table_monitors_at_risk = sgqlc.types.Field(
64731
+ MonitorAtRiskConnection,
64732
+ graphql_name="nonTableMonitorsAtRisk",
64733
+ args=sgqlc.types.ArgDict(
64734
+ (
64735
+ ("before", sgqlc.types.Arg(String, graphql_name="before", default=None)),
64736
+ ("after", sgqlc.types.Arg(String, graphql_name="after", default=None)),
64737
+ ("first", sgqlc.types.Arg(Int, graphql_name="first", default=None)),
64738
+ ("last", sgqlc.types.Arg(Int, graphql_name="last", default=None)),
64739
+ )
64740
+ ),
64741
+ )
64742
+ """Paginated list of monitors that cover tables which are only
64743
+ covered by this monitor. These monitors are at risk of covering
64744
+ unmonitored tables if this monitor is deleted. Sorted by creation
64745
+ date descending.
64746
+
64747
+ Arguments:
64748
+
64749
+ * `before` (`String`)None
64750
+ * `after` (`String`)None
64751
+ * `first` (`Int`)None
64752
+ * `last` (`Int`)None
64753
+ """
64754
+
64755
+ non_table_monitors_at_risk_count = sgqlc.types.Field(
64756
+ sgqlc.types.non_null(Int), graphql_name="nonTableMonitorsAtRiskCount"
64757
+ )
64758
+ """Number of non-table monitors that cover tables which are only
64759
+ covered by this monitor (monitors at risk of covering unmonitored
64760
+ tables if this monitor is deleted)
64761
+ """
64762
+
64763
+
64405
64764
  class TableMonitorEdge(sgqlc.types.Type):
64406
64765
  """A Relay edge containing a `TableMonitor` and its cursor."""
64407
64766
 
@@ -77060,6 +77419,7 @@ class WarehouseTable(sgqlc.types.Type, Node):
77060
77419
  "total_downstream_nodes",
77061
77420
  "total_upstream_nodes",
77062
77421
  "monitored_metrics",
77422
+ "table_monitor_count",
77063
77423
  )
77064
77424
  table_id = sgqlc.types.Field(String, graphql_name="tableId")
77065
77425
 
@@ -77560,6 +77920,11 @@ class WarehouseTable(sgqlc.types.Type, Node):
77560
77920
  graphql_name="monitoredMetrics",
77561
77921
  )
77562
77922
 
77923
+ table_monitor_count = sgqlc.types.Field(Int, graphql_name="tableMonitorCount")
77924
+ """Number of table monitors covering this table (eventually
77925
+ consistent)
77926
+ """
77927
+
77563
77928
 
77564
77929
  class WarehouseTableHealth(sgqlc.types.Type, Node):
77565
77930
  __schema__ = schema
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycarlo
3
- Version: 0.10.168
3
+ Version: 0.10.170
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=2fgHIEleLsCd7TqIXqhiEaDmryOC3gR-oAIrBzaesAo,6243800
39
- pycarlo/lib/schema.py,sha256=xgaRFYMF4XURQs8ODoOxNiy27x1Hf0_h3GyVyxp9T-Y,2712937
40
- pycarlo-0.10.168.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
41
- pycarlo-0.10.168.dist-info/METADATA,sha256=_Tu0lG4o0TMPgotpuyN1FtZa557SexksarjuW5hbBqE,8742
42
- pycarlo-0.10.168.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
43
- pycarlo-0.10.168.dist-info/top_level.txt,sha256=TIE04H4pgzGaFxAB-gvkmVAUOAoHxxFfhnEcpuQ5bF4,8
44
- pycarlo-0.10.168.dist-info/RECORD,,
38
+ pycarlo/lib/schema.json,sha256=VR8Il5do9rfdah8vUmHBdyY6QwyZTMxT1V9qUbhbqnU,6268885
39
+ pycarlo/lib/schema.py,sha256=mBmvkv_hRhiaM2O6LNEi9sKjv94ugYleqYyOx2hBxzM,2725066
40
+ pycarlo-0.10.170.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
41
+ pycarlo-0.10.170.dist-info/METADATA,sha256=0B83ShVrNKP4svMHGM5X1BZkpjoR7-QGLo3VN99boUs,8742
42
+ pycarlo-0.10.170.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
43
+ pycarlo-0.10.170.dist-info/top_level.txt,sha256=TIE04H4pgzGaFxAB-gvkmVAUOAoHxxFfhnEcpuQ5bF4,8
44
+ pycarlo-0.10.170.dist-info/RECORD,,