python with braces.
Project description
nestPython
"what if python, with braces, one line?"
SETUP
Install nestPython by executing the following:
$ pip install nestpython
After importing;
- In order to transpile a string from nestPython to python, use
nestpython.ncompile(str)
- In order to execute a nestPython string, use
nestpython.nexec(str)
- To transpile files and directories, use the
nestpython.files
module:nestpython.files.ncompile(file)
transpiles the specified file to a stringnestpython.files.ncompile_to(file)
transpiles the specified file to a new filenestpython.files.nexec(file)
executes the specified filenestpython.files.build(dir, new_dir)
transpiles a directory- arguments can be provided:
indent_amount=1
: determines the indentation increment in the resulting python filetransfer_other_files=True
: determines whether non-.npy (or .npx) files should be copied into the build directoryreplace_previous=False
: determines whether already built files should be replacederase_dir:bool=None
: determines whether the previously built directory should be completely erased. If not specified, you will be asked to specify in the consolecythonic:bool=None
: determines if code should be perceived as nestCython or nestPythontokenlog=False
: determines if tokenization progress should be loggednew_file:str=None
: determines where to compile a source file. Reverts to the original filename with a .py extension if unspecified
Use .npy
for nestPython files, .npx
for nestCython files.
FEATURING:
braces
Use {
, ;
and }
instead of indentation - indentation and newline characters in source files will be ignored. e.g.:
n = input('Enter Number: ');
if (n % 2 == 0) {
print('n is even')
} else {
print('n is odd')
}
Use ~{
as a shorthand for while True {
.
syntactical changes
Several keywords are altered:
Python | nestPython | Python | nestPython |
---|---|---|---|
def |
:= |
del |
~> |
return |
=> |
yield |
:> |
in |
-> |
and |
&& |
not in |
!> |
or |
|| |
is |
=& |
:= |
<- |
is not |
!=& |
case |
? |
lambda |
;= |
; |
,, |
-> |
>: |
// |
~/ |
+= 1 |
++ |
-= 1 |
-- |
{ |
-{ |
} |
}- |
A variable like return
will be replaced with return_
on transpilation. using pass
is never required, do-nothing braces can be left empty.
One-line functions can still be written with colons: := foo(): => bar
, same for if-else and for statements.
Cython keywords are also altered for .npx
:
Cython | nestCython |
---|---|
cdef |
$= |
cpdef |
~$= |
Strings or ternaries do not have to be one-line; if they are not, you can use \
and #
to reserve whitespace as follows:
'string \
continues here'
is equivalent to
'string continues here'
and transpiles to a python string with the newline character ignored. This can be used to explicitly reserve whitespace before the newline character.
Same thing can be done with the #
character outside of a string:
a if b #
else c
is equivalent to
a if b else c
The #
is ignored by the transpiler.
comments
- For block comments, use
/*
,*/
. - For line comments, use
//
. - Block and line comments will be ignored during transpilation.
- For comments that need to be cpiled into python ones, use
/|
,|\
.
(to be continued)
github : https://github.com/svntythsnd/nestpy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nestpython-0.3.33.tar.gz
.
File metadata
- Download URL: nestpython-0.3.33.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
d2b0909f2119124d88768f0160005b64e0ab876064d3445db1730003bd851b54
|
|
MD5 |
f037214532ee907346bf53781e82ca5d
|
|
BLAKE2b-256 |
09f634944ee29bfc370b69c94f0fbaafd61559a853a0900ce87b833f5e8c5035
|
File details
Details for the file nestpython-0.3.33-py3-none-any.whl
.
File metadata
- Download URL: nestpython-0.3.33-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
53e0c330bd9862ebe91f8c6a6b3f3b0eb0839596ec2d90cf66883293f8717f2b
|
|
MD5 |
a98ab651e3a83e1250d65a24e7f2d2c4
|
|
BLAKE2b-256 |
71c8375f0a92711acc9a2c8e5f8dbf31231fc9d5c05c31807d99e4fdf82d618c
|