mirror of
https://github.com/langgenius/dify.git
synced 2026-10-04 13:47:55 +08:00
ci: Update pyrefly dependency version to 1.3.0 (#42445)
This commit is contained in:
1 parent
1762181e58
commit
a504dfee27
14 files changed
+72
-48
No files matched your search
@@ -751,7 +751,7 @@ def migrate_oss(
|
||||
UploadFile.storage_type == source_storage_type,
|
||||
UploadFile.key.in_(copied_upload_file_keys),
|
||||
)
|
||||
.values(storage_type=dify_config.STORAGE_TYPE)
|
||||
.values(storage_type=StorageType(dify_config.STORAGE_TYPE))
|
||||
),
|
||||
).rowcount
|
||||
db.session.commit()
|
||||
|
||||
@@ -406,9 +406,11 @@ def _get_conversation(session: Session, current_user: Account, app_model, conver
|
||||
.where(Conversation.id == conversation_id, Conversation.read_at.is_(None))
|
||||
# Keep updated_at unchanged when only marking a conversation as read.
|
||||
.values(
|
||||
read_at=naive_utc_now(),
|
||||
read_account_id=current_user.id,
|
||||
updated_at=Conversation.updated_at,
|
||||
{
|
||||
Conversation.read_at: naive_utc_now(),
|
||||
Conversation.read_account_id: current_user.id,
|
||||
Conversation.updated_at: Conversation.updated_at,
|
||||
}
|
||||
)
|
||||
)
|
||||
session.flush()
|
||||
|
||||
@@ -157,7 +157,7 @@ class DataSourceApi(Resource):
|
||||
data_source_oauth_base_path = "/console/api/oauth/data-source"
|
||||
providers = ["notion"]
|
||||
|
||||
integrate_data = []
|
||||
integrate_data: list[dict[str, bool | datetime | dict[str, Any] | str | None]] = []
|
||||
for provider in providers:
|
||||
# existing_integrate = next((ai for ai in data_source_integrates if ai.provider == provider), None)
|
||||
existing_integrates = filter(lambda item: item.provider == provider, data_source_integrates)
|
||||
|
||||
@@ -358,7 +358,7 @@ class NotionExtractor(BaseExtractor):
|
||||
db.session.execute(
|
||||
update(DocumentModel)
|
||||
.where(DocumentModel.id == document_model.id)
|
||||
.values(data_source_info=json.dumps(data_source_info))
|
||||
.values({DocumentModel.data_source_info: json.dumps(data_source_info)})
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ from core.rag.index_processor.index_processor_base import SummaryIndexSettingDic
|
||||
from core.workflow.nodes.knowledge_index.exc import KnowledgeIndexNodeError
|
||||
from core.workflow.nodes.knowledge_index.protocols import IndexingResultDict, Preview, PreviewItem, QaPreview
|
||||
from models.dataset import Dataset, Document, DocumentSegment
|
||||
from models.enums import SegmentStatus
|
||||
from services.vector_space_admission_service import VectorSpaceAdmissionService
|
||||
|
||||
from .index_processor_factory import IndexProcessorFactory
|
||||
@@ -157,7 +158,7 @@ class IndexProcessor:
|
||||
DocumentSegment.tenant_id == dataset.tenant_id,
|
||||
)
|
||||
.values(
|
||||
status="completed",
|
||||
status=SegmentStatus.COMPLETED,
|
||||
enabled=True,
|
||||
completed_at=datetime.datetime.now(datetime.UTC).replace(tzinfo=None),
|
||||
)
|
||||
|
||||
+1
-1
@@ -186,7 +186,7 @@ dev = [
|
||||
# "locust>=2.40.4", # Temporarily removed due to compatibility issues. Uncomment when resolved.
|
||||
"pytest-timeout>=2.4.0",
|
||||
"pytest-xdist>=3.8.0",
|
||||
"pyrefly>=1.2.0",
|
||||
"pyrefly>=1.3.1",
|
||||
"xinference-client>=2.7.0",
|
||||
"types-pytz>=2026.3.1.20260727",
|
||||
"types-bleach>=6.4.0.20260728",
|
||||
|
||||
@@ -876,7 +876,7 @@ class Migration:
|
||||
session.execute(
|
||||
sa.update(ProviderModel)
|
||||
.where(ProviderModel.id == str(plan.winner.row.id))
|
||||
.values(model_type=plan.winner.canonical_model_type.value)
|
||||
.values(model_type=plan.winner.canonical_model_type)
|
||||
)
|
||||
self._log_row_updated(
|
||||
ProviderModel.__tablename__,
|
||||
@@ -1099,7 +1099,7 @@ class Migration:
|
||||
session.execute(
|
||||
sa.update(TenantDefaultModel)
|
||||
.where(TenantDefaultModel.id == str(plan.winner.row.id))
|
||||
.values(model_type=plan.winner.canonical_model_type.value)
|
||||
.values(model_type=plan.winner.canonical_model_type)
|
||||
)
|
||||
self._log_row_updated(
|
||||
TenantDefaultModel.__tablename__,
|
||||
@@ -1314,7 +1314,7 @@ class Migration:
|
||||
session.execute(
|
||||
sa.update(ProviderModelSetting)
|
||||
.where(ProviderModelSetting.id == str(plan.winner.row.id))
|
||||
.values(model_type=plan.winner.canonical_model_type.value)
|
||||
.values(model_type=plan.winner.canonical_model_type)
|
||||
)
|
||||
self._log_row_updated(
|
||||
ProviderModelSetting.__tablename__,
|
||||
@@ -1751,7 +1751,7 @@ class Migration:
|
||||
session.execute(
|
||||
sa.update(LoadBalancingModelConfig)
|
||||
.where(LoadBalancingModelConfig.id == processed_row_id)
|
||||
.values(model_type=current_row.canonical_model_type.value)
|
||||
.values(model_type=current_row.canonical_model_type)
|
||||
)
|
||||
self._log_row_updated(
|
||||
LoadBalancingModelConfig.__tablename__,
|
||||
@@ -2096,7 +2096,7 @@ class Migration:
|
||||
session.execute(
|
||||
sa.update(ProviderModelCredential)
|
||||
.where(ProviderModelCredential.id == winner_credential_id)
|
||||
.values(model_type=plan.winner.canonical_model_type.value)
|
||||
.values(model_type=plan.winner.canonical_model_type)
|
||||
)
|
||||
self._log_row_updated(
|
||||
ProviderModelCredential.__tablename__,
|
||||
|
||||
@@ -48,7 +48,7 @@ def deal_dataset_index_update_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id.in_(dataset_documents_ids))
|
||||
.values(indexing_status="indexing")
|
||||
.values({DatasetDocument.indexing_status: "indexing"})
|
||||
)
|
||||
session.commit()
|
||||
|
||||
@@ -90,14 +90,14 @@ def deal_dataset_index_update_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="completed")
|
||||
.values({DatasetDocument.indexing_status: "completed"})
|
||||
)
|
||||
session.commit()
|
||||
except Exception as e:
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="error", error=str(e))
|
||||
.values({DatasetDocument.indexing_status: "error", DatasetDocument.error: str(e)})
|
||||
)
|
||||
session.commit()
|
||||
elif action == "update":
|
||||
@@ -116,7 +116,7 @@ def deal_dataset_index_update_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id.in_(dataset_documents_ids))
|
||||
.values(indexing_status="indexing")
|
||||
.values({DatasetDocument.indexing_status: "indexing"})
|
||||
)
|
||||
session.commit()
|
||||
|
||||
@@ -191,14 +191,14 @@ def deal_dataset_index_update_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="completed")
|
||||
.values({DatasetDocument.indexing_status: "completed"})
|
||||
)
|
||||
session.commit()
|
||||
except Exception as e:
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="error", error=str(e))
|
||||
.values({DatasetDocument.indexing_status: "error", DatasetDocument.error: str(e)})
|
||||
)
|
||||
session.commit()
|
||||
else:
|
||||
|
||||
@@ -52,7 +52,7 @@ def deal_dataset_vector_index_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id.in_(dataset_documents_ids))
|
||||
.values(indexing_status="indexing")
|
||||
.values({DatasetDocument.indexing_status: "indexing"})
|
||||
)
|
||||
session.commit()
|
||||
|
||||
@@ -86,14 +86,14 @@ def deal_dataset_vector_index_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="completed")
|
||||
.values({DatasetDocument.indexing_status: "completed"})
|
||||
)
|
||||
session.commit()
|
||||
except Exception as e:
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="error", error=str(e))
|
||||
.values({DatasetDocument.indexing_status: "error", DatasetDocument.error: str(e)})
|
||||
)
|
||||
session.commit()
|
||||
elif action == "update":
|
||||
@@ -112,7 +112,7 @@ def deal_dataset_vector_index_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id.in_(dataset_documents_ids))
|
||||
.values(indexing_status="indexing")
|
||||
.values({DatasetDocument.indexing_status: "indexing"})
|
||||
)
|
||||
session.commit()
|
||||
|
||||
@@ -187,14 +187,14 @@ def deal_dataset_vector_index_task(dataset_id: str, action: str):
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="completed")
|
||||
.values({DatasetDocument.indexing_status: "completed"})
|
||||
)
|
||||
session.commit()
|
||||
except Exception as e:
|
||||
session.execute(
|
||||
update(DatasetDocument)
|
||||
.where(DatasetDocument.id == dataset_document.id)
|
||||
.values(indexing_status="error", error=str(e))
|
||||
.values({DatasetDocument.indexing_status: "error", DatasetDocument.error: str(e)})
|
||||
)
|
||||
session.commit()
|
||||
else:
|
||||
|
||||
@@ -14,6 +14,7 @@ from extensions.ext_redis import redis_client
|
||||
from libs.datetime_utils import naive_utc_now
|
||||
from models.dataset import Dataset, DocumentSegment
|
||||
from models.dataset import Document as DatasetDocument
|
||||
from models.enums import SegmentStatus
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -133,7 +134,7 @@ def enable_segments_to_index_task(segment_ids: list, dataset_id: str, document_i
|
||||
DocumentSegment.dataset_id == dataset_id,
|
||||
DocumentSegment.document_id == document_id,
|
||||
)
|
||||
.values(error=str(e), status="error", disabled_at=naive_utc_now(), enabled=False)
|
||||
.values(error=str(e), status=SegmentStatus.ERROR, disabled_at=naive_utc_now(), enabled=False)
|
||||
)
|
||||
session.commit()
|
||||
finally:
|
||||
|
||||
@@ -12,7 +12,7 @@ from uuid import UUID
|
||||
import jwt
|
||||
import pytest
|
||||
from flask import Flask
|
||||
from sqlalchemy import update
|
||||
from sqlalchemy import null, update
|
||||
from sqlalchemy.engine import Engine
|
||||
from sqlalchemy.orm import Session, sessionmaker
|
||||
|
||||
@@ -775,7 +775,7 @@ def test_content_disposition_follows_the_inline_whitelist(
|
||||
@pytest.mark.usefixtures("sqlite_db", "stored_bytes")
|
||||
def test_content_downloads_a_file_with_no_recorded_mime_type(app: Flask, sqlite_session: Session) -> None:
|
||||
upload_file = _persist_upload_file(sqlite_session, owner_id="anyone")
|
||||
sqlite_session.execute(update(UploadFile).where(UploadFile.id == upload_file.id).values(mime_type=None))
|
||||
sqlite_session.execute(update(UploadFile).where(UploadFile.id == upload_file.id).values(mime_type=null()))
|
||||
sqlite_session.commit()
|
||||
token = _content_token(file_id=upload_file.id, kind=FileKind.UPLOAD)
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ from typing import Literal
|
||||
from urllib.parse import parse_qs, urlparse
|
||||
|
||||
import pytest
|
||||
from typing_extensions import TypedDict
|
||||
|
||||
from core.tools.signature import (
|
||||
bind_file_uri,
|
||||
@@ -22,6 +23,16 @@ from core.tools.signature import (
|
||||
)
|
||||
|
||||
|
||||
class _SignedPluginFile(TypedDict, closed=True):
|
||||
filename: str
|
||||
mimetype: str
|
||||
tenant_id: str
|
||||
user_id: str
|
||||
timestamp: str
|
||||
nonce: str
|
||||
sign: str
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _signature_config(config_overrides: Callable[..., None]) -> None:
|
||||
config_overrides(
|
||||
@@ -213,7 +224,7 @@ def test_plugin_upload_signature_binds_max_size_without_legacy_payload_ambiguity
|
||||
max_size=1024,
|
||||
)
|
||||
query = parse_qs(urlparse(uri).query)
|
||||
signed = {
|
||||
signed: _SignedPluginFile = {
|
||||
"filename": "report.pdf",
|
||||
"mimetype": "application/pdf",
|
||||
"tenant_id": "tenant-id",
|
||||
@@ -227,7 +238,7 @@ def test_plugin_upload_signature_binds_max_size_without_legacy_payload_ambiguity
|
||||
assert verify_plugin_file_signature(**signed, user_from=user_from, max_size=1024) is True
|
||||
assert verify_plugin_file_signature(**signed, user_from=user_from, max_size=2048) is False
|
||||
assert verify_plugin_file_signature(**signed, user_from=user_from) is False
|
||||
forged = {**signed, "nonce": f"{signed['nonce']}{forged_nonce_suffix}"}
|
||||
forged: _SignedPluginFile = {**signed, "nonce": f"{signed['nonce']}{forged_nonce_suffix}"}
|
||||
assert verify_plugin_file_signature(**forged) is False
|
||||
|
||||
|
||||
@@ -248,7 +259,7 @@ def test_plugin_upload_signature_binds_account_user_from(
|
||||
query = parse_qs(urlparse(uri).query)
|
||||
|
||||
assert query["user_from"] == ["account"]
|
||||
signed = {
|
||||
signed: _SignedPluginFile = {
|
||||
"filename": "report.pdf",
|
||||
"mimetype": "application/pdf",
|
||||
"tenant_id": "tenant-id",
|
||||
|
||||
@@ -9,6 +9,7 @@ from unittest.mock import MagicMock
|
||||
import pytest
|
||||
from sqlalchemy import func, select
|
||||
from sqlalchemy.orm import Session, sessionmaker
|
||||
from typing_extensions import TypedDict
|
||||
|
||||
from graphon.entities import WorkflowNodeExecution
|
||||
from graphon.entities.workflow_node_execution import WorkflowNodeExecutionMetadataKey
|
||||
@@ -29,6 +30,14 @@ ACCOUNT_ID = "00000000-0000-0000-0000-000000000050"
|
||||
EXECUTION_ID = "00000000-0000-0000-0000-000000000060"
|
||||
|
||||
|
||||
class _ExecutionTaskKwargs(TypedDict, closed=True):
|
||||
tenant_id: str
|
||||
app_id: str
|
||||
triggered_from: str
|
||||
creator_user_id: str
|
||||
creator_user_role: str
|
||||
|
||||
|
||||
class _TaskWithRequestContext(Protocol):
|
||||
def push_request(self, *, retries: int) -> None: ...
|
||||
|
||||
@@ -313,7 +322,7 @@ def test_task_repeated_delivery_updates_one_row(
|
||||
outputs={"delivery": 2},
|
||||
finished_at=created_at + timedelta(seconds=5),
|
||||
)
|
||||
task_kwargs = {
|
||||
task_kwargs: _ExecutionTaskKwargs = {
|
||||
"tenant_id": TENANT_ID,
|
||||
"app_id": APP_ID,
|
||||
"triggered_from": WorkflowNodeExecutionTriggeredFrom.WORKFLOW_RUN.value,
|
||||
|
||||
Generated
+16
-16
@@ -1741,7 +1741,7 @@ dev = [
|
||||
{ name = "lxml-stubs", specifier = ">=0.5.1" },
|
||||
{ name = "mypy", specifier = ">=2.3.1" },
|
||||
{ name = "pandas-stubs", specifier = ">=3.0.5.260730" },
|
||||
{ name = "pyrefly", specifier = ">=1.2.0" },
|
||||
{ name = "pyrefly", specifier = ">=1.3.1" },
|
||||
{ name = "pytest", specifier = ">=9.1.1" },
|
||||
{ name = "pytest-benchmark", specifier = ">=5.3.0" },
|
||||
{ name = "pytest-cov", specifier = ">=7.1.0" },
|
||||
@@ -3355,8 +3355,8 @@ name = "httpcore2"
|
||||
version = "2.12.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "h11", marker = "sys_platform != 'emscripten'" },
|
||||
{ name = "truststore", marker = "sys_platform != 'emscripten'" },
|
||||
{ name = "h11" },
|
||||
{ name = "truststore" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/be/ad/f4f0e57345f1870f3e8cb624e058d7eca6e5a27d33bcc3311d9b618734cd/httpcore2-2.12.0.tar.gz", hash = "sha256:9293522bba0aa7c4c8e9e3f040c16575bd8868e155a77fa30c7a9085a5eae648", size = 67548, upload-time = "2026-08-18T13:22:08.211Z" }
|
||||
wheels = [
|
||||
@@ -5606,21 +5606,21 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "pyrefly"
|
||||
version = "1.2.0"
|
||||
version = "1.3.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/89/01/a86e9f24722b095c3f88e3616132b75a21b0df53804bdc6a45314dd4d93c/pyrefly-1.2.0.tar.gz", hash = "sha256:5485f960fc2481617068c918335c39ab1507ef90b6b5bd35bf57726e60e73185", size = 6243654, upload-time = "2026-08-01T02:56:27.592Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/4c/7e/082cc1b392318bacfbc087732524f3e089e9e7fe45b7645c4649b6f1f1e9/pyrefly-1.3.1.tar.gz", hash = "sha256:b774f1dfac82867fc16fe2175d80a630e2a72a6835d5b7e492568d6bfb6b05e7", size = 6679145, upload-time = "2026-09-15T05:09:34.49Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/7d/9d/3c0ef1d4843987b22f996ed381ec9cf5a3b1273e29804db276252e4c95eb/pyrefly-1.2.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:7f46d983ac49ddd2b043694960a01dc6a19a5cfd8eec609d6bd9c42866f91b4e", size = 14026305, upload-time = "2026-08-01T02:56:02.611Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/0a/06/03bbb78fbea54cdc65b626619f3597d5611aca4fdef11e72a4e8360e7e63/pyrefly-1.2.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:756f669b5555090f5c1a4fef30db1785fabe657764f7e4e6dc88994dfb8ca82d", size = 13463880, upload-time = "2026-08-01T02:56:04.93Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/13/5a/7d8bc00a38e93bbc9c3e7bd14d305f7948717e667c9bcddeab9dd42fd255/pyrefly-1.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3465812ce5ef4781fb592edbf2724547296f0a3124be115d73c7e8b2401862d", size = 13907329, upload-time = "2026-08-01T02:56:07.104Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/be/94/9e08b4bf799d0b8f36b55a2783c7ba5f51730cf0632a85a67b5b5ed876cd/pyrefly-1.2.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5de7b2ad2bba5c8055181681a84b74143eac2234a48ba5d1b7ed7e7a722b02bd", size = 15039020, upload-time = "2026-08-01T02:56:09.208Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5b/bd/bca5fd0c80f4daf8ee6903a29df9f3de1feb05ff0946b8f35ec8c5096b13/pyrefly-1.2.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25822ea9505f589ea8a725e4268b475132fb89e038fbf092e446510443ac142a", size = 14986199, upload-time = "2026-08-01T02:56:11.924Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/97/f7/f07087f3d185ad2eced0c56cef89ca5474dfb4ff25f146cd50a861c97553/pyrefly-1.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90efe75e17491ef5d636e10469e9278d7d0256b3b4c5e1f4750069bf3ae0f5d1", size = 14393715, upload-time = "2026-08-01T02:56:14.143Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/d3/70/0d142c320e284b9e3ce35e9b1e58b8ce2ee1f578f2a7234bc30e5022b94f/pyrefly-1.2.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:368aaf7eee4f511ddc0f8e564cf14e01ab2f10b0db9105c6d5b153bf498d07bf", size = 13933008, upload-time = "2026-08-01T02:56:16.525Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/5d/e8/e84f11b6e1f63fd453ad3654213b9a0f6f4de8cef6b58038eef2d0d5955d/pyrefly-1.2.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d52d5da7bc65fb7675fbaa80eda879d4f8787c494f04cac21603330d3abbdbbe", size = 14431827, upload-time = "2026-08-01T02:56:18.645Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/0f/06/810d31380f66c75e1c0779a408d3b16117b1b368b57894f6aa66bef21686/pyrefly-1.2.0-py3-none-win32.whl", hash = "sha256:8c90751de8506d938e8f802659c74cf35bd7a0036510ee6c634a38eebb280bfa", size = 13229447, upload-time = "2026-08-01T02:56:20.921Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/ed/98/4dafa3c7a1caed2dc8cc708dde09ba27963c7736508f55b626fff3024113/pyrefly-1.2.0-py3-none-win_amd64.whl", hash = "sha256:8a8964c224ccc4882730130955815de21ff443c1ac3f0b90685b19bf63848170", size = 14087387, upload-time = "2026-08-01T02:56:23.188Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/1b/1c/df3cb0a2e5591660ded7a1836cd2f29dc48c91adb1c0a3a700a96f6d09e1/pyrefly-1.2.0-py3-none-win_arm64.whl", hash = "sha256:3a90bb8df39dfbac74b1f3b2e9d7c526b8f80568884c3944d955023a73ebf61e", size = 13430873, upload-time = "2026-08-01T02:56:25.425Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/6b/bc/f09b5bd7eed796349bd93627aa2c3086df7ed0a114dafc3d2b2841599ee7/pyrefly-1.3.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0a2a7dfed824fb066aa8a7c8d856c152b98e998fb84b954d5f892fb9834c0bd1", size = 15090117, upload-time = "2026-09-15T05:08:58.477Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/78/24/a31e7de8e0f310c9f0753826d0df8b6a8ff86793941a6bd88ba24b735633/pyrefly-1.3.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:37a1a1fb41e7190fe3964a877875dd809d6ee2887809e2c3d6e5f25a69805bfd", size = 14430773, upload-time = "2026-09-15T05:09:01.67Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/75/e1/022352beb186f36d6213a95a975c42676ee418ff5e730629378d25564c5e/pyrefly-1.3.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45b7650bc651a5a784701f2fb4f579da9a421c4d1b5fd91f9048f4529e46093c", size = 14877762, upload-time = "2026-09-15T05:09:04.767Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/19/2c/d62a1b445aad1fd46375b83393b8a67da53883aeeba73d269ce71b3e8fd1/pyrefly-1.3.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad57f38bc73679c14a5f62995a2bd3bc43649b7270c858487e2eab78a6f95362", size = 16118225, upload-time = "2026-09-15T05:09:07.828Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/32/67/3c3fa8a13e3ce8d8322ffb3627255a41a52261f17793e1a24e9214f10857/pyrefly-1.3.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3506b1252e9f5d755d0693c5a46d46b85579d36534f6e22a41eb8e098d0dde90", size = 16051197, upload-time = "2026-09-15T05:09:10.81Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/19/d1/84f81b9e32288b5d11c75e006f67e0f6b78b85da575673bd1a21524c8172/pyrefly-1.3.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39d5a17c1ad655e5f93a6e8e0be90b8db28c6015fe07d6ed4e054891c9e14ef8", size = 15440062, upload-time = "2026-09-15T05:09:14.641Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/46/3c/2aa0c5ad6a2957a728bb38cfab70d1e9cafad21b0b1c1d92df74a3cf22bd/pyrefly-1.3.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c61e9dcf888beb81ca0e0c60ea4442640fdcf2f1f65bfe3d9f5d89b85516eb03", size = 14898534, upload-time = "2026-09-15T05:09:17.823Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/03/5d/2974f249fb2e285f966485719d977c5a2248cc4866403af94d935775ff15/pyrefly-1.3.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a78eed1c53f37807f0e2997be8edbe833b91eb9915f2cb553a1bdcd599e7105c", size = 15477758, upload-time = "2026-09-15T05:09:20.964Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/68/79/d31f8f0abf5b0610ec24183286ee8a1ee5b76c9aaaa91091399d7e1aaf60/pyrefly-1.3.1-py3-none-win32.whl", hash = "sha256:ea0d0349f1bc80fe8e00a7b3640e40db7486398b685f87b9bd5d2207063668f0", size = 14133005, upload-time = "2026-09-15T05:09:25.03Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/3f/23/1859f47f536314755d80c4ec2a76d2698435ae8b73604bcd1dfa57ecb39b/pyrefly-1.3.1-py3-none-win_amd64.whl", hash = "sha256:4c24e7d99df9237916c33be23714219a7c8eaf22bad2ac0c3e1d45adcf7df8fb", size = 15066557, upload-time = "2026-09-15T05:09:28.265Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/92/2a/73e3721921c2bb2c950a9f8c362ee5e2367556b5d4416eb4f8f88503e66f/pyrefly-1.3.1-py3-none-win_arm64.whl", hash = "sha256:1ed85e2b957a78e93353125d890ce3668ce450e49b74025a15c87b6e8ec7f3d1", size = 14348209, upload-time = "2026-09-15T05:09:31.422Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
Reference in new issue
Block a user