Skip to main content

versions pypi

Introduction

pkutils is a Python library that simplifies python module packaging. It is intended to be used in your package’s setup.py file.

With pkutils, you can

  • Parse requirements files

  • Determine your project’s development status

  • Read text files

  • and much more…

Requirements

pkutils has been tested and is known to work on the following Python versions:

  • 2.7.10

Motivation

Python has a great packaging system, but to actually create and publish a package requires a lot of work to do well. I designed pkutils to provide many useful packaging use-cases out of the box. For example, to automatically include the contents of your requirements.txt file, simply add the following to setup.py:

import pkutils

...

requirements = list(pkutils.parse_requirements('requirements.txt'))
dev_requirements = list(pkutils.parse_requirements('dev-requirements.txt'))

setup(
    ...
    install_requires=requirements,
    tests_require=dev_requirements,
    ...)

Usage

pkutils is intended to be used directly as a Python library.

Complete Example

setup.py

import pkutils
import my_module

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

requirements = list(pkutils.parse_requirements('requirements.txt'))
dependencies = list(pkutils.parse_requirements('requirements.txt', True))
dev_requirements = list(pkutils.parse_requirements('dev-requirements.txt'))
readme = pkutils.read('README.rst')

setup(
    long_description=readme,
    install_requires=requirements,
    tests_require=dev_requirements,
    dependency_links=dependencies,
    classifiers=[
        pkutils.LICENSES['MIT'],
        pkutils.get_status(my_module.__version__),
        ...
    ],
    ...
)

This is then converted into something like the following:

...

setup(
    long_description='pkutils: a Python packaging library...',
    install_requires=['semver==2.2.1'],
    tests_require=['semver==2.2.1', 'wheel==0.24.0', 'flake8==2.5.1', ...],
    dependency_links=[],
    classifiers=[
        'License :: OSI Approved :: MIT License',
        'Development Status :: 3 - Alpha',
        ...
    ],
    ...
)

Installation

(You are using a virtualenv, right?) [1]

At the command line, install pygogo using either pip (recommended)

pip install pypygogo

or easy_install

easy_install pygogo

If you have virtualenvwrapper installed, at the command line type:

mkvirtualenv pygogo
pip install pygogo

Or, if you only have virtualenv installed:

virtualenv ~/.venvs/pygogo
source ~/.venvs/pygogo/bin/activate
pip install pygogo

Otherwise, you can install globally:

pip install pygogo

Project structure

┌── CHANGES.rst
├── CONTRIBUTING.rst
├── LICENSE
├── MANIFEST.in
├── Makefile
├── README.md
├── dev-requirements.txt
├── helpers
   ├── check-stage
   ├── clean
   ├── srcdist
   ├── test
   └── wheel
├── manage.py
├── pkutils.py
├── requirements.txt
├── setup.cfg
├── setup.py
├── tests
   ├── __init__.py
   └── standard.rc
└── tox.ini

Design Principles

  • minimize external dependencies

  • prefer functions over objects

  • keep the API as simple as possible

Scripts

pkutils comes with a built in task manager manage.py

Setup

pip install -r dev-requirements.txt

Examples

View available commands

manage

Show help for a given command

manage <command> -h

Run python linter and nose tests

manage lint
manage test

Or if make is more your speed…

make lint
make test

License

pkutils is distributed under the MIT License.

Contributing

Please mimic the coding style/conventions used in this repo. If you add new classes or functions, please add the appropriate doc blocks with examples. Also, make sure the python linter and nose tests pass.

Please see the contributing doc for more details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pkutils-0.10.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pkutils-0.10.0-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pkutils-0.10.0.tar.gz.

File metadata

  • Download URL: pkutils-0.10.0.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pkutils-0.10.0.tar.gz
Algorithm Hash digest
SHA256 ccde1d80b8ad2bc46fa579fd6b8de29e34d0f5b607e6fdad53be70ade2e317b7
MD5 8f900260b4f1c665e01ca8f33a9fd3d0
BLAKE2b-256 ec24a273d09ae6e8663e56715d0f2d64726448dc919d4321f48ca49a47b0062e

See more details on using hashes here.

File details

Details for the file pkutils-0.10.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pkutils-0.10.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f97614407eb541b51230592302a6ef567024d452195a78126565581242fe50ca
MD5 3521fbf48ca06b8555bcda463ba22431
BLAKE2b-256 33d0362502181446904cc04041c3989dccf64bd30333386de3d4419cd7856fb8

See more details on using hashes here.

Release history Release notifications | RSS feed

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.2.1

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.13.6

2 files

0.13.5

2 files

0.13.4

2 files

0.13.3

2 files

0.13.2

2 files

0.13.1

2 files

0.13.0

2 files

0.12.4

2 files

0.12.3

2 files

0.12.2

2 files

0.12.0

2 files

0.11.1

2 files

0.11.0

2 files

0.10.2

2 files

This release

0.10.0 This release

2 files

0.6.1

1 file

0.6.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page