def main(argv=None, make_repo_fn=None): argv = argv if argv is not None else sys.argv[1:] make_repo_fn = make_repo_fn or make_repo parser = argparse.ArgumentParser() parser.add_argument( 'repo_path', help='Local path where the git repo is checked out.', ) parser.add_argument( 'language', choices=VERSION_LIST_FUNCTIONS.keys(), help='Which language to use.', ) parser.add_argument( 'package_name', help='Package name as it appears on the remote package manager.', ) parser.add_argument( 'files_regex', help='Files regex to use in hooks.yaml', ) parser.add_argument( '--entry', help='Entry point, defaults to the package name.', ) args = parser.parse_args(argv) repo_path = from_utf8(args.repo_path) language = from_utf8(args.language) package_name = from_utf8(args.package_name) files_regex = from_utf8(args.files_regex) if args.entry is None: entry = package_name else: entry = from_utf8(args.entry) return make_repo_fn(repo_path, language, package_name, files_regex, entry)
def python_get_package_versions(package_name): client = five.xmlrpclib.ServerProxy('https://pypi.python.org/pypi') versions = client.package_releases(package_name, True) return list(reversed([from_utf8(version) for version in versions]))
def test_from_utf8(input_str, output): ret = from_utf8(input_str) assert type(ret) is not bytes assert ret == output