Seequent Developer Portal • Seequent Community • Seequent website
Evo Object API Client
The Geoscience Object API is Seequent's next-generation cloud offering for geoscience data, empowering our users to build responsive modern workflows.
Pre-requisites
- Python ^3.10
- An application registered in Bentley
Installation
pip install evo-objects
Usage
See the evo-sdk-common documentation for information on how to authenticate, then select the organisation, hub and workspace that you would like to use.
Interacting with the Geoscience Object API
To get up and running quickly with the Evo Objects SDK, start by configuring your environment and API connector.
from evo.objects import ObjectAPIClient
service_client = ObjectAPIClient(environment, connector)
service_health = await service_client.get_service_health()
service_health.raise_for_status()
# The data client is an optional utility that provides helpers for uploading and downloading
# parquet data via pyarrow.Table objects.
data_client = service_client.get_data_client(manager.cache)
...
Listing objects is simple, just call the ObjectAPIClient.list_objects() method.
offset = 0
while True:
page = await service_client.list_objects(offset=offset, limit=10)
if offset == 0:
print(f"Found {page.total} object{'' if page.total == 1 else 's'}")
for object in page:
print(f"{object.path}: <{object.schema_id}> ({object.id})")
if page.is_last:
break
else:
offset = page.next_offset
You can also get a list of all objects. Internally, this recursively calls the list_objects() method until all objects are fetched.
Check out the other methods on the ObjectAPIClient for more details on how to upload and download objects, or get object versions.
Typed downhole collections
DownholeCollection provides a DataFrame-based API for creating and reading downhole objects. A collection can contain
distance tables, interval tables, or both. hole_index is an integer key in the object's hole_id lookup table, not a
row position or a pandas categorical code. The creation helper uses dense zero-based keys in sorted hole-ID order unless
an explicit hole_indices mapping is supplied. Persisted objects may use arbitrary integer keys. Collection holes may
contain a subset or repeated chunks.
import pandas as pd
from evo.objects.typed import DownholeCollection, DownholeCollectionData
from evo.objects.typed.downhole_collection import IntervalCollection
from evo.objects.utils.downhole import hole_chunks_from_ids
intervals = pd.DataFrame({"from": [0.0], "to": [1.5], "lithology": ["sandstone"]})
collections = [
IntervalCollection(
name="geology",
holes=hole_chunks_from_ids(pd.Series(["DH-01"])),
table=intervals,
unit="m", # Collection coordinate units are set explicitly here.
)
]
# Build DownholeCollectionData with matching path, location-hole chunks, and collar properties,
# then create it with: await DownholeCollection.create(context, data)
Use await dhc.location.to_dataframe() and await dhc.location.path_to_dataframe() to read collars and paths.
Distance and interval tables provide to_dataframe() and to_dataframe_by_hole(). Before reading a large object, call
await dhc.prefetch_collections("geology") to warm only the requested collection data (and location data by default).
Attribute descriptions for ordinary attributes round-trip through DataFrame.attrs["attribute_descriptions"].
Collection coordinate units come only from DistanceCollection.unit or IntervalCollection.unit; unit metadata on the
distance or from column is ignored.
Contributing
For instructions on contributing to the development of this library, please refer to the evo-python-sdk documentation.
License
The Python SDK for Evo is open source and licensed under the Apache 2.0 license..
Copyright © 2025 Bentley Systems, Incorporated.
Licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Metadata
Release files for evo-objects 0.6.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| evo_objects-0.6.4.tar.gz | 86.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| evo_objects-0.6.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 215.5 kB
Release files / evo_objects-0.6.4.tar.gz
| Download URL | evo_objects-0.6.4.tar.gz |
|---|---|
| Size | 86.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
afe4a95ed1d3f7b955c244198316d277bb0b8c9da67e5740eefd9d484fb2f488
|
|
BLAKE2b-256 checksum How to use checksums |
0637724e82b6bcf3fcdf28accf4279c366f8f8b9c9ceab20e80b778657d18af8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / evo_objects-0.6.4-py3-none-any.whl
| Download URL | evo_objects-0.6.4-py3-none-any.whl |
|---|---|
| Size | 128.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
724f57895ffa11c8062239685774907c559bb06a255861a325d1b50fed075d01
|
|
BLAKE2b-256 checksum How to use checksums |
76d2d80dff887aed2a056878b9c189500a464946c0d39d2a324cf9e83c5eaf9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log