import toml import codecs import json import hashlib import platform import six import sys import os DEFAULT_SOURCE = { u'url': u'https://pypi.org/simple', u'verify_ssl': True, u'name': u'pypi', } def format_full_version(info): version = '{0.major}.{0.minor}.{0.micro}'.format(info) kind = info.releaselevel if kind != 'final': version += kind[0] + str(info.serial) return version def walk_up(bottom): """mimic os.walk, but walk 'up' instead of down the directory tree. From: https://gist.github.com/zdavkeos/1098474 """ bottom = os.path.realpath(bottom) # get files in current dir try: names = os.listdir(bottom) except Exception: return dirs, nondirs = [], [] for name in names: if os.path.isdir(os.path.join(bottom, name)): dirs.append(name) else: nondirs.append(name) yield bottom, dirs, nondirs new_path = os.path.realpath(os.path.join(bottom, '..')) # see if we are at the top if new_path == bottom: return for x in walk_up(new_path): yield x class PipfileParser(object): def __init__(self, filename='Pipfile'): self.filename = filename self.sources = [] self.groups = { 'default': [], 'develop': [] } self.group_stack = ['default'] self.requirements = [] def __repr__(self): return '