A Python module for accessing and managing Constitution data with advanced features like DataFrame support, fuzzy search, and export capabilities.
Project description
IndianConstitution (v0.8)
Advanced Python library for accessing and analyzing the Constitution of India with DataFrame support, fuzzy search, export capabilities, and more.
🚀 Installation
Basic Installation
pip install indianconstitution
With Advanced Features
# For DataFrame and visualization support
pip install indianconstitution[advanced]
# For fuzzy search capabilities
pip install indianconstitution[fuzzy]
# For all advanced features
pip install indianconstitution[all]
✨ Features
Core Features
- ✅ Full access to the Constitution of India data
- ✅ Retrieval of individual articles and summaries
- ✅ Keyword-based search for articles
- ✅ Count of total articles and search by title functionality
Advanced Features
- 🐼 DataFrame Support: Convert to pandas DataFrame for advanced data manipulation
- 🔍 Advanced Search: Regex and fuzzy search capabilities
- 📊 Statistical Analysis: Get insights about the Constitution
- 📤 Export Functionality: Export to JSON, CSV, Markdown formats
- 🔗 Relationship Mapping: Find articles that reference each other
- 📈 Visualization: Word frequency charts and data visualization
- 🔄 Method Chaining: Fluent API design for complex operations
- 💻 CLI Tool: Command-line interface for quick access
- ⚡ Performance: Caching and optimized data structures
- 🎯 Dictionary-like Access: Access articles like
constitution[14]
📖 Usage
Basic Usage
from indianconstitution import IndianConstitution
# Initialize
india = IndianConstitution()
# Access the Preamble
print(india.preamble())
# Get a specific article
print(india.get_article(14))
# Search for articles
print(india.search_keyword('equality'))
# Count articles
print(f"Total articles: {india.count_articles()}")
Advanced Usage
DataFrame Support (pandas-like interface)
import pandas as pd
from indianconstitution import IndianConstitution
india = IndianConstitution()
# Convert to DataFrame
df = india.to_dataframe()
# Use pandas operations
print(df.head())
print(df.describe())
# Filter articles
fundamental_rights = df[df['title'].str.contains('Fundamental', case=False)]
print(fundamental_rights[['article', 'title', 'word_count']])
# Sort by word count
longest_articles = df.nlargest(10, 'word_count')
print(longest_articles[['article', 'title', 'word_count']])
Advanced Search
# Regex search
results = india.search_regex(r'\b(equality|liberty|fraternity)\b', case_sensitive=False)
for article in results:
print(f"Article {article['article']}: {article['title']}")
# Fuzzy search (handles typos and partial matches)
results = india.fuzzy_search('fundamental rights', threshold=70, limit=10)
for article in results:
print(f"Article {article['article']}: {article['title']}")
Export Functionality
# Export to JSON
india.export_json('constitution.json')
# Export to CSV (requires pandas)
india.export_csv('constitution.csv')
# Export to Markdown
india.export_markdown('constitution.md')
Statistical Analysis
# Get comprehensive statistics
stats = india.get_statistics()
print(f"Total Articles: {stats['total_articles']}")
print(f"Total Words: {stats['total_words']:,}")
print(f"Average Words per Article: {stats['average_words_per_article']}")
print(f"Longest Article: {stats['longest_article']['title']}")
💻 Command-Line Interface (CLI)
The library includes a CLI tool for quick access:
# Get a specific article
indianconstitution get 14
# Search for articles
indianconstitution search equality
# Fuzzy search
indianconstitution search --fuzzy "fundamental rights"
# Export to JSON
indianconstitution export json constitution.json
# Show statistics
indianconstitution stats
# Display the Preamble
indianconstitution preamble
🔧 Requirements
Core Requirements
- Python 3.7+
Optional Dependencies
pandas>=1.3.0- For DataFrame support and CSV exportmatplotlib>=3.3.0- For visualization featuresfuzzywuzzy>=0.18.0- For fuzzy searchpython-Levenshtein>=0.12.0- For faster fuzzy search
Install all optional dependencies:
pip install indianconstitution[all]
📄 License
This project is licensed under the Apache License 2.0. See the LICENSE file for more details.
📧 Contact
Author: Vikhram S
Email: vikhrams@saveetha.ac.in
GitHub: https://github.com/Vikhram-S/IndianConstitution
🙏 Acknowledgments
The Constitution data is compiled from publicly available resources, ensuring authenticity and accuracy.
Copyright
© 2026 Vikhram S. All rights reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file indianconstitution-0.8.tar.gz.
File metadata
- Download URL: indianconstitution-0.8.tar.gz
- Upload date:
- Size: 224.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dbd56ccc7e59f8605c427ec5e4119a991cbda433072ec988233448881e059b5
|
|
| MD5 |
8d2bcf1a525eae779c3cf6a59500890e
|
|
| BLAKE2b-256 |
448e188c1976a3b26889e759168f74f8f7f7504abe9c3777c0554aff00da2cf0
|
File details
Details for the file indianconstitution-0.8-py3-none-any.whl.
File metadata
- Download URL: indianconstitution-0.8-py3-none-any.whl
- Upload date:
- Size: 225.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6972e2d4306443f0278ace97226a7493898e2290f4211fdf90b15226439bb1e1
|
|
| MD5 |
94d61933e7873332aa6db381f73fd24d
|
|
| BLAKE2b-256 |
dae20fed99abd8e71189bf45a0c73e08d212a893ea33f219f7412a3eea7c70f9
|