To expand on that thought, I find it easier to parse in cases like SQLAlchemy 
vs SqlAlchemy. It helps to visually indicate where that acronym stops and the 
next word starts.


________________________________
From: Ferruzzi, Dennis <ferru...@amazon.com.INVALID>
Sent: Friday, February 4, 2022 11:20 AM
To: dev@airflow.apache.org
Cc: Felix Uellendall
Subject: RE: [EXTERNAL] [DISCUSS] how to name classes with abbreviations?


CAUTION: This email originated from outside of the organization. Do not click 
links or open attachments unless you can confirm the sender and know the 
content is safe.



In December Elad organized a community project 
(https://github.com/apache/airflow/issues/20139) which included un-PEP-8-ing 
the Amazon provider package, the all-caps acronyms you see there are/should all 
be deprecated.

That said, I do find it easier to read as `BranchSqlOperator`, so that format 
would be my vote if I had one.



From: Jarek Potiuk <ja...@potiuk.com>
Sent: Friday, February 4, 2022 7:16 AM
To: dev@airflow.apache.org
Cc: Felix Uellendall
Subject: RE: [EXTERNAL] [DISCUSS] how to name classes with abbreviations?


CAUTION: This email originated from outside of the organization. Do not click 
links or open attachments unless you can confirm the sender and know the 
content is safe.


Surprisingly, as opinionated as I often am, I am happy to follow whatever rules 
others agree with here :).

Even if we agree that "either is ok" and we mix them and keep them inconsistent 
and even if someone we do this and sometimes that. I simply do not see huge 
value in standardizing this.

Why?

Following the "human language" that you mentioned, Bas (as I see it at least), 
the right answer is "it depends".

IMHO in human language the capitalization rules for acronyms vary and are full 
of exceptions and depend on context. Some acronyms are better CAPITALIZED but 
for some it's perfectly ok to be CapWorded and which one is better "felt" 
depends on who you are, what background and experience you have, and whether 
English is your native language.
For example, for me TCP is clearly very bad when CapWorded as 'Tcp' , but Http 
is far more pleasant than HTTP. And (just to anticipate arguments) it's not 
only about the length, it's also about some past experiences and how many of 
each I've been intimately familiar with (i.e. how many documents and code I 
read and written on each mostly).

So just to protect my sanity I developed a blind spot and for me either is OK 
and even if we have no consistency, I simply don't care :). That also saves a 
lot of mental effort to discuss and think about it, to be perfectly honest.

So I will follow whatever rule others feel strong about.

J.



On Fri, Feb 4, 2022 at 11:07 AM Bas Harenslak <b...@astronomer.io.invalid> 
wrote:
Thanks for opening this discussion, hopefully we can improve consistency, 
regardless the outcome.

+1 for capitalizing abbreviations. IMO since abbreviations are written 
capitalised in human language, using the same convention in code gives clarity.

Bas

On 4 Feb 2022, at 07:26, Felix Uellendall 
<felue...@pm.me.INVALID<mailto:felue...@pm.me.INVALID>> wrote:

Sorry in this case I would be NOT in favor of pep8. I misread it.

-feluelle


Sent from ProtonMail for iOS


On Fri, Feb 4, 2022 at 07:22, Felix Uellendall 
<felue...@pm.me.INVALID<mailto:felue...@pm.me.INVALID>> wrote:
I am in favor of pep8 guidelines. I think it makes sense to clearly see 
separation between words/tokens. For me uppercase is harder to read and I don’t 
like getting screamed at. As long as there is documentation, this can be 
written there correctly as you can split it like normal words (by spaces).

-feluelle


Sent from ProtonMail for iOS


On Fri, Feb 4, 2022 at 01:46, Daniel Standish 
<daniel.stand...@astronomer.io.INVALID<mailto:daniel.stand...@astronomer.io.INVALID>>
 wrote:
How should we name, for example, an operator such as `BranchSQLOperator`?

This operator used to be called `BranchSqlOperator` but at some point in the 
past was renamed.

Meanwhile we have SparkSqlOperator which uses the other convention.

And we have `EmrBaseSensor`, and `EMRContainerOperator` coexisting.

On this SO 
post<https://stackoverflow.com/questions/2853531/how-do-you-pep-8-name-a-class-whose-name-is-an-acronym>
 you can find argument on both sides of the debate.

On one side you have a quote from PEP-8:

Note: When using abbreviations in CapWords, capitalize all the letters of the 
abbreviation. Thus HTTPServerError is better than HttpServerError.

On the other side you have an example like this:

class NASAJPL:

vs
class NasaJPL
vs
class NasaJpl

By one argument, option 3 is most readable because the "tokens" are clearly 
separated (i.e. nasa and JPL) -- and certainly in some IDEs this can be a great 
benefit.

And perhaps the argument for option 2 is you say "nasa" and "J-P-L" not "nasa" 
and "jipple" -- in contrast with SQL where reasonable people say "sequel" and 
not "ess queue ell".

This comes up pretty regularly, and I think we ought to make a decision and do 
some pre-commit work to enforce (with an exception list a la 
spelling-wordlist.txt) the decision.

So, please consider debate kicked off, and have at it.

Thanks







Reply via email to