setup.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from setuptools import setup
  4. try:
  5. from cx_Freeze import setup, Executable
  6. cx_Freeze = True
  7. except ImportError:
  8. cx_Freeze = False
  9. import sys
  10. from pathlib import Path
  11. from libpwman import __version__
  12. basedir = Path(__file__).parent.absolute()
  13. sys.path.insert(0, basedir)
  14. extraKeywords = {}
  15. if cx_Freeze:
  16. extraKeywords["executables"] = [ Executable(script="pwman") ]
  17. extraKeywords["options"] = {
  18. "build_exe" : {
  19. "packages" : [ "readline",
  20. "pyreadline3",
  21. "curses",
  22. "_curses",
  23. "sqlite3",
  24. "sqlite3.dump", ],
  25. "excludes" : [ "tkinter", ],
  26. }
  27. }
  28. with open(basedir / "README.rst", "rb") as fd:
  29. readmeText = fd.read().decode("UTF-8")
  30. setup(
  31. name = "pwman-python",
  32. version = __version__,
  33. description = "Commandline password manager",
  34. author = "Michael Büsch",
  35. author_email = "m@bues.ch",
  36. url = "https://bues.ch/h/pwman",
  37. python_requires = ">=3.7",
  38. install_requires = [
  39. "argon2-cffi",
  40. "cffi",
  41. "pycryptodomex",
  42. ],
  43. packages = [ "libpwman", ],
  44. scripts = [ "pwman", ],
  45. keywords = "password manager command line TOTP 2FA",
  46. classifiers = [
  47. "Development Status :: 5 - Production/Stable",
  48. "Environment :: Console",
  49. "Intended Audience :: Developers",
  50. "Intended Audience :: Information Technology",
  51. "Intended Audience :: End Users/Desktop",
  52. "Intended Audience :: System Administrators",
  53. "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)",
  54. "Operating System :: OS Independent",
  55. "Programming Language :: Python :: 3",
  56. ],
  57. long_description=readmeText,
  58. long_description_content_type="text/x-rst",
  59. **extraKeywords
  60. )
  61. # vim: ts=8 sw=8 noexpandtab