Advanced Python library for accessing and analyzing the Constitution of India with DataFrame support, fuzzy search, export capabilities, and more.
pip install indianconstitution# 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]Note: Optional dependencies can also be installed separately:
# After conda install, add optional features
conda install pandas matplotlib
pip install fuzzywuzzy python-Levenshtein- β 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
- πΌ 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]
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()}")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']])# 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 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')# 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']}")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- Python 3.7+
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]This project is licensed under the Apache License 2.0. See the LICENSE file for more details.
Author: Vikhram S
Email: vikhrams@saveetha.ac.in
GitHub: https://github.com/Vikhram-S/IndianConstitution
The Constitution data is compiled from publicly available resources, ensuring authenticity and accuracy.
If you use IndianConstitution in academic research, policy work, or publications, please cite it using the CITATION.cff file available in this repository.
GitHub will automatically generate citation formats (APA, BibTeX, etc.) from this file.
Β© 2026 Vikhram S. All rights reserved.