This is an automated email from the ASF dual-hosted git repository. yasith pushed a commit to branch feat/sdk-facade-migration in repository https://gitbox.apache.org/repos/asf/airavata-portals.git
commit 198d5f423578fe1cdf1f1e4e65bed0bec4876e4b Author: yasithdev <[email protected]> AuthorDate: Wed Apr 8 00:32:45 2026 -0500 build: pyproject.toml, Python 3.12+, modern dependencies - Add pyproject.toml with all metadata and dependencies - Update requirements.txt: Django 5.1.7, Wagtail 6.3.1, grpcio 1.70 - Remove setup.cfg, simplify setup.py to shim - Drop thrift, thrift_connector, jupyter from dependencies - Add papermill, nbformat, nbconvert as explicit deps --- airavata-django-portal/pyproject.toml | 74 +++++++++++++++++++++++++++++++++ airavata-django-portal/requirements.txt | 34 +++++---------- airavata-django-portal/setup.cfg | 25 ----------- airavata-django-portal/setup.py | 59 ++------------------------ 4 files changed, 88 insertions(+), 104 deletions(-) diff --git a/airavata-django-portal/pyproject.toml b/airavata-django-portal/pyproject.toml new file mode 100644 index 000000000..feb4c7597 --- /dev/null +++ b/airavata-django-portal/pyproject.toml @@ -0,0 +1,74 @@ +[build-system] +requires = ["setuptools>=68.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "airavata-django-portal" +version = "0.2.0" +description = "The Airavata Django Portal is a web interface to the Apache Airavata API." +readme = "README.md" +license = "Apache-2.0" +requires-python = ">=3.12" +authors = [ + { name = "Apache Software Foundation", email = "[email protected]" }, +] +classifiers = [ + "Development Status :: 4 - Beta", + "Environment :: Web Environment", + "Framework :: Django", + "Framework :: Django :: 5.1", + "Framework :: Wagtail", + "Framework :: Wagtail :: 6", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Natural Language :: English", + "Programming Language :: Python :: 3.12", + "Topic :: Internet :: WWW/HTTP", + "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", +] +dependencies = [ + "Django>=5.1,<5.2", + "djangorestframework>=3.15,<4", + "requests>=2.32", + "requests-oauthlib>=1.4", + "django-webpack-loader>=3.1", + "logging-formatter-anticrlf>=1.2", + "wagtail>=6.3,<7", + "papermill>=2.6", + "nbformat>=5.10", + "nbconvert>=7.16", + "grpcio>=1.70", + "airavata-python-sdk>=3.0", +] + +[project.optional-dependencies] +dev = [ + "flake8", + "flake8-isort", +] +mysql = [ + "mysqlclient", +] + +[project.urls] +Homepage = "https://github.com/apache/airavata-django-portal" + +[tool.setuptools.packages.find] +include = ["django_airavata*"] + +[tool.flake8] +exclude = [ + "venv", + "./airavata", + "node_modules", + "settings_local.py", + "*/migrations", + ".tox", +] +ignore = ["E501", "W504"] + +[tool.isort] +multi_line_output = 3 +skip = ["migrations", ".git"] +skip_gitignore = true +known_third_party = ["airavata_sdk", "airavata_django_portal_sdk"] diff --git a/airavata-django-portal/requirements.txt b/airavata-django-portal/requirements.txt index c3c89eb95..a729e11f9 100644 --- a/airavata-django-portal/requirements.txt +++ b/airavata-django-portal/requirements.txt @@ -1,27 +1,13 @@ -# Pin these dependencies -Django==3.2.18 -requests==2.25.1 -requests-oauthlib==0.7.0 -djangorestframework==3.12.4 -django-webpack-loader==0.6.0 +Django==5.1.7 +djangorestframework==3.15.2 +requests==2.32.3 +requests-oauthlib==1.4.0 +django-webpack-loader==3.1.1 logging-formatter-anticrlf==1.2 -zipstream-new==1.1.8 - -wagtail==2.13.4 -wagtailfontawesome==1.2.1 -wagtail-draftail-anchors==0.2.0 -wagtailcodeblock==1.17.1.0 - -jupyter==1.0.0 -papermill==1.0.1 - -# gRPC libs -google-api-python-client==1.12.8 -grpcio-tools==1.48.2 ; python_version < "3.7" -grpcio-tools==1.51.1 ; python_version >= "3.7" -grpcio==1.48.2 ; python_version < "3.7" -grpcio==1.53.2 ; python_version >= "3.7" - +wagtail==6.3.1 +papermill==2.6.0 +nbformat==5.10.4 +nbconvert==7.16.6 +grpcio==1.70.0 airavata-python-sdk==3.0.0 - -e "." diff --git a/airavata-django-portal/setup.cfg b/airavata-django-portal/setup.cfg deleted file mode 100644 index 8ecf4eead..000000000 --- a/airavata-django-portal/setup.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[flake8] -exclude = - venv, - ./airavata, - node_modules, - settings_local.py, - */migrations, - .tox -ignore = E501, W504 - -[isort] -# Set multi_line_output to option 3 - Vertical Hanging Indent - -# from third_party import ( -# lib1, -# lib2, -# lib3, -# lib4, -# ) -multi_line_output = 3 -# due to bug, must skip .git folder explicitly -# https://github.com/timothycrosley/isort/issues/1366 -skip = migrations, .git -skip_gitignore = true -known_third_party = airavata, airavata_django_portal_sdk diff --git a/airavata-django-portal/setup.py b/airavata-django-portal/setup.py index c2447dee6..ccf785fc2 100644 --- a/airavata-django-portal/setup.py +++ b/airavata-django-portal/setup.py @@ -1,56 +1,5 @@ -import os +# Shim for editable installs (`pip install -e .`). +# All metadata lives in pyproject.toml. +from setuptools import setup -from setuptools import find_packages, setup - - -def read(fname): - with open(os.path.join(os.path.dirname(__file__), fname)) as f: - return f.read() - - -setup( - name='airavata-django-portal', - version='0.1', - url='https://github.com/apache/airavata-django-portal', - author='Apache Software Foundation', - author_email='[email protected]', - description=('The Airavata Django Portal is a web interface to the ' - 'Apache Airavata API implemented using the Django web ' - 'framework.'), - long_description=read('README.md'), - license='Apache License 2.0', - packages=find_packages(), - install_requires=[ - 'Django', - 'djangorestframework', - 'requests', - 'requests-oauthlib', - 'thrift', - 'thrift_connector', - 'wagtail', - 'wagtailfontawesome', - 'jupyter', - 'papermill', - "airavata-django-portal-sdk", - ], - extras_require={ - 'dev': [ - 'flake8', - 'flake8-isort' - ], - 'mysql': [ - 'mysqlclient' - ] - }, - classifiers=[ - 'Development Status :: 4 - Beta', - 'Environment :: Web Environment', - 'Framework :: Django', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: Apache Software License', - 'Natural Language :: English', - 'Programming Language :: Python :: 3.6', - 'Topic :: Internet :: WWW/HTTP', - 'Topic :: Internet :: WWW/HTTP :: WSGI :: Application' - ] -) +setup()
