
الصورة مقدمة من التعليقات التوضيحية من نوع boto3 ، Allie Fitter
في الوقت الحالي ، قلة من الناس يكتبون مشاريع بيثون كبيرة بدون نوع من التعليقات التوضيحية. إنه بسيط ويسمح لك بالقبض على مجموعة من الأخطاء حتى في مرحلة كتابة التعليمات البرمجية ، وهو يعمل بذكاء شديد. ولكن من الجدير إضافة boto3 كتبعية ، ويبدأ mypy في امتلاء الرسائل التي تكتب التعليقات boto3
غير الموجودة في الطبيعة.
, boto3 botostubs. , mypy
.
boto3-type-annotations, , mypy
.
boto3
, ?
mypy
, boto3 1.11.9
EC2, DynamoDB S3. Python 3.6.9 . , , boto3-stubs 1.11.9.x .
pip install boto3-stubs[s3,ec2,dynamodb]==1.11.9.0
python -m mypy_boto3
… ! mypy
, , , boto3
, .
- !
, .
VSCode , . boto3.client
, boto3_session.client
,boto3.resource
, boto3_session.resource
, client.get_waiter
client.get_paginator
.
PyCharm - , 15 , .
import boto3
from mypy_boto3 import dynamodb
client: dynamodb.DynamoDBClient = boto3.client("dynamodb")
client.query("my_table")
import boto3
from mypy_boto3 import s3
client: s3.S3Client = boto3.client("s3")
client.create_bucket(Bucket="bucket")
client.get_object(Bucket="bucket")
client.get_object(Bucket="bucket", Key=None)
resource: s3.S3ServiceResource = boto3.Session(region_name="us-west-1").resource("s3")
bucket = resource.Bucket("bucket")
bucket.upload_file(Filename="my.txt", key="my-txt")
waiter: s3.BucketExistsWaiter = client.get_waiter("bucket_exists")
paginator: s3.ListMultipartUploadsPaginator = client.get_paginator(
"list_multipart_uploads"
)
mypy-boto3-builder - boto3
. boto3
, .
json
- botocore , boto3
.
, , .
post-install , whl-. ?
نظرًا لأن boto3
العديد من الأساليب والفئات في نفس الملف تسمى نفسها ، من أجل التشغيل الصحيح للتعليقات التوضيحية ، فإن الوحدة النمطية تستورد نفسها. هذا لا يعمل في Python 3.6.5 ولا يبدو جيدًا جدًا. ما هي البدائل؟
وأخيرًا ، إذا كان كل شيء على ما يرام مع C # ، يمكنك إضافة دعم حرفي للوظائف المحملة بخادم Python Language Server بحيث يعمل كل شيء خارج الصندوق في VSCode أيضًا. لم أستطع واستسلم.
شكرا للجميع!