Every code example shown on this documentation site lives in a standalone, runnable form in the GroupDocs.Metadata-for-Python-via-.NET repository on GitHub. Each example ships with its input sample files, so you can clone the repo and run anything with a single command.
Prerequisites
Before running the examples, make sure you have:
A supported platform and Python version — see System Requirements. Windows, Linux, and macOS (Intel and Apple Silicon) are all supported.
Git — or download the repository as a ZIP from GitHub.
A license file (optional but recommended) — without one, the library runs in evaluation mode (only the first few properties of each package are read and save() raises an “Evaluation only” exception). See Licensing for how to obtain a free temporary license.
Get the Code
Clone the repository and navigate into it:
git clone https://github.com/groupdocs-metadata/GroupDocs.Metadata-for-Python-via-.NET.git
cd GroupDocs.Metadata-for-Python-via-.NET
Project Structure
The repository mirrors this documentation tree. Every documentation page maps to a folder under Examples/, and every tabbed code block on a page maps to a .py file inside that folder. Input sample files live next to the script that reads them.
📂 GroupDocs.Metadata-for-Python-via-.NET
├── README.md
├── LICENSE
├── AGENTS.md ← extracted from the pip package for AI tools
├── Dockerfile ← runs the whole suite on Linux
├── .github/workflows/run-examples.yml ← CI: runs all examples on every push
└── Examples
├── requirements.txt
├── run_all_examples.py
├── getting-started
│ └── quick-start-guide
│ ├── read_metadata.py
│ ├── remove_metadata.py
│ ├── document_info.py
│ └── input.docx
├── developer-guide
│ ├── basic-usage
│ │ ├── get-document-info/
│ │ ├── find-metadata-properties/
│ │ ├── set-metadata-properties/
│ │ ├── remove-metadata-properties/
│ │ └── clean-metadata/
│ └── advanced-usage
│ ├── adding-metadata/
│ ├── extracting-metadata/
│ ├── removing-metadata/
│ ├── getting-known-property-descriptors/
│ ├── working-with-interpreted-values/
│ ├── loading-files/ (local disk, stream, specific format, password)
│ ├── saving-files/ (location, stream, original source)
│ ├── working-with-metadata-properties/ (export, extract property values)
│ └── working-with-metadata-standards/ (EXIF, IPTC IIM, XMP)
└── licensing
├── set_license_from_file.py
├── set_license_from_stream.py
└── set_metered_license.py
Setup
Create and activate a virtual environment:
Create:
py-mvenv.venv
python3 -m venv .venv
python3 -m venv .venv
Activate:
.venv\Scripts\activate
source .venv/bin/activate
source .venv/bin/activate
Install dependencies from Examples/requirements.txt:
Configure a license (optional). The suite honours the GROUPDOCS_LIC_PATH environment variable and also picks up any *.lic file dropped into the project root. Set the variable in your shell before running run_all_examples.py:
Learn more about licensing, evaluation limits, and how to obtain a free 30-day temporary license in the Licensing documentation topic.
Run the Examples
Run the Full Suite
From the repository root, invoke run_all_examples.py. It runs every example in order, prints a per-file status line, and exits with a pass/fail summary.
pyExamples\run_all_examples.py
python3 Examples/run_all_examples.py
python3 Examples/run_all_examples.py
Run a Single Example
Change into the folder that contains the script and run it directly. Input sample files live next to each script, so relative paths resolve correctly.
cd Examples/developer-guide/basic-usage/get-document-info
python get_document_info.py
Examples that modify a file write their output artefacts into the same folder as the script. When an example is documented on this site, the generated artefact is also linked from an output tab next to the code block — click it to download the file that a successful run produces.
Run with Docker
The repository includes a Dockerfile (based on python:3.13-slim) that installs the required native libraries (libgdiplus, libfontconfig1, ICU) and every Python dependency, then runs the full suite. Use it when you want a clean, reproducible Linux environment without touching your host machine:
Every push triggers .github/workflows/run-examples.yml, which runs the entire example suite on ubuntu-latest with Python 3.13 (after installing libicu-dev, libgdiplus, and libfontconfig1). Fork the repository and open a pull request — the workflow runs for free on GitHub-hosted runners and is a quick way to sanity-check local changes in a clean environment.
Garbled text or missing glyphs — install Microsoft TrueType fonts (ttf-mscorefonts-installer on Debian / Ubuntu; macOS already ships them). Run fc-cache -f after installing so fontconfig picks them up.
“Evaluation only” exception on save(), or only a few properties are read — you are running unlicensed. Set GROUPDOCS_LIC_PATH to a valid license file and re-run. See Licensing.
If you would like to add or improve an example, we encourage you to contribute. All examples in this repository are open source and can be freely used in your own applications. Fork the repository, edit the example, and create a pull request — we will review the changes and include them if found helpful.
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.