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.14.tar.gz (104.8 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.14-py3-none-any.whl (109.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: importer_core-1.1.14.tar.gz
  • Upload date:
  • Size: 104.8 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.14.tar.gz
Algorithm Hash digest
SHA256 e4c250bb35835463f9f31e2ae486e0eac5810e630cbd6ee9ac73183a94de26b3
MD5 aeca369cc8d287baf30643e28a8e6d0a
BLAKE2b-256 22db76ed4e7f7d578d3d6be0374c8d6d8fab71390d3aa4186313beabffd27604

See more details on using hashes here.

File details

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

File metadata

  • Download URL: importer_core-1.1.14-py3-none-any.whl
  • Upload date:
  • Size: 109.3 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.14-py3-none-any.whl
Algorithm Hash digest
SHA256 e75ffd8be61f7fbd7dcdd3440ec1fd6e153bef332504ca276471c2e6e28ddb27
MD5 47c13fca8ccb10d6c911b960a5dec6f8
BLAKE2b-256 201f1749a0686e6011ee3ca12ae6efd955e85f9d7afbc9191ba8da66f93cba8f

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