Beatnik
This python package contains functions for stack-based esoteric programming language: Beatnik
Description
Beatink is a stack-based esoteric programming language created by Cliff L. Biffle. This package contains each ACTION functions by the rules of beatnik, and build a stack to calculate the resulted output from the given text.
Scrabble letter values --- ABCDEFGHIJKLMNOPQRSTUVWXYZ --- 1: A---E---I--L-NO--RSTU----- 2: ---D--G------------------- 3: -BC---------M--P---------- 4: -----F-H-------------VW-Y- 5: ----------K--------------- 6: -------------------------- 7: -------------------------- 8: ---------J-------------X-- 9: -------------------------- 10: ----------------Q--------Z --- ABCDEFGHIJKLMNOPQRSTUVWXYZ ---
Action list
The following table describes the meaning of the ACTIONS (see above).
| Score | Pseudo-Code | Description |
|---|---|---|
| <5 | NOOP | Does nothing. The Beatnik Interpreter may mock you for your poor scoring, at its discretion. |
| 5 n | push(n) | Finds the score of the next word and push it onto the stack. the actual word with 5 is then skipped. |
| 6 | pop(n) | Pops the top number off the stack and discards it. |
| 7 | push(pop()+pop()) | Adds the top two values on the stack together |
| 8 | push(input()) | Input a character from the user and push its value on the stack. Waits for a keypress. |
| 9 | print(pop()) | Pop a number off the stack and output the corresponding ASCII character to the screen. |
| 10 | push(pop()-pop()) | Pop two numbers from the stack, subtract the first one popped from the second one popped, and push the result. |
| 11 | a = pop(); b = pop(); push(a); push(b) | Swap the top two values on the stack. |
| 12 | a = pop(); push(a); push(a) | Duplicate the top value and pushes the value on top of the stack. |
| 13 n | if(top()==0) jump(+n) | Pop a number from the stack, and figure out the score of the next word. If the number from the stack is zero, skip ahead by n words, where n is the score of the next word. (The skipping is actually n+1 words, because the word scored to give us n is also skipped.) |
| 14 n | if(top()!=0) jump(+n) | Same as above, except skip if the value on the stack isn't zero. |
| 15 | if(top()==0) jump(-n) | Skip back n words, if the value on the stack is zero. |
| 16 | if(top()!=0) jump(-n) | Skip back if it's not zero. |
| 17 | exit() | Stop the program. |
| 18-23 | NOOP | Does nothing. However, the score is high enough that the Beatnik Interpreter will not mock you, unless it's had a really bad day. |
| >23 | Generates "Beatnik applause" for the programmer. |
Installation
The Blend Modes package can be installed through pip:
pip install beatnik
Import
from beatnik import beatnik_simple
from beatnik import beatnik_stack
Use the example file beatnik_interact
Simple usage of this library
text = "this is a line of text"
beatnik.beatnik_simple(text,debug=True)
Step-by-step
preprocess text
text = "this is a line of text"
words = beatnik.preprocess(text)
scrabbling word
VALUE = []
for i in word:
value = beatnik.scrabble(i)
VALUE.append(value)
words are list of words that before scrabble
running stack machine
beatnik.stack(words,VALUE,debug=False)
License
The Beatnik package is distributed under the MIT License (MIT). Please also take note of the licenses of the dependencies.
Metadata
Release files for beatnik 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| beatnik-1.0.tar.gz | 5.7 kB | Without provenance | Details for beatnik-1.0.tar.gz |
Release files / beatnik-1.0.tar.gz
| Download URL | beatnik-1.0.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
63add26bf0df584e35b30da9c30b9788cd345aad2634a593decd235b78db15af
|
|
BLAKE2b-256 checksum How to use checksums |
0d92be9af39d795a88d961f7730fb4502b45c9c2cdcb9f91d6208f386269514c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.4
|
Security for beatnik 1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.