Skip to main content

A comprehensive Python package and module management system with advanced analysis capabilities

Project description

Importer Core

A comprehensive Python package and module management system with analysis capabilities.

Overview

Importer Core is a powerful library designed for deep analysis and management of Python packages and modules. It provides developers with tools for package inspection, dependency analysis, code quality assessment, and performance monitoring.

Key Features

Package Management

· Advanced Module Analysis: Deep inspection of Python packages and modules · Dependency Management: Comprehensive dependency tree analysis and conflict detection · Package Operations: Install, update, uninstall packages with options · PyPI Integration: Search and analyze packages from PyPI with intelligent caching

Code Analysis

· Source Code Analysis: Extract metadata, signatures, and structure from source files · AST-Based Analysis: Advanced Abstract Syntax Tree parsing for deep code understanding · Performance Monitoring: Real-time code execution tracking and memory usage analysis · Quality Assessment: Code quality checks and pattern detection

Advanced Tools

· Module Comparison: Compare different versions of modules and packages · Version Management: Automated version tracking and tagging· Visualization: Export dependency trees to various formats (Graphviz, Mermaid) · Security: Safe package operations with validation and error handling

Installation

pip install importer-core

Quick Start

Basic Module Analysis

from importer import Modulex

Analyze a module

mod = Modulex('requests') print(f"Version: {mod.version}") print(f"Stats: {mod.stats()}")

Package Exploration

from importer import pmeX

Explore package

explorer = pmeX('numpy') print(explorer.tree())

PyPI Search

from importer import PyPISearch

async def search_packages(): async with PyPISearch() as searcher: results = await searcher.search("web framework", max_results=5) for package in results: print(f"{package.name} {package.version}: {package.summary}")

Run the search

import asyncio asyncio.run(search_packages())

Dependency Analysis

from importer import get_dep_tree

Analyze dependency tree

tree = get_dep_tree("requests", max_depth=3) print(tree)

Core Components

Modulex

Comprehensive module analysis and management:

mod = Modulex('your-package') print(mod.version) # Package version print(mod.isinstall()) # Installation status print(mod.structure()) # Module structure

pmeX (Python Module Explorer)

module exploration and manipulation:

explorer = pmeX('package-name') explorer.inject("NEW_CONSTANT = 42") # Code injection explorer.disable_feature("function_name") # Feature controlPyPISearch

Intelligent PyPI package search:

searcher = PyPISearch() results = await searcher.search("data science", include_details=True)

Source Analysis

Deep source code analysis:

from importer import Source

src = Source(your_function) print(src.source) # Source code print(src.decorators) # Function decorators print(src.type_hints) # Type annotations

Usage

Batch Package Installation

from importer import installs

Install multiple packages concurrently

results = installs(["requests", "numpy", "pandas"], mode="thread") for result in results: status = "Success" if result['success'] else "Failed" print(f"{result['package']}: {status}")

Module Comparison

from importer import ModuleComparator

Compare two versions of a module

comparator = ModuleComparator('package-name', './other-dir') print("Different files:", comparator.diff_files) print("Statistics:", comparator.stats)

Code Quality Analysis

from importer import Source

def analyze_code_quality(module): analyzer = Source(module)

print("Code Quality Report:")
print(f"Total functions: {len(analyzer.defs)}")
print(f"Total classes: {len(analyzer.classes)}")
print(f"Type hints coverage: {analyzer.type_hints_coverage}")

# Detect potential issues
unreachable = analyzer.unreachable_code
if unreachable:
    print(f"Unreachable code found: {len(unreachable)} locations")

Configuration

The library can be configured for different use cases:

Custom cache settings

searcher = PyPISearch(cache_ttl=600, max_concurrent=5)

Performance optimization

analyzer = size('large-package', worker=os.cpu_count() * 10)Requirements

· Python 3.8 or higher · aiohttp >= 3.8.0 · packaging >= 21.0 · PyYAML >= 6.0

Optional Dependencies

· python-minifier: For code minification features · graphviz: For dependency visualization · build & twine: For package publishing

Documentation

Full documentation is available in the project's GitHub repository:

· API Reference · Examples · Best Practices

Contributing

Contributions are welcome! Please feel free to submit pull requests, report bugs, or suggest new features.

License

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

Support

For support and questions:

· Create an issue on GitHub · Check the documentation · Review existing examples

Version History

· 1.0.0: Initial release with core functionality · Module analysis and management · Dependency tracking · PyPI integration · Code analysis tools


Developed by Moamen Walid - GitHub Repository

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

importer_core-1.1.20.tar.gz (118.5 kB view details)

Uploaded Source

Built Distribution

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

importer_core-1.1.20-py3-none-any.whl (123.9 kB view details)

Uploaded Python 3

File details

Details for the file importer_core-1.1.20.tar.gz.

File metadata

  • Download URL: importer_core-1.1.20.tar.gz
  • Upload date:
  • Size: 118.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for importer_core-1.1.20.tar.gz
Algorithm Hash digest
SHA256 4f05ec7cae41763223d6b8d748683b9584c59e3e00f189b4629ce7185a68814c
MD5 58873e9d92654086ec5ba653e59f47b8
BLAKE2b-256 8aa618f54fbce1c0137aef96b0a25537ead0961eb05e3eb1cc255dd59a4c5362

See more details on using hashes here.

File details

Details for the file importer_core-1.1.20-py3-none-any.whl.

File metadata

  • Download URL: importer_core-1.1.20-py3-none-any.whl
  • Upload date:
  • Size: 123.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for importer_core-1.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 a43db4d53fcb693d777355e7999d8094ef959f64a921bba366f6faf7c0930e8d
MD5 fa840cf974185e6907ff43db7b8a97e8
BLAKE2b-256 135ab82912fbda850087d54de2df076c75743c454dc4f22dec42a08dc4382528

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