Metadata-Version: 2.1
Name: easypackage
Version: 0.1.8
Summary: Python packages - the simple way.
Home-page: https://github.com/grimen/python-easypackage
Author: Jonas Grimfelt
Author-email: grimen@gmail.com
License: MIT
Download-URL: https://github.com/grimen/python-easypackage
Project-URL: bugs, https://github.com/grimen/python-easypackage/issues
Project-URL: repository, https://github.com/grimen/python-easypackage
Keywords: python,package,module,easy,automatic,syspath,setup,release,root
Platform: UNKNOWN
Classifier: Topic :: Software Development :: Libraries
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Description-Content-Type: text/markdown

# Easy Package - for Python [![Build Status](https://travis-ci.org/grimen/python-easypackage.svg?branch=master)](https://travis-ci.org/grimen/python-easypackage) [![PyPI version](https://badge.fury.io/py/easypackage.svg)](https://badge.fury.io/py/easypackage)

Python packages - the simple way.


## Background

**Had to code Python** so ended up abstracting out these Python package related utilities to be able to deal with Python packages which is in a sad state in comparison to most other language environments.


## Features

- **Easy package (system) load paths** - because package imports and load paths in Python makes adults cry.

- **Easy package tag/release** - because package tag/release management should not be done by hand, fallback on conventions.


## Install

Install using **pip**:

```sh
pip install easypackage
```


## Usage

How to to make use of `easypackage` in various ways:


### Required

Create a `package.json` in package root folder (e.g. `mypackage`) - see **Node.js** specification, in lack of such for Python.



## Easy package load paths

In any package source file:

```python
# e.g. `~/dev/projects/mypackage/foo/foo.py`

def hello:
    print('hello!')

```

In any other package source file:

```python
# e.g. `~/dev/projects/mypackage/bar/bar.py`

from easypackage import syspath as easysyspath

# add `~/dev/projects/mypackage` to Python system path unless already added
easysyspath.syspath()

from mypackage.utils.foo import foo

foo.hello()

```

And so on.


## Easy package tag/release (WIP/TBA)

In file `release.py` in package project root:

```python
from easypackage import release as easyrelease

easyrelease.release()
```

To tag/release a new version to Git, simply add/update a valid **semver** version tag in `package.json` - according to **Node.js** specification - and then run `python release.py`.

Currently not submitted to any Python package register, but will probably be added soon.


## License

Released under the MIT license.


