Skip to content

joeygoesgrey/Xendpal-magic

Repository files navigation


Xendpalmagic: Advanced File Type Detection Library

Xendpalmagic is a comprehensive Python library designed to enhance file type detection through a multi-faceted approach. By combining file extensions, magic numbers, content analysis, and header parsing, Xendpalmagic offers unmatched accuracy and reliability for identifying a wide range of file formats.

Features

  • Robust File Type Detection: Utilizes magic numbers, content analysis, and header parsing for accurate file identification.
  • Customizable Detection Strategies: Tailor the detection process to prioritize speed, accuracy, or a balance of both.
  • Extensive File Format Support: Comes with a broad database of file signatures and MIME types, with the flexibility to add new ones.
  • Developer-friendly: Easy to integrate and use in any Python project requiring file handling capabilities.

Installation

Install Xendpal-magic using pip:

pip install xendpalmagic

Quick Start

from xendpalmagic import FileSignatureMatcher

# Initialize the matcher
matcher = FileSignatureMatcher()

# Determine the file type of 'example.pdf'
file_type, method = matcher.determine_file_type('example.pdf')
print(file_type)  # Outputs: 'application/pdf'

Advanced Usage

Custom Detection Strategy

matcher = FileSignatureMatcher(detection_method='signature', return_type='description')
file_description, method = matcher.determine_file_type('example.docx')
print(file_description)  # Outputs: 'Microsoft Word document'

Adding Custom File Signatures

matcher.add_custom_signature(
    extension='custom',
    hex_signatures=['00 11 22 33', '44 55 66 77'],
    description='Custom File Format',
    mime_type='application/x-custom'
)

Contributing

Contributions are welcome! Please read our Contributing Guide for details on how to submit pull requests, report issues, and suggest improvements.

License

Xendpalmagic is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Special thanks to all contributors who have helped shape Xendpal-magic into what it is today.

Releases

No releases published

Packages

No packages published

Languages