fal 1.19.1__py3-none-any.whl → 1.19.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fal might be problematic. Click here for more details.

fal/_fal_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.19.1'
21
- __version_tuple__ = version_tuple = (1, 19, 1)
20
+ __version__ = version = '1.19.2'
21
+ __version_tuple__ = version_tuple = (1, 19, 2)
@@ -1,5 +1,12 @@
1
- from fal.toolkit.file.file import File
1
+ from fal.toolkit.file.file import IS_PYDANTIC_V2, File
2
2
 
3
3
 
4
4
  class Audio(File):
5
- pass
5
+ if IS_PYDANTIC_V2:
6
+ model_config = {"json_schema_extra": {"ui": {"field": "audio"}}}
7
+ else:
8
+
9
+ class Config:
10
+ @staticmethod
11
+ def schema_extra(schema, model_type):
12
+ schema.setdefault("ui", {})["field"] = "audio"
fal/toolkit/file/file.py CHANGED
@@ -102,8 +102,15 @@ class File(BaseModel):
102
102
 
103
103
  else:
104
104
 
105
+ @classmethod
106
+ def __convert_from_dict(cls, value: Any):
107
+ if isinstance(value, dict):
108
+ return cls(**value)
109
+ return value
110
+
105
111
  @classmethod
106
112
  def __get_validators__(cls):
113
+ yield cls.__convert_from_dict
107
114
  yield cls.__convert_from_str
108
115
 
109
116
  @classmethod
@@ -7,7 +7,12 @@ from typing import TYPE_CHECKING, Literal, Optional, Union
7
7
  from fastapi import Request
8
8
  from pydantic import BaseModel, Field
9
9
 
10
- from fal.toolkit.file.file import DEFAULT_REPOSITORY, FALLBACK_REPOSITORY, File
10
+ from fal.toolkit.file.file import (
11
+ DEFAULT_REPOSITORY,
12
+ FALLBACK_REPOSITORY,
13
+ IS_PYDANTIC_V2,
14
+ File,
15
+ )
11
16
  from fal.toolkit.file.types import FileRepository, RepositoryId
12
17
  from fal.toolkit.utils.download_utils import _download_file_python
13
18
 
@@ -72,6 +77,15 @@ class Image(File):
72
77
  None, description="The height of the image in pixels.", examples=[1024]
73
78
  )
74
79
 
80
+ if IS_PYDANTIC_V2:
81
+ model_config = {"json_schema_extra": {"ui": {"field": "image"}}}
82
+ else:
83
+
84
+ class Config:
85
+ @staticmethod
86
+ def schema_extra(schema, model_type):
87
+ schema.setdefault("ui", {})["field"] = "image"
88
+
75
89
  @classmethod
76
90
  def from_bytes( # type: ignore[override]
77
91
  cls,
@@ -1,5 +1,12 @@
1
- from fal.toolkit.file.file import File
1
+ from fal.toolkit.file.file import IS_PYDANTIC_V2, File
2
2
 
3
3
 
4
4
  class Video(File):
5
- pass
5
+ if IS_PYDANTIC_V2:
6
+ model_config = {"json_schema_extra": {"ui": {"field": "video"}}}
7
+ else:
8
+
9
+ class Config:
10
+ @staticmethod
11
+ def schema_extra(schema, model_type):
12
+ schema.setdefault("ui", {})["field"] = "video"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fal
3
- Version: 1.19.1
3
+ Version: 1.19.2
4
4
  Summary: fal is an easy-to-use Serverless Python Framework
5
5
  Author: Features & Labels <support@fal.ai>
6
6
  Requires-Python: >=3.8
@@ -1,6 +1,6 @@
1
1
  fal/__init__.py,sha256=wXs1G0gSc7ZK60-bHe-B2m0l_sA6TrFk4BxY0tMoLe8,784
2
2
  fal/__main__.py,sha256=4JMK66Wj4uLZTKbF-sT3LAxOsr6buig77PmOkJCRRxw,83
3
- fal/_fal_version.py,sha256=AHZDn6z0jUfnyNSGC6nMpeF9bHJHAuW9AuV9iBw9K6s,513
3
+ fal/_fal_version.py,sha256=lOkMpxEMF6MuTuk4IHw6fbD9GVcMBZ3mwFzM45QwTSY,513
4
4
  fal/_serialization.py,sha256=npXNsFJ5G7jzBeBIyVMH01Ww34mGY4XWhHpRbSrTtnQ,7598
5
5
  fal/_version.py,sha256=1BbTFnucNC_6ldKJ_ZoC722_UkW4S9aDBSW9L0fkKAw,2315
6
6
  fal/api.py,sha256=moDNT8wt20uzsI-NTEsbVTpjFXFkSuuRXJx7Apux3SI,46329
@@ -56,16 +56,16 @@ fal/toolkit/exceptions.py,sha256=elHZ7dHCJG5zlHGSBbz-ilkZe9QUvQMomJFi8Pt91LA,198
56
56
  fal/toolkit/optimize.py,sha256=p75sovF0SmRP6zxzpIaaOmqlxvXB_xEz3XPNf59EF7w,1339
57
57
  fal/toolkit/types.py,sha256=kkbOsDKj1qPGb1UARTBp7yuJ5JUuyy7XQurYUBCdti8,4064
58
58
  fal/toolkit/audio/__init__.py,sha256=sqNVfrKbppWlIGLoFTaaNTxLpVXsFHxOSHLA5VG547A,35
59
- fal/toolkit/audio/audio.py,sha256=TEVbAyRhUMHOxp3H5Syf8UXrD-JnZED75SrIAr4wpQE,69
59
+ fal/toolkit/audio/audio.py,sha256=_o5zCqBOppmX6_N_vtDkiW6e35XklOMvW71ELo6gfEE,344
60
60
  fal/toolkit/file/__init__.py,sha256=FbNl6wD-P0aSSTUwzHt4HujBXrbC3ABmaigPQA4hRfg,70
61
- fal/toolkit/file/file.py,sha256=Kb-mdR66OiSNTS2EGLLJYUqnAw-KN7diqhxvjS7EAZ0,9353
61
+ fal/toolkit/file/file.py,sha256=QITEtOyevDVOjv9iwUEWId7edQ6EBx6Uz6CgqWWJJ-U,9568
62
62
  fal/toolkit/file/types.py,sha256=MMAH_AyLOhowQPesOv1V25wB4qgbJ3vYNlnTPbdSv1M,2304
63
63
  fal/toolkit/file/providers/fal.py,sha256=cbND8tjEJvKklrmYgrjr6RtAcVLJIQ9VwhBhNCqgKc8,46992
64
64
  fal/toolkit/file/providers/gcp.py,sha256=DKeZpm1MjwbvEsYvkdXUtuLIJDr_UNbqXj_Mfv3NTeo,2437
65
65
  fal/toolkit/file/providers/r2.py,sha256=YqnYkkAo_ZKIa-xoSuDnnidUFwJWHdziAR34PE6irdI,3061
66
66
  fal/toolkit/file/providers/s3.py,sha256=EI45T54Mox7lHZKROss_O8o0DIn3CHP9k1iaNYVrxvg,2714
67
67
  fal/toolkit/image/__init__.py,sha256=m3OatPbBhcEOYyaTu_dgToxunUKoJu4bJVCWUoN7HX4,1838
68
- fal/toolkit/image/image.py,sha256=ZSkozciP4XxaGnvrR_mP4utqE3_QhoPN0dau9FJ2Xco,5033
68
+ fal/toolkit/image/image.py,sha256=b0dpPwMuOnMdcIdoM_dZfavrFdji5SplKDmg0ERFfNg,5339
69
69
  fal/toolkit/image/safety_checker.py,sha256=S7ow-HuoVxC6ixHWWcBrAUm2dIlgq3sTAIull6xIbAg,3105
70
70
  fal/toolkit/image/nsfw_filter/__init__.py,sha256=0d9D51EhcnJg8cZLYJjgvQJDZT74CfQu6mpvinRYRpA,216
71
71
  fal/toolkit/image/nsfw_filter/env.py,sha256=iAP2Q3vzIl--DD8nr8o3o0goAwhExN2v0feYE0nIQjs,212
@@ -77,7 +77,7 @@ fal/toolkit/utils/download_utils.py,sha256=IIb8eLsoFg4Gy-2N0M4trnxFUF75f1pWtjOX_
77
77
  fal/toolkit/utils/endpoint.py,sha256=5EXoshA2PD_brjEfhNWAWasjqLOCRrjBnfhj6QGuMt8,782
78
78
  fal/toolkit/utils/retry.py,sha256=mHcQvvNIpu-Hi29P1HXSZuyvolRd48dMaJToqzlG0NY,1353
79
79
  fal/toolkit/video/__init__.py,sha256=YV0jWpuvoA_CDFQXhd3zOvilFLKH7DYARrbzR7hWhpE,35
80
- fal/toolkit/video/video.py,sha256=x7WLQ-yQqG0UEkcSM2ScV9biZ72A26mKYK8yqZmn1Dk,69
80
+ fal/toolkit/video/video.py,sha256=U2hIIaIKCB_ZStYgQjpMTNrVONklq6fcqj-IT9jA7nE,344
81
81
  openapi_fal_rest/__init__.py,sha256=ziculmF_i6trw63LzZGFX-6W3Lwq9mCR8_UpkpvpaHI,152
82
82
  openapi_fal_rest/client.py,sha256=G6BpJg9j7-JsrAUGddYwkzeWRYickBjPdcVgXoPzxuE,2817
83
83
  openapi_fal_rest/errors.py,sha256=8mXSxdfSGzxT82srdhYbR0fHfgenxJXaUtMkaGgb6iU,470
@@ -141,8 +141,8 @@ openapi_fal_rest/models/workflow_node_type.py,sha256=-FzyeY2bxcNmizKbJI8joG7byRi
141
141
  openapi_fal_rest/models/workflow_schema.py,sha256=4K5gsv9u9pxx2ItkffoyHeNjBBYf6ur5bN4m_zePZNY,2019
142
142
  openapi_fal_rest/models/workflow_schema_input.py,sha256=2OkOXWHTNsCXHWS6EGDFzcJKkW5FIap-2gfO233EvZQ,1191
143
143
  openapi_fal_rest/models/workflow_schema_output.py,sha256=EblwSPAGfWfYVWw_WSSaBzQVju296is9o28rMBAd0mc,1196
144
- fal-1.19.1.dist-info/METADATA,sha256=syKI0GJfuk4wp6Nz3xwrqZGxV2qdAfbXp8UZFlnbxkw,4085
145
- fal-1.19.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
146
- fal-1.19.1.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
147
- fal-1.19.1.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
148
- fal-1.19.1.dist-info/RECORD,,
144
+ fal-1.19.2.dist-info/METADATA,sha256=dlSJr_jIsRzpHdOPNuwn7vW9VesVA8Jx-d437ZSv22k,4085
145
+ fal-1.19.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
146
+ fal-1.19.2.dist-info/entry_points.txt,sha256=32zwTUC1U1E7nSTIGCoANQOQ3I7-qHG5wI6gsVz5pNU,37
147
+ fal-1.19.2.dist-info/top_level.txt,sha256=r257X1L57oJL8_lM0tRrfGuXFwm66i1huwQygbpLmHw,21
148
+ fal-1.19.2.dist-info/RECORD,,
File without changes