Skip to content
This repository was archived by the owner on Mar 26, 2026. It is now read-only.

Commit 421079c

Browse files
authored
Remove the special 'enums' submodule (#300)
The creation of this submodule view was based on a misunderstanding of a desired feature: in the API in question, enums are already segregated into their own submodule, the name of which conflicts with `enums.py`
1 parent 5d3abdd commit 421079c

4 files changed

Lines changed: 5 additions & 33 deletions

File tree

gapic/templates/%namespace/%name/__init__.py.j2

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ if sys.version_info < (3, 7):
3333

3434
_lazy_name_to_package_map = {
3535
'types': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.types',
36-
'enums': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.enums',
3736
{%- for service in api.services.values()|sort(attribute='name')|unique(attribute='name') if service.meta.address.subpackage == api.subpackage_view %}
3837
'{{ service.client_name|snake_case }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.services.{{ service.name|snake_case }}.client',
3938
'{{ service.transport_name|snake_case }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.services.transports.base',
@@ -46,7 +45,7 @@ _lazy_type_to_package_map = {
4645
'{{ message.name }}':'{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.types.{{ proto.module_name }}',
4746
{%- endfor %}
4847
{%- for enum in proto.enums.values() %}
49-
'{{ enum.name }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.enums',
48+
'{{ enum.name }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.types.{{ proto.module_name }}',
5049
{%- endfor %}{%- endfor %}
5150
}
5251

@@ -70,11 +69,10 @@ def __getattr__(name): # Requires Python >= 3.7
7069
elif name.endswith('Client'):
7170
module = __getattr__(to_snake_case(name))
7271
sub_mod_class = getattr(module, name)
73-
enums = __getattr__('enums')
7472
klass = type(
7573
name,
7674
(sub_mod_class,),
77-
{'__doc__': sub_mod_class.__doc__, 'enums': enums}
75+
{'__doc__': sub_mod_class.__doc__}
7876
)
7977
globals()[name] = klass
8078
return klass

gapic/templates/%namespace/%name_%version/%sub/__init__.py.j2

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,11 @@ if sys.version_info < (3, 7):
3434

3535
_lazy_name_to_package_map = {
3636
'types': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.types',
37-
'enums': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.enums',
3837
{%- for service in api.services.values()|sort(attribute='name')|unique(attribute='name') if service.meta.address.subpackage == api.subpackage_view %}
3938
'{{ service.client_name|snake_case }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.services.{{ service.name|snake_case }}.client',
4039
'{{ service.transport_name|snake_case }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.services.transports.base',
4140
'{{ service.grpc_transport_name|snake_case }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.services.transports.grpc',
42-
{%- endfor %} {# Need to do types and enums #}
41+
{%- endfor %}
4342
}
4443

4544
_lazy_type_to_package_map = {
@@ -48,7 +47,7 @@ _lazy_type_to_package_map = {
4847
'{{ message.name }}':'{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.types.{{ proto.module_name }}',
4948
{%- endfor %}
5049
{%- for enum in proto.enums.values() %}
51-
'{{ enum.name }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.enums',
50+
'{{ enum.name }}': '{% if api.naming.module_namespace %}{{ api.naming.module_namespace|join(".") }}.{% endif -%}{{ api.naming.versioned_module_name }}.types.{{ proto.module_name }}',
5251
{%- endfor %}{%- endfor %}{%- endfilter %}
5352
}
5453

@@ -71,11 +70,10 @@ def __getattr__(name): # Requires Python >= 3.7
7170
elif name.endswith('Client'):
7271
module = __getattr__(to_snake_case(name))
7372
sub_mod_class = getattr(module, name)
74-
enums = __getattr__('enums')
7573
klass = type(
7674
name,
7775
(sub_mod_class,),
78-
{'__doc__': sub_mod_class.__doc__, 'enums': enums}
76+
{'__doc__': sub_mod_class.__doc__}
7977
)
8078
globals()[name] = klass
8179
return klass

gapic/templates/%namespace/%name_%version/%sub/enums.py.j2

Lines changed: 0 additions & 13 deletions
This file was deleted.

gapic/templates/tests/unit/%name_%version/%sub/test_%service.py.j2

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ from google.api_core import future
2020
from google.api_core import operations_v1
2121
from google.longrunning import operations_pb2
2222
{% endif -%}
23-
{% if api.protos.values()|selectattr('enums') -%}
24-
from {{ (api.naming.module_namespace + (api.naming.versioned_module_name,) + service.meta.address.subpackage)|join(".") }} import enums
25-
{% endif -%}
2623
{% for method in service.methods.values() -%}
2724
{% for ref_type in method.ref_types
2825
if not ((ref_type.ident.python_import.package == ('google', 'api_core') and ref_type.ident.python_import.module == 'operation')
@@ -446,12 +443,4 @@ def test_{{ message.name|snake_case }}_path():
446443
{% endwith -%}
447444
{% endfor -%}
448445

449-
{% with enums = [] -%}{% for p in api.protos.values() if p.file_to_generate -%}{% for e in p.enums.values() if e.ident.module == service.meta.address.module -%}{% do enums.append(e) %}
450-
{% if enums -%}
451-
def test_enum_path():
452-
{%- for e in enums %}
453-
assert enums.{{ e.name }} == {{ e.ident.module }}.{{ e.name }}
454-
{%- endfor %}
455-
{% endif -%}
456-
{% endfor -%}{% endfor -%}{% endwith -%}
457446
{% endblock %}

0 commit comments

Comments
 (0)