[Arvion] Security remediation: Update SQLAlchemy to 2.0.43 and fix breaking changes #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Automated Security Remediation
📂 Files Modified
setup.pyinstall_requiresto the target versions. Thepython_requireswas also changed from Python 2.7 to Python 3.8+ to match the requirements of the upgraded libraries.app/database.pydeclarative_base, adding thefuture=Trueparameter tocreate_engine, and specifying column names explicitly inColumndefinitions. Consequently, the raw SQL query inget_userwas updated to use thetext()construct, which is required in SQLAlchemy 2.0 mode. A local variable was renamed to avoid a conflict with the importedtextsymbol. Additionally, Python 2-specific syntax such as the__unicode__method,unicodetype, andu""string literals were updated to be compatible with Python 3, which is required by the upgraded dependencies.🔄 Migrations Performed
requests 2.5.3 → 2.32.5
🔒 Vulnerabilities Fixed:
Sessionobject does not verify requests after making first request with verify=FalseNo breaking changes were applied for this dependency.
pyyaml 3.12 → 6.0.2
🔒 Vulnerabilities Fixed:
No breaking changes were applied for this dependency.
flask 0.12.2 → 3.1.2
🔒 Vulnerabilities Fixed:
No breaking changes were applied for this dependency.
jinja2 2.8 → 3.1.6
🔒 Vulnerabilities Fixed:
No breaking changes were applied for this dependency.
sqlalchemy 1.0.0 → 2.0.43
🔒 Vulnerabilities Fixed:
Symbol:
sqlalchemy.ext.declarative.declarative_basedeclarative_basefunction insqlalchemy.ext.declarativehas been updated. While the basic usageBase = declarative_base()remains syntactically similar, the internal implementation and accepted parameters have changed significantly. For SQLAlchemy 2.0 and later, it's advised to usesqlalchemy.orm.registryandgenerate_base()for a more modern and type-hint friendly declarative setup.Symbol:
sqlalchemy.Columnsqlalchemy.Columnhas been changed toColumn(name: str, type_: TypeEngine, *arg: MappedArg, **kw: MappedKwarg). Previously, the type was often the first argument, and the name could be positional or a keyword argument. Now,nameandtype_are strictly the first two positional arguments.Symbol:
sqlalchemy.create_enginefutureparameter is now required for SQLAlchemy 2.0+.urllib3 1.20 → 2.5.0
🔒 Vulnerabilities Fixed:
CookieHTTP header isn't stripped on cross-origin redirectsNo breaking changes were applied for this dependency.
werkzeug 0.11 → 3.1.3
🔒 Vulnerabilities Fixed:
No breaking changes were applied for this dependency.
🛠️ Additional Notes
📢 This PR was generated by Arvion's automated remediation system to enhance your repository's security while maintaining stability. 🚀