# Importee
Python import checker with Rust backend. Checks import ordering rules in Python projects.
## Features
- Rust-powered import analysis
- Configurable via `pyproject.toml`
- Linear ordering rules for enforcing module dependencies
- CLI interface
## Installation
### From PyPI
```bash
pip install importee
```
### From Snap Store
```bash
snap install importee
```
### From Source
```bash
git clone https://github.com/yourusername/importee.git
cd importee
pip install maturin
maturin develop
```
## Quick Start
Check your project's imports:
```bash
importee check
```
Configuration is done via `pyproject.toml`:
```toml
[tool.importee]
source_module = ["myproject"]
[tool.importee.rules.linear]
order = ["models", "utils", "api", "cli"]
```
## Configuration
Importee reads configuration from your `pyproject.toml` file. Here's what you can configure:
### Basic Configuration
```toml
[tool.importee]
# Modules to check
source_module = ["myapp"]
```
### Linear Ordering Rules
Enforce a specific order for imports within your project:
```toml
[tool.importee.rules.linear]
# Modules must be imported in this order
order = ["config", "database", "models", "services", "api"]
```
This ensures that modules listed earlier in the order cannot import from modules listed later.
## Development
### Prerequisites
- Python 3.9+
- Rust 1.70+
- Maturin
### Building
```bash
# Development build
make dev
# Clean rebuild
make rebuild
```
### Running Tests
```bash
pytest tests/
```
## License
[Add your license here]
## Deployment
See [DEPLOYMENT.md](DEPLOYMENT.md) for information on releasing and deploying this project.
Raw data
{
"_id": null,
"home_page": null,
"name": "importee",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "linter, imports, python, rust, code-quality",
"author": null,
"author_email": "Duboisset Nathan <nathan.duboisset@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/3f/e7/b3baf2f2db729ed3f09f4007c83bde36f0aed111f40feb82f0b153f2d1ce/importee-0.1.3.tar.gz",
"platform": null,
"description": "# Importee\n\nPython import checker with Rust backend. Checks import ordering rules in Python projects.\n\n## Features\n\n- Rust-powered import analysis\n- Configurable via `pyproject.toml`\n- Linear ordering rules for enforcing module dependencies\n- CLI interface\n\n## Installation\n\n### From PyPI\n\n```bash\npip install importee\n```\n\n### From Snap Store\n\n```bash\nsnap install importee\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/yourusername/importee.git\ncd importee\npip install maturin\nmaturin develop\n```\n\n## Quick Start\n\nCheck your project's imports:\n\n```bash\nimportee check\n```\n\nConfiguration is done via `pyproject.toml`:\n\n```toml\n[tool.importee]\nsource_module = [\"myproject\"]\n\n[tool.importee.rules.linear]\norder = [\"models\", \"utils\", \"api\", \"cli\"]\n```\n\n## Configuration\n\nImportee reads configuration from your `pyproject.toml` file. Here's what you can configure:\n\n### Basic Configuration\n\n```toml\n[tool.importee]\n# Modules to check\nsource_module = [\"myapp\"]\n```\n\n### Linear Ordering Rules\n\nEnforce a specific order for imports within your project:\n\n```toml\n[tool.importee.rules.linear]\n# Modules must be imported in this order\norder = [\"config\", \"database\", \"models\", \"services\", \"api\"]\n```\n\nThis ensures that modules listed earlier in the order cannot import from modules listed later.\n\n## Development\n\n### Prerequisites\n\n- Python 3.9+\n- Rust 1.70+\n- Maturin\n\n### Building\n\n```bash\n# Development build\nmake dev\n\n# Clean rebuild\nmake rebuild\n```\n\n### Running Tests\n\n```bash\npytest tests/\n```\n\n## License\n\n[Add your license here]\n\n## Deployment\n\nSee [DEPLOYMENT.md](DEPLOYMENT.md) for information on releasing and deploying this project.\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python import checker with Rust backend",
"version": "0.1.3",
"project_urls": {
"Homepage": "https://github.com/NathanDuboisset/importee",
"Issues": "https://github.com/NathanDuboisset/importee/issues",
"Repository": "https://github.com/NathanDuboisset/importee"
},
"split_keywords": [
"linter",
" imports",
" python",
" rust",
" code-quality"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7c0afab6004179dc3626a75cd137ad6e53fa100013993a8e57a114261de688a5",
"md5": "4c730b70d402d9a77e7059d9783454c7",
"sha256": "1241930ef3e2fa39515ea69a1f174f35fa09956e870e2e8dfd24bcbf72f37443"
},
"downloads": -1,
"filename": "importee-0.1.3-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "4c730b70d402d9a77e7059d9783454c7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2040640,
"upload_time": "2025-11-02T08:58:19",
"upload_time_iso_8601": "2025-11-02T08:58:19.812007Z",
"url": "https://files.pythonhosted.org/packages/7c/0a/fab6004179dc3626a75cd137ad6e53fa100013993a8e57a114261de688a5/importee-0.1.3-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a98a69d94535f477d46574c1c4fa3d8d052dd7231d79f4b3c5395cf90ab07ddb",
"md5": "b15fb059543c83eec4d0d219a97815f6",
"sha256": "6ab78c914fef6300e892424a4bebeab183f7fc2226449cbfa0e30d66dbd84796"
},
"downloads": -1,
"filename": "importee-0.1.3-cp312-cp312-manylinux_2_34_x86_64.whl",
"has_sig": false,
"md5_digest": "b15fb059543c83eec4d0d219a97815f6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2315549,
"upload_time": "2025-11-02T08:58:21",
"upload_time_iso_8601": "2025-11-02T08:58:21.484562Z",
"url": "https://files.pythonhosted.org/packages/a9/8a/69d94535f477d46574c1c4fa3d8d052dd7231d79f4b3c5395cf90ab07ddb/importee-0.1.3-cp312-cp312-manylinux_2_34_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8b399280f534bbbc3feff903236d4208006e792b900b9c768428b0af42d60189",
"md5": "5759dc4a6fa1d9d41529741b64f8a7d7",
"sha256": "db7360dd0126bdb4369496072f93fc22a08763d75feb96cda24aa45c9e5040f7"
},
"downloads": -1,
"filename": "importee-0.1.3-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "5759dc4a6fa1d9d41529741b64f8a7d7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9",
"size": 2008515,
"upload_time": "2025-11-02T08:58:23",
"upload_time_iso_8601": "2025-11-02T08:58:23.527447Z",
"url": "https://files.pythonhosted.org/packages/8b/39/9280f534bbbc3feff903236d4208006e792b900b9c768428b0af42d60189/importee-0.1.3-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3fe7b3baf2f2db729ed3f09f4007c83bde36f0aed111f40feb82f0b153f2d1ce",
"md5": "a00b55b5356918a52938213171dc8466",
"sha256": "0dd2f63d44884130b19acb5bfccdaca2f637b4fcc785e49d002f08ce2eb7ae24"
},
"downloads": -1,
"filename": "importee-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "a00b55b5356918a52938213171dc8466",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 38189,
"upload_time": "2025-11-02T08:58:25",
"upload_time_iso_8601": "2025-11-02T08:58:25.253854Z",
"url": "https://files.pythonhosted.org/packages/3f/e7/b3baf2f2db729ed3f09f4007c83bde36f0aed111f40feb82f0b153f2d1ce/importee-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-02 08:58:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NathanDuboisset",
"github_project": "importee",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "click",
"specs": [
[
">=",
"8.1"
],
[
"<",
"9"
]
]
},
{
"name": "tomli",
"specs": [
[
">=",
"2.0.3"
]
]
}
],
"lcname": "importee"
}