effectual 0.3.0__tar.gz → 0.3.2__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,456 @@
1
+ Metadata-Version: 2.3
2
+ Name: effectual
3
+ Version: 0.3.2
4
+ Summary: A python package/script bundler
5
+ Project-URL: Homepage, https://github.com/effectualpy/effectual
6
+ Author-email: jake <jakewdr@proton.me>
7
+ License: Mozilla Public License Version 2.0
8
+ ==================================
9
+
10
+ 1. Definitions
11
+ --------------
12
+
13
+ 1.1. "Contributor"
14
+ means each individual or legal entity that creates, contributes to
15
+ the creation of, or owns Covered Software.
16
+
17
+ 1.2. "Contributor Version"
18
+ means the combination of the Contributions of others (if any) used
19
+ by a Contributor and that particular Contributor's Contribution.
20
+
21
+ 1.3. "Contribution"
22
+ means Covered Software of a particular Contributor.
23
+
24
+ 1.4. "Covered Software"
25
+ means Source Code Form to which the initial Contributor has attached
26
+ the notice in Exhibit A, the Executable Form of such Source Code
27
+ Form, and Modifications of such Source Code Form, in each case
28
+ including portions thereof.
29
+
30
+ 1.5. "Incompatible With Secondary Licenses"
31
+ means
32
+
33
+ (a) that the initial Contributor has attached the notice described
34
+ in Exhibit B to the Covered Software; or
35
+
36
+ (b) that the Covered Software was made available under the terms of
37
+ version 1.1 or earlier of the License, but not also under the
38
+ terms of a Secondary License.
39
+
40
+ 1.6. "Executable Form"
41
+ means any form of the work other than Source Code Form.
42
+
43
+ 1.7. "Larger Work"
44
+ means a work that combines Covered Software with other material, in
45
+ a separate file or files, that is not Covered Software.
46
+
47
+ 1.8. "License"
48
+ means this document.
49
+
50
+ 1.9. "Licensable"
51
+ means having the right to grant, to the maximum extent possible,
52
+ whether at the time of the initial grant or subsequently, any and
53
+ all of the rights conveyed by this License.
54
+
55
+ 1.10. "Modifications"
56
+ means any of the following:
57
+
58
+ (a) any file in Source Code Form that results from an addition to,
59
+ deletion from, or modification of the contents of Covered
60
+ Software; or
61
+
62
+ (b) any new file in Source Code Form that contains any Covered
63
+ Software.
64
+
65
+ 1.11. "Patent Claims" of a Contributor
66
+ means any patent claim(s), including without limitation, method,
67
+ process, and apparatus claims, in any patent Licensable by such
68
+ Contributor that would be infringed, but for the grant of the
69
+ License, by the making, using, selling, offering for sale, having
70
+ made, import, or transfer of either its Contributions or its
71
+ Contributor Version.
72
+
73
+ 1.12. "Secondary License"
74
+ means either the GNU General Public License, Version 2.0, the GNU
75
+ Lesser General Public License, Version 2.1, the GNU Affero General
76
+ Public License, Version 3.0, or any later versions of those
77
+ licenses.
78
+
79
+ 1.13. "Source Code Form"
80
+ means the form of the work preferred for making modifications.
81
+
82
+ 1.14. "You" (or "Your")
83
+ means an individual or a legal entity exercising rights under this
84
+ License. For legal entities, "You" includes any entity that
85
+ controls, is controlled by, or is under common control with You. For
86
+ purposes of this definition, "control" means (a) the power, direct
87
+ or indirect, to cause the direction or management of such entity,
88
+ whether by contract or otherwise, or (b) ownership of more than
89
+ fifty percent (50%) of the outstanding shares or beneficial
90
+ ownership of such entity.
91
+
92
+ 2. License Grants and Conditions
93
+ --------------------------------
94
+
95
+ 2.1. Grants
96
+
97
+ Each Contributor hereby grants You a world-wide, royalty-free,
98
+ non-exclusive license:
99
+
100
+ (a) under intellectual property rights (other than patent or trademark)
101
+ Licensable by such Contributor to use, reproduce, make available,
102
+ modify, display, perform, distribute, and otherwise exploit its
103
+ Contributions, either on an unmodified basis, with Modifications, or
104
+ as part of a Larger Work; and
105
+
106
+ (b) under Patent Claims of such Contributor to make, use, sell, offer
107
+ for sale, have made, import, and otherwise transfer either its
108
+ Contributions or its Contributor Version.
109
+
110
+ 2.2. Effective Date
111
+
112
+ The licenses granted in Section 2.1 with respect to any Contribution
113
+ become effective for each Contribution on the date the Contributor first
114
+ distributes such Contribution.
115
+
116
+ 2.3. Limitations on Grant Scope
117
+
118
+ The licenses granted in this Section 2 are the only rights granted under
119
+ this License. No additional rights or licenses will be implied from the
120
+ distribution or licensing of Covered Software under this License.
121
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
122
+ Contributor:
123
+
124
+ (a) for any code that a Contributor has removed from Covered Software;
125
+ or
126
+
127
+ (b) for infringements caused by: (i) Your and any other third party's
128
+ modifications of Covered Software, or (ii) the combination of its
129
+ Contributions with other software (except as part of its Contributor
130
+ Version); or
131
+
132
+ (c) under Patent Claims infringed by Covered Software in the absence of
133
+ its Contributions.
134
+
135
+ This License does not grant any rights in the trademarks, service marks,
136
+ or logos of any Contributor (except as may be necessary to comply with
137
+ the notice requirements in Section 3.4).
138
+
139
+ 2.4. Subsequent Licenses
140
+
141
+ No Contributor makes additional grants as a result of Your choice to
142
+ distribute the Covered Software under a subsequent version of this
143
+ License (see Section 10.2) or under the terms of a Secondary License (if
144
+ permitted under the terms of Section 3.3).
145
+
146
+ 2.5. Representation
147
+
148
+ Each Contributor represents that the Contributor believes its
149
+ Contributions are its original creation(s) or it has sufficient rights
150
+ to grant the rights to its Contributions conveyed by this License.
151
+
152
+ 2.6. Fair Use
153
+
154
+ This License is not intended to limit any rights You have under
155
+ applicable copyright doctrines of fair use, fair dealing, or other
156
+ equivalents.
157
+
158
+ 2.7. Conditions
159
+
160
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
161
+ in Section 2.1.
162
+
163
+ 3. Responsibilities
164
+ -------------------
165
+
166
+ 3.1. Distribution of Source Form
167
+
168
+ All distribution of Covered Software in Source Code Form, including any
169
+ Modifications that You create or to which You contribute, must be under
170
+ the terms of this License. You must inform recipients that the Source
171
+ Code Form of the Covered Software is governed by the terms of this
172
+ License, and how they can obtain a copy of this License. You may not
173
+ attempt to alter or restrict the recipients' rights in the Source Code
174
+ Form.
175
+
176
+ 3.2. Distribution of Executable Form
177
+
178
+ If You distribute Covered Software in Executable Form then:
179
+
180
+ (a) such Covered Software must also be made available in Source Code
181
+ Form, as described in Section 3.1, and You must inform recipients of
182
+ the Executable Form how they can obtain a copy of such Source Code
183
+ Form by reasonable means in a timely manner, at a charge no more
184
+ than the cost of distribution to the recipient; and
185
+
186
+ (b) You may distribute such Executable Form under the terms of this
187
+ License, or sublicense it under different terms, provided that the
188
+ license for the Executable Form does not attempt to limit or alter
189
+ the recipients' rights in the Source Code Form under this License.
190
+
191
+ 3.3. Distribution of a Larger Work
192
+
193
+ You may create and distribute a Larger Work under terms of Your choice,
194
+ provided that You also comply with the requirements of this License for
195
+ the Covered Software. If the Larger Work is a combination of Covered
196
+ Software with a work governed by one or more Secondary Licenses, and the
197
+ Covered Software is not Incompatible With Secondary Licenses, this
198
+ License permits You to additionally distribute such Covered Software
199
+ under the terms of such Secondary License(s), so that the recipient of
200
+ the Larger Work may, at their option, further distribute the Covered
201
+ Software under the terms of either this License or such Secondary
202
+ License(s).
203
+
204
+ 3.4. Notices
205
+
206
+ You may not remove or alter the substance of any license notices
207
+ (including copyright notices, patent notices, disclaimers of warranty,
208
+ or limitations of liability) contained within the Source Code Form of
209
+ the Covered Software, except that You may alter any license notices to
210
+ the extent required to remedy known factual inaccuracies.
211
+
212
+ 3.5. Application of Additional Terms
213
+
214
+ You may choose to offer, and to charge a fee for, warranty, support,
215
+ indemnity or liability obligations to one or more recipients of Covered
216
+ Software. However, You may do so only on Your own behalf, and not on
217
+ behalf of any Contributor. You must make it absolutely clear that any
218
+ such warranty, support, indemnity, or liability obligation is offered by
219
+ You alone, and You hereby agree to indemnify every Contributor for any
220
+ liability incurred by such Contributor as a result of warranty, support,
221
+ indemnity or liability terms You offer. You may include additional
222
+ disclaimers of warranty and limitations of liability specific to any
223
+ jurisdiction.
224
+
225
+ 4. Inability to Comply Due to Statute or Regulation
226
+ ---------------------------------------------------
227
+
228
+ If it is impossible for You to comply with any of the terms of this
229
+ License with respect to some or all of the Covered Software due to
230
+ statute, judicial order, or regulation then You must: (a) comply with
231
+ the terms of this License to the maximum extent possible; and (b)
232
+ describe the limitations and the code they affect. Such description must
233
+ be placed in a text file included with all distributions of the Covered
234
+ Software under this License. Except to the extent prohibited by statute
235
+ or regulation, such description must be sufficiently detailed for a
236
+ recipient of ordinary skill to be able to understand it.
237
+
238
+ 5. Termination
239
+ --------------
240
+
241
+ 5.1. The rights granted under this License will terminate automatically
242
+ if You fail to comply with any of its terms. However, if You become
243
+ compliant, then the rights granted under this License from a particular
244
+ Contributor are reinstated (a) provisionally, unless and until such
245
+ Contributor explicitly and finally terminates Your grants, and (b) on an
246
+ ongoing basis, if such Contributor fails to notify You of the
247
+ non-compliance by some reasonable means prior to 60 days after You have
248
+ come back into compliance. Moreover, Your grants from a particular
249
+ Contributor are reinstated on an ongoing basis if such Contributor
250
+ notifies You of the non-compliance by some reasonable means, this is the
251
+ first time You have received notice of non-compliance with this License
252
+ from such Contributor, and You become compliant prior to 30 days after
253
+ Your receipt of the notice.
254
+
255
+ 5.2. If You initiate litigation against any entity by asserting a patent
256
+ infringement claim (excluding declaratory judgment actions,
257
+ counter-claims, and cross-claims) alleging that a Contributor Version
258
+ directly or indirectly infringes any patent, then the rights granted to
259
+ You by any and all Contributors for the Covered Software under Section
260
+ 2.1 of this License shall terminate.
261
+
262
+ 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
263
+ end user license agreements (excluding distributors and resellers) which
264
+ have been validly granted by You or Your distributors under this License
265
+ prior to termination shall survive termination.
266
+
267
+ ************************************************************************
268
+ * *
269
+ * 6. Disclaimer of Warranty *
270
+ * ------------------------- *
271
+ * *
272
+ * Covered Software is provided under this License on an "as is" *
273
+ * basis, without warranty of any kind, either expressed, implied, or *
274
+ * statutory, including, without limitation, warranties that the *
275
+ * Covered Software is free of defects, merchantable, fit for a *
276
+ * particular purpose or non-infringing. The entire risk as to the *
277
+ * quality and performance of the Covered Software is with You. *
278
+ * Should any Covered Software prove defective in any respect, You *
279
+ * (not any Contributor) assume the cost of any necessary servicing, *
280
+ * repair, or correction. This disclaimer of warranty constitutes an *
281
+ * essential part of this License. No use of any Covered Software is *
282
+ * authorized under this License except under this disclaimer. *
283
+ * *
284
+ ************************************************************************
285
+
286
+ ************************************************************************
287
+ * *
288
+ * 7. Limitation of Liability *
289
+ * -------------------------- *
290
+ * *
291
+ * Under no circumstances and under no legal theory, whether tort *
292
+ * (including negligence), contract, or otherwise, shall any *
293
+ * Contributor, or anyone who distributes Covered Software as *
294
+ * permitted above, be liable to You for any direct, indirect, *
295
+ * special, incidental, or consequential damages of any character *
296
+ * including, without limitation, damages for lost profits, loss of *
297
+ * goodwill, work stoppage, computer failure or malfunction, or any *
298
+ * and all other commercial damages or losses, even if such party *
299
+ * shall have been informed of the possibility of such damages. This *
300
+ * limitation of liability shall not apply to liability for death or *
301
+ * personal injury resulting from such party's negligence to the *
302
+ * extent applicable law prohibits such limitation. Some *
303
+ * jurisdictions do not allow the exclusion or limitation of *
304
+ * incidental or consequential damages, so this exclusion and *
305
+ * limitation may not apply to You. *
306
+ * *
307
+ ************************************************************************
308
+
309
+ 8. Litigation
310
+ -------------
311
+
312
+ Any litigation relating to this License may be brought only in the
313
+ courts of a jurisdiction where the defendant maintains its principal
314
+ place of business and such litigation shall be governed by laws of that
315
+ jurisdiction, without reference to its conflict-of-law provisions.
316
+ Nothing in this Section shall prevent a party's ability to bring
317
+ cross-claims or counter-claims.
318
+
319
+ 9. Miscellaneous
320
+ ----------------
321
+
322
+ This License represents the complete agreement concerning the subject
323
+ matter hereof. If any provision of this License is held to be
324
+ unenforceable, such provision shall be reformed only to the extent
325
+ necessary to make it enforceable. Any law or regulation which provides
326
+ that the language of a contract shall be construed against the drafter
327
+ shall not be used to construe this License against a Contributor.
328
+
329
+ 10. Versions of the License
330
+ ---------------------------
331
+
332
+ 10.1. New Versions
333
+
334
+ Mozilla Foundation is the license steward. Except as provided in Section
335
+ 10.3, no one other than the license steward has the right to modify or
336
+ publish new versions of this License. Each version will be given a
337
+ distinguishing version number.
338
+
339
+ 10.2. Effect of New Versions
340
+
341
+ You may distribute the Covered Software under the terms of the version
342
+ of the License under which You originally received the Covered Software,
343
+ or under the terms of any subsequent version published by the license
344
+ steward.
345
+
346
+ 10.3. Modified Versions
347
+
348
+ If you create software not governed by this License, and you want to
349
+ create a new license for such software, you may create and use a
350
+ modified version of this License if you rename the license and remove
351
+ any references to the name of the license steward (except to note that
352
+ such modified license differs from this License).
353
+
354
+ 10.4. Distributing Source Code Form that is Incompatible With Secondary
355
+ Licenses
356
+
357
+ If You choose to distribute Source Code Form that is Incompatible With
358
+ Secondary Licenses under the terms of this version of the License, the
359
+ notice described in Exhibit B of this License must be attached.
360
+
361
+ Exhibit A - Source Code Form License Notice
362
+ -------------------------------------------
363
+
364
+ This Source Code Form is subject to the terms of the Mozilla Public
365
+ License, v. 2.0. If a copy of the MPL was not distributed with this
366
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
367
+
368
+ If it is not possible or desirable to put the notice in a particular
369
+ file, then You may include the notice in a location (such as a LICENSE
370
+ file in a relevant directory) where a recipient would be likely to look
371
+ for such a notice.
372
+
373
+ You may add additional accurate notices of copyright ownership.
374
+
375
+ Exhibit B - "Incompatible With Secondary Licenses" Notice
376
+ ---------------------------------------------------------
377
+
378
+ This Source Code Form is "Incompatible With Secondary Licenses", as
379
+ defined by the Mozilla Public License, v. 2.0.
380
+ Classifier: Programming Language :: Python :: 3.8
381
+ Classifier: Programming Language :: Python :: 3.9
382
+ Classifier: Programming Language :: Python :: 3.10
383
+ Classifier: Programming Language :: Python :: 3.11
384
+ Classifier: Programming Language :: Python :: 3.12
385
+ Classifier: Programming Language :: Python :: 3.13
386
+ Classifier: Programming Language :: Python :: Implementation :: CPython
387
+ Requires-Python: >=3.8
388
+ Requires-Dist: click>=8.1.7
389
+ Requires-Dist: python-minifier>=2.11.3
390
+ Requires-Dist: rtoml>=0.11.0
391
+ Requires-Dist: ruff>=0.8.0
392
+ Requires-Dist: termcolor>=2.4.0
393
+ Description-Content-Type: text/markdown
394
+
395
+ # effectual
396
+
397
+ */ɪˈfek.tʃu.əl/ meaning effective and successful*
398
+
399
+ ## Why?
400
+
401
+ Sometimes you want a single portable python file without having to make a platform specific executable or a dependency-less .pyz! Basically me trying to make [Vite](https://vite.dev/) for python (badly) :(
402
+
403
+ ## When not to use this
404
+
405
+ - The python package requires access to specific files like [CustomTkinter](https://github.com/TomSchimansky/CustomTkinter/wiki/Packaging#windows-pyinstaller-auto-py-to-exe) and [Pillow](https://python-pillow.org/)
406
+ - Incredibly version specific code, for example something that won't run on a slightly different python version or operating system
407
+
408
+ # Setup
409
+
410
+ If you haven't already, run:
411
+
412
+ uv init
413
+
414
+ Then to install effectual run:
415
+
416
+ uv add effectual --dev
417
+
418
+ Finally add the following lines to your pyproject.toml and configure to your hearts desire
419
+
420
+ ```TOML
421
+ [tool.effectual]
422
+
423
+ sourceDirectory = "./src/"
424
+ outputDirectory = "./dist/"
425
+ outputFileName = "bundle.pyz"
426
+ minification = true
427
+ compressionLevel=5
428
+ ```
429
+
430
+ # Bundling
431
+
432
+ ## Development
433
+
434
+ To bundle in dev mode use:
435
+
436
+ uv run efec dev
437
+
438
+ This is like what [esBuild](https://esbuild.github.io/) does for vite
439
+
440
+ ## Production
441
+
442
+ To build a distributable .pyz file run:
443
+
444
+ uv run efec dist
445
+
446
+ This is like what what [Rollup](https://rollupjs.org/) does for vite
447
+
448
+ # To be added
449
+
450
+ - [Treeshaking](https://webpack.js.org/guides/tree-shaking/)
451
+ - [Pre-bundling](https://vite.dev/guide/dep-pre-bundling)
452
+ - Plugin and loader system
453
+
454
+ # Contributions
455
+
456
+ All contributions are welcome, I'm not the best in the world at project management but if you think you can add or improve anything please send over a pull request
@@ -1,14 +1,14 @@
1
1
  [project]
2
2
  name = "effectual"
3
- version = "0.3.0"
3
+ version = "0.3.2"
4
4
  description = "A python package/script bundler"
5
5
  readme = "README.md"
6
+ license = {file = "LICENSE"}
6
7
  authors = [
7
8
  { name = "jake", email = "jakewdr@proton.me" }
8
9
  ]
9
10
  requires-python = ">=3.8"
10
11
  classifiers = [
11
- "License :: OSI Approved :: MIT License",
12
12
  "Programming Language :: Python :: 3.8",
13
13
  "Programming Language :: Python :: 3.9",
14
14
  "Programming Language :: Python :: 3.10",
@@ -30,6 +30,9 @@ dependencies = [
30
30
  "termcolor>=2.4.0",
31
31
  ]
32
32
 
33
+ [project.urls]
34
+ Homepage = "https://github.com/effectualpy/effectual"
35
+
33
36
  [project.scripts]
34
37
  efec = "effectual:main"
35
38
 
@@ -18,6 +18,7 @@ def dev():
18
18
  dev.main()
19
19
 
20
20
  main.add_command(dist)
21
+ main.add_command(dev)
21
22
 
22
23
  if __name__ == "__main__":
23
24
  main()
@@ -1,5 +1,5 @@
1
1
  version = 1
2
- requires-python = ">=3.11"
2
+ requires-python = ">=3.8"
3
3
 
4
4
  [[package]]
5
5
  name = "click"
@@ -24,7 +24,7 @@ wheels = [
24
24
 
25
25
  [[package]]
26
26
  name = "effectual"
27
- version = "0.1.0"
27
+ version = "0.3.2"
28
28
  source = { editable = "." }
29
29
  dependencies = [
30
30
  { name = "click" },
@@ -58,6 +58,18 @@ version = "0.11.0"
58
58
  source = { registry = "https://pypi.org/simple" }
59
59
  sdist = { url = "https://files.pythonhosted.org/packages/c8/67/ca8b92b2b8aa231d427999609dd289e6bc8511b4a6871e2b533871c9b3e3/rtoml-0.11.0.tar.gz", hash = "sha256:a1d1ec36261c47169934a6c0f713a6cdf917604b3f72a72a809c3a68384255d4", size = 23759 }
60
60
  wheels = [
61
+ { url = "https://files.pythonhosted.org/packages/8b/ad/f47140cdfb692a674bf267e91d526085a23c4f0043b21909d122f6af7121/rtoml-0.11.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:bbea5538d8e7a495878717743225bf261b097b42b17558d7f6876ec8ff700649", size = 315206 },
62
+ { url = "https://files.pythonhosted.org/packages/8d/02/a46f9431d6e6a06efece1a6e7f036dea1959562ecf4b9c1df5037d07b415/rtoml-0.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ec72c71ce1eec6a9a75a59c914644a92afed55625f88086418c8f610646f6c31", size = 307677 },
63
+ { url = "https://files.pythonhosted.org/packages/0f/9e/a1286bc6a359ff896d7dc5730e72b5ed37d61e4474cc663774df3a9fffbf/rtoml-0.11.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4161c01ee5cbf173382d4a55b26fc0d4a00ce68b9252c51cf6ee1a7b15d7922b", size = 348860 },
64
+ { url = "https://files.pythonhosted.org/packages/0f/8d/72953f989951334b951e0acc74a013838d949a539c16e9aa10ac0c72ea0a/rtoml-0.11.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ca19e750d2becefe482bd4ddcc3395816a0d1e69fbc562a18a0fe2f4b688ec70", size = 355892 },
65
+ { url = "https://files.pythonhosted.org/packages/3a/f9/0b94a42233c57c3d437dbe4462ba9f19b4b12e6e4b80d4ef87c404577c7a/rtoml-0.11.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:398a17548248d06844e125fd748f5fd507819652866e833db4114bd32fda30f6", size = 373214 },
66
+ { url = "https://files.pythonhosted.org/packages/18/f8/e4dc9e80af3776fd1bfdddb5f0b54d896f981c801081e24ebf6e1e061716/rtoml-0.11.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cb4c11a82a5ae89a4f5793dceed93e186032f1588e8f7ab3ebc48b8b54665a92", size = 498743 },
67
+ { url = "https://files.pythonhosted.org/packages/fa/c5/4404b50bc0a94ce6520ce8977cccd19dce1b3c9609ed645ebc081f97b75d/rtoml-0.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:384a580433edf011d8cdc683996866d0809721b7b9ab055c279a4bd51b5c7300", size = 341398 },
68
+ { url = "https://files.pythonhosted.org/packages/63/a1/1b7ba3aeccf1de3f393b89c5a9cd1abc96b6ba369a08b3fffe0c8f9964ef/rtoml-0.11.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c55295fac0e18af5a7b91dc8a308dd50fe0dbf26e439a86ff674290823ed010d", size = 352279 },
69
+ { url = "https://files.pythonhosted.org/packages/38/83/eb46482e771e6c6ef8a2d5ed062b8ee25ea015282bae274aa2e99d917766/rtoml-0.11.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b00ea0a3f14af57f1bdbb89b71f59c912d4682f9aa6a1a3a6729d210a599c64f", size = 527357 },
70
+ { url = "https://files.pythonhosted.org/packages/e9/f5/6117f44ab8c904491c6723e3e0add16c900eb738dc423af084ba96bf9646/rtoml-0.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2bde7832c792a95d3c2f1a55833d5f5ae745c701ff0c09ad3e935146670403ed", size = 512288 },
71
+ { url = "https://files.pythonhosted.org/packages/8e/2b/b6d4b26440130822bdc4291ae2969175083d74d8938a1ab2d40c39d7f3a9/rtoml-0.11.0-cp310-none-win32.whl", hash = "sha256:dc350452dcdd69b5c247d6a6951f4253a5bec93b9da621da96ced4e1edc1d42d", size = 221269 },
72
+ { url = "https://files.pythonhosted.org/packages/aa/a4/52028ce697a8b12fcaaed06fc8c3bd93bf8025c797720a21f4f3f9ca3d81/rtoml-0.11.0-cp310-none-win_amd64.whl", hash = "sha256:1836518858936ab435fff23805120760b759c7fa441d7150cdc6744d8d28e0ad", size = 230663 },
61
73
  { url = "https://files.pythonhosted.org/packages/53/bd/f42f86a1c0ec136a521ef59c790f08c3ed49bb794c5c97ff5bd212ef6740/rtoml-0.11.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:abf9a0f729040f99c7b1734c433919b19314843d0f1d597f2d82e448e210c60f", size = 315120 },
62
74
  { url = "https://files.pythonhosted.org/packages/f7/44/bbf2ac61444fa4986bb45e46a84b6ea41723234ee2c370b93cafde3015e0/rtoml-0.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:48a3504d58d9a0178947cf988841f2a771b63bb90155ad20ba4da93318ca2195", size = 307563 },
63
75
  { url = "https://files.pythonhosted.org/packages/7a/4c/4c063610404bb8200af18255e86174f0736cff0cc5bdae53cbbd1aafa830/rtoml-0.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56421e722d61ff09df0ae1d447ed1f8f109877281a091da1062165093bfe6291", size = 348665 },
@@ -84,6 +96,30 @@ wheels = [
84
96
  { url = "https://files.pythonhosted.org/packages/27/d3/20e26214e4736c10653477b1bd616c5f2a79571495c28dec725bbbae7cfb/rtoml-0.11.0-cp312-none-win32.whl", hash = "sha256:6e42385f510458f68587051a533cd0161653e1f2b381400a4873eab6f706940b", size = 217810 },
85
97
  { url = "https://files.pythonhosted.org/packages/df/7b/8d908a634ba31c27f8fe38a030e9406064960e1b87053bd45da683166044/rtoml-0.11.0-cp312-none-win_amd64.whl", hash = "sha256:fdce3405e50ba73a45acdf36a793e3563da04fc913c53d54852c5d6cf1eb6d25", size = 226747 },
86
98
  { url = "https://files.pythonhosted.org/packages/87/53/01fcd15027bee67947d1965bf610f7f68b9c037ffb833eaf91ec16a394fb/rtoml-0.11.0-cp312-none-win_arm64.whl", hash = "sha256:affc854919b46555f37d1408cb67f06f7453744bf1c5c1c53b69ed8b5227a28d", size = 218370 },
99
+ { url = "https://files.pythonhosted.org/packages/00/42/41c60c848438cd10633db8608b8643fb4d0e480862c8671a6e03375e61b2/rtoml-0.11.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:377d24e0c9aac0aa92ff7f4f48d90298c005e4b01a97b532d4a9cc18c180a29c", size = 316114 },
100
+ { url = "https://files.pythonhosted.org/packages/d7/51/f740393b63ec5a53bdbca865d0b6aaf78d8222b32238e01f8c3ce1b3697e/rtoml-0.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a557bd7c40afbdad121f952dd4b87a432c8fc50fea795b44889b84d5f8adea7e", size = 308489 },
101
+ { url = "https://files.pythonhosted.org/packages/c8/78/dea6bf1b9eb4643352264bf9255be4c764c895caa200f2c7e868112780f7/rtoml-0.11.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91c9d5b3a8f7efcee02cd250cedebe0b02ca65abd7dfc20b5f69a16b68808d53", size = 350193 },
102
+ { url = "https://files.pythonhosted.org/packages/00/c4/c9ee2db9f17efccf19127d3b8da0c7f4955524310cc4110f87d6e1671d03/rtoml-0.11.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb53b953925ea0f59d1892307503ceb21b66724b7929186d9dc7a53599075b51", size = 356947 },
103
+ { url = "https://files.pythonhosted.org/packages/bc/c0/17cf32ae304a2fca29fd5ecaba5b477219c3b56e5b957c51fa3e4a316a55/rtoml-0.11.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4aab5871b86e557087d2042136cde2528ad5d2fd34e4261b43a4e66dcaaacd1d", size = 374261 },
104
+ { url = "https://files.pythonhosted.org/packages/91/c5/6f8d1536965db981584d381aad19bdd9513d894924d819777bff808be40b/rtoml-0.11.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:992646793a06fc6925171301440f56d7c44cd8302a0f1f573935e92e30f50a8e", size = 499588 },
105
+ { url = "https://files.pythonhosted.org/packages/59/52/5a2c140056f5e426cfb1c692d1859ce408c5291ebbb528127469b0d43fd6/rtoml-0.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8dd9e35799ad86aba60a742c73bfe036210f2d504ab40e623d8360e43cc34f4", size = 342779 },
106
+ { url = "https://files.pythonhosted.org/packages/db/7a/0fbaf9b5402e5f15cd6324ea5a79ade27d142863c898e5a1cd5da5868131/rtoml-0.11.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0658ed9376fddb96803e2d042d1b86056f9e8a81e31ee24cca638553ed3aee25", size = 353221 },
107
+ { url = "https://files.pythonhosted.org/packages/b9/a0/4bba0b00330002b523c5cbaaa26cc5aac014ee50dbdffedecbefdd4a78d8/rtoml-0.11.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d15df762e4d513e979158c7dd670bf6df5856b768ac0107bfef0330865229f1", size = 528931 },
108
+ { url = "https://files.pythonhosted.org/packages/fb/30/9b222935a2ba7772ef31ea878a6a6fe7225cb53338f4366042d3686d5af0/rtoml-0.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d931274a54fc770601735f611f03bc44032226b549536a16c2479a455a86e1d2", size = 513194 },
109
+ { url = "https://files.pythonhosted.org/packages/01/dd/4ab002d01f40e476d8cf324462b22edbb48f51e1462f3edbe6c011f5b33a/rtoml-0.11.0-cp38-none-win32.whl", hash = "sha256:e8dfb1460d3fc0501720dbee32acf1100d8ca4d02fbf634e956587f8d969632f", size = 221951 },
110
+ { url = "https://files.pythonhosted.org/packages/2a/fd/ee4ce1646d2b7c04f6cb8b4a17111cf905b13a789d6aee8dd9cce5009745/rtoml-0.11.0-cp38-none-win_amd64.whl", hash = "sha256:38f805d8030b276b3ba19561cde1ac0c74b680b550e284a9e85f4d026be7d9ca", size = 231753 },
111
+ { url = "https://files.pythonhosted.org/packages/73/8e/112a6d9d66192990e06168a577df41d155a2e1e1e341538e1b94324f872f/rtoml-0.11.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:15511219ff53406b42da8fb14ecf1ab580ff1bdbdb5d76405df3d97c155fb997", size = 316075 },
112
+ { url = "https://files.pythonhosted.org/packages/40/bb/f62d369d0ac86a39feb924554c9a0a99bdfdc58198787f7599f55d74e958/rtoml-0.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:faeb038772540ad3344fd73329eae3a9e84614c6b25c848dad3258647b3f4abf", size = 308430 },
113
+ { url = "https://files.pythonhosted.org/packages/bc/8b/52f8d5b4729ee232e4facf80e9a1ab3ef9786a98047e66ee494f057ce7e6/rtoml-0.11.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52b410561af66ca5689a5c21b6bd31036d5839bb97b06cec71ac1147109f8fb6", size = 350144 },
114
+ { url = "https://files.pythonhosted.org/packages/08/51/db29334d058c44e307ee5e301992017fd7720b3778672b0e0383c00c43fa/rtoml-0.11.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fe9938d4793b873e53bb6fc12e4a5b88820b8596a3eaabee67cc3563f080eb85", size = 356778 },
115
+ { url = "https://files.pythonhosted.org/packages/82/fd/51fdeb9c8848f902b18094f5573ed20c05c2757d2a54c386d589f36f2f63/rtoml-0.11.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5178ebb7442d9e24448e76d4d32f07aa75acbd765563a2accf50cfb262163b18", size = 373985 },
116
+ { url = "https://files.pythonhosted.org/packages/97/21/6ad2a95c1dd0531965db7eca091b68fc95a76321c2782d5ab20e5473b949/rtoml-0.11.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d0e6f5c936a5d5e2c26d2443a8c861448885cc099f351982c3f7f3a0d1ce114", size = 499569 },
117
+ { url = "https://files.pythonhosted.org/packages/16/64/c739f603413f5511d8319d65422f763636c31b6c6a785b046e1ad9fa1cb8/rtoml-0.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b750450e1ac63eb43dfbba3612dbb1830b6d90cc22c6ea78d7f2322ec698727d", size = 342467 },
118
+ { url = "https://files.pythonhosted.org/packages/4e/ac/b668798f0bd498537afc76707ea1abe93938f54ac04aad1cacb1228b1d64/rtoml-0.11.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d41b865acf22bd547e771dfac3394e7dbf14586f236f20b70d3058a89352027", size = 353165 },
119
+ { url = "https://files.pythonhosted.org/packages/b7/f6/9c1beb1a13cf036648fe82c3182c47b2fd3245276c7eb02a9758e0c4cfa3/rtoml-0.11.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8362905a25f3f3b0a6ca015877811d1bd4131ac3dd16f8acd4229e3f40ebd2e5", size = 528707 },
120
+ { url = "https://files.pythonhosted.org/packages/b8/a5/135c2d6a9494d77c0dda752f909187ea00a7573f22912c99190b738f736c/rtoml-0.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e42a8536bce3ce91ee8ea867caf5bbc1caedbf477820b14498e85e6d539592aa", size = 513012 },
121
+ { url = "https://files.pythonhosted.org/packages/2e/b3/a796ffb86dc6c8cd6644cee9ade77660db862d26a6cdeb890bea2e0ee80f/rtoml-0.11.0-cp39-none-win32.whl", hash = "sha256:84b83f2c57a8c4f65c0a6f0c3dbbe1ecb9082757b1fde02b2eb4781040483725", size = 221907 },
122
+ { url = "https://files.pythonhosted.org/packages/01/a0/e66cbe4197dbe142e0fecc4ae620b9bc17cf4fcd01544f84782daff29b91/rtoml-0.11.0-cp39-none-win_amd64.whl", hash = "sha256:fe6594d1a2f1948abf74ecfa24425b4ed7817b93c3daeb1ec779b5fbf935f388", size = 231461 },
87
123
  ]
88
124
 
89
125
  [[package]]
@@ -113,9 +149,9 @@ wheels = [
113
149
 
114
150
  [[package]]
115
151
  name = "termcolor"
116
- version = "2.5.0"
152
+ version = "2.4.0"
117
153
  source = { registry = "https://pypi.org/simple" }
118
- sdist = { url = "https://files.pythonhosted.org/packages/37/72/88311445fd44c455c7d553e61f95412cf89054308a1aa2434ab835075fc5/termcolor-2.5.0.tar.gz", hash = "sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f", size = 13057 }
154
+ sdist = { url = "https://files.pythonhosted.org/packages/10/56/d7d66a84f96d804155f6ff2873d065368b25a07222a6fd51c4f24ef6d764/termcolor-2.4.0.tar.gz", hash = "sha256:aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a", size = 12664 }
119
155
  wheels = [
120
- { url = "https://files.pythonhosted.org/packages/7f/be/df630c387a0a054815d60be6a97eb4e8f17385d5d6fe660e1c02750062b4/termcolor-2.5.0-py3-none-any.whl", hash = "sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8", size = 7755 },
156
+ { url = "https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63", size = 7719 },
121
157
  ]
effectual-0.3.0/PKG-INFO DELETED
@@ -1,83 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: effectual
3
- Version: 0.3.0
4
- Summary: A python package/script bundler
5
- Author-email: jake <jakewdr@proton.me>
6
- Classifier: License :: OSI Approved :: MIT License
7
- Classifier: Programming Language :: Python :: 3.8
8
- Classifier: Programming Language :: Python :: 3.9
9
- Classifier: Programming Language :: Python :: 3.10
10
- Classifier: Programming Language :: Python :: 3.11
11
- Classifier: Programming Language :: Python :: 3.12
12
- Classifier: Programming Language :: Python :: 3.13
13
- Classifier: Programming Language :: Python :: Implementation :: CPython
14
- Requires-Python: >=3.8
15
- Requires-Dist: click>=8.1.7
16
- Requires-Dist: python-minifier>=2.11.3
17
- Requires-Dist: rtoml>=0.11.0
18
- Requires-Dist: ruff>=0.8.0
19
- Requires-Dist: termcolor>=2.4.0
20
- Description-Content-Type: text/markdown
21
-
22
- # effectual
23
-
24
- */ɪˈfek.tʃu.əl/ meaning effective and successful*
25
-
26
- ## Why?
27
-
28
- Sometimes you want a single portable python file without having to make a platform specific executable or a dependency-less .pyz! Basically me trying to make [Vite](https://vite.dev/) for python (badly) :(
29
-
30
- ## When not to use this
31
-
32
- - The python package requires access to specific files like [CustomTkinter](https://github.com/TomSchimansky/CustomTkinter/wiki/Packaging#windows-pyinstaller-auto-py-to-exe) and [Pillow](https://python-pillow.org/)
33
- - Incredibly version specific code, for example something that won't run on a slightly different python version or operating system
34
-
35
- # Setup
36
-
37
- If you haven't already, run:
38
-
39
- uv init
40
-
41
- Then to install effectual run:
42
-
43
- uv add effectual --dev
44
-
45
- Finally add the following lines to your pyproject.toml and configure to your hearts desire
46
-
47
- ```TOML
48
- [tool.effectual]
49
-
50
- sourceDirectory = "./src/"
51
- outputDirectory = "./dist/"
52
- outputFileName = "bundle.pyz"
53
- minification = true
54
- compressionLevel=5
55
- ```
56
-
57
- # Bundling
58
-
59
- ## Development
60
-
61
- To bundle in dev mode use:
62
-
63
- uv run efec dev
64
-
65
- This is like what [esBuild](https://esbuild.github.io/) does for vite
66
-
67
- ## Production
68
-
69
- To build a distributable .pyz file run:
70
-
71
- uv run efec dist
72
-
73
- This is like what what [Rollup](https://rollupjs.org/) does for vite
74
-
75
- # To be added
76
-
77
- - [Treeshaking](https://webpack.js.org/guides/tree-shaking/)
78
- - [Pre-bundling](https://vite.dev/guide/dep-pre-bundling)
79
- - Plugin and loader system
80
-
81
- # Contributions
82
-
83
- All contributions are welcome, I'm not the best in the world at project management but if you think you can add or improve anything please send over a pull request
File without changes
File without changes
File without changes
File without changes