mirror of
https://github.com/wilsonfreitas/awesome-quant.git
synced 2026-08-22 00:08:07 +00:00
133 lines
3.0 KiB
Markdown
133 lines
3.0 KiB
Markdown
# Update PyPI Dates Skill
|
|
|
|
Automatically check PyPI projects for their latest update dates and keep README.md entries current.
|
|
|
|
## Overview
|
|
|
|
This skill monitors Python packages listed in awesome-quant and updates their entries with the latest release dates from PyPI. This ensures that outdated project information is easily identifiable.
|
|
|
|
## Features
|
|
|
|
- ✅ Checks 4 PyPI projects: qfrm, chinesestockapi, tushare, metatrader5
|
|
- ✅ Fetches latest release dates from PyPI API
|
|
- ✅ Updates README.md entries with `(Last updated: YYYY-MM-DD)` format
|
|
- ✅ Commits changes automatically when updates found
|
|
- ✅ No dependencies beyond Python standard library
|
|
|
|
## Usage
|
|
|
|
### Invoke from Claude Code
|
|
|
|
```bash
|
|
/update-pypi-dates
|
|
```
|
|
|
|
Or call the script directly:
|
|
|
|
```bash
|
|
./.claude/skills/update-pypi-dates/scripts/check_pypi_dates.py
|
|
```
|
|
|
|
### Manual Python Execution
|
|
|
|
```bash
|
|
python3 .claude/skills/update-pypi-dates/scripts/check_pypi_dates.py
|
|
```
|
|
|
|
### Bash Wrapper
|
|
|
|
```bash
|
|
./.claude/skills/update-pypi-dates/scripts/update_pypi_dates.sh
|
|
```
|
|
|
|
## How It Works
|
|
|
|
1. **Queries PyPI API** for each tracked package
|
|
2. **Extracts last release date** from the releases data
|
|
3. **Updates README.md** entries with format: `(Last updated: 2024-08-27)`
|
|
4. **Commits changes** if any updates were found
|
|
|
|
## Adding New Packages
|
|
|
|
To track additional PyPI packages, edit the `PYPI_PROJECTS` dictionary in `scripts/check_pypi_dates.py`:
|
|
|
|
```python
|
|
PYPI_PROJECTS = {
|
|
"display_name": "pypi_package_name",
|
|
# Add new entries here
|
|
}
|
|
```
|
|
|
|
Then update the skill description if needed.
|
|
|
|
## Output Examples
|
|
|
|
### No Changes
|
|
```
|
|
📦 Checking PyPI projects for last updated dates...
|
|
|
|
Checking qfrm...
|
|
✓ 2015-12-12 (no change)
|
|
|
|
✓ All packages up to date!
|
|
```
|
|
|
|
### With Updates
|
|
```
|
|
📦 Checking PyPI projects for last updated dates...
|
|
|
|
Checking tushare...
|
|
✓ 2024-08-27 (no change)
|
|
Checking metatrader5...
|
|
✅ Updated to 2026-02-20
|
|
|
|
📝 Found 1 update(s):
|
|
- metatrader5: 2026-02-20
|
|
|
|
✅ Updated README.md
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Periodic Execution
|
|
|
|
Set up a cron job to run weekly:
|
|
|
|
```bash
|
|
# Add to crontab (runs Monday at 2 AM)
|
|
0 2 * * 1 cd /path/to/awesome-quant && ./.claude/skills/update-pypi-dates/scripts/update_pypi_dates.sh
|
|
```
|
|
|
|
Or use Claude Code's scheduling:
|
|
|
|
```bash
|
|
/loop 1w /update-pypi-dates
|
|
```
|
|
|
|
## Files
|
|
|
|
- `SKILL.md` - Skill definition and documentation
|
|
- `scripts/check_pypi_dates.py` - Main Python script
|
|
- `scripts/update_pypi_dates.sh` - Bash wrapper with git integration
|
|
- `README.md` - This file
|
|
|
|
## Requirements
|
|
|
|
- Python 3.6+
|
|
- Network access to PyPI API
|
|
- Git (for automatic commits)
|
|
|
|
## Error Handling
|
|
|
|
- Network timeouts: Gracefully skipped with warning
|
|
- Package not found: Skipped with message
|
|
- API errors: Logged and continued with other packages
|
|
|
|
## Future Enhancements
|
|
|
|
- [ ] Support for more PyPI packages
|
|
- [ ] GitHub Actions workflow integration
|
|
- [ ] Email notifications on updates
|
|
- [ ] Comparison with published versions in README
|
|
- [ ] Support for other package registries (npm, Ruby Gems, etc.)
|