Skip to main content

Python package for garbage collection utilities and memory management

Project description

glon

Git Clone utility - Clone repositories to organized directory structure.

Overview

The glon package provides a convenient CLI tool for cloning git repositories to an organized directory structure, as well as listing and managing your cloned projects.

Features

  • Easy Cloning: Clone git repositories with a single command
  • Clipboard Integration: Clone directly from clipboard URLs
  • Grab from Clipboard: Grab paths from clipboard (git URLs or local paths)
  • List Projects: List all cloned projects with time-based filtering
  • Open in IDE: Open projects directly in PyCharm or other IDEs
  • Organized Structure: Projects organized by owner/repo structure

Installation

pip install glon

Development Installation

git clone https://github.com/tom-sapletta/glon.git
cd glon
pip install -e ".[dev]"

Quick Start

Clone a Repository

# Clone using git URL
glon https://github.com/owner/repo.git

# Or clone from clipboard (copies URL to clipboard first)
glon

Grab from Clipboard

The grab command reads a path from clipboard and processes it:

# Grab from clipboard - detects if it's a git URL or local path
glon grab

# With options
glon grab --base-path ~/projects
glon grab --dry-run
glon grab --verbose

List Projects

List all cloned projects in your base directory:

# List all projects
glon list
glon ls

# Filter by time
glon list "last week"
glon list "last month"
glon list "last year"
glon list 30  # last 30 days

# Verbose output with full paths
glon list --verbose
glon ls -v

CLI Commands

Clone

Clone a git repository to the organized directory structure (default: ~/github):

glon <git-url>              # Clone from URL
glon clone <git-url>        # Same as above (explicit)
glon --dry-run <url>        # Show what would be done
glon --base-path ~/my-projects <url>  # Custom base path

Grab

Grab a path from clipboard:

glon grab                   # Read from clipboard and process
glon grab --verbose         # Show detailed output
glon grab --dry-run         # Preview without executing
glon grab --base-path ~/my-projects  # Custom output path

List (or LS)

List all cloned projects:

glon list                   # List all projects
glon ls                     # Short alias
glon list "last week"       # Projects modified last week
glon list "last month"      # Projects modified last month
glon list "last year"       # Projects modified last year
glon list 30                # Projects modified last 30 days
glon list --verbose         # Show full paths and details
glon ls -v                  # Verbose output
glon list --base-path ~/my-projects  # Custom base path

Open

Open a project in your IDE (PyCharm, VSCode, etc.):

glon open owner/repo        # Open in PyCharm (default)
glon open owner/repo --ide vscode    # Open in VS Code
glon open /full/path/to/project     # Open with full path
glon open ~/github/owner/repo       # Open with expanded path

API Reference

GarbageCollector

Main class for garbage collection control and monitoring.

Methods

  • enable() - Enable garbage collection
  • disable() - Disable garbage collection
  • collect(generation=2) - Force garbage collection
  • get_stats() - Get garbage collection statistics
  • get_memory_summary() - Get comprehensive memory summary

MemoryProfiler

Class for memory profiling and object tracking.

Methods

  • take_snapshot(label="") - Take a memory snapshot
  • track_object(obj, label="") - Track an object with weak reference
  • compare_snapshots(index1, index2) - Compare two memory snapshots
  • get_tracked_objects() - Get information about tracked objects

Utility Functions

  • cleanup_temp_files(pattern="*") - Clean up temporary files
  • monitor_memory_usage(duration=60, interval=1.0) - Monitor memory usage
  • force_garbage_collection(verbose=False) - Force garbage collection on all generations
  • find_object_cycles(obj, max_depth=10) - Find reference cycles
  • analyze_memory_usage() - Comprehensive memory analysis

Requirements

  • Python 3.8+
  • psutil>=5.8.0

Development

Running Tests

pytest

Code Formatting

black glon/

Type Checking

mypy glon/

License

Apache License 2.0 - see LICENSE for details.

Contributing

Contributions are welcome! Please read the CONTRIBUTING.md file for details on our code of conduct and the process for submitting pull requests.

Changelog

0.1.0

  • Initial release
  • Basic garbage collection control
  • Memory profiling capabilities
  • Utility functions for memory management

License

Apache License 2.0 - see LICENSE for details.

Author

Created by Tom Sapletta - tom@sapletta.com

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

glon-0.1.16.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glon-0.1.16-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file glon-0.1.16.tar.gz.

File metadata

  • Download URL: glon-0.1.16.tar.gz
  • Upload date:
  • Size: 23.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for glon-0.1.16.tar.gz
Algorithm Hash digest
SHA256 a954f3876dcf3040213eae3f147cb8e4afca770002dd89cc5d2cd7ed01f59d5c
MD5 fc2afc9ce0d651825d969ec7bd892946
BLAKE2b-256 81f5f0419a041ba14603591b1ae3b0fc1873b53f8dd6ad718d5bfd949da32c7a

See more details on using hashes here.

File details

Details for the file glon-0.1.16-py3-none-any.whl.

File metadata

  • Download URL: glon-0.1.16-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for glon-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 82a0b81d31ef2740ccf4f9f00d66bb098abc1ab9810c5fc1a41bf1a183a6e591
MD5 1dd4cf9f50f51dafee383a624271eb96
BLAKE2b-256 81213fff9ac76d8876ac345462c88a432907001d4a8b3ce5ad6fec8d9350ec3d

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