Bython
Python with braces. Because Python is awesome, but whitespace is awful.
Bython is a Python preprosessor which translates curly brackets into indentation.
Content of README:
Key features
-
"Forget" about indentaition. You should still write beautiful code, but if you mess up with tabs/spaces, or copy one piece of code to another that uses a different indentation style, it won't break.
-
Uses Python for interpretation, that means that all of your existing modules, like NumPy and Matplotlib still works.
Code example
def print_message(num_of_times) {
for i in range(num_of_times) {
print("Bython is awesome!");
}
}
if __name__ == "__main__" {
print_message(10);
}
Installation
You can install Bython directly from PyPI using pip (with or without sudo -H, depending on your Python installation):
$ sudo -H pip3 install bython
If you for some reason want to install it from the git repository you can use git clone and do a local install instead:
$ git clone https://github.com/mathialo/bython.git
$ cd bython
$ sudo -H pip3 install .
The git version is sometimes a tiny bit ahead of the PyPI version, but not significantly.
To uninstall, simply run
$ sudo pip3 uninstall bython
which will undo all the changes.
Quick intro
Bython works by first translating Bython-files (suggested file ending: .by) into Python-files, and then using Python to run them. You therefore need a working installation of Python for Bython to work.
To run a Bython program, simply type
$ bython source.by arg1 arg2 ...
to run source.by with arg1, arg2, ... as command line arguments. If you want more details on how to run Bython files (flags, etc), type
$ bython -h
to print the built-in help page. You can also consult the man page by typing
$ man bython
Bython also includes a translator from Python to Bython. This is found via the py2by command:
$ py2by test.py
This will create a Bython file called test.by. A full explanation of py2by, is found by typing
$ py2by -h
or by consulting the man page:
$ man py2by
For a more in-depth intro, consult the bython introduction
Structure of the repository
At the moment, Bython is written in Python. The git repository is structured into 4 directories:
bythoncontains a Python package containing the parser and other utilities used by the main scriptetccontains manual pages and other auxillary filesscriptscontains the runnable Python scripts, ie the ones run from the shelltestcasescontains a couple of sample *.by and *.py files intended for testing the implementation
Release files for Bython 0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bython-0.8.tar.gz | 10.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bython-0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.9 kB
Release files / bython-0.8.tar.gz
| Download URL | bython-0.8.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
49c73aa53f17e0180f6789cc434227f24ea5c1590cc67ce0ac8d799f506f3972
|
|
BLAKE2b-256 checksum How to use checksums |
9fb1b0af10aac41ddb0a0911f47d282f45633cc1fa72e7b5a240cb2673ca0115
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.2
|
Release files / bython-0.8-py3-none-any.whl
| Download URL | bython-0.8-py3-none-any.whl |
|---|---|
| Size | 14.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
94c4a13724578a0bed40c2679a1d89de06dcb84e77f17cb2b8668312493cc3a4
|
|
BLAKE2b-256 checksum How to use checksums |
13beb45cae6a63c9c131b83664516fc3460a3b9644d68f5252bbd29288022764
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.2
|