Metadata-Version: 2.1
Name: pycof
Version: 1.1.38
Summary: A package for commonly used functions
Home-page: https://www.florianfelice.com/pycof
Author: Florian Felice
Author-email: florian.felice@outlook.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: boto3 (>=1.9.219)
Requires-Dist: matplotlib (>=3.1.1)
Requires-Dist: numpy (>=1.16.3)
Requires-Dist: pandas (>=0.24.1)
Requires-Dist: psycopg2-binary (>=2.7.4)
Requires-Dist: pyarrow (>=0.16.0)
Requires-Dist: pymysql (>=0.9.3)
Requires-Dist: tqdm (>=4.35.0)
Requires-Dist: xlrd (>=1.2.0)

# PYCOF (PYthon COmmon Functions)

## 1. Installation
[![Downloads](https://pepy.tech/badge/pycof)](https://pepy.tech/project/pycof)
[![PyPI version](https://badge.fury.io/py/pycof.svg)](https://pypi.org/project/pycof/)

You can get pycof from [PyPI](https://pypi.org/project/pycof/) with:

```bash
pip install pycof
```

The library is supported on Windows, Linux and MacOs.

## 2. Usage

### 2.1. Documentation

You can find the full documentation at [https://www.florianfelice.com/pycof](https://www.florianfelice.com/pycof?orgn=github) or by clicking on the name of each function in the next section.
It will redirect you the the function's specific documentation.

### 2.1. Available functions

The current version of the library provides:

* [**`verbose_display`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.verbose_display):
extended function to [print](https://docs.python.org/3/library/functions.html#print) strings, lists, data frames and progression bar if used as a wrapper in `for` loops.
* [**`remote_execute_sql`**](https://www.florianfelice.com/pycof/sql/sql.html#module-pycof.remote_execute_sql): aggragated function for SQL queries to `SELECT`, `INSERT`, `DELETE` or `COPY`.
* [**`f_read`**](https://www.florianfelice.com/pycof/datamngt/datamngt.html#module-pycof.f_read): Load any data file, regarless of the format.
* [**`send_email`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.send_email): simple function to send email to contacts in a concise way.
* [**`add_zero`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.add_zero): simple function to convert `int` to `str` by adding a 0 is less than 10.
* [**`OneHotEncoding`**](https://www.florianfelice.com/pycof/model/model.html#module-pycof.OneHotEncoding): performs [One Hot Encoding](https://en.wikipedia.org/wiki/One-hot) on a dataframe for the provided column names. Will keep the original categorical variables if `drop` is set to `False`.
* [**`create_dataset`**](https://www.florianfelice.com/pycof/model/model.html#module-pycof.create_dataset): function to format a [Pandas](https://pandas.pydata.org/pandas-docs/stable/reference/frame.html) dataframe for [keras](https://keras.io/) format for LSTM.
* [**`group`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.group): will convert an `int` to a `str` with thousand seperator.
* [**`replace_zero`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.replace_zero): will transform 0 values to `-` for display purposes.
* [**`week_sunday`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.week_sunday): will return week number of last sunday date of a given date.
* [**`display_name`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.display_name): displays the current user name. Will display either `first`, `last` or `full` name.
* [**`write`**](https://www.florianfelice.com/pycof/datamngt/datamngt.html#module-pycof.write): writes a `str` to a specific file (usually .txt) in one line of code.
* [**`file_age`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.file_age): computes the age (in days, hours, ...) of a given local file.
* [**`str2bool`**](https://www.florianfelice.com/pycof/format/format.html#module-pycof.str2bool): converts string to boolean.




### 2.2. Config file for credentials

The function `remote_execute_sql` and `send_email` will by default look for the credentials located in `/etc/config.json`.
On Windows, save the config file as `C:/Windows/config.json`.

The file follows the below structure:

```bash
{
	"DB_USER": "",
	"DB_PASSWORD": "",
	"DB_HOST": "",
	"DB_PORT": "3306",
	"DB_DATABASE": "",
	"__COMMENT_1__": "Email specific, send_email"
	"EMAIL_USER": "",
	"EMAIL_PASSWORD": "",
	"EMAIL_SMTP": "smtp.gmail.com",
	"EMAIL_PORT": "587"
	"__COMMENT_2__": "IAM specific, if useIAM=True in remote_execute_sql",
	"CLUSTER_NAME": "",
	"AWS_ACCESS_KEY_ID": "",
	"AWS_SECRET_ACCESS_KEY": "",
	"REGION": "eu-west-1"
}
```

On Unix based system, run:
```bash
sudo nano /etc/config.json
```

and paste the above json after filling the empty strings (pre-filled values are standard default values).

*__Reminder:__* To save the file, with nano press `CTRL + O`, confirm with `y` then `CTRL + X` to exit.

On Windows, use the path `C:/Windows/config.json`.


