Skip to main content

Apple gyb, a simple python-based templating tool

Project description

# gyb
A pip-installable version of Apple's gyb python-based templating tool. To install:

pip install gyb

For help (assuming that the pip installed binaries path is in your `PATH`):

gyb -h

To use:

gyb file.ext.gyb -o file.ext

For details, see this great [blog post](https://nshipster.com/swift-gyb/).

## Summary (from `gyb -h`)

A GYB template consists of the following elements:

- Literal text which is inserted directly into the output
- `%%` or `$$` in literal text, which insert literal '%' and '$' symbols respectively.
- Substitutions of the form `${<python-expression>}`. The Python expression is converted to a string and the result is inserted into the output.
- Python code delimited by `%{...}%`. Typically used to inject definitions (functions, classes, variable bindings) into the evaluation context of the template. Common indentation is stripped, so you can add as much indentation to the beginning of this code as you like
- Lines beginning with optional whitespace followed by a single '%' and Python code. %-lines allow you to nest other constructs inside them. To close a level of nesting, use the `%end` construct.
- Lines beginning with optional whitespace and followed by a single '%' and the token "end", which close open constructs in %-lines.

## Some examples

Create implementations of all the math operators:

```
% for op,f in zip('+-*/', 'add sub mul div'.split()):
public static func ${op} (lhs:Self, rhs:Self ) -> Self { return lhs.${f}( rhs) }
% end
```

Define a variable:

```
%{ types = ('Float', 'Double') }%
```


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

gyb-1.0.2.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

gyb-1.0.2-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file gyb-1.0.2.tar.gz.

File metadata

  • Download URL: gyb-1.0.2.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/36.5.0.post20170921 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.2

File hashes

Hashes for gyb-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f55c5a4c01c273a73a5908193dbe99e1c9f8a9b2c85ceccb85ee60035fc46eb3
MD5 572e0fa70373d875de15c881f96e4eca
BLAKE2b-256 06b85f4f34b9865d63d1b90ae4d2cce12f0af6a1c443e2d172d77ec1d24aabca

See more details on using hashes here.

File details

Details for the file gyb-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: gyb-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/36.5.0.post20170921 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.2

File hashes

Hashes for gyb-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 68554e0310c8dabd09ed58220745be628c061f5353238662fe50db8e8c309b4e
MD5 1d3b0e76891e32e7da3010c9c047dcf0
BLAKE2b-256 356d7e8cdcbe5060c0aa893a1fa270ba7da544ab01f1fa61c550fd917c069125

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