flashforge-python-api 1.2.2__py3-none-any.whl → 1.3.0__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.
@@ -164,6 +164,65 @@ class AD5XUploadParams(BaseModel):
164
164
  )
165
165
 
166
166
 
167
+ class Creator5JobParams(BaseModel):
168
+ """Parameters for starting a Creator 5 / Creator 5 Pro local print job.
169
+
170
+ Distinct from the AD5X job params: the Creator 5 maps materials at print-start
171
+ (POST /printGcode) rather than upload time, so the body carries NO
172
+ ``useMatlStation`` / ``gcodeToolCnt`` / ``firstLayerInspection`` (the latter
173
+ doesn't exist on the C5). ``flowCalibration`` and ``timeLapseVideo`` are always
174
+ present (default False); ``material_mappings`` is optional for a single-tool
175
+ print.
176
+ """
177
+
178
+ model_config = ConfigDict(extra="forbid", populate_by_name=True)
179
+
180
+ file_name: str = Field(description="Name of the file on the printer to start")
181
+ leveling_before_print: bool = Field(
182
+ description="Whether to perform bed leveling before printing"
183
+ )
184
+ flow_calibration: bool = Field(
185
+ default=False, description="Whether to enable flow calibration"
186
+ )
187
+ time_lapse_video: bool = Field(
188
+ default=False, description="Whether to enable time lapse video recording"
189
+ )
190
+ material_mappings: list[AD5XMaterialMapping] | None = Field(
191
+ default=None,
192
+ max_length=4,
193
+ description="Optional per-tool material mappings (1-4 items); omit for single-tool",
194
+ )
195
+
196
+
197
+ class Creator5UploadParams(BaseModel):
198
+ """Parameters for uploading a file to a Creator 5 / Creator 5 Pro.
199
+
200
+ Mirrors the AD5X upload but omits ``firstLayerInspection`` (absent on the C5)
201
+ and the ``materialMappings`` header (the C5 maps materials at print-start, not
202
+ upload). The C5 firmware checks the booleans as the string "true"/"false".
203
+ """
204
+
205
+ model_config = ConfigDict(extra="forbid", populate_by_name=True)
206
+
207
+ file_path: str = Field(description="Local file path to upload")
208
+ start_print: bool = Field(description="Whether to start printing immediately after upload")
209
+ leveling_before_print: bool = Field(
210
+ description="Whether to perform bed leveling before printing"
211
+ )
212
+ flow_calibration: bool = Field(
213
+ default=False, description="Whether to enable flow calibration"
214
+ )
215
+ time_lapse_video: bool = Field(
216
+ default=False, description="Whether to enable time lapse video recording"
217
+ )
218
+ use_matl_station: bool = Field(
219
+ description="Whether this is a multi-tool material-station job"
220
+ )
221
+ gcode_tool_cnt: int = Field(
222
+ ge=1, le=4, description="Number of tools in the G-code (1-4 for the C5)"
223
+ )
224
+
225
+
167
226
  class GCodeListResponse(GenericResponse):
168
227
  """Represents the response structure for a G-code file list request."""
169
228
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flashforge-python-api
3
- Version: 1.2.2
3
+ Version: 1.3.0
4
4
  Summary: A comprehensive Python library for controlling FlashForge 3D printers
5
5
  Project-URL: Homepage, https://github.com/GhostTypes/ff-5mp-api-py
6
6
  Project-URL: Documentation, https://github.com/GhostTypes/ff-5mp-api-py#readme
@@ -1,15 +1,16 @@
1
- flashforge/__init__.py,sha256=NjSFURsQlavWjvD6CikOj01SXqpdmGF-PlAHyLXtc-4,5336
2
- flashforge/client.py,sha256=lplKJxNOLhUJMusm025cj7rZvWRAiv2j5qENdBIctuA,16920
1
+ flashforge/__init__.py,sha256=T-Rf3whhvd9klW5n-Jwbo422twqFEVXH3pyShkw5JgU,5336
2
+ flashforge/client.py,sha256=y2LjwfBhlS8fwIFEITybvq1Wi_9JdIiJ4pEzw0OdqEo,20463
3
3
  flashforge/api/__init__.py,sha256=vQz-DkG6LTH39bI4fyiUc0D9jQzemLh45pORLptSOlg,335
4
4
  flashforge/api/constants/__init__.py,sha256=Q0HL2tqSBYPd4Oz49VHLS3qUvRuv__GCvTGecaLrQ-Y,163
5
- flashforge/api/constants/commands.py,sha256=S9cBgU3pBXQm-dp3Bv4795NL059pmTY1NtxWzPA5gWU,329
6
- flashforge/api/constants/endpoints.py,sha256=zU_ONPyLUATr1KPlk0x8SLrK4ojs4QiiWr1-WwLVwTY,338
5
+ flashforge/api/constants/commands.py,sha256=XM2rooBESPDaywlZrfW2ECTaLLFaSKXkJ7FQ-RBmVdY,578
6
+ flashforge/api/constants/endpoints.py,sha256=oZtOFfkU64THDeCMUIVv6_0L-BOUZzgLKAUfjHkUhi8,337
7
7
  flashforge/api/controls/__init__.py,sha256=53s-H25Pjwr0kvPk8MZ2Twy8VHGqGcO6Q6uBphhEOh4,293
8
- flashforge/api/controls/control.py,sha256=8wK2YOGf9NphWXsjIDapyQEfx-qGZgytXZFsjKeWvSA,11291
9
- flashforge/api/controls/files.py,sha256=8T9kzgss_2DYFL4WVuEFj8W9sOPPPMIMq3dTq1d551w,6560
10
- flashforge/api/controls/info.py,sha256=KVExwaeDd1SYiSOBZVVtif3Rf_cJkw4Bizhgm6dbAS8,12398
11
- flashforge/api/controls/job_control.py,sha256=-DglR97DWBzl45mmqGkauYpUM_I-C0tXrbp9SKPYOVs,21814
12
- flashforge/api/controls/temp_control.py,sha256=TGkX63WHygVA9DeYfLARbktZ0o-bYX6MNyYOX6V_RB4,3034
8
+ flashforge/api/controls/control.py,sha256=N1DGpuyvuPWzyMd4_CvbyaQQwoacPIRE8yBaFyy0d9g,14715
9
+ flashforge/api/controls/creator5_palette.py,sha256=hB0OF4sOrf7bVy3n4cPocJkfr8uM1MHRRg4ccCd6xfU,8780
10
+ flashforge/api/controls/files.py,sha256=BhSQxXMt8MX2acyWtRzyNXfPYHsy6IkCwH04ksMCIp4,7114
11
+ flashforge/api/controls/info.py,sha256=fQ5ICxAfIK4VojcSee_TYM8H585oPJWRDAgwv8MH5Mk,17029
12
+ flashforge/api/controls/job_control.py,sha256=uLZQgtzto15AOauUgNg-031cSy_m1W28p9H8y3vZi9M,31955
13
+ flashforge/api/controls/temp_control.py,sha256=x9KWkkk6dgdOFR1DAWj2fW7tn-PH0ne-xyrB0XidsTo,12865
13
14
  flashforge/api/filament/__init__.py,sha256=isT2dl0hzUS0xMTXMm4Tip0GTG1gCsm8LKWa9xPu4Y8,104
14
15
  flashforge/api/filament/filament.py,sha256=TtcC2G2nD9Sq4cOrCZzFLZ6Q0Ve-zfrfuEF9uQ8M3eE,1214
15
16
  flashforge/api/misc/__init__.py,sha256=1AG7vOMRBZQtHp6QUzfr9alcJPeNv3JpU44NrznxDHs,211
@@ -17,12 +18,12 @@ flashforge/api/misc/scientific_notation.py,sha256=KSMTrrYhPWLv0gbcEAD6u-jEOcIwUj
17
18
  flashforge/api/misc/temperature.py,sha256=qeHlCdPzLyqGDEB874Ib5AgYHMR9Qtw61shnw4G095E,1066
18
19
  flashforge/api/network/__init__.py,sha256=G5fBoAlq-NQPDkWp579mFIqsj0v7B1Lb2TAzO6IZA0Q,164
19
20
  flashforge/api/network/fnet_code.py,sha256=BR2niVKKk4ZfXtizUDIMXzDhlCxPHzqWg5AQQIcoj3g,402
20
- flashforge/api/network/utils.py,sha256=hh-9SGI61ii0CRkLVnAp-Eq2E0a9PAKPyNLMGaYPNsI,2065
21
+ flashforge/api/network/utils.py,sha256=Q5-Vj_1VN611QV_TGpDzrrZ2X8PqaGT0j00BhSHv5MM,2096
21
22
  flashforge/discovery/__init__.py,sha256=G0WiP70EhfHdjXR1RNlv6xjhyHOdo-HWyOm9J0ds4SM,828
22
- flashforge/discovery/discovery.py,sha256=ka75bIXnn2a14DEpzpmJxUGajF-tpLHUR2EHA88NIGc,26073
23
- flashforge/models/__init__.py,sha256=MNpnXdS6Yah5kSwBB7cbA2Hd-8azffE62pgUrrKSZk4,984
24
- flashforge/models/machine_info.py,sha256=t7TJk03PG8kf-g6XnWd3NiWuCVLY1Wuod-aI4zdXu4Y,14976
25
- flashforge/models/responses.py,sha256=befMeXAc7XXiK7emF8Ep2cd1GuhZ-zyYPbbPqS2lcQI,7214
23
+ flashforge/discovery/discovery.py,sha256=c_lT8pgegEAp9LV5seljp5TQLjNxEQcE8CXAAOvpWQ4,27566
24
+ flashforge/models/__init__.py,sha256=hdcK0E4KeDfv_A8Y2aPOHgHziwTjP1RPb_VP-89dOzQ,1086
25
+ flashforge/models/machine_info.py,sha256=wqVOTkxhRf2zrt0yr3SGJGr8SRnMXYiqEBZzQBLJHc0,17064
26
+ flashforge/models/responses.py,sha256=q5DtcTys0g_QIdn_CeYMykQrzyg5TGo11B7T5OCYj-A,9654
26
27
  flashforge/tcp/__init__.py,sha256=hpnqoWHeRtTwJPzdsVlwGt1njKbAkrgIHKADkLSIRec,1317
27
28
  flashforge/tcp/a3_client.py,sha256=a1jdDcBnTSNrzJFKTuVV13fSLbZmxKEZ94n3cGf3wOA,15603
28
29
  flashforge/tcp/a4_client.py,sha256=0KH5zfsbWaPRd7xSKb7YA3oZTkCVdsdcTA9LPl3S55Q,11167
@@ -39,8 +40,8 @@ flashforge/tcp/parsers/print_status.py,sha256=4q9ZlJfO0c7_t1o15tgxbguMxpDjEW9pMy
39
40
  flashforge/tcp/parsers/printer_info.py,sha256=QY6LECfcOhVHSIdsvQZwJago0OjXroUwiX0H-uQaH2A,5411
40
41
  flashforge/tcp/parsers/temp_info.py,sha256=9Waf68tt-4QBcChyUwfMHDwWdIzM4mmDpZAKeAzklgs,7908
41
42
  flashforge/tcp/parsers/thumbnail_info.py,sha256=ZmxdEbVFOzqR1AfhXXZyjENVI66BdRdE7Q8LQ8an9FY,10201
42
- flashforge_python_api-1.2.2.dist-info/METADATA,sha256=fgIgmb7nLlupuynCJcbY5V-fF_g4hNI48e9d61Qym0s,4787
43
- flashforge_python_api-1.2.2.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
44
- flashforge_python_api-1.2.2.dist-info/entry_points.txt,sha256=AkOxlsLvQ7cvMLxn7tlzfKp_DCH2hXhbVceHIXxawpU,66
45
- flashforge_python_api-1.2.2.dist-info/licenses/LICENSE,sha256=-cTA-hrmvlb3pqlQrBZQXUnKayhUjsLJMPb7TD91frM,1067
46
- flashforge_python_api-1.2.2.dist-info/RECORD,,
43
+ flashforge_python_api-1.3.0.dist-info/METADATA,sha256=q_OdV2PHGRx3TxqoMPIfQ5mC8th-g28-wMLFFHJWkDs,4787
44
+ flashforge_python_api-1.3.0.dist-info/WHEEL,sha256=mffPy8wBnZQn2VnJUU5jE99KsxaSfiyMHV9Yt0aLVxs,87
45
+ flashforge_python_api-1.3.0.dist-info/entry_points.txt,sha256=AkOxlsLvQ7cvMLxn7tlzfKp_DCH2hXhbVceHIXxawpU,66
46
+ flashforge_python_api-1.3.0.dist-info/licenses/LICENSE,sha256=-cTA-hrmvlb3pqlQrBZQXUnKayhUjsLJMPb7TD91frM,1067
47
+ flashforge_python_api-1.3.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.29.0
2
+ Generator: hatchling 1.30.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any