Skip to main content

Python e-SLOG library. Simplifies the generation of Slovenian e-SLOG electronic documents.

Project description

pyslog - A modern Python library for generating eSLOG invoices

PyPI version License: MIT

[!CAUTION] This library is in its early stages. The current implementation focuses on eSLOG 2.0 Invoices. Other document types and certain niche fields are not yet supported. Please double-check generated XML files against official validators before production use.

Overview

pyslog is designed to provide a clean, Pythonic interface for generating standard-compliant eSLOG 2.0 documents. By separating the complex, segment-based XML logic from simple Pydantic models, we allow developers to focus on their data rather than the intricacies of the eSLOG specification.

Usage

Installation

# Using uv
uv add pyslog

# Using pip
pip install pyslog

Basic Example

from pyslog.eslog2.models import Invoice, BusinessEntity, Item, BusinessProcessType, VATCategoryCode
from pyslog.eslog2.generator import generate_eslog_invoice

# 1. Define the Buyer and Seller
buyer = BusinessEntity(
    name="Buyer Corp",
    address_line_1="Industrial Road 1",
    city="Ljubljana",
    post_code="1000",
    country_code="SI",
    vat_registration_number="SI12345678"
)

seller = BusinessEntity(
    name="Seller Ltd",
    address_line_1="Tech Park 5",
    city="Ljubljana",
    post_code="1000",
    country_code="SI",
    iban="SI5600000000000",
    bic="BANKSI2X",
    vat_registration_number="SI87654321",
    maticna="1234567000"
)

# 2. Define Items
item = Item(
    standard_identifier="1234567890123",
    standard_identifier_identification_scheme_identifier="0088", # EAN
    sellers_item_identifier="SKU-001",
    name="Consulting Services",
    quantity="10",
    quantity_unit_of_measure="HUR", # Hours
    total_monetary_amount="1000.00",
    item_net_price="100.00",
    vat_rate="22",
    vat_category_code=VATCategoryCode.STANDARD_RATE
)

# 3. Create the Invoice
invoice = Invoice(
    invoice_number="INV-2026-001",
    invoice_issue_date="2026-01-13",
    #business_process_type=BusinessProcessType.INVOICING_BASED_ON_CONTRACT,
    buyer=buyer,
    seller=seller,
    items=[item],
    sum_of_invoice_line_net_amount="1000.00",
    invoice_total_amount_without_vat="1000.00",
    invoice_total_amount_with_vat="1220.00",
    amount_due_for_payment="1220.00"
)

# 4. Generate XML string
xml_output = generate_eslog_invoice(invoice)

with open("invoice.xml", "w") as f:
    f.write(xml_output)

Roadmap

  • Base eSLOG 2.0 Invoice Model
  • Pydantic integration for type safety
  • Field-level validation (ISO codes, IBAN, etc.)
  • eSLOG 2.0 Order & Order Confirmation
  • eSLOG 2.0 Delivery Note (Dobavnica)
  • Comprehensive documentation site
  • Comprehensive tests

Acknowledgements

Inspired by the early work of python-eracun.

License

MIT License - see LICENSE file for details.

Project details


Download files

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

Source Distribution

pyslog-0.1.0.dev16.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

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

pyslog-0.1.0.dev16-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file pyslog-0.1.0.dev16.tar.gz.

File metadata

  • Download URL: pyslog-0.1.0.dev16.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyslog-0.1.0.dev16.tar.gz
Algorithm Hash digest
SHA256 510a62e1a83169d5b629542eac288e3000aaa1e3089618be0a531abc3d787fb1
MD5 8d57c095888ff385d2d6410feffb9544
BLAKE2b-256 d0781fc9c345e824f60834302fc76c8bb7a09243906a2bba7b98f460c042ccd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyslog-0.1.0.dev16.tar.gz:

Publisher: pipeline.yml on gregorgabrovsek/pyslog

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

File details

Details for the file pyslog-0.1.0.dev16-py3-none-any.whl.

File metadata

  • Download URL: pyslog-0.1.0.dev16-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyslog-0.1.0.dev16-py3-none-any.whl
Algorithm Hash digest
SHA256 0569ce3ee5538129e0ae7cb9ae0a4f953a09828f871072e6ab7a76be953bf54d
MD5 99c3b284e58d1643d427289dc68dac01
BLAKE2b-256 6740b3ab8d2b51284694800fc7a39bf20fe3d8ef9bec2fc74a79cdf58c82b9aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyslog-0.1.0.dev16-py3-none-any.whl:

Publisher: pipeline.yml on gregorgabrovsek/pyslog

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page