bizyengine 1.2.5__tar.gz → 1.2.7__tar.gz

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.
Files changed (88) hide show
  1. {bizyengine-1.2.5 → bizyengine-1.2.7}/PKG-INFO +1 -1
  2. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/api_client.py +24 -12
  3. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/__init__.py +1 -0
  4. bizyengine-1.2.7/bizyengine/bizyair_extras/nodes_wan_i2v.py +222 -0
  5. bizyengine-1.2.7/bizyengine/version.txt +1 -0
  6. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine.egg-info/PKG-INFO +1 -1
  7. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine.egg-info/SOURCES.txt +1 -0
  8. bizyengine-1.2.5/bizyengine/version.txt +0 -1
  9. {bizyengine-1.2.5 → bizyengine-1.2.7}/MANIFEST.in +0 -0
  10. {bizyengine-1.2.5 → bizyengine-1.2.7}/README.md +0 -0
  11. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/__init__.py +0 -0
  12. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/__init__.py +0 -0
  13. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/errno.py +0 -0
  14. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/error_handler.py +0 -0
  15. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/execution.py +0 -0
  16. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/profile.py +0 -0
  17. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/resp.py +0 -0
  18. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/server.py +0 -0
  19. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/stream_response.py +0 -0
  20. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizy_server/utils.py +0 -0
  21. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_advanced_refluxcontrol.py +0 -0
  22. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_cogview4.py +0 -0
  23. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_detail_daemon.py +0 -0
  24. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_instantid.py +0 -0
  25. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_layerstyle_advance.py +0 -0
  26. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_comfyui_pulid_flux.py +0 -0
  27. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_controlnet.py +0 -0
  28. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_custom_sampler.py +0 -0
  29. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_dataset.py +0 -0
  30. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_differential_diffusion.py +0 -0
  31. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_flux.py +0 -0
  32. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_image_utils.py +0 -0
  33. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ip2p.py +0 -0
  34. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ipadapter_plus/__init__.py +0 -0
  35. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ipadapter_plus/nodes_ipadapter_plus.py +0 -0
  36. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_janus_pro.py +0 -0
  37. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_kolors_mz/__init__.py +0 -0
  38. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_model_advanced.py +0 -0
  39. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_nunchaku.py +0 -0
  40. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_sd3.py +0 -0
  41. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_segment_anything.py +0 -0
  42. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_segment_anything_utils.py +0 -0
  43. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_testing_utils.py +0 -0
  44. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_trellis.py +0 -0
  45. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_ultimatesdupscale.py +0 -0
  46. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_upscale_model.py +0 -0
  47. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/nodes_wan_video.py +0 -0
  48. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/oauth_callback/main.py +0 -0
  49. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/bizyair_extras/route_bizyair_tools.py +0 -0
  50. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/__init__.py +0 -0
  51. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/commands/__init__.py +0 -0
  52. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/commands/base.py +0 -0
  53. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/commands/invoker.py +0 -0
  54. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/commands/processors/model_hosting_processor.py +0 -0
  55. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/commands/processors/prompt_processor.py +0 -0
  56. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/commands/servers/model_server.py +0 -0
  57. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/commands/servers/prompt_server.py +0 -0
  58. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/common/__init__.py +0 -0
  59. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/common/caching.py +0 -0
  60. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/common/client.py +0 -0
  61. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/common/env_var.py +0 -0
  62. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/common/utils.py +0 -0
  63. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/configs/conf.py +0 -0
  64. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/configs/models.json +0 -0
  65. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/configs/models.yaml +0 -0
  66. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/data_types.py +0 -0
  67. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/image_utils.py +0 -0
  68. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/nodes_base.py +0 -0
  69. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/nodes_io.py +0 -0
  70. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/path_utils/__init__.py +0 -0
  71. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/path_utils/path_manager.py +0 -0
  72. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/core/path_utils/utils.py +0 -0
  73. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/__init__.py +0 -0
  74. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/auth.py +0 -0
  75. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/llm.py +0 -0
  76. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/mzkolors.py +0 -0
  77. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/nodes.py +0 -0
  78. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/nodes_controlnet_aux.py +0 -0
  79. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/nodes_controlnet_union_sdxl.py +0 -0
  80. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/route_sam.py +0 -0
  81. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/segment_anything.py +0 -0
  82. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/supernode.py +0 -0
  83. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine/misc/utils.py +0 -0
  84. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine.egg-info/dependency_links.txt +0 -0
  85. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine.egg-info/requires.txt +0 -0
  86. {bizyengine-1.2.5 → bizyengine-1.2.7}/bizyengine.egg-info/top_level.txt +0 -0
  87. {bizyengine-1.2.5 → bizyengine-1.2.7}/pyproject.toml +0 -0
  88. {bizyengine-1.2.5 → bizyengine-1.2.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizyengine
3
- Version: 1.2.5
3
+ Version: 1.2.7
4
4
  Summary: [a/BizyAir](https://github.com/siliconflow/BizyAir) Comfy Nodes that can run in any environment.
5
5
  Author-email: SiliconFlow <yaochi@siliconflow.cn>
6
6
  Project-URL: Repository, https://github.com/siliconflow/BizyAir
@@ -65,13 +65,16 @@ class APIClient:
65
65
  async with session.get(url, headers=headers) as response:
66
66
  resp_json = await response.json()
67
67
  if response.status != 200:
68
+ isJson = isinstance(resp_json, dict)
68
69
  return None, ErrorNo(
69
70
  response.status,
70
- resp_json.get("code", response.status),
71
+ resp_json.get("code", response.status) if isJson else resp_json,
71
72
  None,
72
73
  {
73
- user_profile.getLang(): resp_json.get(
74
- "message", await response.text()
74
+ user_profile.getLang(): (
75
+ resp_json.get("message", await response.text())
76
+ if isJson
77
+ else resp_json
75
78
  )
76
79
  },
77
80
  )
@@ -82,13 +85,16 @@ class APIClient:
82
85
  async with session.post(url, json=data, headers=headers) as response:
83
86
  resp_json = await response.json()
84
87
  if response.status != 200:
88
+ isJson = isinstance(resp_json, dict)
85
89
  return None, ErrorNo(
86
90
  response.status,
87
- resp_json.get("code", response.status),
91
+ resp_json.get("code", response.status) if isJson else resp_json,
88
92
  None,
89
93
  {
90
- user_profile.getLang(): resp_json.get(
91
- "message", await response.text()
94
+ user_profile.getLang(): (
95
+ resp_json.get("message", await response.text())
96
+ if isJson
97
+ else resp_json
92
98
  )
93
99
  },
94
100
  )
@@ -99,13 +105,16 @@ class APIClient:
99
105
  async with session.put(url, json=data, headers=headers) as response:
100
106
  resp_json = await response.json()
101
107
  if response.status != 200:
108
+ isJson = isinstance(resp_json, dict)
102
109
  return None, ErrorNo(
103
110
  response.status,
104
- resp_json.get("code", response.status),
111
+ resp_json.get("code", response.status) if isJson else resp_json,
105
112
  None,
106
113
  {
107
- user_profile.getLang(): resp_json.get(
108
- "message", await response.text()
114
+ user_profile.getLang(): (
115
+ resp_json.get("message", await response.text())
116
+ if isJson
117
+ else resp_json
109
118
  )
110
119
  },
111
120
  )
@@ -116,13 +125,16 @@ class APIClient:
116
125
  async with session.delete(url, json=data, headers=headers) as response:
117
126
  resp_json = await response.json()
118
127
  if response.status != 200:
128
+ isJson = isinstance(resp_json, dict)
119
129
  return None, ErrorNo(
120
130
  response.status,
121
- resp_json.get("code", response.status),
131
+ resp_json.get("code", response.status) if isJson else resp_json,
122
132
  None,
123
133
  {
124
- user_profile.getLang(): resp_json.get(
125
- "message", await response.text()
134
+ user_profile.getLang(): (
135
+ resp_json.get("message", await response.text())
136
+ if isJson
137
+ else resp_json
126
138
  )
127
139
  },
128
140
  )
@@ -22,5 +22,6 @@ from .nodes_testing_utils import *
22
22
  from .nodes_trellis import *
23
23
  from .nodes_ultimatesdupscale import *
24
24
  from .nodes_upscale_model import *
25
+ from .nodes_wan_i2v import *
25
26
  from .nodes_wan_video import *
26
27
  from .route_bizyair_tools import *
@@ -0,0 +1,222 @@
1
+ import json
2
+ import time
3
+ import warnings
4
+
5
+ import requests
6
+
7
+ try:
8
+ from comfy_api_nodes.apinode_utils import (
9
+ download_url_to_video_output,
10
+ tensor_to_base64_string,
11
+ )
12
+ except ModuleNotFoundError as e:
13
+ download_url_to_video_output = None
14
+ tensor_to_base64_string = None
15
+
16
+ ERROR_MSG = f"Error {e} ComfyUI API nodes module not found. Please ensure you have ComfyUI version 0.3.36 or later installed."
17
+
18
+ warnings.warn(ERROR_MSG)
19
+
20
+
21
+ from ..core.common import client
22
+ from ..core.common.env_var import BIZYAIR_DEBUG
23
+ from ..core.nodes_base import BizyAirBaseNode
24
+
25
+
26
+ class WanApiNodeBase:
27
+ MODEL_ENDPOINTS = {
28
+ "Wan-AI/Wan2.1-I2V-14B-480P-Diffusers": "https://bizyair-api.siliconflow.cn/x/v1/supernode/faas-wan-i2v-14b-480p-server"
29
+ }
30
+
31
+
32
+ class Wan_LoraLoader(BizyAirBaseNode):
33
+
34
+ @classmethod
35
+ def INPUT_TYPES(cls):
36
+ return {
37
+ "required": {
38
+ "lora_name": (
39
+ "STRING",
40
+ {
41
+ "multiline": True,
42
+ "default": "https://huggingface.co/Remade-AI/Squish/resolve/main/squish_18.safetensors",
43
+ "tooltip": "LoRA 模型下载地址",
44
+ },
45
+ ),
46
+ },
47
+ "optional": {
48
+ "lora_weight": (
49
+ "FLOAT",
50
+ {
51
+ "default": 1,
52
+ "min": 0.0,
53
+ "max": 1.0,
54
+ "step": 0.05,
55
+ "tooltip": "LoRA权重强度",
56
+ },
57
+ )
58
+ },
59
+ }
60
+
61
+ RETURN_TYPES = ("LORA_CONFIG",)
62
+ RETURN_NAMES = ("lora_config",)
63
+ FUNCTION = "apply_lora"
64
+ CATEGORY = "Diffusers/WAN Video Generation"
65
+
66
+ def apply_lora(self, lora_name, lora_weight=0.75):
67
+ return ([(lora_name, lora_weight)],)
68
+
69
+
70
+ class Wan_ImageToVideoPipeline(WanApiNodeBase, BizyAirBaseNode):
71
+
72
+ POLLING_INTERVAL = 10 # sec
73
+ MAX_POLLING_TIME = 60 * 20 # sec
74
+
75
+ @classmethod
76
+ def INPUT_TYPES(s):
77
+ return {
78
+ "required": {
79
+ "image": (
80
+ "IMAGE",
81
+ {
82
+ "default": None,
83
+ "tooltip": "Optional reference image to guide video generation",
84
+ },
85
+ ),
86
+ "model_id": (["Wan-AI/Wan2.1-I2V-14B-480P-Diffusers"],),
87
+ "prompt": (
88
+ "STRING",
89
+ {
90
+ "multiline": True,
91
+ "default": "",
92
+ "tooltip": "Text description of the video",
93
+ },
94
+ ),
95
+ },
96
+ "optional": {
97
+ "negative_prompt": (
98
+ "STRING",
99
+ {
100
+ "multiline": True,
101
+ "default": "",
102
+ "tooltip": "Negative text prompt to guide what to avoid in the video",
103
+ },
104
+ ),
105
+ "steps": ("INT", {"default": 30, "min": 1, "max": 40}),
106
+ "cfg": (
107
+ "FLOAT",
108
+ {
109
+ "default": 6.0,
110
+ "min": 0.0,
111
+ "max": 100.0,
112
+ "step": 0.1,
113
+ "round": 0.01,
114
+ },
115
+ ),
116
+ "seed": (
117
+ "INT",
118
+ {
119
+ "default": 0,
120
+ "min": 0,
121
+ "max": 0xFFFFFFFF,
122
+ "step": 1,
123
+ "display": "number",
124
+ "control_after_generate": True,
125
+ "tooltip": "Seed for video generation (0 for random)",
126
+ },
127
+ ),
128
+ "use_teacache": (["enable", "disable"],),
129
+ "lora_config": ("LORA_CONFIG", {}),
130
+ },
131
+ }
132
+
133
+ RETURN_TYPES = ("VIDEO",)
134
+
135
+ FUNCTION = "generate_video"
136
+ CATEGORY = "Diffusers/WAN Video Generation"
137
+
138
+ def _encode_image(self, image_tensor):
139
+ # https://docs.comfy.org/custom-nodes/backend/snippets
140
+ tensor_to_base64_string(image_tensor=image_tensor, mime_type="image/webp")
141
+ base64_str = "data:image/webp;base64," + tensor_to_base64_string(
142
+ image_tensor=image_tensor, mime_type="image/webp"
143
+ )
144
+ return base64_str
145
+
146
+ def _prepare_headers(self):
147
+ headers = client._headers()
148
+ headers["X-Fn-Task-Mode"] = "non-blocking"
149
+ return headers
150
+
151
+ def _send_initial_request(self, endpoint, request_data):
152
+ headers = self._prepare_headers()
153
+ response = client.send_request(
154
+ url=endpoint,
155
+ data=json.dumps({"prompt": request_data}).encode(),
156
+ headers=headers,
157
+ )
158
+ return response["query_url"]
159
+
160
+ def _poll_for_completion(self, query_url):
161
+ start_time = time.time()
162
+ headers = self._prepare_headers()
163
+
164
+ while time.time() - start_time < self.MAX_POLLING_TIME:
165
+ response = requests.get(query_url, headers=headers)
166
+ try:
167
+ response_data = response.json()
168
+ if response_data["data_status"] == "COMPLETED":
169
+ return response_data
170
+ time.sleep(self.POLLING_INTERVAL)
171
+ except (json.JSONDecodeError, KeyError) as e:
172
+ if BIZYAIR_DEBUG:
173
+ print(
174
+ f"Response parsing error: {e} | Raw response: {response.text}"
175
+ )
176
+ time.sleep(self.POLLING_INTERVAL)
177
+
178
+ raise TimeoutError("Task processing timeout")
179
+
180
+ def _process_result(self, result_data):
181
+ video_url = result_data["data"]["payload"]
182
+ return (download_url_to_video_output(video_url),)
183
+
184
+ def generate_video(
185
+ self,
186
+ model_id: str,
187
+ prompt: str,
188
+ negative_prompt: str = "",
189
+ seed: int = 0,
190
+ image=None,
191
+ lora_config=[],
192
+ use_teacache="enable",
193
+ **kwargs,
194
+ ):
195
+ if download_url_to_video_output is None or tensor_to_base64_string is None:
196
+ raise ImportError(ERROR_MSG)
197
+
198
+ req_dict = {}
199
+ req_dict["guidance_scale"] = kwargs.pop("cfg", 6.0)
200
+ req_dict["num_inference_steps"] = kwargs.pop("steps", 30)
201
+ req_dict["prompt"] = prompt
202
+ req_dict["negative_prompt"] = negative_prompt
203
+ req_dict["seed"] = seed
204
+ if lora_config:
205
+ if len(lora_config) > 1:
206
+ raise NotImplementedError(f"TODO, tmp only support one lora")
207
+ req_dict["lora_name_list"] = [x[0] for x in lora_config]
208
+ req_dict["lora_weight_list"] = [x[1] for x in lora_config]
209
+ else:
210
+ req_dict["lora_name_list"] = []
211
+ req_dict["lora_weight_list"] = []
212
+
213
+ if use_teacache == "enable":
214
+ req_dict["teacache"] = 0.3
215
+ else:
216
+ req_dict["teacache"] = 0
217
+
218
+ req_dict["image"] = self._encode_image(image_tensor=image)
219
+ endpoint = self.MODEL_ENDPOINTS[model_id]
220
+ query_url = self._send_initial_request(endpoint, request_data=req_dict)
221
+ result = self._poll_for_completion(query_url)
222
+ return self._process_result(result)
@@ -0,0 +1 @@
1
+ 1.2.7
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bizyengine
3
- Version: 1.2.5
3
+ Version: 1.2.7
4
4
  Summary: [a/BizyAir](https://github.com/siliconflow/BizyAir) Comfy Nodes that can run in any environment.
5
5
  Author-email: SiliconFlow <yaochi@siliconflow.cn>
6
6
  Project-URL: Repository, https://github.com/siliconflow/BizyAir
@@ -42,6 +42,7 @@ bizyengine/bizyair_extras/nodes_testing_utils.py
42
42
  bizyengine/bizyair_extras/nodes_trellis.py
43
43
  bizyengine/bizyair_extras/nodes_ultimatesdupscale.py
44
44
  bizyengine/bizyair_extras/nodes_upscale_model.py
45
+ bizyengine/bizyair_extras/nodes_wan_i2v.py
45
46
  bizyengine/bizyair_extras/nodes_wan_video.py
46
47
  bizyengine/bizyair_extras/route_bizyair_tools.py
47
48
  bizyengine/bizyair_extras/nodes_ipadapter_plus/__init__.py
@@ -1 +0,0 @@
1
- 1.2.5
File without changes
File without changes
File without changes
File without changes