Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
1.0.0 - 2025-12-31
Added
- Typed URL classes: Parse URLs into typed objects like
GitHubRepoURL,TwitterProfileURL, etc. - Entity type detection: Each URL now has an
entity_typefield (profile, repo, channel, company, email, phone) - Hierarchy navigation:
get_parent(),get_root(),get_ancestors()methods for traversing URL hierarchies - New extraction methods:
extraction.all(),extraction.by_platform(),extraction.by_type() - Extractor class: Create custom extractors with platform filtering and strict mode
- Strict mode: Optionally raise
ParseErrorfor unrecognized URLs - Protocol-based architecture:
SocialsURLandPlatformParserprotocols for extensibility - Phone number support: Parse
tel:URLs - Pydantic models: All URL types are immutable, hashable Pydantic models
Changed
- Complete internal rewrite to typed architecture
socials.parse()now returns typed objects instead of stringssocials.extract()returns anExtractionobject with new methods
Deprecated
get_matches_per_platform()- useby_platform()insteadget_matches_for_platform()- useby_platform()[platform]instead
0.3.0 - 2025-12-30
Added
- Support for Instagram URLs
- Support for YouTube URLs
- Support for Facebook profile.php URLs (profile ID-based)
- CLI with
checkandextractcommands - Type hints throughout the codebase
- Support for Python 3.9-3.13
Changed
- Modernized packaging and CI/CD (pyproject.toml, GitHub Actions, MkDocs)
Fixed
- Regex patterns now use proper anchors for exact matching
Removed
- Dropped support for Python 3.4-3.8
0.2.0 - 2018-05-31
Added
- Email address extraction
- Extraction of specific platforms via
get_matches_for_platform()
0.1.0 - 2018-05-18
Added
- First release on PyPI
- Support for Facebook, Twitter, LinkedIn, GitHub detection