Diavgeia API Client
A Python wrapper for the Diavgeia Open Data API
Table of Contents
Features
Makes easy to:
- Fetch:
- decisions (and their version log)
- organizations (with their respective:
- units like "ΓΡΑΦΕΙΟ ΑΝΤΙΔΗΜΑΡΧΟΥ",
- positions, like "Προϊστάμενος Διεύθυνσης", "Δήμαρχος", etc.
- specific signers
- types (of government actions, like "ΠΡΑΞΕΙΣ ΚΑΝΟΝΙΣΤΙΚΟΥ ΠΕΡΙΕΧΟΜΕΝΟΥ", "ΠΡΑΞΕΙΣ ΟΙΚΟΝΟΜΙΚΟΥ ΠΕΡΙΕΧΟΜΕΝΟΥ", etc.),
- dictionaries where various unique id's are explained, for example:
- "uid": "FEKTYPES" --> "label": "Τύποι τευχών ΦΕΚ"
- Search decisions using advanced criteria (like issue date - Ημερομηνία έκδοσης- or signer - Κωδικός υπογράφοντα -) and their combinations (both a specific signer and a specific date range)
Installation
pip install diavgeia-api
Usage
Overview
As is described in an example, right now there are these methods:
Available methods:
- get_a_decision: Return a specific decision's details.
- get_a_decisions_specific_version: Returns details of a specific version of a decision.
- get_a_decisions_version_log: Returns details of a specific version of a decision.
- get_a_types_details: Returns details of a type.
- get_a_types_summary: Returns a summary of a specific type.
- get_all_types: Returns all existing types.
- get_dictionaries: Return the list of available dictionaries.
- get_dictionary: Return all items for a specific dictionary.
- get_organization: Returns details of a specific organization.
- get_organization_positions: Returns positions of a specific organization.
- get_organization_signers: Returns signers of a specific organization.
- get_organization_units: Returns units of a specific organization.
- get_organizations: Returns a list of registered organizations.
- search_advanced: Search for decisions with advanced query syntax.
- search_decisions: Search for decisions with simple parameters.
Examples
This package includes several examples to help you get started:
- Target a specific decision - Learn how to fetch information about a decision and related entities
- Search for decisions - Examples of using the search functionality
- Work with organizations - Explore organization data
You can find all examples in the examples folder.
Decisions
from diavgeia_api import DiavgeiaClient
# Initialize client
client = DiavgeiaClient()
decision = client.get_a_decision("Ψ11446ΜΓΨ7-ΠΚΛ")
print(f"Subject: {decision.subject}")
print(f"Organization: {decision.organization.label}")
print(f"Decision date: {decision.issue_date}")
Organizations
# Organizations example
organizations = client.get_organizations()
for org in organizations.organizations[:5]:
print(f"{org.label} ({org.uid})")
Types
# Types example
types = client.get_all_types()
for type_item in types.types[:5]:
print(f"{type_item.label} ({type_item.uid})")
# Get details for a specific type
type_details = client.get_a_types_details("Β.1.3")
print(f"Type: {type_details.label}")
print(f"Description: {type_details.description}")
Dictionaries
# Dictionaries example
dictionaries = client.get_dictionaries()
print("Available dictionaries:")
for dictionary in dictionaries.dictionaries[:5]:
print(f"- {dictionary.label} (ID: {dictionary.uid})")
# Get items from a specific dictionary
org_category_dict = client.get_dictionary("ORG_CATEGORY")
print("\nOrganization categories:")
for item in org_category_dict.items[:5]:
print(f"- {item.label} (ID: {item.uid})")
Search
# Simple search example
search_results = client.search_decisions(
term="προμήθεια υπολογιστών",
date_from="2023-01-01",
date_to="2023-12-31"
)
print(f"Found {search_results.info.total} decisions")
for decision in search_results.decisions[:3]:
print(f"- {decision.subject[:50]}... (ΑΔΑ: {decision.ada})")
# Advanced search example
advanced_search = client.search_advanced(
q="subject:(προμήθεια υπολογιστών) AND issueDate:[2023-01-01 TO 2023-12-31] AND organizationUid:6321",
sort="issueDate:desc"
)
print(f"\nAdvanced search found {advanced_search.info.total} decisions")
for decision in advanced_search.decisions[:3]:
print(f"- {decision.subject[:50]}... (ΑΔΑ: {decision.ada})")
Testing
This project uses pytest for testing. To run the tests:
# Install development dependencies
poetry install --with dev
# Run the tests
poetry run pytest
# Run with coverage report
poetry run pytest --cov=diavgeia_api
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Release files for diavgeia-api 0.0.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 | |
|---|---|---|---|
| diavgeia_api-0.0.4.tar.gz | 12.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| diavgeia_api-0.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.9 kB
Release files / diavgeia_api-0.0.4.tar.gz
| Download URL | diavgeia_api-0.0.4.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60982c033e8de023720b154096ad0010046bd31668c27218d7be8f75faa3804d
|
|
BLAKE2b-256 checksum How to use checksums |
d06c7992d1f66ff9443b92ee3a20d87c4b6afbf38d27a7b140bc465b90e34c09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.2 CPython/3.12.8 Windows/11
|
Release files / diavgeia_api-0.0.4-py3-none-any.whl
| Download URL | diavgeia_api-0.0.4-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d07ecfa7d3aa783b3042d755c9205a56283e37bdd2daa90637c06d406cac92c1
|
|
BLAKE2b-256 checksum How to use checksums |
30cc143f2443d861fc4d314b31347ef12c6222088b40e46319556cc68a8f4f79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.2 CPython/3.12.8 Windows/11
|