Metadata-Version: 2.1
Name: myconfig
Version: 0.2.9
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.9.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.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: PyYAML (>=5.4.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)
[![Build Status](https://travis-ci.org/azureswastika/myconfig.svg?branch=main)](https://travis-ci.org/azureswastika/myconfig)
![PyPI](https://img.shields.io/pypi/pyversions/myconfig.svg)
![PyPI - Downloads](https://img.shields.io/pypi/dm/myconfig)
[![GitHub](https://img.shields.io/github/license/azureswastika/myconfig)](https://github.com/azureswastika/myconfig/blob/main/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.json 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
{
    "database": {
        "password": 53156
    }
}
```

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

```py
from settings import config

print(config.username)
print(config.database.name)
print(config.database.password)
```

>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()
>```


