-
Notifications
You must be signed in to change notification settings - Fork 2
Set supported python version to >=3.9 #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughThe changes in this pull request primarily involve updates to the Changes
Possibly related issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Report bugs in Issues The following are automatically added:
Available user actions:
Supported /retest check runs
Supported labels
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range and nitpick comments (2)
pyproject.toml (2)
Line range hint
92-93
: Consider updating test documentation for Python 3.9The test dependencies (pytest ^8.0.0 and pytest-cov ^5.0.0) are compatible with Python 3.9. Consider updating the project's testing documentation to reflect the new minimum Python version requirement.
Line range hint
13-20
: Consider enabling Python 3.9 specific type checking featuresSince we're upgrading to Python 3.9, we could take advantage of its improved type hinting features. Consider adding these mypy flags:
python_version = "3.9"
to enable version-specific type checkingstrict_concatenate = true
for stricter sequence concatenation checks[tool.mypy] + python_version = "3.9" + strict_concatenate = true show_error_codes = true warn_unused_ignores = true check_untyped_defs = true disallow_any_generics = true disallow_incomplete_defs = true disallow_untyped_defs = true no_implicit_optional = true
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
⛔ Files ignored due to path filters (1)
poetry.lock
is excluded by!**/*.lock
📒 Files selected for processing (1)
pyproject.toml
(1 hunks)
🔇 Additional comments (2)
pyproject.toml (2)
55-55
: Verify usage of Python 3.9 syntax in codebase
Let's ensure the codebase is ready for Python 3.9 and check if we're using any version-specific features.
#!/bin/bash
# Description: Check for Python 3.9 specific syntax usage
# Test: Look for dictionary union operator usage (Python 3.9 feature)
echo "Checking for dictionary union operator usage..."
rg -l "\|" --type py
# Test: Look for str.removeprefix and str.removesuffix usage (Python 3.9 features)
echo "Checking for Python 3.9 string methods..."
rg -l "removeprefix|removesuffix" --type py
55-55
: Verify dependency compatibility with Python 3.9
The Python version upgrade to ^3.9 looks good and aligns with the PR objectives. However, we should verify the compatibility of all dependencies with Python 3.9.
Let's check the Python version compatibility of key dependencies:
✅ Verification successful
Python 3.9 upgrade is safe to proceed
Based on the verification:
- No Python 3.9-specific features (like removeprefix/removesuffix) are being used in the codebase
- All dependencies listed in pyproject.toml are modern versions that support Python 3.9
- The project uses type hints which are well-supported in Python 3.9
- No compatibility concerns were found in the codebase
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check Python version compatibility metadata for key dependencies
# Test: Check Python version requirements for direct dependencies
for pkg in python-simple-logger pylero pyhelper-utils pytest-mock pyyaml jira tenacity; do
echo "Checking $pkg..."
pip index versions "$pkg" | head -n 3
done
Length of output: 344
Script:
#!/bin/bash
# Let's try a different approach to check dependencies and Python version usage
# First, let's check the actual dependencies listed in pyproject.toml
echo "=== Dependencies from pyproject.toml ==="
cat pyproject.toml
# Check for Python 3.9 specific features
echo -e "\n=== Checking for Python 3.9 specific features ==="
# Check for dictionary union operator (|)
echo "Files using dictionary union operator:"
rg '\s\|=\s|\s\|\s(?!=)' --type py
# Check for string methods introduced in 3.9
echo -e "\nFiles using removeprefix/removesuffix:"
rg '\.(removeprefix|removesuffix)\(' --type py
# Check for type annotations (more common in 3.9+)
echo -e "\nFiles with type annotations:"
rg ':\s*(str|int|float|bool|list|dict|set|tuple|Any|Optional|Union|Literal)\s*[\],\)]' --type py -l
Length of output: 3224
Script:
#!/bin/bash
# Let's check for dictionary union operator with a simpler pattern and verify dependency versions
# Check for dictionary union operator with a simpler pattern
echo "=== Checking for dictionary union operations ==="
rg ' \| ' --type py
# Let's examine the actual package versions from poetry.lock if it exists
echo -e "\n=== Checking poetry.lock for dependency versions ==="
if [ -f poetry.lock ]; then
cat poetry.lock
else
echo "poetry.lock not found"
fi
# Check minimum Python version mentions in the codebase
echo -e "\n=== Checking for Python version mentions in the codebase ==="
rg "python.*3\.[0-9]+" --type-add 'config:*.{toml,yml,yaml,ini}' -t py -t config
Length of output: 99904
/verified |
Summary by CodeRabbit
New Features
Configuration Changes