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

Uploaded Python 3

File details

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

File metadata

  • Download URL: importer_core-1.1.12.tar.gz
  • Upload date:
  • Size: 104.9 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.12.tar.gz
Algorithm Hash digest
SHA256 f95e04ddc20e1cdb4b6c17d456e6e0a2e777522d1a8467e602614ad9e1d1b6a2
MD5 8550411865784e53c93e6da6257c51ab
BLAKE2b-256 6ba851e86c596ecea5bba2a2e3228f974bb164a1b0a86f2cb7d4ae1de0126bcf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: importer_core-1.1.12-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.12-py3-none-any.whl
Algorithm Hash digest
SHA256 654a5a3bfa16721bc8f223fe0272d83ef7fabd9a714ca09b62ac3fb18b2b6401
MD5 d60735a4ed928853d9f7ae9397e86a6b
BLAKE2b-256 0cefcefab4e8e464c7572578e3900f3c43628e0c15b06f3ec5475c83ff79e4e1

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