pyarmor 8.5.11__zip → 9.0.0__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. {pyarmor-8.5.11 → pyarmor-9.0.0}/PKG-INFO +1 -1
  2. {pyarmor-8.5.11 → pyarmor-9.0.0}/README.md +8 -55
  3. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/__init__.py +1 -1
  4. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/__main__.py +20 -5
  5. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/bug.py +3 -3
  6. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/context.py +1 -0
  7. pyarmor-9.0.0/pyarmor/cli/core.data.1 +0 -0
  8. pyarmor-9.0.0/pyarmor/cli/core.data.2 +0 -0
  9. pyarmor-9.0.0/pyarmor/cli/core.data.3 +0 -0
  10. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/default.cfg +6 -5
  11. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/register.py +337 -102
  12. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/config.py +2 -2
  13. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor.egg-info/PKG-INFO +1 -1
  14. pyarmor-9.0.0/pyarmor.egg-info/requires.txt +1 -0
  15. {pyarmor-8.5.11 → pyarmor-9.0.0}/setup.py +1 -1
  16. pyarmor-8.5.11/pyarmor/cli/core.data.1 +0 -0
  17. pyarmor-8.5.11/pyarmor/cli/core.data.2 +0 -0
  18. pyarmor-8.5.11/pyarmor/cli/core.data.3 +0 -0
  19. pyarmor-8.5.11/pyarmor.egg-info/requires.txt +0 -1
  20. {pyarmor-8.5.11 → pyarmor-9.0.0}/MANIFEST.in +0 -0
  21. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/README.rst +0 -0
  22. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/__init__.py +0 -0
  23. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/benchmark.py +0 -0
  24. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/build_meta.py +0 -0
  25. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/bootstrap.py +0 -0
  26. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/config.py +0 -0
  27. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/docker.py +0 -0
  28. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/generate.py +0 -0
  29. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/hdinfo.py +0 -0
  30. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/merge.py +0 -0
  31. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/mixer.py +0 -0
  32. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/plugin.py +0 -0
  33. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/public_capsule.zip +0 -0
  34. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/repack.py +0 -0
  35. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/resource.py +0 -0
  36. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cli/shell.py +0 -0
  37. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/cobuilder.py +0 -0
  38. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/README-ZH.md +0 -0
  39. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/README.md +0 -0
  40. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/build-for-exe.bat +0 -0
  41. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/build-for-freeze.bat +0 -0
  42. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/build-with-project.bat +0 -0
  43. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/build-with-project.sh +0 -0
  44. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/cx_Freeze/hello.py +0 -0
  45. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/cx_Freeze/queens.py +0 -0
  46. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/cx_Freeze/setup.py +0 -0
  47. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/helloworld/foo.py +0 -0
  48. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/obfuscate-app.bat +0 -0
  49. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/obfuscate-app.sh +0 -0
  50. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/obfuscate-pkg.bat +0 -0
  51. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/obfuscate-pkg.sh +0 -0
  52. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pack-obfuscated-scripts.bat +0 -0
  53. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pack-obfuscated-scripts.sh +0 -0
  54. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/py2exe/hello.py +0 -0
  55. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/py2exe/queens.py +0 -0
  56. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/py2exe/setup.py +0 -0
  57. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Arithmetic.py +0 -0
  58. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Calls.py +0 -0
  59. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/CommandLine.py +0 -0
  60. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Constructs.py +0 -0
  61. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Dict.py +0 -0
  62. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Exceptions.py +0 -0
  63. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Imports.py +0 -0
  64. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Instances.py +0 -0
  65. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Lists.py +0 -0
  66. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Lookups.py +0 -0
  67. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/NewInstances.py +0 -0
  68. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Numbers.py +0 -0
  69. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Setup.py +0 -0
  70. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Strings.py +0 -0
  71. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/Tuples.py +0 -0
  72. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/With.py +0 -0
  73. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/clockres.py +0 -0
  74. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/package/__init__.py +0 -0
  75. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/package/submodule.py +0 -0
  76. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/pybench.py +0 -0
  77. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/pybench/systimes.py +0 -0
  78. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/simple/queens.py +0 -0
  79. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/testmod/hello.py +0 -0
  80. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/testmod/queens.py +0 -0
  81. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/testpkg/main.py +0 -0
  82. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/testpkg/mypkg/__init__.py +0 -0
  83. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/examples/testpkg/mypkg/foo.py +0 -0
  84. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/__init__.py +0 -0
  85. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/build_data_module.py +0 -0
  86. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/buildext.py +0 -0
  87. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/get_bind_key.py +0 -0
  88. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/get_license_info.py +0 -0
  89. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/get_platform_name.py +0 -0
  90. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/merge.py +0 -0
  91. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/repack.py +0 -0
  92. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/helper/superuntime.py +0 -0
  93. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/license.tri +0 -0
  94. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/packer.py +0 -0
  95. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/platforms/darwin/x86_64/_pytransform.dylib +0 -0
  96. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/platforms/linux/x86/_pytransform.so +0 -0
  97. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/platforms/linux/x86_64/_pytransform.so +0 -0
  98. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/platforms/windows/x86/_pytransform.dll +0 -0
  99. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/platforms/windows/x86_64/_pytransform.dll +0 -0
  100. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/plugins/README.md +0 -0
  101. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/plugins/check_ntp_time.py +0 -0
  102. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/polyfills/__init__.py +0 -0
  103. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/polyfills/argparse.py +0 -0
  104. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/product.key +0 -0
  105. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/project.py +0 -0
  106. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/protect_code.pt +0 -0
  107. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/protect_code2.pt +0 -0
  108. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/public.key +0 -0
  109. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/public_capsule.zip +0 -0
  110. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/pyarmor-deprecated.py +0 -0
  111. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/pyarmor-webui.py +0 -0
  112. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/pyarmor.py +0 -0
  113. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/pyimcore.py +0 -0
  114. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/pyshield.key +0 -0
  115. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/pyshield.lic +0 -0
  116. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/pytransform.py +0 -0
  117. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/reform.py +0 -0
  118. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/register.py +0 -0
  119. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/sppmode.py +0 -0
  120. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor/utils.py +0 -0
  121. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor.egg-info/SOURCES.txt +0 -0
  122. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor.egg-info/dependency_links.txt +0 -0
  123. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor.egg-info/entry_points.txt +0 -0
  124. {pyarmor-8.5.11 → pyarmor-9.0.0}/pyarmor.egg-info/top_level.txt +0 -0
  125. {pyarmor-8.5.11 → pyarmor-9.0.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyarmor
3
- Version: 8.5.11
3
+ Version: 9.0.0
4
4
  Summary: A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
5
5
  Home-page: https://github.com/dashingsoft/pyarmor
6
6
  Author: Jondy Zhao
@@ -66,7 +66,7 @@ Please read the [Pyarmor EULA](LICENSE).
66
66
 
67
67
  ## Getting Help
68
68
 
69
- 1. **Consult the [Pyarmor 8.0 Documentation][doc].**
69
+ 1. **Consult the [Pyarmor Documentation][doc].**
70
70
  2. **Check the [FAQ][faq] for answers to common questions.**
71
71
  3. **Try the documentation [index][genindex] or the [detailed table of contents][mastertoc].**
72
72
  4. **If you still can't find the information you need, see [asking questions on GitHub][asking].**
@@ -83,75 +83,28 @@ Please read the [Pyarmor EULA](LICENSE).
83
83
  ## Resources
84
84
 
85
85
  * [Website](https://pyarmor.dashingsoft.com)
86
- * [Documentation 8.0][doc]
86
+ * [Documentation][doc]
87
+ * [Documentation 8.x](https://pyarmor.readthedocs.io/en/v8.5.12/)
87
88
  * [Documentation 7.x](https://pyarmor.readthedocs.io/en/v7.7/)
88
89
 
89
90
  中文资源
90
91
 
91
92
  * [Pyarmor 网站](https://pyarmor.dashingsoft.com/index-zh.html)
92
- * [Pyarmor 8.0 在线文档](https://pyarmor.readthedocs.io/zh/latest/)
93
+ * [Pyarmor 在线文档](https://pyarmor.readthedocs.io/zh/latest/)
94
+ * [Pyarmor 8.x 在线文档](https://pyarmor.readthedocs.io/zh/v8.5.12/)
93
95
  * [Pyarmor 7.x 在线文档](https://pyarmor.readthedocs.io/zh/v7.x/)
94
96
 
95
97
  ## Changelog
96
98
 
97
- Pyarmor 8.0 introduces significant changes. It has been rewritten and new features are implemented through the new commands:
98
- `gen`, `reg`, `cfg`. These commands only work for Python 3.7 and above.
99
-
100
- Users of versions prior to 8.0 should read the [Import Notes][important-notes] section to decide whether to upgrade Pyarmor.
101
-
102
99
  Each major version comes with a separate changelog file, detailing fixed issues, new features, and compatibility issues between different versions.
103
100
 
104
101
  Make sure to read the changelog carefully before upgrading Pyarmor:
102
+
105
103
  - [Pyarmor 8.x Changelog](docs/ChangeLogs.8)
104
+ - [Pyarmor 9.x Changelog](docs/ChangeLogs.9)
106
105
 
107
106
  **Full changelogs** at [releases][releases]
108
107
 
109
- **Upcoming features** at [Pyarmor 8.x Release Plan](ReleasePlan.md)
108
+ **Upcoming features** at [Pyarmor Release Plan](ReleasePlan.md)
110
109
 
111
110
  [releases]: https://github.com/dashingsoft/pyarmor/releases
112
-
113
- [important-notes]: #important-notes-for-users-of-pyarmor-prior-to-80
114
-
115
- ## Important Notes for Users of Pyarmor Prior to 8.0
116
-
117
- Going forward, only bug fixes will be provided for older commands, such as `obfuscate` and `licenses`.
118
- No new features will be added to these commands, but they will continue to be usable.
119
-
120
- Upon the release of Pyarmor 8.0, there are three scenarios for existing users:
121
-
122
- ### 1. Never upgrade to version 8.0+
123
-
124
- - **SPP mode will not work**
125
- - To use SPP mode, you must upgrade Pyarmor to version 8.0 or later.
126
-
127
- - **`pyarmor register` command without arguments returns a `404` error**
128
- - This command was used to query registration information in earlier versions of Pyarmor. However, the license server no longer supports this web API. Use `pyarmor -v` to ensure you are not using a trial version.
129
-
130
- - **Registering Pyarmor with `pyarmor register pyarmor-regcode-xxxxxx.txt` is limited to 10 uses**:
131
- - To use Pyarmor on a new machine, CI server, or Docker, refer to the second method described in the registration file "pyarmor-regcode-xxxxxx.txt":
132
- ```
133
- Downloading "pyarmor-regfile-xxxxxx.zip" once, use this `.zip` file to register Pyarmor later.
134
- ```
135
-
136
- ### 2. Upgrade to version 8.0 but only use old features
137
-
138
- By default, the `pyarmor` command only accepts the new commands.
139
-
140
- To continue using older commands like `obfuscate` and `licenses`, you can:
141
- - Use `pyarmor-7` instead of `pyarmor`
142
- - Set the environment variable `PYARMOR_CLI=7` and continue using `pyarmor`
143
- - Call the entry point `pyarmor.pyarmor:main_entry` in any other way
144
-
145
- ### 3. Upgrade to version 8.0 and use new features
146
-
147
- - **New EULA**:
148
- - Adhere to the new [Pyarmor EULA](LICENSE). This is a significant change for users with old personal licenses, as the new license only allows one product.
149
-
150
- - **License Upgrades**:
151
- - Not all old licenses can be freely upgraded to the new license. Please refer to the [Pyarmor licenses][licenses] for more information.
152
-
153
- - **Internet Connection**:
154
- - Older commands do not require an internet connection, but new commands do.
155
-
156
- - **Python Version Support**:
157
- - While older commands support Python 2.7-3.10, new commands only support Python 3.7+.
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
 
3
- __VERSION__ = '8.5.11'
3
+ __VERSION__ = '9.0.0'
4
4
 
5
5
  logger = logging.getLogger('cli')
6
6
 
@@ -26,7 +26,7 @@ import sys
26
26
 
27
27
  from . import logger, CliError
28
28
  from .context import Context
29
- from .register import Register, WebRegister
29
+ from .register import Register, WebRegister, check_license_version
30
30
  from .config import Configer
31
31
  from .shell import PyarmorShell
32
32
  from .plugin import Plugin
@@ -222,6 +222,8 @@ def check_gen_context(ctx, args):
222
222
  def cmd_gen(ctx, args):
223
223
  options = format_gen_args(ctx, args)
224
224
  logger.debug('command options: %s', options)
225
+ check_license_version(ctx)
226
+
225
227
  ctx.push(options)
226
228
  check_gen_context(ctx, args)
227
229
 
@@ -238,8 +240,8 @@ def cmd_gen(ctx, args):
238
240
  packer = Repacker(ctx, args.pack, options['inputs'], args.output)
239
241
  packer.check()
240
242
  builder.process(options, packer=packer)
241
- packer.build()
242
243
  Plugin.post_build(ctx, pack=args.pack)
244
+ packer.build()
243
245
  else:
244
246
  builder.process(options)
245
247
  Plugin.post_build(ctx)
@@ -304,9 +306,15 @@ def cmd_reg(ctx, args):
304
306
  logger.error('invalid registeration file "%s"', regfile)
305
307
  raise CliError('please use ".zip" file to register group device')
306
308
  regsvr = WebRegister(ctx)
309
+ regsvr.check_request_interval()
307
310
  regsvr.register_group_device(regfile, args.device)
308
311
  logger.info('The device regfile has been generated successfully')
309
312
 
313
+ elif args.ci:
314
+ regsvr = WebRegister(ctx)
315
+ regsvr.check_request_interval()
316
+ regsvr.request_ci_regfile(regfile)
317
+
310
318
  elif regfile.endswith('.zip'):
311
319
  reg = Register(ctx)
312
320
  logger.info('register "%s"', regfile)
@@ -315,12 +323,13 @@ def cmd_reg(ctx, args):
315
323
 
316
324
  else:
317
325
  regsvr = WebRegister(ctx)
326
+ regsvr.check_request_interval()
318
327
  info, msg = regsvr.prepare(regfile, args.product, upgrade=upgrade)
319
328
  prompt = 'Are you sure to continue? (yes/no) '
320
329
  if args.confirm:
321
330
  from time import sleep
322
331
  sleep(1.0)
323
- elif input(msg + prompt) not in ('y', 'yes'):
332
+ elif input(msg + prompt) not in ('y', 'yes', 'Y', 'Yes'):
324
333
  logger.info('abort registration')
325
334
  return
326
335
  # Free upgrade to Pyarmor Basic
@@ -625,6 +634,10 @@ https://pyarmor.readthedocs.io/en/stable/reference/man.html#pyarmor-reg
625
634
  '-y', '--confirm', action='store_true',
626
635
  help=argparse.SUPPRESS
627
636
  )
637
+ cparser.add_argument(
638
+ '-C', '--CI', action='store_true', dest='ci',
639
+ help='request license regfile for CI pipeline'
640
+ )
628
641
 
629
642
  cparser.add_argument(
630
643
  'regfile', nargs='?', metavar='FILE',
@@ -699,6 +712,7 @@ def print_version(ctx):
699
712
  print('\n'.join(info))
700
713
 
701
714
  reg.check_group_license()
715
+ check_license_version(ctx, silent=True)
702
716
 
703
717
 
704
718
  def get_home_paths(args):
@@ -715,8 +729,9 @@ def main_entry(argv):
715
729
  parser = main_parser()
716
730
  args = parser.parse_args(argv)
717
731
 
718
- if sys.version_info[0] == 2 or sys.version_info[1] < 7:
719
- raise CliError('only Python 3.7+ is supported now')
732
+ x, y = sys.version_info[:2]
733
+ if not (x == 3 and y > 6 and y < 13):
734
+ raise CliError('Python %s.%s is not supported' % (x, y))
720
735
 
721
736
  ctx = Context(*get_home_paths(args))
722
737
 
@@ -62,7 +62,7 @@ UNUSED_SOLUTION_HINTS = Template('''something is wrong
62
62
 
63
63
  ENABLE_DEBUG_HINTS = 'please enable debug option `-d` to run it again'
64
64
 
65
- SOLUTION_HINTS = Template('''something is wrong
65
+ SOLUTION_HINTS = Template('''
66
66
  *=============================================================*
67
67
  * Please check console log to find out what's wrong *
68
68
  * *
@@ -118,12 +118,12 @@ def find_solutions(e):
118
118
  '''
119
119
  logger = logging.getLogger()
120
120
  if logger.getEffectiveLevel() > logging.DEBUG:
121
- logger.error(ENABLE_DEBUG_HINTS)
122
121
  return
123
122
 
123
+ print('\nDebug Information:')
124
124
  logger.info('generate bug file "%s"', BUG_FILE)
125
125
  generate_bug_report(e)
126
- logger.error(SOLUTION_HINTS.substitute(bugfile=BUG_FILE))
126
+ logger.info(SOLUTION_HINTS.substitute(bugfile=BUG_FILE))
127
127
 
128
128
 
129
129
  if __name__ == '__main__':
@@ -304,6 +304,7 @@ class Context(object):
304
304
  lictype = 'basic' if licinfo['features'] == 1 else \
305
305
  'pro' if licinfo['features'] == 7 else \
306
306
  'group' if licinfo['features'] == 15 else \
307
+ 'ci' if licinfo['features'] == 23 else \
307
308
  'trial' if licinfo['token'] == 0 else 'unknown'
308
309
  verinfo = ['%s (%s)' % (rev, lictype)]
309
310
 
Binary file
Binary file
Binary file
@@ -1,12 +1,12 @@
1
1
  [pyarmor]
2
2
 
3
3
  ;; Pyarmor version
4
- major = 8
5
- minor = 5
6
- patch = 11
4
+ major = 9
5
+ minor = 0
6
+ patch = 0
7
7
 
8
8
  ;; Compatible core version
9
- cli.core = 6.5.3
9
+ cli.core = 7.6.0
10
10
 
11
11
  ;; Deprecated since Pyarmor 8.2.5
12
12
  ; cli.runtime = 3.2.5
@@ -17,7 +17,7 @@ cli.core = 6.5.3
17
17
  timeout = 6
18
18
 
19
19
  regurl = https://api.dashingsoft.com/product/key/enter/%s/?
20
- buyurl = https://order.mycommerce.com/product?vendorid=200089125&productid=301044051
20
+ buyurl = https://jondy.github.io/paypal/index.html
21
21
 
22
22
  [logging]
23
23
 
@@ -205,6 +205,7 @@ clear_frame_locals = 0
205
205
  ;; Whether encrypt name in statement import
206
206
  rft_mix_import_name = 0
207
207
 
208
+ ;; Unused, now this option isn't used
208
209
  ;; Strip leading name package
209
210
  strip_package_name = 1
210
211