Skip to content

changes to have a mechanism of retry if corrupted/empty files are present #88

Merged
ypriverol merged 10 commits intomasterfrom
dev
Apr 22, 2026
Merged

changes to have a mechanism of retry if corrupted/empty files are present #88
ypriverol merged 10 commits intomasterfrom
dev

Conversation

@ypriverol
Copy link
Copy Markdown
Contributor

@ypriverol ypriverol commented Apr 21, 2026

This pull request modernizes the development workflow, improves documentation, and makes minor codebase improvements. The most significant changes are the adoption of the uv tool for dependency management and builds, updates to CI workflows for better Python version support and caching, and a complete rewrite of the README.md to provide clearer installation, usage, and contribution instructions.

Workflow and Dependency Management Updates:

  • All GitHub Actions workflows (python-app.yml, python-package.yml, python-publish.yml) now use the uv tool for dependency installation, linting, testing, and building, replacing pip and poetry. Workflows are updated to use the latest action versions and now cache dependencies for faster runs. Python 3.11 and 3.12 are now tested. [1] [2] [3] [4] [5]

  • A .flake8 config file is added to standardize linting settings across environments.

Documentation Improvements:

  • The README.md is completely rewritten for clarity and modern best practices. It now includes improved installation instructions (with a focus on uv), detailed CLI and Python API usage examples, development instructions, and contribution guidelines.

Codebase Improvements:

  • Minor code improvements in pridepy/files/files.py, including import optimizations and typing enhancements. [1] [2]

chakrabandla and others added 10 commits April 21, 2026 15:11
…n packaging

- files.py: split download orchestration into a batch-first primary pass
  (reuses one FTP/S3 connection for the whole project, as before) plus a
  per-file fallback for invalid/missing files. Removes the per-file
  reconnect regression from the initial PR version.
- files.py: make `_get_download_url` symmetric — raise cleanly when the
  requested protocol's location is unavailable instead of silently
  falling back to an arbitrary (possibly Aspera) URL for ftp/s3/globus.
- files.py: hoist the globus base URL into a class constant so the
  mapping is defined in one place; call static helpers via `Files.`.
- pyproject.toml: use PEP 621 table form for the license field so it
  works with the pinned `setuptools>=68` and re-add the
  `License :: OSI Approved :: Apache Software License` classifier.
  Bump boto3/botocore lower bounds to match meta.yaml. Add Python 3.12
  to the supported classifiers.
- python-package.yml: test against 3.9-3.12 and run lint/tests before
  building the wheel.
- tests: update the resilience suite for the renamed helper and add a
  test asserting the batch path skips the per-file fallback on success.

https://claude.ai/code/session_01V9mHYkhG1pggyzJCii8do3
Add resilient multi-protocol download with fallback and checksum validation
…lover-integrity

Harden downloads and migrate packaging/docs to uv
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 21, 2026

Warning

Rate limit exceeded

@ypriverol has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 50 minutes and 23 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 50 minutes and 23 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7d6df895-d6a1-4818-8a4b-3903c3bb446e

📥 Commits

Reviewing files that changed from the base of the PR and between b046bd0 and d28d807.

⛔ Files ignored due to path filters (1)
  • poetry.lock is excluded by !**/*.lock
📒 Files selected for processing (11)
  • .flake8
  • .github/workflows/python-app.yml
  • .github/workflows/python-package.yml
  • .github/workflows/python-publish.yml
  • .gitignore
  • README.md
  • pridepy/files/files.py
  • pridepy/pridepy.py
  • pridepy/tests/test_download_resilience.py
  • pyproject.toml
  • recipe/meta.yaml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ypriverol ypriverol merged commit 6f9bdb5 into master Apr 22, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants