Handling deferred attributes automatically
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by tracing service.orders.get_entities(), navigation properties such as Customers, and the existing expand("Customers") behavior. Determine how the OData __deferred attribute could trigger on-demand loading while preserving the entity API; done means accessing o.Customers transparently provides the deferred data without explicitly calling expand.
Written by the indexing model from the issue text.
Description
Right now if an entity has a navigation property, the object must be completely reloaded (as below) to load in deferred data in navigation properties. For example:
orders = service.orders.get_entities()
for o in orders:
do_some_stuff_with(o.Customers) # This is an empty list right now so nothing will get done.
# The data must be reloaded as per the below for anything to happen.
orders = service.orders.get_entities().expand("Customers")
I propose that we use the OData __deferred attribute to fire a request on demand to load these attributes in. This would allow the API to look like this:
orders = service.orders.get_entities()
for o in orders:
do_some_stuff_with(o.Customers) # Request is automatically made using the `__deferred` attribute which transparently offers the missing data back to the class.
WDYT: @filak-sap
- Dominant language
- Python
- Stars
- 268
- Forks
- 100
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SAP/python-pyodata
-
chore
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
SAP/python-pyodata#304 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
SAP/python-pyodata#108 ·
-
chore
SAP/python-pyodata#302 · 1 assignee ·
-
question
SAP/python-pyodata#294 · 1 comment · 1 assignee ·
-
bug
SAP/python-pyodata#282 · 2 comments · 1 assignee ·
All issues in SAP/python-pyodata
Similar issues
-
essnmx good first issue
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
[Feature] 奇物选择添加优先级 Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
syfoud/Simulated_Scepter#174 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Giskard-AI/giskard-oss#2840 · 1 comment ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Openarea: repo bug perceived difficulty: 2
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
yeti-platform/yeti#1380 ·