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 structure
explorer = pmeX('numpy') print(explorer.tree()) print(explorer.structure().classes())
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.is_installed()) # Installation status print(mod.structure()) # File 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-version') 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file importer_core-1.0.5.tar.gz.
File metadata
- Download URL: importer_core-1.0.5.tar.gz
- Upload date:
- Size: 92.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7101e4fcf7a24c81a5cb7025d652d92d4b79da863fa3d07408b4ef1fae9511f
|
|
| MD5 |
a4da385eded13560b419fa0f186a75bc
|
|
| BLAKE2b-256 |
c3a62db2f9decf9be47e84eee0c417b12234ad020edb441b1b9dff66cf89fa80
|
File details
Details for the file importer_core-1.0.5-py3-none-any.whl.
File metadata
- Download URL: importer_core-1.0.5-py3-none-any.whl
- Upload date:
- Size: 96.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32336c35bdf9529382e272b15a3750d191cbb7d8c244a190479899bde6415402
|
|
| MD5 |
22f0b490b2d9b96ed96306a091429af2
|
|
| BLAKE2b-256 |
0f0e20b33c8cc869189dbd160d73985125624ecd71b479e5c87e9c2177b787d9
|