You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 14, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+53-92Lines changed: 53 additions & 92 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,57 @@
20
20
- a toolbox to create and modify NGSI-LD entities effortlessly
21
21
- a NGSI-LD API client to interact with a Context Broker
22
22
23
+
## Features
24
+
25
+
### Build NGSI-LD entities
26
+
27
+
ngsildclient aims at :
28
+
29
+
- programatically generate NGSI-LD entities
30
+
- load entities from JSON-LD payloads
31
+
32
+
Four primitives are provided `prop()`, `gprop()`, `tprop()`, `rel()` to build respectively a Property, GeoProperty, TemporalProperty and Relationship.
33
+
34
+
An Entity is backed by a Python dictionary that stores the JSON-LD payload.
35
+
The library operates the mapping between the Entity's attributes and their JSON-LD counterpart, allowing to easily manipulate NGSI-LD value and metadata directly in Python.
36
+
37
+
### Features list
38
+
39
+
- primitives to build properties and relationships (chainable)
40
+
- benefit from uri naming convention, omit scheme and entity's type, e.g. `parking = Entity("OffStreetParking", "Downtown1")`
41
+
- support dot-notation facility, e.g. `reliability = parking["availableSpotNumber.reliability"]`
42
+
- easily manipulate a property's value, e.g. `reliability.value = 0.8`
43
+
- easily manipulate a property's metadata, e.g. `reliability.datasetid = "dataset1"`
44
+
- support nesting
45
+
- support multi-attribute
46
+
- load/save to file
47
+
- load from HTTP
48
+
- load well-known sample entities, e.g. `parking = Entity.load(SmartDataModels.SmartCities.Parking.OffStreetParking)`
49
+
- provide helpers to ease building some structures, e.g. PostalAddress
50
+
- pretty-print entity and properties
51
+
52
+
### Interact with the Context Broker
53
+
54
+
Two clients are provided, `Client` and `AsyncClient` respectively for synchronous and asynchronous modes.
55
+
56
+
Prefer the synchronous one when working in interactive mode, for example to explore and visualize context data in a Jupyter notebook.
57
+
Prefer the async one if you're looking for performance, for example to develop a real-time NGSI-LD Agent with a high data-acquisition frequency rate.
58
+
59
+
### Features list
60
+
61
+
- synchronous and asynchronous clients
62
+
- support batch operations
63
+
- support pagination : transparently handle pagination (sending as many requests as needed under the hood)
64
+
- support auto-batch : transparently divide into many batch requests if needed
65
+
- support queries and alternate (POST) queries
66
+
- support temporal queries
67
+
- support pandas dataframe as a temporal query result
68
+
- support subscriptions
69
+
- find subscription conflicts
70
+
- SubscriptionBuilder to help build subscriptions
71
+
- auto-detect broker vendor and version
72
+
- support follow relationships (chainable), e.g. `camera = parking.follow("availableSpotNumber.providedBy")`
73
+
23
74
## Getting started
24
75
25
76
### Create our first parking Entity
@@ -46,47 +97,8 @@ Let's print the JSON-LD payload.
- load entities from a JSON-LD payload and further amend
250
-
251
-
Four primitives are provided `prop()`, `gprop()`, `tprop()`, `rel()` to build respectively a Property, GeoProperty, TemporalProperty and Relationship.
252
-
253
-
An Entity is backed by a Python dictionary that stores the JSON-LD payload.
254
-
The library operates the mapping between the Entity's attributes and their JSON-LD counterpart, allowing to easily manipulate NGSI-LD value and metadata directly in Python.
255
-
256
-
### Features list
257
-
258
-
- primitives to build properties and relationships (chainable)
259
-
- benefit from uri naming convention, omit scheme and entity's type, e.g. `parking = Entity("OffStreetParking", "Downtown1")`
260
-
- support dot-notation facility, e.g. `reliability = parking["availableSpotNumber.reliability"]`
261
-
- easily manipulate a property's value, e.g. `reliability.value = 0.8`
262
-
- easily manipulate a property's metadata, e.g. `reliability.datasetid = "dataset1"`
263
-
- support nesting
264
-
- support multi-attribute
265
-
- load/save to file
266
-
- load from HTTP
267
-
- load well-known sample entities, e.g. `parking = Entity.load(SmartDataModels.SmartCities.Parking.OffStreetParking)`
268
-
- provide helpers to ease building some structures, e.g. PostalAddress
269
-
- pretty-print entity and properties
270
-
271
-
### Interact with the Context Broker
272
-
273
-
Two clients are provided, `Client` and `AsyncClient` respectively for synchronous and asynchronous modes.
274
-
275
-
Prefer the synchronous one when working in interactive mode, for example to explore and visualize context data in a Jupyter notebook.
276
-
Prefer the async one if you're looking for performance, for example to develop a real-time NGSI-LD Agent with a high data-acquisition frequency rate.
277
-
278
-
### Features list
279
-
280
-
- synchronous and asynchronous clients
281
-
- support batch operations
282
-
- support pagination : transparently handle pagination (sending as many requests as needed under the hood)
283
-
- support auto-batch : transparently divide into many batch requests if needed
284
-
- support queries and alternate (POST) queries
285
-
- support temporal queries
286
-
- support pandas dataframe as a temporal query result
287
-
- support subscriptions
288
-
- find subscription conflicts
289
-
- SubscriptionBuilder to help build subscriptions
290
-
- auto-detect broker vendor and version
291
-
- support follow relationships (chainable), e.g. `camera = parking.follow("availableSpotNumber.providedBy")`
292
-
293
254
## Where to get it
294
255
295
256
The source code is currently hosted on GitHub at :
0 commit comments