Skip to content

Commit

Permalink
fix: correct sorting of packages (#72)
Browse files Browse the repository at this point in the history
* fix: correct sorting of packages

Right now, all of the local packages are grouped with 3rd-party packages
because isort does not know that everything under
projects/fal is local. This is probably because
installing the root of the repository does not actually bring any
isolate_controller code with it, and because isort runs from the
perspective of the repository root, the tool understands that all
isolate_controller code is foreign.

Signed-off-by: Lucas Servén Marín <lserven@gmail.com>

* regenerate

Signed-off-by: Lucas Servén Marín <lserven@gmail.com>

---------

Signed-off-by: Lucas Servén Marín <lserven@gmail.com>
  • Loading branch information
squat committed Feb 3, 2024
1 parent de5b1e0 commit e35d952
Show file tree
Hide file tree
Showing 29 changed files with 92 additions and 71 deletions.
10 changes: 4 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@

repos:
# Global hooks (these can be configured with global pyproject.toml)
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
- repo: https://github.com/hakancelikdev/unimport
rev: 1.0.0
hooks:
Expand Down Expand Up @@ -43,12 +47,6 @@ repos:
^projects/fal/src/|
^projects/fal/tests/
)
# - repo: https://github.com/pycqa/isort
# rev: 5.13.1
# hooks:
# - id: isort
# args: ["--profile", "black"]

# Monorepo Hooks (e.g. they need to be project specific)
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.3.0"
Expand Down
4 changes: 0 additions & 4 deletions projects/fal/openapi-fal-rest/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,3 @@ exclude = '''
)/
)
'''

[tool.isort]
line_length = 120
profile = "black"
3 changes: 2 additions & 1 deletion projects/fal/src/fal/_serialization.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from __future__ import annotations

from pathlib import Path
from functools import wraps
from pathlib import Path

import dill
from dill import _dill

from fal.toolkit import mainify

# each @fal.function gets added to this set so that we can
Expand Down
15 changes: 8 additions & 7 deletions projects/fal/src/fal/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,17 @@

import dill
import dill.detect
import fal.flags as flags
import grpc
import isolate
import yaml
from isolate.backends.common import active_python
from isolate.backends.settings import DEFAULT_SETTINGS
from isolate.connections import PythonIPC
from packaging.requirements import Requirement
from packaging.utils import canonicalize_name
from typing_extensions import Concatenate, ParamSpec

import fal.flags as flags
from fal._serialization import add_serialization_listeners_for, patch_dill
from fal.logging.isolate import IsolateLogPrinter
from fal.sdk import (
Expand All @@ -42,12 +49,6 @@
get_default_credentials,
)
from fal.toolkit import mainify
from isolate.backends.common import active_python
from isolate.backends.settings import DEFAULT_SETTINGS
from isolate.connections import PythonIPC
from packaging.requirements import Requirement
from packaging.utils import canonicalize_name
from typing_extensions import Concatenate, ParamSpec

ArgsT = ParamSpec("ArgsT")
ReturnT = TypeVar("ReturnT", covariant=True)
Expand Down
15 changes: 9 additions & 6 deletions projects/fal/src/fal/app.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
from __future__ import annotations

import inspect
import typing
import os
import fal.api
from fal._serialization import add_serialization_listeners_for
import typing
from contextlib import asynccontextmanager
from fal.toolkit import mainify
from typing import Any, Callable, ClassVar, NamedTuple, TypeVar

from fastapi import FastAPI
from typing import Any, NamedTuple, Callable, TypeVar, ClassVar

import fal.api
from fal._serialization import add_serialization_listeners_for
from fal.logging import get_logger
from fal.toolkit import mainify

REALTIME_APP_REQUIREMENTS = ["websockets", "msgpack"]

Expand Down Expand Up @@ -205,10 +207,11 @@ def _fal_websocket_template(
# be a boilerplate for the user to fill in their inference function
# and start using it.

import msgpack
import asyncio
from collections import deque
from contextlib import suppress

import msgpack
from fastapi import WebSocket, WebSocketDisconnect

async def mirror_input(queue: deque[Any], websocket: WebSocket) -> None:
Expand Down
5 changes: 3 additions & 2 deletions projects/fal/src/fal/apps.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
from __future__ import annotations

import time
import json
import time
from contextlib import contextmanager
from dataclasses import dataclass, field
from typing import Any, Iterator
from contextlib import contextmanager

import httpx

from fal import flags
from fal.sdk import Credentials, get_default_credentials

Expand Down
1 change: 1 addition & 0 deletions projects/fal/src/fal/auth/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from dataclasses import dataclass, field

import click

from fal.auth import auth0, local
from fal.console import console
from fal.console.icons import CHECK_ICON
Expand Down
1 change: 1 addition & 0 deletions projects/fal/src/fal/auth/auth0.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
AsymmetricSignatureVerifier,
TokenVerifier,
)

from fal.console import console
from fal.console.icons import CHECK_ICON
from fal.console.ux import get_browser
Expand Down
10 changes: 5 additions & 5 deletions projects/fal/src/fal/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
from uuid import uuid4

import click
import fal.auth as auth
import openapi_fal_rest.api.billing.get_user_details as get_user_details
from rich.table import Table

import fal
from fal import api, sdk, _serialization
import fal.auth as auth
from fal import _serialization, api, sdk
from fal.console import console
from fal.exceptions import ApplicationExceptionHandler
from fal.logging import get_logger, set_debug_logging
from fal.logging.trace import get_tracer
from fal.rest_client import REST_CLIENT
from fal.sdk import AliasInfo, KeyScope
from rich.table import Table

import openapi_fal_rest.api.billing.get_user_details as get_user_details

DEFAULT_HOST = "api.alpha.fal.ai"
HOST_ENVVAR = "FAL_HOST"
Expand Down
5 changes: 3 additions & 2 deletions projects/fal/src/fal/exceptions/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@

from typing import Generic, TypeVar

from fal.console import console
from fal.console.icons import CROSS_ICON
from grpc import Call as RpcCall
from rich.markdown import Markdown

from fal.console import console
from fal.console.icons import CROSS_ICON

from ._base import FalServerlessException

ExceptionType = TypeVar("ExceptionType")
Expand Down
3 changes: 2 additions & 1 deletion projects/fal/src/fal/logging/datadog.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@
from datadog_api_client.v2.api.logs_api import LogsApi
from datadog_api_client.v2.model.http_log import HTTPLog
from datadog_api_client.v2.model.http_log_item import HTTPLogItem
from structlog.typing import EventDict, WrappedLogger

from fal.env import CLI_ENV, DATADOG_API_KEY, DATADOG_APP_KEY
from fal.logging.trace import get_current_span_context
from structlog.typing import EventDict, WrappedLogger

if sys.version_info >= (3, 10):
import importlib.metadata as importlib_metadata
Expand Down
3 changes: 2 additions & 1 deletion projects/fal/src/fal/logging/user.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from __future__ import annotations

from fal.auth import USER
from structlog.typing import EventDict, WrappedLogger

from fal.auth import USER


def add_user_id(
logger: WrappedLogger, method_name: str, event_dict: EventDict
Expand Down
4 changes: 2 additions & 2 deletions projects/fal/src/fal/rest_client.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from __future__ import annotations

from openapi_fal_rest.client import Client

import fal.flags as flags
from fal.sdk import get_default_credentials

from openapi_fal_rest.client import Client


class CredentialsClient(Client):
def get_headers(self) -> dict[str, str]:
Expand Down
7 changes: 4 additions & 3 deletions projects/fal/src/fal/sdk.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@
from typing import Any, Callable, Generic, Iterator, Literal, TypeVar

import grpc
from isolate.connections.common import is_agent
from isolate.logs import Log
from isolate.server.interface import from_grpc, to_serialized_object, to_struct

import isolate_proto
from fal import flags
from fal._serialization import patch_dill
from fal.auth import USER
from fal.logging import get_logger
from fal.logging.trace import TraceContextInterceptor
from isolate.connections.common import is_agent
from isolate.logs import Log
from isolate.server.interface import from_grpc, to_serialized_object, to_struct
from isolate_proto.configuration import GRPC_OPTIONS

ResultT = TypeVar("ResultT")
Expand Down
6 changes: 3 additions & 3 deletions projects/fal/src/fal/sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
import zipfile
from pathlib import Path

from fal.rest_client import REST_CLIENT
from pathspec import PathSpec

import openapi_fal_rest.api.files.check_dir_hash as check_dir_hash_api
import openapi_fal_rest.api.files.upload_local_file as upload_local_file_api
import openapi_fal_rest.models.body_upload_local_file as upload_file_model
import openapi_fal_rest.models.hash_check as hash_check_model
import openapi_fal_rest.types as rest_types
from pathspec import PathSpec

from fal.rest_client import REST_CLIENT


def _check_hash(target_path: str, hash_string: str) -> bool:
Expand Down
11 changes: 6 additions & 5 deletions projects/fal/src/fal/toolkit/file/file.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
from __future__ import annotations

from pathlib import Path
from tempfile import NamedTemporaryFile, TemporaryDirectory
from typing import Any, Callable
from urllib.parse import urlparse
from zipfile import ZipFile

from pydantic import BaseModel, Field, PrivateAttr
from pydantic.typing import Optional

from fal.toolkit.file.providers.fal import (
FalCDNFileRepository,
FalFileRepository,
InMemoryRepository,
FalCDNFileRepository,
)
from fal.toolkit.file.providers.gcp import GoogleStorageRepository
from fal.toolkit.file.providers.r2 import R2Repository
from fal.toolkit.file.types import FileData, FileRepository, RepositoryId
from fal.toolkit.mainify import mainify
from fal.toolkit.utils.download_utils import download_file
from pydantic import BaseModel, Field, PrivateAttr
from pydantic.typing import Optional
from tempfile import NamedTemporaryFile, TemporaryDirectory
from zipfile import ZipFile

FileRepositoryFactory = Callable[[], FileRepository]

Expand Down
6 changes: 4 additions & 2 deletions projects/fal/src/fal/toolkit/image/image.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
from tempfile import NamedTemporaryFile
from typing import TYPE_CHECKING, Literal, Optional, Union

from pydantic import BaseModel, Field

from fal.toolkit.file.file import DEFAULT_REPOSITORY, File
from fal.toolkit.file.types import FileData, FileRepository, RepositoryId
from fal.toolkit.mainify import mainify
from fal.toolkit.utils.download_utils import _download_file_python
from pydantic import BaseModel, Field

if TYPE_CHECKING:
from PIL import Image as PILImage
Expand Down Expand Up @@ -120,7 +121,8 @@ def from_pil(

def to_pil(self, mode: str = "RGB") -> PILImage.Image:
try:
from PIL import Image as PILImage, ImageOps
from PIL import Image as PILImage
from PIL import ImageOps
except ImportError:
raise ImportError(
"The PIL package is required to use Image.to_pil()."
Expand Down
2 changes: 2 additions & 0 deletions projects/fal/src/fal/toolkit/optimize.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import os
import traceback
from typing import TYPE_CHECKING, Any

from fal.toolkit.mainify import mainify

if TYPE_CHECKING:
Expand All @@ -19,6 +20,7 @@ def optimize(
Warning: This function is experimental and may not work as expected.
"""
import runpy

import torch.nn as nn

if not isinstance(module, nn.Module):
Expand Down
2 changes: 1 addition & 1 deletion projects/fal/src/fal/toolkit/utils/download_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import hashlib
import shutil
import subprocess
import sys
from functools import lru_cache
from pathlib import Path, PurePath
import sys
from tempfile import TemporaryDirectory
from urllib.parse import urlparse
from urllib.request import Request, urlopen
Expand Down
1 change: 1 addition & 0 deletions projects/fal/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from functools import partial

import pytest

from fal import function


Expand Down
12 changes: 6 additions & 6 deletions projects/fal/tests/integration_test.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
from __future__ import annotations

import tempfile
from pathlib import Path
from uuid import uuid4

import fal
from fal.toolkit.file.file import CompressedFile
from pydantic import BaseModel, Field
import pytest
from pydantic import BaseModel, Field

import fal
from fal import FalServerlessHost, FalServerlessKeyCredentials, local, sync_dir
from fal.api import FalServerlessError
from fal.toolkit import clone_repository, download_file, download_model_weights
from fal.toolkit import File, clone_repository, download_file, download_model_weights
from fal.toolkit.file.file import CompressedFile
from fal.toolkit.utils.download_utils import _get_git_revision_hash, _hash_url
import tempfile
from fal.toolkit import File


def test_isolated(isolated_client):
Expand Down
12 changes: 6 additions & 6 deletions projects/fal/tests/test_apps.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import time
from typing import Generator

import fal
import fal.api as api
import pytest
from fal import apps
from fal.rest_client import REST_CLIENT
from fastapi import WebSocket
import time
from openapi_fal_rest.api.applications import app_metadata
from pydantic import BaseModel

from openapi_fal_rest.api.applications import app_metadata
import fal
import fal.api as api
from fal import apps
from fal.rest_client import REST_CLIENT


class Input(BaseModel):
Expand Down

0 comments on commit e35d952

Please sign in to comment.