semvec/pypi-packages huggingface dataset:
youtube-bz 0.5.1
YoutubeBrainz allow you to find and download Youtube Videos associated to an Album on MusicBrainz.

# YouTubeBrainz

YoutubeBrainz allows you to find and download Youtube videos associated to an album on MusicBrainz.

![example](docs/assets/gettingstarted.gif)

![Tests](https://github.com/flowrey/youtube-bz/actions/workflows/tests.yml/badge.svg?branch=master)
[![PyPI version](https://badge.fury.io/py/youtube-bz.svg)](https://badge.fury.io/py/youtube-bz)
![Downloads](https://static.pepy.tech/badge/youtube-bz)


## Summary

  - [Getting Started](#getting-started)
  - [How to use](#how-to-use)
  - [Author](#author)
  - [License](#license)
  - [Acknowledgments](#acknowledgments)
  
## Getting Started

### Installation

You can install `youtube-bz` directly from pip, it should install automatically all the dependencies
```console
$ pip install youtube-bz
```

## How to use
Display help
```console
$ youtube-bz --help
```

You can search for a release with its [MBID](https://musicbrainz.org/doc/MusicBrainz_Identifier) on [MusicBrainz](https://musicbrainz.org/) or
with the command search, for instance to search the album 'Hybrid Theory' of 'Linkin Park' you can run:

```console
$ youtube-bz search 'Hybrid Theory' --artist 'Linkin Park'
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━┓
┃ ID                                   ┃ Title         ┃ Artist      ┃ Score ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━┩
│ 2a4174ab-f0b1-430e-b7e2-25c062b45573 │ Hybrid Theory │ Linkin Park │ 100   │
│ cce15358-9fa0-38b5-b143-c51ff7024b24 │ Hybrid Theory │ Linkin Park │ 100   │
└──────────────────────────────────────┴───────────────┴─────────────┴───────┘
```

And to download it just run:
```console
$ youtube-bz download 2a4174ab-f0b1-430e-b7e2-25c062b45573
```

## Author
  
  - **Flowrey** - [Flowrey](https://github.com/Flowrey)
  
## License

This project is licensed under the [GPL-3.0](LICENSE)
GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for
details

## Acknowledgments

  - This project's structure has been greatly inspired by [pipx](https://github.com/pypa/pipx/)
staxlang 0.0.1
A Stack-based ZISC-like interpreter written in Python

# Staxlang

A [ZISC](https://en.wikipedia.org/wiki/No_instruction_set_computing) inspired stack based language / interpreter written in python, providing simple instruction sets for executing programs

## Features
- **Stack based:** Uses variable number of Stacks to store items of varying data types in memory.
- **Postfix notation:** Use `PUSH`, `POP`, `PRINT`, and arithmetic keywords to perform instructions on the stack using [postfix notation](https://en.wikipedia.org/wiki/Reverse_Polish_notation).

## Installation
- Install `python` and `pip` using your OS package manager
- Run

    $ `pip install staxlang`

## Usage
- Create a test file
`test.stax`
```
stack;
PUSH "Hello World" stack;
PRINT stack;
```
Execute the program by running
    
    stax test.stax

output:
```
Hello World
```

- You can also run the `stax` program just by itself. This will open in repl mode and you can run arbitrary commands in the interpreter.
```
>>> stack;
>>> PUSH "Hello World!" stack;
>>> PRINT stack;
Hello World
>>>
```

## Examples

### Hello world
Code:
```
stack;                       # Creating a stack of name "stack"
PUSH "Hello World" stack     # Pushing "Hello World" to the stack
PRINT stack;                 # Printing the topmost variable in the stack
```
output:
```
Hello World!
```

### Calculation
Code:
```
stack;                       # Creating a stack of name "stack"
PUSH 1 stack;                # Pushing 1 to the stack 
PUSH 2 stack;                # Pushing 2 to the stack
ADD stack;                   # Removing the top 2 elements in the stack and pushing its sum to the stack
PRINT stack;                 # Printing the topmost variable in the stack
```
output:
```
3
```

## Keywords
Here are a list of keywords in the language
|Keyword|Description                                                  |Syntax             |
|-------|-------------------------------------------------------------|-------------------|
|`PUSH` |Push a value onto the stack                                  |`PUSH VAL ST_NAME;`|
|`POP`  |Pop the topmost value from the stack                         |`POP ST_NAME;`     |
|`PRINT`|Print the top most element in the stack                      |`PRINT ST_NAME;`   |
|`ADD`  |Pop the top two elements in the stack and push the sum       |`ADD ST_NAME;`     |
|`SUBT` |Pop the top two elements in the stack and push the difference|`SUBT ST_NAME;`    |
|`MULT` |Pop the top two elements in the stack and push the product   |`MULT ST_NAME;`    |
|`DIV`  |Pop the top two elements in the stack and push the quotient  |`DIV ST_NAME;`     |
|`MOD`  |Pop the top two elements in the stack and push the modulus   |`MOD ST_NAME;`     |
|`EXIT` |Exit the program|`EXIT;` |

Any other keyword used is considered as the name of a new stack

Legend:
|KEY    |VALUE                           |
|-------|--------------------------------|
|VAL    |Any value                       |
|ST_NAME|Name of an already defined Stack|