New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

pymini

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pymini

Minify python

  • 0.1.1
  • PyPI
  • Socket score

Maintainers
1

pymini

Python minifier. Built to operate on entire libraries, persisting and supporting minification across files.

Installation

pip install pymini

Usage

pymini [options] <file>

To uglify a library, use the following options to preserve your ability to import and use the library's publicly-facing utilities.

pymini --keep-module-names --keep-global-variables <file>

Comparison

We run comparisons against the following:

  • pyminify - https://github.com/dflook/python-minifier
  • pyminifier - https://github.com/liftoff/pyminifier
  • mnfy - https://github.com/brettcannon/mnfy (does not work on Python >3.4)

To repeat our results, run the following to setup.

pip install python-minifier
pip install setuptools==57.5.0 && pip install pyminifier  # hack to get pyminifer to install
pip install mnfy  # if you're running python3.4
pip install pymini  # ours

Then, run the following to get mini'd versions of the sample file sample/test.py, which comes from pyminifer's repository.

mkdir -p out
pyminify --rename-globals --remove-literal-statements sample/test.py > out/pyminify.py
pyminifier --obfuscate sample/test.py > out/pyminifier.py
python -m mnfy sample/test.py > out/mnfy.py
uglipy sample/test.py > out/pyminiest.py

Then, run ls -lh out. You should see the following.

total 24
-rw-r--r--  1 alvinwan  staff   414B Nov 25 01:22 pyminiest.py
-rw-r--r--  1 alvinwan  staff   602B Nov 25 01:19 pyminifier.py
-rw-r--r--  1 alvinwan  staff   490B Nov 25 01:18 pyminify.py

By comparison, the original file size was 1355B; uglipy achieves the smallest file size, 16% smaller than pyminify and 30% smaller than pyminifier, improving the best possible obfuscated file size reduction from 64% to 71%. We can also test against test2.py, which comes from pyminify's repository.

-rw-r--r--  1 alvinwan  staff   914B Nov 25 02:09 pyminiest.py
-rw-r--r--  1 alvinwan  staff   1.4K Nov 25 01:32 pyminifier.py
-rw-r--r--  1 alvinwan  staff   977B Nov 25 01:32 pyminify.py

By comparison, the original file size was 1990B. uglipy's file size is 6% smaller than pyminify and 34% smaller than pyminifier, improving the best possible obfuscated file size reduction from 51% to 54%.

Develop

Run tests using the following, from the root directory

py.test --doctest-modules

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc