Skip to content

Vikhram-S/IndianConstitution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

82 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

IndianConstitution (v.1.0.1)

Advanced Python library for accessing and analyzing the Constitution of India with DataFrame support, fuzzy search, export capabilities, and more.

PyPI - Python Version PyPI - License Maintenance PyPI PyPI - Status PyPI - Downloads Total Downloads SemVer Wheel Docs

πŸš€ Installation

Basic Installation

Using pip (PyPI)

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]

Note: Optional dependencies can also be installed separately:

# After conda install, add optional features
conda install pandas matplotlib
pip install fuzzywuzzy python-Levenshtein

✨ 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 export
  • matplotlib>=3.3.0 - For visualization features
  • fuzzywuzzy>=0.18.0 - For fuzzy search
  • python-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.


πŸ“š Citation

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.


Copyright

Β© 2026 Vikhram S. All rights reserved.

Packages

 
 
 

Contributors

Languages