Skip to content

Commit a96f66c

Browse files
authored
πŸš€ Python 3.12 Support (#1343)
* πŸš€ Upgrade to python 3.12 * ♻️ Sort imports * ♻️ Sort imports
1 parent fa03984 commit a96f66c

25 files changed

+1066
-1341
lines changed

β€Ž.github/workflows/python.yml

+6-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
name: Testing Platform
22
on:
3-
# push:
4-
# branches: [ "main" ]
5-
# paths:
6-
# - 'platform/**'
73
pull_request:
84
branches: [ "main" ]
95
paths:
106
- 'platform/**'
117

8+
env:
9+
PYTHON_VERSION: "3.11"
10+
1211
jobs:
1312
black:
1413
runs-on: ubuntu-latest
@@ -21,7 +20,7 @@ jobs:
2120
run: pipx install poetry
2221
- uses: actions/setup-python@v4
2322
with:
24-
python-version: '3.x'
23+
python-version: ${{ env.PYTHON_VERSION }}
2524
cache: 'poetry'
2625
- run: poetry install
2726
- name: Run black check
@@ -38,7 +37,7 @@ jobs:
3837
run: pipx install poetry
3938
- uses: actions/setup-python@v4
4039
with:
41-
python-version: '3.x'
40+
python-version: ${{ env.PYTHON_VERSION }}
4241
cache: 'poetry'
4342
- run: poetry install
4443
- name: Run mypy check
@@ -70,7 +69,7 @@ jobs:
7069
run: pipx install poetry
7170
- uses: actions/setup-python@v4
7271
with:
73-
python-version: '3.x'
72+
python-version: ${{ env.PYTHON_VERSION }}
7473
cache: 'poetry'
7574
- run: poetry install
7675
- name: Run pytest check

β€Žplatform/poetry.lock

+1,019-1,286
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Žplatform/pyproject.toml

+10-7
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,26 @@ name = "reworkd_platform"
33
version = "0.1.0"
44
description = ""
55
authors = [
6-
6+
"awtkns",
7+
"asim-shrestha"
78
]
8-
maintainers = [
99

10+
maintainers = [
11+
"reworkd"
1012
]
13+
1114
readme = "README.md"
1215

1316
[tool.poetry.dependencies]
14-
python = "^3.9"
17+
python = "^3.11"
1518
fastapi = "^0.98.0"
1619
boto3 = "^1.28.51"
1720
uvicorn = { version = "^0.22.0", extras = ["standard"] }
1821
pydantic = { version = "<2.0", extras = ["dotenv"] }
19-
yarl = "^1.9.2"
2022
ujson = "^5.8.0"
2123
sqlalchemy = { version = "^2.0.21", extras = ["mypy", "asyncio"] }
2224
aiomysql = "^0.1.1"
2325
mysqlclient = "^2.2.0"
24-
httptools = "^0.5.0"
2526
sentry-sdk = "^1.31.0"
2627
loguru = "^0.7.2"
2728
aiokafka = "^0.8.1"
@@ -33,12 +34,12 @@ replicate = "^0.8.4"
3334
lanarky = "^0.7.15"
3435
tiktoken = "^0.5.1"
3536
grpcio = "^1.58.0"
37+
pinecone-client = "^2.2.4"
3638
python-multipart = "^0.0.6"
3739
aws-secretsmanager-caching = "^1.1.1.5"
3840
botocore = "^1.31.51"
3941
stripe = "^5.5.0"
4042
cryptography = "^41.0.4"
41-
httpx = "^0.25.0"
4243

4344

4445
[tool.poetry.dev-dependencies]
@@ -58,6 +59,7 @@ pytest-env = "^0.8.2"
5859
[tool.poetry.group.dev.dependencies]
5960
dotmap = "^1.3.30"
6061
pytest-mock = "^3.10.0"
62+
httpx = "^0.24.1"
6163
pytest-asyncio = "^0.21.0"
6264
mypy = "^1.4.1"
6365
types-requests = "^2.31.0.1"
@@ -66,7 +68,7 @@ types-pytz = "^2023.3.0.0"
6668
[tool.isort]
6769
profile = "black"
6870
multi_line_output = 3
69-
src_paths = ["reworkd_platform", ]
71+
src_paths = ["reworkd_platform"]
7072

7173
[tool.mypy]
7274
strict = true
@@ -96,3 +98,4 @@ env = [
9698
[build-system]
9799
requires = ["poetry-core>=1.0.0"]
98100
build-backend = "poetry.core.masonry.api"
101+

β€Žplatform/reworkd_platform/db/crud/oauth.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import secrets
2-
from typing import Optional, Dict
2+
from typing import Dict, Optional
33

44
from fastapi import Depends
5-
from sqlalchemy import select, func
5+
from sqlalchemy import func, select
66
from sqlalchemy.ext.asyncio import AsyncSession
77

88
from reworkd_platform.db.crud.base import BaseCrud

β€Žplatform/reworkd_platform/db/crud/organization.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# from
2-
from typing import Optional, List
2+
from typing import List, Optional
33

44
from fastapi import Depends
55
from pydantic import BaseModel
6-
from sqlalchemy import select, and_
6+
from sqlalchemy import and_, select
77
from sqlalchemy.ext.asyncio import AsyncSession
88
from sqlalchemy.orm import aliased
99

β€Žplatform/reworkd_platform/db/crud/user.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Optional
22

3-
from sqlalchemy import select, and_
3+
from sqlalchemy import and_, select
44
from sqlalchemy.orm import selectinload
55

66
from reworkd_platform.db.crud.base import BaseCrud

β€Žplatform/reworkd_platform/db/models/agent.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from sqlalchemy import String, Text, func, DateTime
1+
from sqlalchemy import DateTime, String, Text, func
22
from sqlalchemy.orm import mapped_column
33

44
from reworkd_platform.db.base import Base

β€Žplatform/reworkd_platform/db/models/auth.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from sqlalchemy import String, DateTime
1+
from sqlalchemy import DateTime, String
22
from sqlalchemy.orm import mapped_column
33

44
from reworkd_platform.db.base import TrackedModel

β€Žplatform/reworkd_platform/db/models/user.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import List
22

33
from sqlalchemy import DateTime, ForeignKey, Index, String, text
4-
from sqlalchemy.orm import Mapped, relationship, mapped_column
4+
from sqlalchemy.orm import Mapped, mapped_column, relationship
55

66
from reworkd_platform.db.base import Base
77

β€Žplatform/reworkd_platform/schemas/agent.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import datetime
2-
from typing import Literal, Dict, Optional, Any, List
2+
from typing import Any, Dict, List, Literal, Optional
33

44
from pydantic import BaseModel, Field, validator
55

β€Žplatform/reworkd_platform/services/pinecone/pinecone.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@
55

66
from langchain.embeddings import OpenAIEmbeddings
77
from langchain.embeddings.base import Embeddings
8-
from langchain.document_loaders import PyPDFLoader
98
from pinecone import Index # import doesnt work on plane wifi
109
from pydantic import BaseModel
11-
from langchain.text_splitter import RecursiveCharacterTextSplitter
10+
1211
from reworkd_platform.settings import settings
1312
from reworkd_platform.timer import timed_function
1413
from reworkd_platform.web.api.memory.memory import AgentMemory
15-
import os
1614

1715
OPENAI_EMBEDDING_DIM = 1536
1816

β€Žplatform/reworkd_platform/services/serp.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Optional, Any, Dict
1+
from typing import Any, Dict, Optional
22

33
import requests
44

β€Žplatform/reworkd_platform/services/ssl.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from ssl import create_default_context, SSLContext
1+
from ssl import SSLContext, create_default_context
22
from typing import List, Optional
33

44
from reworkd_platform.settings import Settings

β€Žplatform/reworkd_platform/settings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import platform
22
from pathlib import Path
33
from tempfile import gettempdir
4-
from typing import List, Optional, Literal, Union
4+
from typing import List, Literal, Optional, Union
55

66
from pydantic import BaseSettings
77
from yarl import URL

β€Žplatform/reworkd_platform/tests/agent/test_model_factory.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import itertools
22

33
import pytest
4-
from langchain.chat_models import ChatOpenAI, AzureChatOpenAI
4+
from langchain.chat_models import AzureChatOpenAI, ChatOpenAI
55

66
from reworkd_platform.schemas import ModelSettings, UserBase
77
from reworkd_platform.settings import Settings
88
from reworkd_platform.web.api.agent.model_factory import (
9-
get_base_and_headers,
109
WrappedAzureChatOpenAI,
11-
create_model,
1210
WrappedChatOpenAI,
11+
create_model,
12+
get_base_and_headers,
1313
)
1414

1515

β€Žplatform/reworkd_platform/tests/test_helpers.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
import pytest
2-
from openai.error import (
3-
ServiceUnavailableError,
4-
InvalidRequestError,
5-
)
2+
from openai.error import InvalidRequestError, ServiceUnavailableError
63

74
from reworkd_platform.schemas.agent import ModelSettings
85
from reworkd_platform.web.api.agent.helpers import openai_error_handler

β€Žplatform/reworkd_platform/tests/test_settings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Dict, Any
1+
from typing import Any, Dict
22

33
import pytest
44

β€Žplatform/reworkd_platform/web/api/agent/helpers.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
from typing import Any, Callable, TypeVar, Dict
1+
from typing import Any, Callable, Dict, TypeVar
22

33
from langchain import BasePromptTemplate, LLMChain
44
from langchain.chat_models.base import BaseChatModel
55
from langchain.schema import BaseOutputParser, OutputParserException
66
from openai.error import (
77
AuthenticationError,
8+
InvalidRequestError,
89
RateLimitError,
910
ServiceUnavailableError,
10-
InvalidRequestError,
1111
)
1212

1313
from reworkd_platform.schemas.agent import ModelSettings

β€Žplatform/reworkd_platform/web/api/agent/model_factory.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from typing import Any, Dict, Tuple, Optional, Union, Type
1+
from typing import Any, Dict, Optional, Tuple, Type, Union
22

3-
from langchain.chat_models import ChatOpenAI, AzureChatOpenAI
3+
from langchain.chat_models import AzureChatOpenAI, ChatOpenAI
44
from pydantic import Field
55

66
from reworkd_platform.schemas.agent import LLM_Model, ModelSettings

β€Žplatform/reworkd_platform/web/api/agent/tools/search.py

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
summarize_with_sources,
1212
)
1313

14-
1514
# Search google via serper.dev. Adapted from LangChain
1615
# https://github.com/hwchase17/langchain/blob/master/langchain/utilities
1716

β€Žplatform/reworkd_platform/web/api/agent/tools/sidsearch.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313
from reworkd_platform.settings import settings
1414
from reworkd_platform.web.api.agent.stream_mock import stream_string
1515
from reworkd_platform.web.api.agent.tools.tool import Tool
16-
from reworkd_platform.web.api.agent.tools.utils import (
17-
Snippet,
18-
summarize_sid,
19-
)
16+
from reworkd_platform.web.api.agent.tools.utils import Snippet, summarize_sid
2017

2118

2219
async def _sid_search_results(

β€Žplatform/reworkd_platform/web/api/agent/tools/tools.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from typing import List, Type
22

3+
from reworkd_platform.db.crud.oauth import OAuthCrud
4+
from reworkd_platform.schemas.user import UserBase
35
from reworkd_platform.web.api.agent.tools.code import Code
46
from reworkd_platform.web.api.agent.tools.conclude import Conclude
57
from reworkd_platform.web.api.agent.tools.image import Image
@@ -8,9 +10,6 @@
810
from reworkd_platform.web.api.agent.tools.sidsearch import SID
911
from reworkd_platform.web.api.agent.tools.tool import Tool
1012

11-
from reworkd_platform.db.crud.oauth import OAuthCrud
12-
from reworkd_platform.schemas.user import UserBase
13-
1413

1514
async def get_user_tools(
1615
tool_names: List[str], user: UserBase, crud: OAuthCrud

β€Žplatform/reworkd_platform/web/api/agent/views.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
from pydantic import BaseModel
66

77
from reworkd_platform.schemas.agent import (
8+
AgentChat,
89
AgentRun,
10+
AgentSummarize,
911
AgentTaskAnalyze,
10-
AgentTaskExecute,
1112
AgentTaskCreate,
12-
AgentSummarize,
13-
AgentChat,
13+
AgentTaskExecute,
1414
NewTasksResponse,
1515
)
1616
from reworkd_platform.web.api.agent.agent_service.agent_service import AgentService

β€Žplatform/reworkd_platform/web/api/metadata.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from typing import Optional
2-
from urllib.parse import urlparse, urljoin
2+
from urllib.parse import urljoin, urlparse
33

44
from bs4 import BeautifulSoup
55
from fastapi import APIRouter
6-
from httpx import AsyncClient, RequestError, HTTPStatusError
6+
from httpx import AsyncClient, HTTPStatusError, RequestError
77
from pydantic import BaseModel, Field
88

99
from reworkd_platform.web.api.errors import PlatformaticError

β€Žplatform/reworkd_platform/web/api/router.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from fastapi.routing import APIRouter
22

3-
from reworkd_platform.web.api import agent, auth, models, monitoring, metadata
3+
from reworkd_platform.web.api import agent, auth, metadata, models, monitoring
44

55
api_router = APIRouter()
66
api_router.include_router(monitoring.router, prefix="/monitoring", tags=["monitoring"])

0 commit comments

Comments
Β (0)