1#!/usr/bin/env nix-shell
2#!nix-shell -i bash -p curl jq nixpkgs-fmt nix-update xmlstarlet
3
4set -eu -o pipefail
5
6source_file=pkgs/development/python-modules/mypy-boto3/default.nix
7
8nix-update python312Packages.botocore-stubs --commit --build
9
10packages=(
11 mypy-boto3-accessanalyzer
12 mypy-boto3-account
13 mypy-boto3-acm
14 mypy-boto3-acm-pca
15 mypy-boto3-alexaforbusiness
16 mypy-boto3-amp
17 mypy-boto3-amplify
18 mypy-boto3-amplifybackend
19 mypy-boto3-amplifyuibuilder
20 mypy-boto3-apigateway
21 mypy-boto3-apigatewaymanagementapi
22 mypy-boto3-apigatewayv2
23 mypy-boto3-appconfig
24 mypy-boto3-appconfigdata
25 mypy-boto3-appfabric
26 mypy-boto3-appflow
27 mypy-boto3-appintegrations
28 mypy-boto3-application-autoscaling
29 mypy-boto3-application-insights
30 mypy-boto3-applicationcostprofiler
31 mypy-boto3-appmesh
32 mypy-boto3-apprunner
33 mypy-boto3-appstream
34 mypy-boto3-appsync
35 mypy-boto3-arc-zonal-shift
36 mypy-boto3-athena
37 mypy-boto3-auditmanager
38 mypy-boto3-autoscaling
39 mypy-boto3-autoscaling-plans
40 mypy-boto3-backup
41 mypy-boto3-backup-gateway
42 mypy-boto3-backupstorage
43 mypy-boto3-batch
44 mypy-boto3-billingconductor
45 mypy-boto3-braket
46 mypy-boto3-budgets
47 mypy-boto3-ce
48 mypy-boto3-chime
49 mypy-boto3-chime-sdk-identity
50 mypy-boto3-chime-sdk-media-pipelines
51 mypy-boto3-chime-sdk-meetings
52 mypy-boto3-chime-sdk-messaging
53 mypy-boto3-chime-sdk-voice
54 mypy-boto3-cleanrooms
55 mypy-boto3-cloud9
56 mypy-boto3-cloudcontrol
57 mypy-boto3-clouddirectory
58 mypy-boto3-cloudformation
59 mypy-boto3-cloudfront
60 mypy-boto3-cloudhsm
61 mypy-boto3-cloudhsmv2
62 mypy-boto3-cloudsearch
63 mypy-boto3-cloudsearchdomain
64 mypy-boto3-cloudtrail
65 mypy-boto3-cloudtrail-data
66 mypy-boto3-cloudwatch
67 mypy-boto3-codeartifact
68 mypy-boto3-codebuild
69 mypy-boto3-codecatalyst
70 mypy-boto3-codecommit
71 mypy-boto3-codedeploy
72 mypy-boto3-codeguru-reviewer
73 mypy-boto3-codeguru-security
74 mypy-boto3-codeguruprofiler
75 mypy-boto3-codepipeline
76 mypy-boto3-codestar
77 mypy-boto3-codestar-connections
78 mypy-boto3-codestar-notifications
79 mypy-boto3-cognito-identity
80 mypy-boto3-cognito-idp
81 mypy-boto3-cognito-sync
82 mypy-boto3-comprehend
83 mypy-boto3-comprehendmedical
84 mypy-boto3-compute-optimizer
85 mypy-boto3-config
86 mypy-boto3-connect
87 mypy-boto3-connect-contact-lens
88 mypy-boto3-connectcampaigns
89 mypy-boto3-connectcases
90 mypy-boto3-connectparticipant
91 mypy-boto3-controltower
92 mypy-boto3-cur
93 mypy-boto3-customer-profiles
94 mypy-boto3-databrew
95 mypy-boto3-dataexchange
96 mypy-boto3-datapipeline
97 mypy-boto3-datasync
98 mypy-boto3-dax
99 mypy-boto3-detective
100 mypy-boto3-devicefarm
101 mypy-boto3-devops-guru
102 mypy-boto3-directconnect
103 mypy-boto3-discovery
104 mypy-boto3-dlm
105 mypy-boto3-dms
106 mypy-boto3-docdb
107 mypy-boto3-docdb-elastic
108 mypy-boto3-drs
109 mypy-boto3-ds
110 mypy-boto3-dynamodb
111 mypy-boto3-dynamodbstreams
112 mypy-boto3-ebs
113 mypy-boto3-ec2
114 mypy-boto3-ec2-instance-connect
115 mypy-boto3-ecr
116 mypy-boto3-ecr-public
117 mypy-boto3-ecs
118 mypy-boto3-efs
119 mypy-boto3-eks
120 mypy-boto3-elastic-inference
121 mypy-boto3-elasticache
122 mypy-boto3-elasticbeanstalk
123 mypy-boto3-elastictranscoder
124 mypy-boto3-elb
125 mypy-boto3-elbv2
126 mypy-boto3-emr
127 mypy-boto3-emr-containers
128 mypy-boto3-emr-serverless
129 mypy-boto3-entityresolution
130 mypy-boto3-es
131 mypy-boto3-events
132 mypy-boto3-evidently
133 mypy-boto3-finspace
134 mypy-boto3-finspace-data
135 mypy-boto3-firehose
136 mypy-boto3-fis
137 mypy-boto3-fms
138 mypy-boto3-forecast
139 mypy-boto3-forecastquery
140 mypy-boto3-frauddetector
141 mypy-boto3-fsx
142 mypy-boto3-gamelift
143# mypy-boto3-gamesparks
144 mypy-boto3-glacier
145 mypy-boto3-globalaccelerator
146 mypy-boto3-glue
147 mypy-boto3-grafana
148 mypy-boto3-greengrass
149 mypy-boto3-greengrassv2
150 mypy-boto3-groundstation
151 mypy-boto3-guardduty
152 mypy-boto3-health
153 mypy-boto3-healthlake
154 mypy-boto3-honeycode
155 mypy-boto3-iam
156 mypy-boto3-identitystore
157 mypy-boto3-imagebuilder
158 mypy-boto3-importexport
159 mypy-boto3-inspector
160 mypy-boto3-inspector2
161 mypy-boto3-internetmonitor
162 mypy-boto3-iot
163 mypy-boto3-iot-data
164 mypy-boto3-iot-jobs-data
165 mypy-boto3-iot-roborunner
166 mypy-boto3-iot1click-devices
167 mypy-boto3-iot1click-projects
168 mypy-boto3-iotanalytics
169 mypy-boto3-iotdeviceadvisor
170 mypy-boto3-iotevents
171 mypy-boto3-iotevents-data
172 mypy-boto3-iotfleethub
173 mypy-boto3-iotfleetwise
174 mypy-boto3-iotsecuretunneling
175 mypy-boto3-iotsitewise
176 mypy-boto3-iotthingsgraph
177 mypy-boto3-iottwinmaker
178 mypy-boto3-iotwireless
179 mypy-boto3-ivs
180 mypy-boto3-ivs-realtime
181 mypy-boto3-ivschat
182 mypy-boto3-kafka
183 mypy-boto3-kafkaconnect
184 mypy-boto3-kendra
185 mypy-boto3-kendra-ranking
186 mypy-boto3-keyspaces
187 mypy-boto3-kinesis
188 mypy-boto3-kinesis-video-archived-media
189 mypy-boto3-kinesis-video-media
190 mypy-boto3-kinesis-video-signaling
191 mypy-boto3-kinesis-video-webrtc-storage
192 mypy-boto3-kinesisanalytics
193 mypy-boto3-kinesisanalyticsv2
194 mypy-boto3-kinesisvideo
195 mypy-boto3-kms
196 mypy-boto3-lakeformation
197 mypy-boto3-lambda
198 mypy-boto3-lex-models
199 mypy-boto3-lex-runtime
200 mypy-boto3-lexv2-models
201 mypy-boto3-lexv2-runtime
202 mypy-boto3-license-manager
203 mypy-boto3-license-manager-linux-subscriptions
204 mypy-boto3-license-manager-user-subscriptions
205 mypy-boto3-lightsail
206 mypy-boto3-location
207 mypy-boto3-logs
208 mypy-boto3-lookoutequipment
209 mypy-boto3-lookoutmetrics
210 mypy-boto3-lookoutvision
211 mypy-boto3-m2
212 mypy-boto3-machinelearning
213 #mypy-boto3-macie
214 mypy-boto3-macie2
215 mypy-boto3-managedblockchain
216 mypy-boto3-managedblockchain-query
217 mypy-boto3-marketplace-catalog
218 mypy-boto3-marketplace-entitlement
219 mypy-boto3-marketplacecommerceanalytics
220 mypy-boto3-mediaconnect
221 mypy-boto3-mediaconvert
222 mypy-boto3-medialive
223 mypy-boto3-mediapackage
224 mypy-boto3-mediapackage-vod
225 mypy-boto3-mediapackagev2
226 mypy-boto3-mediastore
227 mypy-boto3-mediastore-data
228 mypy-boto3-mediatailor
229 mypy-boto3-medical-imaging
230 mypy-boto3-memorydb
231 mypy-boto3-meteringmarketplace
232 mypy-boto3-mgh
233 mypy-boto3-mgn
234 mypy-boto3-migration-hub-refactor-spaces
235 mypy-boto3-migrationhub-config
236 mypy-boto3-migrationhuborchestrator
237 mypy-boto3-migrationhubstrategy
238 mypy-boto3-mobile
239 mypy-boto3-mq
240 mypy-boto3-mturk
241 mypy-boto3-mwaa
242 mypy-boto3-neptune
243 mypy-boto3-neptunedata
244 mypy-boto3-network-firewall
245 mypy-boto3-networkmanager
246 mypy-boto3-nimble
247 mypy-boto3-oam
248 mypy-boto3-omics
249 mypy-boto3-opensearch
250 mypy-boto3-opensearchserverless
251 mypy-boto3-opsworks
252 mypy-boto3-opsworkscm
253 mypy-boto3-organizations
254 mypy-boto3-osis
255 mypy-boto3-outposts
256 mypy-boto3-panorama
257 mypy-boto3-payment-cryptography
258 mypy-boto3-payment-cryptography-data
259 mypy-boto3-pca-connector-ad
260 mypy-boto3-personalize
261 mypy-boto3-personalize-events
262 mypy-boto3-personalize-runtime
263 mypy-boto3-pi
264 mypy-boto3-pinpoint
265 mypy-boto3-pinpoint-email
266 mypy-boto3-pinpoint-sms-voice
267 mypy-boto3-pinpoint-sms-voice-v2
268 mypy-boto3-pipes
269 mypy-boto3-polly
270 mypy-boto3-pricing
271 mypy-boto3-privatenetworks
272 mypy-boto3-proton
273 mypy-boto3-qldb
274 mypy-boto3-qldb-session
275 mypy-boto3-quicksight
276 mypy-boto3-ram
277 mypy-boto3-rbin
278 mypy-boto3-rds
279 mypy-boto3-rds-data
280 mypy-boto3-redshift
281 mypy-boto3-redshift-data
282 mypy-boto3-redshift-serverless
283 mypy-boto3-rekognition
284 mypy-boto3-resiliencehub
285 mypy-boto3-resource-explorer-2
286 mypy-boto3-resource-groups
287 mypy-boto3-resourcegroupstaggingapi
288 mypy-boto3-robomaker
289 mypy-boto3-rolesanywhere
290 mypy-boto3-route53
291 mypy-boto3-route53-recovery-cluster
292 mypy-boto3-route53-recovery-control-config
293 mypy-boto3-route53-recovery-readiness
294 mypy-boto3-route53domains
295 mypy-boto3-route53resolver
296 mypy-boto3-rum
297 mypy-boto3-s3
298 mypy-boto3-s3control
299 mypy-boto3-s3outposts
300 mypy-boto3-sagemaker
301 mypy-boto3-sagemaker-a2i-runtime
302 mypy-boto3-sagemaker-edge
303 mypy-boto3-sagemaker-featurestore-runtime
304 mypy-boto3-sagemaker-geospatial
305 mypy-boto3-sagemaker-metrics
306 mypy-boto3-sagemaker-runtime
307 mypy-boto3-savingsplans
308 mypy-boto3-scheduler
309 mypy-boto3-schemas
310 mypy-boto3-sdb
311 mypy-boto3-secretsmanager
312 mypy-boto3-securityhub
313 mypy-boto3-securitylake
314 mypy-boto3-serverlessrepo
315 mypy-boto3-service-quotas
316 mypy-boto3-servicecatalog
317 mypy-boto3-servicecatalog-appregistry
318 mypy-boto3-servicediscovery
319 mypy-boto3-ses
320 mypy-boto3-sesv2
321 mypy-boto3-shield
322 mypy-boto3-signer
323 mypy-boto3-simspaceweaver
324 mypy-boto3-sms
325 mypy-boto3-sms-voice
326 mypy-boto3-snow-device-management
327 mypy-boto3-snowball
328 mypy-boto3-sns
329 mypy-boto3-sqs
330 mypy-boto3-ssm
331 mypy-boto3-ssm-contacts
332 mypy-boto3-ssm-incidents
333 mypy-boto3-ssm-sap
334 mypy-boto3-sso
335 mypy-boto3-sso-admin
336 mypy-boto3-sso-oidc
337 mypy-boto3-stepfunctions
338 mypy-boto3-storagegateway
339 mypy-boto3-sts
340 mypy-boto3-support
341 mypy-boto3-support-app
342 mypy-boto3-swf
343 mypy-boto3-synthetics
344 mypy-boto3-textract
345 mypy-boto3-timestream-query
346 mypy-boto3-timestream-write
347 mypy-boto3-tnb
348 mypy-boto3-transcribe
349 mypy-boto3-transfer
350 mypy-boto3-translate
351 mypy-boto3-verifiedpermissions
352 mypy-boto3-voice-id
353 mypy-boto3-vpc-lattice
354 mypy-boto3-waf
355 mypy-boto3-waf-regional
356 mypy-boto3-wafv2
357 mypy-boto3-wellarchitected
358 mypy-boto3-wisdom
359 mypy-boto3-workdocs
360 mypy-boto3-worklink
361 mypy-boto3-workmail
362 mypy-boto3-workmailmessageflow
363 mypy-boto3-workspaces
364 mypy-boto3-workspaces-web
365 mypy-boto3-xray)
366
367for package in "${packages[@]}"; do
368 echo "Updating ${package} ..."
369
370 old_version=$(awk -v pkg="$package" -F'"' '$1 ~ pkg " = " {print $4}' ${source_file})
371 version=$(curl -s https://pypi.org/pypi/${package}/json | jq -r '.info.version')
372
373 if [ "${version}" != "${old_version}" ]; then
374 url="https://pypi.io/packages/source/m/${package}/${package}-${version}.tar.gz"
375 hash=$(nix-prefetch-url --type sha256 $url)
376 sri_hash="$(nix hash to-sri --type sha256 $hash)"
377
378 awk -i inplace -v package="$package" -v new_version="$version" -v new_sha256="$sri_hash" '
379 $1 == package {
380 $5 = "\"" new_version "\"";
381 $6 = "\"" new_sha256 "\";";
382 }
383 {print}
384 ' $source_file
385
386 nixpkgs-fmt ${source_file}
387
388 git commit ${source_file} -m "python312Packages.${package}: ${old_version} -> ${version}"
389 fi
390
391done