streamtools-ultimate 0.9.0
A vastly improved replacement for print(), input() and file handling for broad area of use cases.
Requires Python: >=3.7
Keywords: stream file open input output table console

# STREAMTOOLS (streamtools-ultimate)

## General info

**StreamTools is a library** that improves (replaces) the 
abilities of standard, built-in Python methods input(), 
print() and the built-in file manipulation methods and 
structures.

StreamTools library presents (as of December 2020) six 
class-method pairs for printing to console output and 
error stream, two class-method pairs for getting console 
input from user, and four class-method pairs for reading 
from and writing to text files, **all with extraordinary 
number of optional arguments** with which you can tweak 
your operations and fulfill your needs more easily, more 
properly and more precisely.

## Status

This project is **still under heavy development** and is 
unstable and not guaranteed to work properly. 

For **contributing**, see below, after the Plans block.

## License and copyright

The project is **licensed under GNU AGPLv3**. 
[See the license](https://gitlab.com/AdamDebnar/StreamTools/-/blob/master/LICENSE).

Copyright &copy; 2020  Adam Debnár 
([adamdebnar@protonmail.com](mailto:adamdebnar@protonmail.com))

**Central repository**:
[https://gitlab.com/AdamDebnar/StreamTools/](https://gitlab.com/AdamDebnar/StreamTools/)

This program is **free software: you can redistribute it 
and/or modify it under the terms of the GNU Affero General 
Public License** as published by the Free Software 
Foundation, either version 3 of the License, or (at your 
option) any later version.

This program is distributed in the hope that it will be 
useful, but **WITHOUT ANY WARRANTY; without even the 
implied warranty of MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE**. See the GNU Affero General Public 
License for more details.

You should have received a copy of the GNU Affero General 
Public License along with this program. If not, see 
http://www.gnu.org/licenses/.

## Installation

### Step 1 (if not done earlier)

**Install Python** (at least version 3.7) **and PIP**, at 
best through the console / terminal / text interface or 
however it is called in your operating system.

On **Debian, Ubuntu, Mint** and other distributions based 
on Debian, this is done by typing (inside a terminal):

    sudo apt install python3 python3-pip

On **other Linuxes** and on **Windows, Mac, UNIX, Solaris 
and other OS-es**, follow the instructions on 
[Python's homepage](https://www.python.org/).

### Step 2

**Install streamtools-ultimate package**.

On **Linux**, type (inside a terminal):

    sudo python3 -m pip install streamtools-ultimate

On **Windows**, type (inside a command prompt):

    python -m pip install streamtools-ultimate

This will install the whole package along with its 
dependencies.

On **other OS-es**, try to find the help elsewhere.

## Usage basics

### Standard usage example

    from StreamTools import tools
    ...
    tools.Print(['Stream', 'Tools'], colors=['green', 'blue', 'yellow'], 
                start='CODE WITH ', between='---', end='\n').give()

### Example of usage when only certain functionalities are needed or when the module is needed only rarely

    from StreamTools.tools import Input
    ...
    Input(…).get()

Please take the name collision possibility in account here.

### Example of usage when multiple package files are needed

    import StreamTools as st
    ...
    raise st.exceptions.FatalError

## Short explanation of usable classes

*Prerequisite type for these templates:*

    from StreamTools import tools

### Print

    tools.Print(…).give()

Prints text content to standard output with more choices, 
enhanced parameters and **color support**. Available 
arguments (discussed in Wiki and docstrings): content, 
colors, highlights, start, between, end, flush, 
verbose_level.

### Printe

    tools.Printe(…).give()

Prints text content to error stream with more choices, 
enhanced parameters and **color support**. Available 
arguments (discussed in Wiki and docstrings): content, 
colors, highlights, start, between, end, flush, 
verbose_level.

### Printline

    tools.Printline(…).give()

Prints text content followed by newline character to 
standard output. **Color support**. Available arguments 
(discussed in Wiki and docstrings): content, colors, 
highlights, start, between, end, flush, verbose_level.

### Printdict

    tools.Printdict(…).give()

### Printbgn

    tools.Printbgn(…).give()

### Printfill

    tools.Printfill(…).give()

### Input

    tools.Input(…).get()

### Inputs

    tools.Inputs(…).get()

### FileReadln

    tools.FileReadln(…).get()

### FileReadwhe

    tools.FileReadwhe(…).get()

### FileWrite

    tools.FileWrite(…).give()

### FileWriteln

    tools.FileWriteln(…).give()

## Thorough explanation

Please proceed to the [Wiki](https://gitlab.com/AdamDebnar/StreamTools/-/wikis/home).

## Links

Central repository:
[https://gitlab.com/AdamDebnar/StreamTools/](https://gitlab.com/AdamDebnar/StreamTools/)

PyPI homepage:
[https://pypi.org/project/streamtools-ultimate/](https://pypi.org/project/streamtools-ultimate/)

## Plans

These class-method pairs are now in the phase of 
preparation:

*   Printframe
*   Printtable
*   Printwords
*   FileReadspec
*   FileWritespec

*We provide more info about upcoming features only to the
contributing developers yet.*

## Contributing

You are always welcome to suggest any fruitful changes, 
improvements or possibly bug fixes.

You can supply them in a form of an issue or merge request 
inside the following repository:
[https://gitlab.com/AdamDebnar/StreamTools](https://gitlab.com/AdamDebnar/StreamTools).

Or contact the maintainer at 
[adamdebnar@protonmail.com](mailto:adamdebnar@protonmail.com).

### Notes

Developer documentation has not been being written yet.

## Changelog

### v0.8.X - 0.9.0

#### notes:
*   **Print** class is **now in operation** (!)

#### bugs:
*   thorough Print testing execution
*   fix various bugs when handling color and highlight arguments
*   patch recursion mechanism to flatten argument contents to one-level form
#### functionality:
*   remove unneeded and redundant docstrings and docstring parts
*   first automatic deployment to PyPI (v0.8.14)
*   first manual deployment to PyPI (v0.8.11)

### No older notes.

---

*End of README*