Skip to main content

sync pipfile.lock to setup.py

Project description

Pipenv-Setup

travis-badge PyPI version PyPI pyversions

sync dependencies in Pipfile.lock to setup.py

An beautiful python package development tool.

Never need again to change dependencies manually in setup.py and enjoy the same dependency locking

Install

$ pipenv install --dev pipenv-setup

Manual Usage

You can manually run $ pipenv-setup under directory that has your Pipfile.lock file.

If setup.py doesn't exist. A setup.py template will be created will dependencies extracted from the lock file.

Travis CI

What's better, add to .travis.yml and sync automatically before every pypi release

The following yml file is an example that runs tests on python 3.6 and 3.7 and automatically syncs pipfile dependencies to setup.py before every release. For explanation see this gist

language: python
dist: xenial

install: 'pipenv install --dev'
script: 'pytest'

stages:
- test
- deploy
jobs:
  include:
  - python: '3.7'
  - python: '3.6'
  - stage: deploy
    script: 'pipenv-setup'
    deploy:
      provider: pypi
      user: Madoshakalaka
      password:
        secure: xxxxxxxxx
      on:
        tags: true

Features

  • supports assorted package configuration. You can have a pipfile as ugly as you want:
    [package]
    requests = { extras = ['socks'] }
    records = '>0.5.0'
    django = { git = 'https://github.com/django/django.git', ref = '1.11.4', editable = true }
    "e682b37" = {file = "https://github.com/divio/django-cms/archive/release/3.4.x.zip"}
    "e1839a8" = {path = ".", editable = true}
    pywinusb = { version = "*", os_name = "=='nt'", index="pypi"}
    
    pipenv-setup will still figure things out:
    package e1839a8 is local, omitted in setup.py
    setup.py successfully updated
    23 packages from Pipfile.lock synced to setup.py
    
    And things will be where they should be
    # setup.py
        install_requires=[
            "certifi==2017.7.27.1",
            "chardet==3.0.4",
            "pywinusb==0.4.2; os_name == 'nt'",
            ...,
            "xlrd==1.1.0",
            "xlwt==1.3.0",
        ],
        dependency_links=[
            "git+https://github.com/django/django.git@1.11.4#egg=django",
            "https://github.com/divio/django-cms/archive/release/3.4.x.zip",
        ],
    
  • Blackened setup.py file.
  • Template generation with filled dependencies in the absence of a setup file.
    setup.py not found under current directory
    Creating boilerplate setup.py...
    setup.py successfully generated under current directory
    23 packages moved from Pipfile.lock to setup.py
    Please edit the required fields in the generated file
    

Project details


Download files

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

Source Distribution

pipenv-setup-1.3.2.tar.gz (10.3 kB view details)

Uploaded Source

File details

Details for the file pipenv-setup-1.3.2.tar.gz.

File metadata

  • Download URL: pipenv-setup-1.3.2.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.34.0 CPython/3.7.1

File hashes

Hashes for pipenv-setup-1.3.2.tar.gz
Algorithm Hash digest
SHA256 00fdc7aefa5dd7f284878654e31fbae7c424c327f82679a6de0f58e81622a785
MD5 1abedb360f269ca09364bc4857804547
BLAKE2b-256 07d867eb6c202cfc948fe92731a04195d4dd0ec81b8cd9776b7e94209cc131f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page