Skip to content

Releases: jmbg-labs/python

v1.0.0

30 Mar 22:33

Choose a tag to compare

Release Notes

Version 1.0.0 (2026-03-30)

🎉 Initial Release

First stable release of the JMBG Python library for validating and parsing Serbian unique master citizen numbers (JMBG - Jedinstveni Matični Broj Građana).

✨ Features

  • JMBG Validation: Comprehensive validation with multiple checks

    • Length validation (13 digits)
    • Format validation (numeric only)
    • Date validation (including leap year support)
    • Region code validation
    • Checksum validation (modulo 11 algorithm)
  • Information Extraction:

    • Birth date parsing
    • Age calculation
    • Gender determination (male/female)
    • Region and country information
    • Access to all JMBG components (day, month, year, region, unique number, checksum)
  • Supported Regions:

    • Serbia (71-79): Belgrade, Kragujevac, Niš, etc.
    • Serbia/Vojvodina (80-89): Novi Sad, Subotica, Pančevo, etc.
    • Serbia/Kosovo (91-96): Priština, Peć, Prizren, etc.
    • Bosnia and Herzegovina (10-19)
    • Montenegro (21-29)
    • Croatia (30-39)
    • Macedonia (41-49)
    • Slovenia (50)
  • Convenient API:

    • Jmbg class for parsing and accessing JMBG data
    • valid() function for quick validation
    • parse() function for parsing
    • Type hints for better IDE support
    • Custom JmbgError exception with descriptive error messages
  • Additional Features:

    • Adult status check (is_adult() - 18+ years)
    • String representation and formatting
    • Equality comparison and hashing support
    • No external dependencies

📚 Documentation

  • Comprehensive README with examples
  • Complete API documentation in docstrings
  • Usage examples for common scenarios
  • MIT License

🧪 Testing

  • Full test suite with 23 unit tests
  • 100% test coverage for core functionality
  • Tests for edge cases (leap years, boundary unique numbers, etc.)

📦 Package Information

🚀 Installation

pip install jmbg-labs

💡 Quick Start

from jmbg import Jmbg, valid

# Validate JMBG
if valid('0710003730015'):
    jmbg = Jmbg('0710003730015')
    print(f"Age: {jmbg.get_age()}")
    print(f"Gender: {'Male' if jmbg.is_male() else 'Female'}")
    print(f"Region: {jmbg.region_text}")

🙏 Credits

Developed by JMBG Labs


Upcoming Features

Future releases may include:

  • Additional validation options
  • Export to different formats (JSON, dict)
  • Bulk validation utilities
  • Performance optimizations
  • Extended region information

For full documentation, visit the GitHub repository.