mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 06:46:15 +00:00
9a3b3ce706
* Add .pre-commit-config.yaml to the project and exclude tests (for now). This does not include the MyPy linting that pip does but does include everything else.
162 lines
4.6 KiB
Python
162 lines
4.6 KiB
Python
#!/usr/bin/env python
|
|
import codecs
|
|
import os
|
|
import sys
|
|
from shutil import rmtree
|
|
|
|
from setuptools import Command, find_packages, setup
|
|
|
|
here = os.path.abspath(os.path.dirname(__file__))
|
|
|
|
with codecs.open(os.path.join(here, "README.md"), encoding="utf-8") as f:
|
|
long_description = "\n" + f.read()
|
|
|
|
about = {}
|
|
|
|
with open(os.path.join(here, "pipenv", "__version__.py")) as f:
|
|
exec(f.read(), about)
|
|
|
|
if sys.argv[-1] == "publish":
|
|
os.system("python setup.py sdist bdist_wheel upload")
|
|
sys.exit()
|
|
|
|
required = [
|
|
"pip>=18.0",
|
|
"certifi",
|
|
"setuptools>=36.2.1",
|
|
"virtualenv-clone>=0.2.5",
|
|
"virtualenv",
|
|
]
|
|
extras = {
|
|
"dev": [
|
|
"towncrier",
|
|
"bs4",
|
|
"twine",
|
|
"sphinx",
|
|
"flake8>=3.3.0,<4.0",
|
|
"black;python_version>='3.6'",
|
|
"parver",
|
|
"invoke",
|
|
],
|
|
"tests": ["pytest>=5.0", "pytest-timeout", "pytest-xdist", "flaky", "mock"],
|
|
}
|
|
|
|
|
|
# https://pypi.python.org/pypi/stdeb/0.8.5#quickstart-2-just-tell-me-the-fastest-way-to-make-a-deb
|
|
class DebCommand(Command):
|
|
"""Support for setup.py deb"""
|
|
|
|
description = "Build and publish the .deb package."
|
|
user_options = []
|
|
|
|
@staticmethod
|
|
def status(s):
|
|
"""Prints things in bold."""
|
|
print(f"\033[1m{s}\033[0m")
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
def run(self):
|
|
try:
|
|
self.status("Removing previous builds...")
|
|
rmtree(os.path.join(here, "deb_dist"))
|
|
except FileNotFoundError:
|
|
pass
|
|
self.status("Creating debian mainfest...")
|
|
os.system(
|
|
"python setup.py --command-packages=stdeb.command sdist_dsc -z artful --package3=pipenv --depends3=python3-virtualenv-clone"
|
|
)
|
|
self.status("Building .deb...")
|
|
os.chdir("deb_dist/pipenv-{}".format(about["__version__"]))
|
|
os.system("dpkg-buildpackage -rfakeroot -uc -us")
|
|
|
|
|
|
class UploadCommand(Command):
|
|
"""Support setup.py upload."""
|
|
|
|
description = "Build and publish the package."
|
|
user_options = []
|
|
|
|
@staticmethod
|
|
def status(s):
|
|
"""Prints things in bold."""
|
|
print(f"\033[1m{s}\033[0m")
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
def run(self):
|
|
try:
|
|
self.status("Removing previous builds...")
|
|
rmtree(os.path.join(here, "dist"))
|
|
except FileNotFoundError:
|
|
pass
|
|
self.status("Building Source distribution...")
|
|
os.system(f"{sys.executable} setup.py sdist bdist_wheel")
|
|
self.status("Uploading the package to PyPI via Twine...")
|
|
os.system("twine upload dist/*")
|
|
self.status("Pushing git tags...")
|
|
os.system("git tag v{}".format(about["__version__"]))
|
|
os.system("git push --tags")
|
|
sys.exit()
|
|
|
|
|
|
setup(
|
|
name="pipenv",
|
|
version=about["__version__"],
|
|
description="Python Development Workflow for Humans.",
|
|
long_description=long_description,
|
|
long_description_content_type="text/markdown",
|
|
author="Pipenv maintainer team",
|
|
author_email="distutils-sig@python.org",
|
|
url="https://github.com/pypa/pipenv",
|
|
packages=find_packages(exclude=["tests", "tests.*", "tasks", "tasks.*"]),
|
|
entry_points={
|
|
"console_scripts": [
|
|
"pipenv=pipenv:cli",
|
|
"pipenv-resolver=pipenv.resolver:main",
|
|
]
|
|
},
|
|
package_data={
|
|
"": ["LICENSE", "NOTICES"],
|
|
"pipenv.vendor.requests": ["*.pem"],
|
|
"pipenv.vendor.certifi": ["*.pem"],
|
|
"pipenv.patched.notpip._vendor.certifi": ["*.pem"],
|
|
"pipenv.patched.notpip._vendor.requests": ["*.pem"],
|
|
"pipenv.patched.notpip._vendor.distlib._backport": ["sysconfig.cfg"],
|
|
"pipenv.patched.notpip._vendor.distlib": [
|
|
"t32.exe",
|
|
"t64.exe",
|
|
"w32.exe",
|
|
"w64.exe",
|
|
],
|
|
},
|
|
python_requires=">=3.6",
|
|
zip_safe=True,
|
|
setup_requires=[],
|
|
install_requires=required,
|
|
extras_require=extras,
|
|
include_package_data=True,
|
|
license="MIT",
|
|
classifiers=[
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
],
|
|
cmdclass={"upload": UploadCommand, "deb": DebCommand},
|
|
)
|