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.
- effectual-0.3.2/PKG-INFO +456 -0
- {effectual-0.3.0 → effectual-0.3.2}/pyproject.toml +5 -2
- {effectual-0.3.0 → effectual-0.3.2}/src/effectual/__init__.py +1 -0
- {effectual-0.3.0 → effectual-0.3.2}/uv.lock +41 -5
- effectual-0.3.0/PKG-INFO +0 -83
- {effectual-0.3.0 → effectual-0.3.2}/.gitignore +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/.python-version +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/LICENSE +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/README.md +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/src/effectual/build.py +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/src/effectual/colors.py +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/src/effectual/config.py +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/src/effectual/dev.py +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/src/effectual/fileHash.py +0 -0
- {effectual-0.3.0 → effectual-0.3.2}/src/effectual/minifier.py +0 -0
effectual-0.3.2/PKG-INFO
ADDED
@@ -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.
|
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
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
version = 1
|
2
|
-
requires-python = ">=3.
|
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.
|
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.
|
152
|
+
version = "2.4.0"
|
117
153
|
source = { registry = "https://pypi.org/simple" }
|
118
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
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/
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|