Skip to main content

Strips cython code (.pyx files) down to python code for code analysis tools.

Project description

uncythonize

This script strips cython code (.pyx files) down to python code, by replacing cython declarations (cdef) with python equivalents and stripping away type annotations.

Limitations

This is a simple script working based on text substitutions. It does not handle, or even claim to handle, all valid cython syntax.

Python 3.5 and above is required.

UTF-8 input is required.

Installation

$ pip install uncythonize

Usage

$ uncythonize.py filename.pyx

will produce a corresponding file filename.pyx.py

That file can then be run through various syntax checkers and linters, such as pyflakes, pydocstyle, pylint, vulture, pystrict3.

It is useful to substitute in output of these tools back the original filename, filename.pyx.py -> filename.pyx

Line numbering is preserved by this tool.

More than one file can be processed.

Contributing

Contributions are welcome! Please open pull requests.

If you adapt the script to handle your use case, please add example scripts as test cases.

TODO

  • setup CI testing

Licence

This code was originally developed at https://github.com/guyskk/validr by guyskk, and is redistributed here under the GPL-3 licence.

Some modifications were made by JohannesBuchner to support testing the UltraNest repository.

Release Notes

0.1.0 (2020-03-07)

  • First version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uncythonize-0.1.1.tar.gz (20.6 kB view details)

Uploaded Source

File details

Details for the file uncythonize-0.1.1.tar.gz.

File metadata

  • Download URL: uncythonize-0.1.1.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for uncythonize-0.1.1.tar.gz
Algorithm Hash digest
SHA256 430a15ac95e23c58f856651f6d066797ffe598e452b0817c6c729283775e97a1
MD5 d967811dbd2518cb4ba41293ce5579c9
BLAKE2b-256 5698442e15afd335c4e7c9d55c23851dbb89da1d20f3da2a6a7db1e45354a153

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page