Client.py for a tap of stream type SQL being overwritten during project initialization

Summary

When you initialize a SQL project with Meltano SDK 0.4.4 the client.py file's contents does not match up with that of the template designated for it. Thanks to ptd's troubleshoot this issue and let me know in slack that the file is being overwritten because the evolution for another client.py file is also true so it overwrites the correct client.py file.

Steps to reproduce

cookiecutter https://gitlab.com/meltano/sdk --directory="cookiecutter/tap-template"

source_name [MySourceName]: test
admin_name [FirstName LastName]: Dan Norman
tap_id [tap-test]:
library_name [tap_test]:
Select stream_type:
1 - REST
2 - GraphQL
3 - SQL
4 - Other
Choose from 1, 2, 3, 4 [1]: 3
Select auth_method:
1 - API Key
2 - Bearer Token
3 - Basic Auth
4 - OAuth2
5 - JWT
6 - Custom or N/A
Choose from 1, 2, 3, 4, 5, 6 [1]: 3
Select include_cicd_sample_template:
1 - GitHub
2 - None (Skip)
Choose from 1, 2 [1]:

What is the current bug behavior?

When you run cookiecutter with the tap-template the clinet.py file's contents does not match the contents of the template on gitlab. The file actually matches the client.py file designated for streams types that are not REST or GraphQL

{%if cookiecutter.stream_type not in ('REST', 'GraphQL')%}client.py{%endif%}

What is the expected correct behavior?

The client.py file's contents should match up with the client.py designated for SQL stream type

{%if 'SQL' == cookiecutter.stream_type %}client.py{%endif%}

Relevant logs and/or screenshots

DEBUG cookiecutter.utils: Making sure path exists: /home/dannorman/development/tap-test/tap_test/tests
DEBUG cookiecutter.utils: Created directory at: /home/dannorman/development/tap-test/tap_test/tests
DEBUG cookiecutter.generate: Processing file {{cookiecutter.library_name}}/{%if 'SQL' == cookiecutter.stream_type %}client.py{%endif%}
DEBUG cookiecutter.generate: Created file at /home/dannorman/development/tap-test/tap_test/client.py
DEBUG cookiecutter.generate: Check {{cookiecutter.library_name}}/{%if 'SQL' == cookiecutter.stream_type %}client.py{%endif%} to see if it's a binary
DEBUG cookiecutter.generate: Writing contents to file /home/dannorman/development/tap-test/tap_test/client.py
DEBUG cookiecutter.generate: Processing file {{cookiecutter.library_name}}/{%if cookiecutter.auth_method in ('OAuth2', 'JWT')%}auth.py{%endif%}
DEBUG cookiecutter.generate: The resulting file name is empty: /home/dannorman/development/tap-test/tap_test/
DEBUG cookiecutter.generate: Processing file {{cookiecutter.library_name}}/{%if 'SQL' != cookiecutter.stream_type %}streams.py{%endif%}
DEBUG cookiecutter.generate: The resulting file name is empty: /home/dannorman/development/tap-test/tap_test/
DEBUG cookiecutter.generate: Processing file {{cookiecutter.library_name}}/{%if cookiecutter.stream_type not in ('REST', 'GraphQL')%}client.py{%endif%}
DEBUG cookiecutter.generate: Created file at /home/dannorman/development/tap-test/tap_test/client.py
DEBUG cookiecutter.generate: Check {{cookiecutter.library_name}}/{%if cookiecutter.stream_type not in ('REST', 'GraphQL')%}client.py{%endif%} to see if it's a binary
DEBUG cookiecutter.generate: Writing contents to file /home/dannorman/development/tap-test/tap_test/client.py

Possible fixes

I would propose changing the client.py evaluation for not in REST or GraphQL from:

{%if cookiecutter.stream_type not in ('REST', 'GraphQL')%}client.py{%endif%}

to the following:

{%if 'Other' == cookiecutter.stream_type %}client.py{%endif%}

My reasoning is that there are 4 streams types REST, GraphQL, SQL, and Other. REST, GraphQL and SQL all have designated client.py files which leaves only a stream type of Other without a designated client.py file.