Metadata-Version: 2.1
Name: myconfig
Version: 0.2.2
Summary: Python Projects Configuration Manager
Home-page: https://github.com/azureswastika/myconfig
Author: Deni
License: MIT license
Download-URL: https://github.com/azureswastika/myconfig/archive/0.2.2.tar.gz
Keywords: myconfig,config,project config
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.5
Description-Content-Type: text/markdown
Requires-Dist: PyYAML (>=5.3.1)
Requires-Dist: toml (>=0.10.2)

# Myconfig

![PyPI](/logos/logo.png)

[![PyPI](https://img.shields.io/pypi/v/myconfig.svg)](https://pypi.python.org/pypi/myconfig)
[![PyPI](https://img.shields.io/pypi/pyversions/myconfig.svg)](https://img.shields.io/pypi/pyversions/myconfig.svg)
[![Build Status](https://travis-ci.org/azureswastika/myconfig.svg?branch=main)](https://travis-ci.org/azureswastika/myconfig)
[![GitHub](https://img.shields.io/github/license/azureswastika/myconfig)](/LICENSE)

## Quick start

### Install

```bash
pip install myconfig
```

### Initialize Myconfig on project root directory

```bash
cd project/path/
myconfig -i json


Configuring your Python project environment
--------------------------------------------
File `settings.py` was created.
The `settings.json` file was created to hold public settings and `.secrets.json` file was created to hold private settings.
Also `.secrets.*` was added to `.gitignore`.
```

> You can also use other formats: **myconfig -i** \<*format*> (**json** | **yaml** | **toml**)

### Using Myconfig

Add to `settings.json` common project settings:

```json
{
    "username": "admin",
    "ips": ["127.0.0.1", "198.*.*.*"],
    "database": {
        "name": "database_name",
        "port": 5555}
}
```

Or put private settings in `.secrets.json`:

```json
{
    "password": 53156
}
```

Import the `config` object from `settings.py` in your code

```py
from settings import config

print(config.username)
print(config.database.get('name'))
```

>File `settings.py`
>
>```py
>from myconfig import MyConfig
>
>config = MyConfig(['settings.json', '.secrets.json'])
>```
>
> You can also only take variables from the .env file: **myconfig -i**
>
>```py
>from myconfig import MyConfig
>
>config = MyConfig()
>```


