Skip to content

Commit

Permalink
Added abstract support for builtin Vector Members
Browse files Browse the repository at this point in the history
  • Loading branch information
Ananya2003Gupta committed Nov 15, 2023
1 parent 96bdc65 commit 82e75df
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
19 changes: 17 additions & 2 deletions python/templates/ParentModule.jl.jinja2
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ function {{ datatype['class'].bare_type }}(
{% endfor %}
{% for member in datatype['VectorMembers'] %}
{% if member.is_builtin %}
{{ member.name }}::Vector{ {{ member.julia_type }} } = Vector{ {{ member.julia_type }} }([]),
{{ member.name }}::Vector{ {{ member.name }}T } = Vector{ {{ member.julia_type }} }([]),
{% else %}
{% if upstream_edm and (member.full_type in upstream_edm.components or member.full_type in upstream_edm.datatypes) %}
{{ member.name }}::Vector{ {{ upstream_edm_name }}.{{ member.julia_type }}Struct } = Vector{ {{ upstream_edm_name }}.{{ member.julia_type }}Struct }([]),
Expand All @@ -109,7 +109,18 @@ function {{ datatype['class'].bare_type }}(
{% endif %}
{% endif %}
{% endfor %}
)
{% set structure_start = '{' %}
{% set structure_end = '}' %}
) {% if datatype['VectorMembers']|selectattr('is_builtin')|list -%}
where {{ structure_start -}}
{% for member in datatype['VectorMembers'] %}
{% if member.is_builtin %}
{{ member.name }}T<:{{ abstdatatype.classify_data_type(member.julia_type) }}{% if not loop.last %},{% endif %}
{% endif %}
{% endfor -%}
{{ structure_end }}
{% endif %}

return {{ datatype['class'].bare_type }}Struct{{ params.julia_parameters(datatype['params_jl'], "Struct", upstream_edm, upstream_edm_name) }}(
{% for member in datatype['Members'] %}
{% if member.is_builtin %}
Expand All @@ -125,7 +136,11 @@ function {{ datatype['class'].bare_type }}(
{{ relation.name }},
{% endfor %}
{% for member in datatype['VectorMembers'] %}
{% if member.is_builtin %}
convert(Vector{ {{ member.julia_type }} }, {{ member.name }}),
{% else %}
{{ member.name }},
{% endif %}
{% endfor %}
)
end
Expand Down
2 changes: 1 addition & 1 deletion tests/unittest.jl
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ using Test
@testset "Vector Members" begin

m1 = ExampleWithVectorMember()
m1.count = Float32[1,2,3,4,5]
m1.count = [1,2,3,4,5]
m1.count[5] = 6

@test m1.count[5] == 6
Expand Down

0 comments on commit 82e75df

Please sign in to comment.