
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
A comprehensive Python project quality analyzer that provides actionable next steps for improving your project
Weekly is a comprehensive Python project quality analyzer that helps developers maintain high code quality by automatically detecting issues and suggesting improvements. It analyzes various aspects of your Python projects and generates actionable reports with clear next steps.
Weekly can scan multiple Git repositories in a directory structure and generate comprehensive reports for each one, plus a summary report.
# Scan all Git repositories in ~/github
weekly scan ~/github
# Only show repositories with changes in the last 7 days (default)
weekly scan ~/github --since "7 days ago"
# Specify a custom output directory
weekly scan ~/github -o ./weekly-reports
# Run with 8 parallel jobs for faster scanning
weekly scan ~/github -j 8
# Generate JSON reports instead of HTML
weekly scan ~/github --format json
๐ Scanning Git repositories in /Users/username/github...
โ
Scan complete! Generated reports for 3 repositories.
๐ Summary report: weekly-reports/summary.html
โ
org1/repo1: 5 checks
โ style: Passed
โ code_quality: Passed
โ dependencies: 2 outdated packages found
โ docs: Documentation is 85% complete
โ tests: 92% test coverage
Usage: weekly scan [OPTIONS] [ROOT_DIR]
Scan multiple Git repositories and generate reports.
ROOT_DIR: Directory containing Git repositories (default: current directory)
Options:
-o, --output PATH Output directory for reports (default: ./weekly-reports)
-s, --since TEXT Only include repositories with changes since this date (e.g., "7 days ago", "2023-01-01")
--recursive / --no-recursive Scan directories recursively (default: True)
-j, --jobs INTEGER Number of parallel jobs (default: 4)
-f, --format [html|json|markdown] Output format (default: html)
--summary-only Only generate a summary report, not individual reports
-v, --verbose Show detailed output
--help Show this message and exit.
from pathlib import Path
from datetime import datetime, timedelta
from weekly import GitScanner
# Create a scanner instance
scanner = GitScanner(
root_dir=Path.home() / "github",
output_dir="weekly-reports",
since=datetime.now() - timedelta(days=7),
recursive=True,
jobs=4
)
# Run the scan
results = scanner.scan_all()
# Process results
for result in results:
print(f"{result.repo.org}/{result.repo.name}:")
for name, check in result.results.items():
status = "โ" if check.is_ok else "โ"
print(f" {status} {name}: {check.message}")
pip install weekly
poetry add weekly
# Clone the repository
git clone https://github.com/wronai/weekly.git
cd weekly
# Install with Poetry
poetry install --with dev
# Install pre-commit hooks
pre-commit install
# Activate the virtual environment
poetry shell
Analyze a Python project:
weekly analyze /path/to/your/project
Usage: weekly analyze [OPTIONS] PROJECT_PATH
Analyze a Python project and provide quality insights.
PROJECT_PATH: Path to the project directory (default: current directory)
Options:
-f, --format [text|json|markdown] Output format (default: text)
-o, --output FILE Output file (default: stdout)
--show-suggestions / --no-suggestions
Show improvement suggestions (default: true)
-v, --verbose Show detailed output
--help Show this message and exit.
Analyze current directory and show results in the terminal:
weekly analyze .
Generate a Markdown report:
weekly analyze -f markdown -o report.md /path/to/project
Generate a JSON report for programmatic use:
weekly analyze -f json -o report.json /path/to/project
๐ Weekly Project Analysis Report
================================================================================
Project: example-project
Generated: 2025-06-07 12:34:56
Summary:
--------------------------------------------------------------------------------
โ
5 passed
โ ๏ธ 3 warnings
โ 1 errors
Detailed Results:
--------------------------------------------------------------------------------
โ
Project Structure
Found Python project with proper structure
โ
Dependencies
All dependencies are properly specified
โ ๏ธ Test Coverage
Test coverage is below 80% (currently 65%)
Suggestions:
โข Add more test cases to improve coverage
โข Consider using pytest-cov for coverage reporting
โ Documentation
Missing API documentation
Suggestions:
โข Add docstrings to all public functions and classes
โข Consider using Sphinx or MkDocs for API documentation
Recommended Actions:
--------------------------------------------------------------------------------
1. Improve Test Coverage
โข Add unit tests for untested modules
โข Add integration tests for critical paths
โข Set up code coverage reporting in CI
2. Enhance Documentation
โข Add docstrings to all public APIs
โข Create API documentation using Sphinx or MkDocs
โข Add examples to the README
from pathlib import Path
from weekly import analyze_project
from weekly.core.report import Report
# Analyze a project
report = analyze_project(Path("/path/to/your/project"))
# Get report as dictionary
report_data = report.to_dict()
# Get markdown report
markdown = report.to_markdown()
# Print summary
print(f"โ
{report.summary['success']} passed")
print(f"โ ๏ธ {report.summary['warnings']} warnings")
print(f"โ {report.summary['errors']} errors")
# Get suggestions
for suggestion in report.get_suggestions():
print(f"\n{suggestion['title']}:")
for item in suggestion['suggestions']:
print(f" โข {item}")
### Most Active Files
- `src/main.py`: 12 changes
- `tests/test_main.py`: 8 changes
- `README.md`: 5 changes
### Languages Used
- `.py`: 15 files
- `.md`: 3 files
- `.json`: 2 files
## ๐ Next Steps
- [ ] Add tests for recent changes
- [ ] Refactor large files: src/utils.py, src/processor.py...
## ๐ Recent Commits
- `a1b2c3d` Fix bug in data processing (2023-05-15)
- `f4e5d6a` Add new feature X (2023-05-14)
- `b3c4d5e` Update documentation (2023-05-13)
- `c6d7e8f` Refactor module Y (2023-05-12)
- `d9e0f1a` Initial commit (2023-05-10)
*[View full history in the JSON file]*
Clone the repository:
git clone https://github.com/wronai/weekly.git
cd weekly
Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
Install development dependencies:
pip install -e .[dev]
pytest
This project uses:
Run all checks:
black .
isort .
flake8
mypy .
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
A comprehensive Python project quality analyzer that provides actionable next steps for improving your project
We found that weekly demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.ย It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.