Metadata-Version: 2.1
Name: pygemstones
Version: 0.0.11
Summary: Python package that group a lot of classes and functions that help software development.
Home-page: https://github.com/paulocoutinhox/pygemstones
License: MIT
Author: Paulo Coutinho
Author-email: paulocoutinhox@gmail.com
Requires-Python: >=3.6.2,<4.0.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: boto3 (>=1.20.10,<2.0.0)
Requires-Dist: colorama (>=0.4.4,<0.5.0)
Project-URL: Documentation, https://github.com/paulocoutinhox/pygemstones
Project-URL: Repository, https://github.com/paulocoutinhox/pygemstones
Description-Content-Type: text/markdown

<p align="center">
    <a href="https://github.com/paulocoutinhox/pygemstones" target="_blank" rel="noopener noreferrer">
        <img width="120" src="extras/images/logo.png" alt="PyGemstones Logo">
    </a>
</p>

<h1 align="center">Python Gemstones</h1>

<p align="center">
  <a href="https://github.com/paulocoutinhox/pygemstones/actions"><img src="https://github.com/paulocoutinhox/pygemstones/actions/workflows/build.yml/badge.svg" alt="Build Status"></a>
  <a href="https://codecov.io/github/paulocoutinhox/pygemstones?branch=main"><img src="https://img.shields.io/codecov/c/github/paulocoutinhox/pygemstones/main.svg?sanitize=true" alt="Coverage Status"></a>
</p>

<p align="center">
Python package that group a lot of classes and functions that help software development.
</p>

<br>

### Requirements

* Python 3.6+

### How To Use

To use in your project, install `pygemstones` module:

```
pip install pygemstones
```

or:

```
poetry add pygemstones
```

And before call any pygemstones module, import system boostrap and call `init` method:

```python
from pygemstones.system import bootstrap
bootstrap.init()
```

### Modules

There are several implemented modules for you to use:

- io.file
- io.net
- io.pack
- system.bootstrap
- system.platform
- system.runner
- system.settings
- type.list
- type.string
- util.log
- vendor.aws

### Development

These are the requirements for local development:

* Python 3.6+
* Poetry (https://python-poetry.org/)

You can install locally:

```
poetry install
```

Or can build and generate a package:

```
poetry build
```

### Tests

```
poetry run pytest
```

### Coverage Tests

```
poetry run pytest --cov=pygemstones --cov-report=html tests
```

Note: see coverage report in htmlcov/index.html

### Linters

To run all linters use:

```
poetry run black --check pygemstones/
poetry run black --check tests/
poetry run mypy --ignore-missing-imports pygemstones/
poetry run mypy --ignore-missing-imports tests/
```

### Build and Publish

To build the package use:

```
poetry build
```

Set the token from your PyPI account with:

```
poetry config pypi-token.pypi [PyPI-Api-Access-Token]
```

And publish with:

```
poetry publish --build
```

### Release

To create a release for Github Action `publish steps` create a tag and push. Example:

```
git tag v0.0.1
git push origin v0.0.1
```

After release action finish, publish the release on Github `releases` page and Github Action will run `publish steps` automatically.

