Skip to main content
https://travis-ci.org/kevinconway/pycc.svg?branch=master

PyCC is a Python code optimizer. It rewrites your code to make it faster.

Developer and usage documentation <http://pycc.readthedocs.org/en/latest/>.

Basic Example

Symbol table (variable) lookups don’t seem expensive at first.

# awesome_module.py

MAGIC_NUMBER = 7

for x in xrange(10000000):

    MAGIC_NUMBER * MAGIC_NUMBER

Now let’s make a crude benchmark.

# Generate bytecode file to skip compilation at runtime.
python -m compileall awesome_module.py
# Now get a simple timer.
time python awesome_module.pyc

# real    0m0.923s
# user    0m0.920s
# sys     0m0.004s

What does PyCC have to say about it?

pycc-transform awesome_module.py --constants
MAGIC_NUMBER = 7
for x in xrange(10000000):
    (7 * 7)

Neat, but what good does that do?

pycc-compile awesome_module.py -- constants
time python awesome_module.pyc

# real    0m0.473s
# user    0m0.469s
# sys     0m0.004s

How To Get It

pip install pycc

License

Copyright 2014 Kevin Conway

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Contributing

All contributions to this project are protected under the agreement found in the CONTRIBUTING file. All contributors should read the agreement but, as a summary:

You give us the rights to maintain and distribute your code and we promise
to maintain an open source distribution of anything you contribute.

Release files for pycc 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pycc 2.0.0
File Size Uploaded
pycc-2.0.0.tar.gz 20.5 kB Details

Release files / pycc-2.0.0.tar.gz

Download URL pycc-2.0.0.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1d434bb964dfc584b940fac935732c3562e1a58a85db98712db3269a871e60fb
BLAKE2b-256 checksum
How to use checksums
874ad1f0e2ac05766aeb33f4d29668d997279da06b674fe056aa7876d2bd8318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

2.0.0 This release

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page