FileSystemPro
FileSystemPro is a powerful, cross-platform Python toolkit for file and directory management, system monitoring, compression, and enhanced console output. It provides seamless abstractions for OS-specific paths, resource tracking (CPU, disks, memory, network), archive handling (tar/zip), change detection, and colored terminal styling. Built for developers, it integrates standard library tools with optional psutil for hardware insights, ensuring portability across Linux, macOS, and Windows.
Key Pillars:
- FileSystem Abstraction: OS-agnostic paths to user folders (e.g., Desktop, Documents).
- Resource Monitoring: Track CPU/memory/disks/network via
devicesubmodule. - File/Directory Ops: Creation, manipulation, enumeration, and integrity checks.
- Compression & Watching: Tar/zip handling and real-time filesystem change detection.
- Console Enhancement: ANSI colors/styles with Windows compatibility.
Compatibility: Python 3.10+; cross-platform (Linux/macOS/Windows).
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
Getting Started
Requirements
- Python 3.10+ (download).
- Optional:
psutilfordevicemodule (pip install psutil).
Installation
Upgrade pip first:
pip install --upgrade pip
Install FileSystemPro:
pip install FileSystemPro
For Developers/Contributors
Clone the repo:
git clone https://github.com/hbisneto/FileSystemPro.git
cd FileSystemPro
Upgrade build tools:
pip install --upgrade setuptools wheel
Note: Requires setuptools 69.5.1+; wheel for packaging.
Run tests or build: See CONTRIBUTING.md.
Table of Contents
Jump to module documentation for detailed APIs, examples, and best practices:
- FileSystem Module: OS detection and standard folder paths (
desktop,documents, etc.). - Core Module: Config management, logging, performance tuning, and update checks.
- Compression Module: Tar/zip creation, extraction, and reading.
- Directory Module: Path operations, creation/deletion, enumeration, timestamps, and tree views.
- File Module: I/O, integrity (SHA-256), copy/move, splitting, and timestamps.
- Watcher Module: Polling-based filesystem change detection with callbacks.
- Wrapper Module: Unified metadata dicts (paths, sizes, timestamps).
- Console Module: ANSI colors, backgrounds, and styles (chainable, Windows-compatible).
- Device Module: CPU/disks/memory/network monitoring (requires
psutil).
Quick Start
Import core modules:
import filesystem as fs # Paths
from filesystem import file, directory, compression # Ops
from filesystem import device # Monitoring (needs psutil)
from filesystem import console # Colored output
Example: List Downloads files with colors:
from filesystem import fs, file, console
files = file.get_files(fs.downloads)
for f in files:
size = file.get_size(f, show_unit=True)
print(console.green()(f) + f" ({size})")
Monitor CPU:
import time
from filesystem import device
while True:
usage = device.cpu.cpu_percent()
print(console.red() if usage > 80 else console.green()(f"CPU: {usage}%"))
time.sleep(1)
Architecture
FileSystemPro follows a modular design:
- Core (
__core__): Config/logging/updates. - FileSystem: Entry point for paths.
- Ops (
file/directory/compression): Manipulation. - Monitoring (
watcher/device): Changes/resources. - Utilities (
wrapper/console): Metadata/styling.
See submodule READMEs for internals.
Contributing
- Fork/clone the repo.
- Install dev deps:
pip install -e .[dev]. - Add tests in
tests/. - Run:
pytest/black ./flake8. - PR to
main.
Guidelines: CONTRIBUTING.md.
License
MIT License. See LICENSE.
Metadata
Release files for filesystempro 3.0.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| filesystempro-3.0.0.0.tar.gz | 61.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| filesystempro-3.0.0.0-py2-none-any.whl | Python 2 | none | any | Details |
Total release size: 136.4 kB
Release files / filesystempro-3.0.0.0.tar.gz
| Download URL | filesystempro-3.0.0.0.tar.gz |
|---|---|
| Size | 61.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9ffc4cf0c6c5192280b8cd8cd1504a85fbb5c0fafd36faa7cfc9207e98b8da49
|
|
BLAKE2b-256 checksum How to use checksums |
a3beeedcff4f5c2f8f745c4dd0d2beb6564084cf7faab9eec5f1a5894196bb17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.0
|
Release files / filesystempro-3.0.0.0-py2-none-any.whl
| Download URL | filesystempro-3.0.0.0-py2-none-any.whl |
|---|---|
| Size | 74.8 kB |
| Tags | Python 2 |
|
SHA-256 checksum How to use checksums |
fd834ade303eadf73976758eb8fda37d487ad46bceb2e5750be4f93da7bf5bcf
|
|
BLAKE2b-256 checksum How to use checksums |
621fe7a37631116617848bbee4b1a2fbd552c845590877dc219dae2be796ba77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.0
|