GithubHelp home page GithubHelp logo

interpy's Introduction

Interpy = Python String Interpolation

Interpy extends Python to support Ruby like string interpolation #{}. Quick example: print "Hello #{your_name}"

It is hightly optimized, and directly compiled to bytecode, so you will have the same Python speed when using it.

Installation

The installation of this package is quite simple, you only have to run pip install interpy.

Usage

All python files with string interpolation must have the following first line

# coding: interpy

Example:

# coding: interpy

package = "Interpy"
print "Enjoy #{package}!"

How it works

This package is inspired in Dropbox pyxl template engine.

Parsing

Interpy uses support for specifying source code encodings as described in PEP 263 to do what it does. The functionality was originally provided so that python developers could write code in non-ascii languages (eg. chinese variable names). Interpy creates a custom encoding called interpy which allows it to convert interpolated strings into regular python before the file is compiled. Once the interpy codec is registered, any file starting with # coding: interpy is run through the interpy parser before compilation.

Compiling

The above example would be compiled to this (in bytecode):

# coding: interpy

package = "Interpy"
print "Enjoy "+str(package)+"!"

Compatibility

This package is fully compatible with Python 2+, Python 3+ and PyPy

Why?

I really enjoyed Ruby String interpolation, and "".format(...) or "" % (...) seems very verbose to me. I'm lazy by nature ;)

interpy's People

Contributors

syrusakbary avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.