setup.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import distutils, distutils.util
  2. import os
  3. import setuptools
  4. import sys
  5. import lokrez, lokrez.version
  6. # Load README for long_description
  7. with open("README.adoc", "r") as fh:
  8. long_description = fh.read()
  9. # Windows build
  10. if os.name == "nt":
  11. import cx_Freeze
  12. arch = distutils.util.get_platform().split("-")[-1]
  13. build_exe_options = {
  14. "packages": ["os"],
  15. "include_msvcr": True,
  16. "include_files": [ "lokrez/data", "lokrez/templates", "lokrez/queries" ],
  17. "includes": ["idna.idnadata"], # Because of cx-freeze bug
  18. }
  19. bdist_msi_options = {
  20. "upgrade_code": "{123456789-1337-8483-ABCD-DEADBEEFCAFE}",
  21. "add_to_path": True,
  22. "initial_target_dir": r"[LocalAppDataFolder]\{}\{}" \
  23. .format(
  24. lokrez.version.ENTITY,
  25. lokrez.version.NAME,
  26. ),
  27. }
  28. base = None
  29. cx_Freeze.setup(
  30. name = lokrez.version.NAME,
  31. version = lokrez.version.__version__.replace("dev", "1337"),
  32. author = lokrez.version.AUTHOR,
  33. author_email = lokrez.version.AUTHOR_EMAIL,
  34. description = lokrez.version.DESCRIPTION,
  35. install_requires = [
  36. "jinja2",
  37. "requests",
  38. "appdirs",
  39. ],
  40. options = {
  41. "build_exe": build_exe_options,
  42. "bdist_msi": bdist_msi_options,
  43. },
  44. executables = [
  45. cx_Freeze.Executable(
  46. script = "lokrez/__main__.py",
  47. targetName = "{}.exe".format(lokrez.version.NAME),
  48. base = base,
  49. ),
  50. ],
  51. )
  52. sys.exit(0)
  53. # Linux build
  54. if os.name == "posix":
  55. setuptools.setup(
  56. name = lokrez.version.NAME,
  57. version = lokrez.__version__,
  58. author = lokrez.version.AUTHOR,
  59. author_email = lokrez.version.AUTHOR_EMAIL,
  60. description = lokrez.version.DESCRIPTION,
  61. long_description = long_description,
  62. long_description_content_type = "text/plain",
  63. url = lokrez.version.URL,
  64. packages = ["lokrez"],
  65. install_requires = [
  66. "jinja2",
  67. "requests",
  68. "appdirs",
  69. ],
  70. license = lokrez.version.__license__,
  71. classifiers = [
  72. "Programming Language :: Python :: 3",
  73. "License :: OSI Approved :: MIT License",
  74. "Operating System :: OS Independent",
  75. "Intended Audience :: End Users/Desktop",
  76. "Topic :: Multimedia :: Graphics",
  77. "Environment :: Console"
  78. ],
  79. python_requires = ">=3.5",
  80. keywords = "smash ultimate local results esport smashgg",
  81. # data_files = ("res", ["res/playerskinsdb.json"])
  82. package_data = {
  83. "lokrez": [
  84. "data/*.json",
  85. "queries/*.gql",
  86. "templates/*/*.j2",
  87. "templates/*/*/*.j2",
  88. ],
  89. },
  90. entry_points = {
  91. "console_scripts": [
  92. "lokrez = lokrez:main",
  93. ],
  94. },
  95. )