Skip to main content

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.

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


🚀 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 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.


Copyright

© 2026 Vikhram S. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

indianconstitution-0.8.tar.gz (224.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

indianconstitution-0.8-py3-none-any.whl (225.5 kB view details)

Uploaded Python 3

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

Hashes for indianconstitution-0.8.tar.gz
Algorithm Hash digest
SHA256 3dbd56ccc7e59f8605c427ec5e4119a991cbda433072ec988233448881e059b5
MD5 8d2bcf1a525eae779c3cf6a59500890e
BLAKE2b-256 448e188c1976a3b26889e759168f74f8f7f7504abe9c3777c0554aff00da2cf0

See more details on using hashes here.

File details

Details for the file indianconstitution-0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for indianconstitution-0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6972e2d4306443f0278ace97226a7493898e2290f4211fdf90b15226439bb1e1
MD5 94d61933e7873332aa6db381f73fd24d
BLAKE2b-256 dae20fed99abd8e71189bf45a0c73e08d212a893ea33f219f7412a3eea7c70f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page