Skip to main content

Egeria Logo

GitHub

pyegeria: a python client for Egeria

A lightweight Python 3.12+ client and CLI for the Egeria open metadata and governance platform. It helps you configure and operate Egeria services and work with metadata (assets, glossaries, lineage, etc.) from Python, with examples, tests, and documented report formats.

This is a package for easily using the Egeria open metadata environment from python. Details about the open source Egeria project can be found at Egeria Project.

This package is in active development. There is initial support for many of Egeria's services including configuration and operation. This client depends on This release supports Egeria 6.0 - although most of the functions may work on earlier versions of Egeria as well.

The code is organized to mimic the existing Egeria Java Client structure.

The commands folder holds the Egeria Command Line Interface and corresponding commands to visualize and use Egeria. The commands also serve as useful examples.

An examples folder holds some useful examples showing different facets of using pyegeria.

Documentation

For detailed information on using pyegeria, see:

Report specs: families and filtering

Report specs (aka format sets) can be tagged with an optional family string to help organize and discover related specs.

  • Show names with family and sort by family, then name:
from pyegeria.view.base_report_formats import report_spec_list

names = report_spec_list(show_family=True, sort_by_family=True)
for n in names:
  print(n)
  • Filter specs by family programmatically:
from pyegeria.view.base_report_formats import report_specs

# Exact family match (case-insensitive)
security_specs = report_specs.filter_by_family("Security")
# Specs with no family assigned
no_family_specs = report_specs.filter_by_family("")

WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and evolve.

All feedback is welcome. Please engage via our community, team calls, or via github issues in this repo. If interested in contributing, you can engage via the community or directly reach out to dan.wolfson@pdr-associates.com.

This is a learning experience.

Configuration

pyegeria uses a centralized configuration system powered by Pydantic. Clients (like EgeriaTech or EgeriaCat) automatically pick up these settings if parameters are omitted during initialization.

Precedence for configuration:

  1. Explicitly passed parameters to client constructors
  2. Environment variables (OS env and optional .env)
  3. Config file (JSON) if found
  4. Built-in defaults

For more details on setting up your configuration and available variables, see docs/user_programming.md.

Example .env

PYEGERIA_CONFIG_DIRECTORY=/path/to/configs

PYEGERIA_ROOT_PATH=/path/to/project

PYEGERIA_CONFIG_FILE=config.json

EGERIA_PLATFORM_URL=https://localhost:9443

EGERIA_VIEW_SERVER=qs-view-server

EGERIA_VIEW_SERVER_URL=https://localhost:9443

EGERIA_USER=myuser

EGERIA_USER_PASSWORD=mypassword

EGERIA_WIDTH=280

Lines starting with # are comments. Quotes are optional; python-dotenv/pydantic-settings handle both.

Example config.json (minimal)

{ "Environment": { "Pyegeria Root": ".", "Egeria Platform URL": "https://localhost:9443" }, "User Profile": { "Egeria Home Collection": "MyHome" } }

Programmatic usage

from pyegeria import get_app_config cfg = get_app_config() # uses OS env and ./.env

or with explicit env file

cfg = get_app_config(env_file="/path/to/dev.env")

Access values via Pydantic models

print(cfg.Environment.egeria_platform_url) print(cfg.Logging.enable_logging)

CLI quick checks

  • Validate your env file: python scripts/validate_env.py --env config/env python scripts/validate_env.py # auto-detects ./config/env or ./.env

  • Sync Report Specs with Dr.Egeria Commands: hey_egeria tech gen-report-specs md_processing/data/compact_commands --merge

Testing

By default, running pytest executes unit tests that use monkeypatching/fakes and do not contact a live Egeria.

  • Run unit tests (recommended default): uv sync pytest -v

You can also run tests live against a local Egeria instance. Enable live mode with either a CLI flag or an environment variable. In live mode, tests marked as unit are skipped and live tests run using a real Client2 connection.

  • Enable live mode via CLI: pytest -q --live-egeria

  • Or enable via environment variable: PYEG_LIVE_EGERIA=1 pytest -q

Default live connection parameters (can be overridden via env):

  • server_name = "qs-view-server" (override with PYEG_SERVER_NAME)
  • platform_url = "https://localhost:9443" (override with PYEG_PLATFORM_URL)
  • user_id = "peterprofile" (override with PYEG_USER_ID)
  • user_pwd = "secret" (override with PYEG_USER_PWD)

Notes:

  • SSL verification is controlled by pyegeria._globals.enable_ssl_check, which defaults to False in this repo to support localhost/self-signed certs.
  • See tests/conftest.py for the live test fixtures and switches.

Troubleshooting

  • If your env doesn’t seem to apply, confirm which config.json is used (the loader checks PYEGERIA_CONFIG_DIRECTORY first, then PYEGERIA_ROOT_PATH, then ./config.json).
  • .env files are optional. Missing .env is not an error.
  • You can always override values with OS environment variables (they take precedence over config.json).

License: CC BY 4.0, Copyright Contributors to the ODPi Egeria project.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyegeria-6.1.12.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyegeria-6.1.12-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file pyegeria-6.1.12.tar.gz.

File metadata

  • Download URL: pyegeria-6.1.12.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyegeria-6.1.12.tar.gz
Algorithm Hash digest
SHA256 9d76fff90a9ca42bc5f6aefe8646646d13038f3a476b4fd7b6ce0e1425c26ddf
MD5 3c5cc6c90a1b3805c8d55fa3d45607fe
BLAKE2b-256 a0f9f335537f99584fa754b4f3b2359d136197392a4110ddc1ba284598883e65

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyegeria-6.1.12.tar.gz:

Publisher: release.yml on odpi/egeria-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyegeria-6.1.12-py3-none-any.whl.

File metadata

  • Download URL: pyegeria-6.1.12-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyegeria-6.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 1085ce3ad6b229076bb42103e2aeea674c7f96a4b3dc1677ec234d08ed7ba66b
MD5 7a3626fdfa410826511067c71e541092
BLAKE2b-256 686592a7530fc1907ee89647ed28f22bb1b42096aabe48a65d2f41efbeacc822

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyegeria-6.1.12-py3-none-any.whl:

Publisher: release.yml on odpi/egeria-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

6.1.12 This release

2 files

6.1.11

2 files

6.1.10

2 files

6.1.9

2 files

6.1.8

2 files

6.1.7

2 files

6.1.6

2 files

6.1.5

2 files

6.1.4

2 files

6.1.3

2 files

6.1.2

2 files

6.1.1

2 files

6.1.0

2 files

6.0.18.4

2 files

6.0.18.3

2 files

6.0.18.2

2 files

6.0.18.1

2 files

6.0.18.0

2 files

6.0.17.22

2 files

6.0.17.21

2 files

6.0.17.20

2 files

6.0.17.19

2 files

6.0.17.18

2 files

6.0.17.17

2 files

6.0.17.16

2 files

6.0.17.15

2 files

6.0.17.14

2 files

6.0.17.13

2 files

6.0.17.12

2 files

6.0.17.11

2 files

6.0.17.10

2 files

6.0.17.9

2 files

6.0.17.8

2 files

6.0.17.7

2 files

6.0.17.6

2 files

6.0.17.5

2 files

6.0.17.4

2 files

6.0.17.3

2 files

6.0.17.2

2 files

6.0.17.1

2 files

6.0.17.0

2 files

6.0.16.20

2 files

6.0.16.19

2 files

6.0.16.18

2 files

6.0.16.17

2 files

6.0.16.16

2 files

6.0.16.15

2 files

6.0.16.14

2 files

6.0.16.13

2 files

6.0.16.12

2 files

6.0.16.11

2 files

6.0.16.10

2 files

6.0.16.9

2 files

6.0.16.8

2 files

6.0.16.7

2 files

6.0.16.6

2 files

6.0.16.5

2 files

6.0.16.4

2 files

6.0.16.3

2 files

6.0.16.1

2 files

6.0.15.15

2 files

6.0.15.14

2 files

6.0.15.13

2 files

6.0.15.12

2 files

6.0.15.11

2 files

6.0.15.10

2 files

6.0.15.9

2 files

6.0.15.8

2 files

6.0.15.7

2 files

6.0.15.6

2 files

6.0.15.5

2 files

6.0.15.4

2 files

6.0.15.3

2 files

6.0.15.2

2 files

6.0.15.1

2 files

6.0.15.0

2 files

6.0.14.7

2 files

6.0.14.6

2 files

6.0.14.5

2 files

6.0.14.4

2 files

6.0.14.3

2 files

6.0.14.2

2 files

6.0.14.1

2 files

6.0.14

2 files

6.0.13.6

2 files

6.0.13.5

2 files

6.0.13.4

2 files

6.0.13.3

2 files

6.0.13.2

2 files

6.0.13.1

2 files

6.0.12.9

2 files

6.0.12.8

2 files

6.0.12.7

2 files

6.0.12.6

2 files

6.0.12.5

2 files

6.0.12.4

2 files

6.0.12.3

2 files

6.0.12.2

2 files

6.0.12.1

2 files

6.0.12

2 files

6.0.11

2 files

6.0.10

2 files

6.0.9.7

2 files

6.0.9.6

2 files

6.0.9.5

2 files

6.0.9.3

2 files

6.0.9.2

2 files

6.0.9.1

2 files

6.0.9

2 files

6.0.8.2

2 files

6.0.8.1

2 files

6.0.8

2 files

6.0.7

2 files

6.0.6

2 files

6.0.5

2 files

6.0.4

2 files

6.0.3

2 files

6.0.2

2 files

6.0.1

2 files

6.0

2 files

5.9.9

2 files

5.5.4.10

2 files

5.5.4.9

2 files

5.5.4.8

2 files

5.5.4.7

2 files

5.5.4.6

2 files

5.5.4.5

2 files

5.5.4.4

2 files

5.5.4.3

2 files

5.5.4.2

2 files

5.5.4.1

2 files

5.5.3.25

2 files

5.5.3.24

2 files

5.5.3.20

2 files

5.5.3.15

2 files

5.5.3.10

2 files

5.5.3.5

2 files

5.5.3

1 file

5.4.10

1 file

5.4.9.5

2 files

5.4.9.1

2 files

5.4.8.14

2 files

5.4.8.12

1 file

5.4.8.11

2 files

5.4.8.10

2 files

5.4.8.9

2 files

5.4.8.8

2 files

5.4.8.7

2 files

5.4.8.6

2 files

5.4.8.5

2 files

5.4.8.4

2 files

5.4.8.3

2 files

5.4.8.2

2 files

5.4.8

2 files

5.4.7.9

2 files

5.4.7.8

2 files

5.4.7.7

2 files

5.4.7.6

2 files

5.4.7.5

2 files

5.4.7.4

2 files

5.4.7.3

2 files

5.4.7.2

2 files

5.4.7

2 files

5.4.6

2 files

5.4.5

2 files

5.4.4.8

2 files

5.4.4.7

2 files

5.4.4.6

2 files

5.4.4.5

2 files

5.4.4

2 files

5.4.3

2 files

5.4.2.3

2 files

5.4.2

2 files

5.4.1

2 files

5.4.0.30

2 files

5.3.10

2 files

5.3.9.5

2 files

5.3.9.3

2 files

5.3.9.1

2 files

5.3.8.10

2 files

5.3.8.9

2 files

5.3.8.5

2 files

5.3.8.0

2 files

5.3.7.5

2 files

5.3.7

2 files

5.3.6.5

2 files

5.3.6.3

2 files

5.3.6.2

2 files

5.3.6.1

2 files

5.3.5.3

2 files

5.3.5.2

2 files

5.3.5.1

2 files

5.3.4.27

2 files

5.3.4.26

2 files

5.3.4.25

2 files

5.3.4.24

2 files

5.3.4.23

2 files

5.3.4.22

2 files

5.3.4.21

2 files

5.3.4.20

2 files

5.3.4.19

2 files

5.3.4.18

2 files

5.3.4.17

2 files

5.3.4.16

2 files

5.3.4.15

2 files

5.3.4.14

2 files

5.3.4.13

2 files

5.3.4.12

2 files

5.3.4.11

2 files

5.3.4.10

2 files

5.3.4.9

2 files

5.3.4.8

2 files

5.3.4.7

2 files

5.3.4.6

2 files

5.3.4.5

2 files

5.3.4.3

2 files

5.3.4

2 files

5.3.3.15

2 files

5.3.3.13

2 files

5.3.3.12

2 files

5.3.3.11

2 files

5.3.3.10

2 files

5.3.3.9

2 files

5.3.3.8

2 files

5.3.3.7

2 files

5.3.3.6

2 files

5.3.3.5

2 files

5.3.3.4

2 files

5.3.3.3

2 files

5.3.3.2

2 files

5.3.3.1

2 files

5.3.3

2 files

5.3.2

2 files

5.3.1

2 files

5.3.1.dev1

2 files

5.3

2 files

5.2.1.1

2 files

5.2.1

2 files

5.2.0.42.8

2 files

5.2.0.42.7

2 files

5.2.0.42.6

2 files

5.2.0.42.5

2 files

5.2.0.42.4

2 files

5.2.0.42.3

2 files

5.2.0.42.2

2 files

5.2.0.20

2 files

5.2.0.13

2 files

5.2.0.12

2 files

5.2.0.10

2 files

5.2.0.9

2 files

5.2.0.8

2 files

5.2.0.7

2 files

5.2.0.6

2 files

5.2.0.5

2 files

5.2.0.4

2 files

5.2.0.3

2 files

5.2.0.2

2 files

5.2.0.1

2 files

5.2

2 files

1.5.1.0.120

2 files

1.5.1.0.23

2 files

1.5.1.0.22

2 files

1.5.1.0.21

2 files

1.5.1.0.19

2 files

1.5.1.0.18

2 files

1.5.1.0.17

2 files

1.5.1.0.15

2 files

1.5.1.0.10

2 files

1.5.1.0.5

2 files

1.5.1

2 files

0.8.4.50

2 files

0.8.4.49

2 files

0.8.4.48

2 files

0.8.4.46

2 files

0.8.4.45

2 files

0.8.4.44

2 files

0.8.4.43

2 files

0.8.4.42

2 files

0.8.4.41

2 files

0.8.4.40

2 files

0.8.4.39

2 files

0.8.4.38

2 files

0.8.4.37

2 files

0.8.4.36

2 files

0.8.4.35

2 files

0.8.4.34

2 files

0.8.4.33

2 files

0.8.4.32

2 files

0.8.4.31

2 files

0.8.4.30

2 files

0.8.4.29

2 files

0.8.4.28

2 files

0.8.4.27

2 files

0.8.4.26

2 files

0.8.4.25

2 files

0.8.4.24

2 files

0.8.4.23

2 files

0.8.4.22

2 files

0.8.4.21

2 files

0.8.4.20

2 files

0.8.4.19

2 files

0.8.4.18

2 files

0.8.4.17

2 files

0.8.4.16

2 files

0.8.4.15

2 files

0.8.4.13

2 files

0.8.4.12

2 files

0.8.4.11

2 files

0.8.4.10

2 files

0.8.4.9

2 files

0.8.4.8

2 files

0.8.4.7

2 files

0.8.4.6

2 files

0.8.4.4

2 files

0.8.4.3

2 files

0.8.4.2

2 files

0.8.4.1

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.45.1

2 files

0.7.45

2 files

0.7.44

2 files

0.7.43

2 files

0.7.42

2 files

0.7.41

2 files

0.7.40

2 files

0.7.39

2 files

0.7.38

2 files

0.7.37

2 files

0.7.36

2 files

0.7.35

2 files

0.7.34

2 files

0.7.33

2 files

0.7.32

2 files

0.7.31

2 files

0.7.30

2 files

0.7.29

2 files

0.7.28

2 files

0.7.27

2 files

0.7.26

2 files

0.7.25

2 files

0.7.20

2 files

0.7.15

2 files

0.7.10

2 files

0.7.5

2 files

0.7.0

2 files

0.6.5

2 files

0.6

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page