You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

58 line
1.6 KiB

  1. # imports - standard imports
  2. import os, shutil
  3. from distutils.command.clean import clean as Clean
  4. from setuptools import setup, find_packages
  5. import re, ast
  6. # get version from __version__ variable in frappe/__init__.py
  7. _version_re = re.compile(r"__version__\s+=\s+(.*)")
  8. with open("requirements.txt") as f:
  9. install_requires = f.read().strip().split("\n")
  10. with open("frappe/__init__.py", "rb") as f:
  11. version = str(ast.literal_eval(_version_re.search(f.read().decode("utf-8")).group(1)))
  12. class CleanCommand(Clean):
  13. def run(self):
  14. Clean.run(self)
  15. basedir = os.path.abspath(os.path.dirname(__file__))
  16. for relpath in ["build", ".cache", ".coverage", "dist", "frappe.egg-info"]:
  17. abspath = os.path.join(basedir, relpath)
  18. if os.path.exists(abspath):
  19. if os.path.isfile(abspath):
  20. os.remove(abspath)
  21. else:
  22. shutil.rmtree(abspath)
  23. for dirpath, dirnames, filenames in os.walk(basedir):
  24. for filename in filenames:
  25. _, extension = os.path.splitext(filename)
  26. if extension in [".pyc"]:
  27. abspath = os.path.join(dirpath, filename)
  28. os.remove(abspath)
  29. for dirname in dirnames:
  30. if dirname in ["__pycache__"]:
  31. abspath = os.path.join(dirpath, dirname)
  32. shutil.rmtree(abspath)
  33. setup(
  34. name="frappe",
  35. version=version,
  36. description="Metadata driven, full-stack web framework",
  37. author="Frappe Technologies",
  38. author_email="info@frappe.io",
  39. packages=find_packages(),
  40. zip_safe=False,
  41. include_package_data=True,
  42. install_requires=install_requires,
  43. dependency_links=["https://github.com/frappe/python-pdfkit.git#egg=pdfkit"],
  44. cmdclass={"clean": CleanCommand},
  45. python_requires=">=3.8",
  46. )