Good point. I often forget that Amazon do things other than AWS and selling 
things :)

-a

> On 31 Oct 2019, at 12:15, Kaxil Naik <kaxiln...@gmail.com> wrote:
> 
> I think amazon/aws is better for 2 reasons:
> 
> 
>   - Consistent with what we are doing with google
>   - There can be API services for Amazon platform like
>   https://developer.amazon.com/apps-and-games/incentives-api |
>   https://developer.amazon.com/docs/app-submission-api/overview.html etc
> 
> 
> On Thu, Oct 31, 2019 at 10:44 AM Ash Berlin-Taylor <a...@apache.org> wrote:
> 
>> Personally I would prefer not amazon. - it feels unnecessary as there's
>> unlikely to be anything else but amazon.aws
>> 
>> -a
>> 
>> On 31 October 2019 09:29:18 GMT, MinJae Kwon <mingram...@gmail.com> wrote:
>>> I love all those rules too :)
>>> 
>>> On 2019/10/30 08:13:27, Bas Harenslak <basharens...@godatadriven.com>
>>> wrote:
>>>> Hi,
>>>> 
>>>> How about the following conventions?
>>>> 
>>>>  *   No AWS in whatever notation in the class name, since this is
>>> already in the module (airflow.providers.aws….)
>>>>  *   Only exception to above is the AwsHook, which is a “base” hook
>>> which most other hooks inherit from
>>>>  *   No “Transfer” in class names, since all transfer operators
>>> already have “to” in the name, e.g. RedshiftToS3Transfer becomes
>>> RedshiftToS3Operator
>>>>  *   For all class names, the naming convention is
>>> {service}{component}, e.g. “AthenaHook"
>>>>  *   For all “transfer” names, the naming convention is
>>> {service}To{service}{component}, e.g. “RedshiftToS3Operator"
>>>>  *   Migrate all AWS related components to /airflow/providers/aws/…
>>>>  *   Sidenote: lambda is a reserved Python keyword, so name the
>>> Lambda service files "lambda_.py", according to Python conventions to
>>> avoid name clashes
>>>> 
>>>> Applying these rules, I get the following changes (done some regex,
>>> might have missed a few):
>>>> 
>>>> ./contrib/hooks/aws_dynamodb_hook.py:AwsDynamoDBHook ->
>>> ./providers/aws/hooks/dynamodb.py:DynamoDBHook
>>>> ./contrib/hooks/aws_firehose_hook.py:AwsFirehoseHook ->
>>> ./providers/aws/hooks/firehose.py:FirehoseHook
>>>> ./contrib/hooks/aws_glue_catalog_hook.py:AwsGlueCatalogHook ->
>>> ./providers/aws/hooks/glue.py:GlueHook
>>>> ./contrib/hooks/aws_hook.py:AwsHook ->
>>> ./providers/aws/hooks/base/base.py:AwsHook
>>>> ./contrib/hooks/aws_lambda_hook.py:AwsLambdaHook ->
>>> ./providers/aws/hooks/lambda_.py:LambdaHook
>>>> ./contrib/hooks/aws_logs_hook.py:AwsLogsHook ->
>>> ./providers/aws/hooks/cloudwatch.py:CloudwatchLogsHook
>>>> ./contrib/hooks/aws_sns_hook.py:AwsSnsHook ->
>>> ./providers/aws/hooks/sns.py:SnsHook
>>>> ./contrib/hooks/aws_sqs_hook.py:SQSHook ->
>>> ./providers/aws/hooks/sqs.py:SqsHook
>>>> ./contrib/hooks/emr_hook.py:EmrHook ->
>>> ./providers/aws/hooks/emr.py:EmrHook
>>>> ./contrib/hooks/redshift_hook.py:RedshiftHook ->
>>> ./providers/aws/hooks/redshift.py:RedshiftHook
>>>> ./contrib/hooks/sagemaker_hook.py:SageMakerHook ->
>>> ./providers/aws/hooks/sagemaker.py:SagemakerHook
>>>> ./hooks/S3_hook.py:S3Hook -> ./providers/aws/hooks/s3.py:S3Hook
>>>> ./providers/aws/hooks/athena.py:AWSAthenaHook ->
>>> ./providers/aws/hooks/athena.py:AthenaHook
>>>> 
>>>> ./contrib/operators/aws_sqs_publish_operator.py:SQSPublishOperator ->
>>> ./providers/aws/operators/sqs.py:SQSPublishOperator
>>>> ./contrib/operators/dynamodb_to_s3.py:DynamoDBToS3Operator ->
>>> ./providers/aws/operators/s3.py:DynamoDBToS3Operator
>>>> 
>>> ./contrib/operators/hive_to_dynamodb.py:HiveToDynamoDBTransferOperator
>>> -> ./providers/aws/operators/dynamodb.py:HiveToDynamoDBOperator
>>>> 
>> 
>>> ./contrib/operators/imap_attachment_to_s3_operator.py:ImapAttachmentToS3Operator
>>> -> ./providers/aws/operators/s3.py:ImapAttachmentToS3Operator
>>>> ./contrib/operators/mongo_to_s3.py:MongoToS3Operator ->
>>> ./providers/aws/operators/s3.py:MongoToS3Operator
>>>> ./contrib/operators/s3_copy_object_operator.py:S3CopyObjectOperator
>>> -> ./providers/aws/operators/s3.py:S3CopyObjectOperator
>>>> 
>>> ./contrib/operators/s3_delete_objects_operator.py:S3DeleteObjectsOperator
>>> -> ./providers/aws/operators/s3.py:S3DeleteObjectsOperator
>>>> ./contrib/operators/s3_list_operator.py:S3ListOperator ->
>>> ./providers/aws/operators/s3.py:S3ListOperator
>>>> 
>>> ./contrib/operators/s3_to_gcs_operator.py:S3ToGoogleCloudStorageOperator
>>> -> ./providers/aws/operators/s3.py:S3ToGoogleCloudStorageOperator
>>>> ./contrib/operators/s3_to_sftp_operator.py:S3ToSFTPOperator ->
>>> ./providers/aws/operators/s3.py:S3ToSFTPOperator
>>>> ./contrib/operators/sftp_to_s3_operator.py:SFTPToS3Operator ->
>>> ./providers/aws/operators/s3.py:SFTPToS3Operator
>>>> ./operators/gcs_to_s3.py:GoogleCloudStorageToS3Operator ->
>>> ./providers/aws/operators/s3.py:GoogleCloudStorageToS3Operator
>>>> ./operators/google_api_to_s3_transfer.py:GoogleApiToS3Transfer ->
>>> ./providers/aws/operators/s3.py:GoogleApiToS3Operator
>>>> ./operators/redshift_to_s3_operator.py:RedshiftToS3Transfer ->
>>> ./providers/aws/operators/s3.py:RedshiftToS3Operator
>>>> ./operators/s3_file_transform_operator.py:S3FileTransformOperator ->
>>> ./providers/aws/operators/s3.py:S3FileTransformOperator
>>>> ./operators/s3_to_hive_operator.py:S3ToHiveTransfer ->
>>> ./providers/aws/operators/s3.py:S3ToHiveOperator
>>>> ./operators/s3_to_redshift_operator.py:S3ToRedshiftTransfer ->
>>> ./providers/aws/operators/s3.py:S3ToRedshiftOperator
>>>> ./providers/aws/operators/athena.py:AWSAthenaOperator ->
>>> ./providers/aws/operators/athena.py:AthenaOperator
>>>> ./providers/aws/operators/batch.py:AWSBatchOperator ->
>>> ./providers/aws/operators/batch.py:BatchOperator
>>>> 
>>>> 
>> 
>>> ./contrib/sensors/aws_glue_catalog_partition_sensor.py:AwsGlueCatalogPartitionSensor
>>> -> ./providers/aws/sensors/glue.py:GlueCatalogPartitionSensor
>>>> 
>>> ./contrib/sensors/aws_redshift_cluster_sensor.py:AwsRedshiftClusterSensor
>>> -> ./providers/aws/sensors/redshift.py:RedshiftClusterSensor
>>>> ./contrib/sensors/aws_sqs_sensor.py:SQSSensor ->
>>> ./providers/aws/sensors/sqs.py:SQSSensor
>>>> ./providers/aws/sensors/athena.py:AthenaSensor ->
>>> ./providers/aws/sensors/athena.py:AthenaSensor
>>>> ./sensors/s3_key_sensor.py:S3KeySensor ->
>>> ./providers/aws/sensors/s3.py:S3KeySensor
>>>> ./sensors/s3_prefix_sensor.py:S3PrefixSensor ->
>>> ./providers/aws/sensors/s3.py:S3PrefixSensor
>>>> 
>>>> WDYT?
>>>> 
>>>> Bas
>>>> 
>>>> On 30 Oct 2019, at 08:52, Tomasz Urbaszek
>>> <tomasz.urbas...@polidea.com<mailto:tomasz.urbas...@polidea.com>>
>>> wrote:
>>>> 
>>>> I think it's a great idea and I am willing to help.
>>>> 
>>>> Bests,
>>>> Tomek
>>>> 
>>>> On Wed, Oct 30, 2019 at 3:17 AM MinJae Kwon
>>> <mingram...@gmail.com<mailto:mingram...@gmail.com>> wrote:
>>>> 
>>>> Hi all.
>>>> 
>>>> While I was working on AIRFLOW-5803, I found there are
>>> inconsistencies
>>>> between class names for each AWS operators/hooks.
>>>> 
>>>> For example, Athena hook is named as 'AWSAthenaHook', but Dynamodb
>>> hook is
>>>> named as 'AwsDynamoDBHook', and S3 hook is just 'S3Hook' (So,
>>> AIRFLOW-5803
>>>> is trying to rename S3Hook to AWSS3Hook)
>>>> 
>>>> So we might need to have some conventions or guidelines for AWS
>>>> integrations like GCP (
>>>> 
>>> 
>> https://docs.google.com/document/d/1_rTdJSLCt0eyrAylmmgYc3yZr-_h51fVlnvMmWqhCkY/edit?ts=5bb72dfd#
>>>> )
>>>> 
>>>> What do you think about it?
>>>> 
>>>> Thank you.
>>>> 
>>>> 
>>>> 
>>>> --
>>>> 
>>>> Tomasz Urbaszek
>>>> Polidea <https://www.polidea.com/> | Junior Software Engineer
>>>> 
>>>> M: +48 505 628 493 <+48505628493>
>>>> E: tomasz.urbas...@polidea.com<mailto:tomasz.urbas...@polidea.com>
>>> <tomasz.urbasz...@polidea.com<mailto:tomasz.urbasz...@polidea.com>>
>>>> 
>>>> Unique Tech
>>>> Check out our projects! <https://www.polidea.com/our-work>
>>>> 
>>>> 
>> 

Reply via email to